这个dcm究竟怎么了?

andyandy   2010-8-9 17:33 楼主

有这样两个工程——

工程1:把输入的50MHz时钟通过dcm倍频,顶层模块除了把dcm的6个端口引出外不作任何处理。testbench里一直将dcm的对应复位脚赋0。仿真表明,倍频是成功的。

工程2:把输入的50MHz时钟通过dcm倍频。顶层模块用dcm输出的倍频信号作时钟,做了个led闪烁功能。dcm的输入时钟和复位通过顶层模块引出。testbench对时钟和复位的处理和工程1完全相同。仿真的结果是:led不闪烁。

谁能告诉我为什么?谢谢!!!

回复评论 (2)

除了硬件问题

 要拿MHz级的时钟做闪烁,一定会用到长长的大分频器。那么分频算得合不合适呢?太快,肉眼看不出闪烁;太慢,等半天都不动弹,会以为它不闪烁。
 先少分一点,把分频时钟打到一个引脚上,用示波器看看有没动静。
点赞  2010-8-10 00:31

谢谢楼上

我的闪烁频率为1Hz。
后来问题变成了这样——

用dcm做一个变频。
如果按书上的做法——
把6个管脚引出。在testbench里先给复位脚1并持续100ns,然后给0。
没有问题。
我想在顶层模块内部控制复位脚,根据主频实现书上的功能(先给复位脚1并持续100ns,然后给0)。仿真结果发现复位脚、输出频率及锁定脚均为高阻。
我是这样控制复位脚的:
...
reg rst_in = 1'b1;
reg fuwei = 3'd0;
always @(posedge clk)
if(fuwei != 3'd5) fuwei <= fuwei + 3'd1;
else rst_in <= 1'b0;
...

难道该复位脚必须外部控制,然后送给顶层模块作为输入?
点赞  2010-8-26 11:24
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复