有偿求助Verilog实现
最近导师给了个板子,让我用逻辑分析仪获取时序,然后用Verilog实现,本人Verilog新手,搞了两天,头都蒙了,现500元现金求助(别不好意思,反正也不是我的钱,呵呵)。一个主时钟8.192M,要求有2个输出。
1. 64K输出,高电平带宽是两个主时钟宽,见图第三行
2. 将第一个64K作为同步,当64K为低电平时,计数64个主时钟(8.192M),然后一直保持低电平输出,当下一个64K为低电平时,再计数64个,依次类推,见图第五行。
3. 将第一个64K作为同步,当64K为低电平时,计数64k时钟每8个反转一次,见图第二行。
有意的请留下QQ或邮箱,我有更详细的逻辑分析仪的截图.
谢谢各位大侠!
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_608299XV010H.jpg
(原文件名:tu.jpg) 这个不难。 回复【1楼】cddyy
-----------------------------------------------------------------------
cddyy,您好,怎么跟您联系啊! cddyy@sohu.com 闲着没事,凑个热闹 591241809 回复【楼主位】uolyu
-----------------------------------------------------------------------
哎,有这好事让我给误了。本人熟悉vhdl和verilog,有需求的话可以联系我。kawayi213@163.comqq:372369189 seedfpga@163.com
你这波形好像不对哦
8.192M 128分频刚还蘸檬?4K
第3张图 应该这样是可以?
module ouravr(clk,y1);
input clk;
output y1;
reg cnty1 = 7'b1;
assign y1 = (cnty1 >=2)? 1'b0 : 1'b1;
always@(posedge clk)
begin
cnty1<=cnty1+1'b1;
end
endmodule
或者 这个:
module ouravr(clk,y1);
input clk;
output y1;
reg cnty1 = 7'b1;
reg y1;
always@(posedge clk)
begin
cnty1<=cnty1+1'b1;
end
always@(posedge clk)
begin
if(cnty1>=2)
y1 <= 1'b0;
else
y1 <= 1'b1;
end
endmodule
第二个的波形:
点击此处下载 ourdev_611158H6Z01W.pdf(文件大小:10K) (原文件名:时序波形.pdf)
第一个的话,y1输出高电平在 在cnty1 等于 0和1的时候 占2个时钟的高电平。
第二个的话 ,y1输出高电平在 在cnty1 等于 1和2的时候占2个时钟的高电平。
区别在哪里? 时序逻辑落后一个时钟周期
有说初值不能综合,用复位逻辑保证。 的确比较简单 初值不能综合?请高人解答
以前学的时候看了一篇关于verilog新增功能的报告
verilog2001还是2005 已经支持
reg a = 1'b0;
这样的初值了吧
我一直都是这样用的,也没见IP出过问题。
就像以前没有的signed类型,现在也可以使用和综合了, 回复【8楼】syuanwang
初值不能综合?请高人解答
以前学的时候看了一篇关于verilog新增功能的报告
verilog2001还是2005 已经支持
reg a = 1'b0;
这样的初值了吧
我一直都是这样用的,也没见ip出过问题。
就像以前没有的signed类型,现在也可以使用和综合了,
-----------------------------------------------------------------------
synplify里面对这种语句的作法是忽略,也就是当你这行不存在,跟注释一样。
具体看synplify的手册。
页:
[1]