在时钟的上升沿,怎样判断一个脉冲的上升沿???
本帖最后由 fpgaw 于 2010-7-12 11:25 编辑在时钟的上升沿,怎样判断一个脉冲的上升沿??? 有通用的边沿判断电路,就是用时钟上升沿驱动一个寄存器,把该脉冲作为输入,把该寄存器的输入和输出作为条件,如果输入为0输出为1,则表示出现上升沿。不过这样的上升沿会延迟一个时钟周期的。 always @(posedge clk)<br>
begin <br>
pluse_buf1<= pluse;<br>
plues_buf2<=pluse_buf1;<br>
end<br>
assign pluse_raise = pluse_buf1 & (~pluse_buf2); 请教楼上, pluse_raise = pluse_buf1 & (~pluse_buf2);采用两级d触发器是增加稳定性吗?? 消除亚稳态,没错的。就是采用二级触发器。 本帖最后由 wushihai 于 2010-6-20 12:14 编辑 <br>
<br>
3楼写的好。<br>
<br>
clkreg<clk_in;<br>
<br>
clkfall<=clkreg && (~clk_in);<br>
<br>
可以判断下降沿吧。 如果本来就是同步的话,就不需要这样写了。<br>
always @(posedge clk)<br>
begin<br>
pluse_buf1<= pluse;<br>
end<br>
assign pluse_raise = pluse & (~pluse_buf1);<br>
如果想消除亚稳态的话,那应该是如下写法:<br>
always @(posedge clk)<br>
begin<br>
pluse_buf1<= pluse;<br>
plues_buf2<=pluse_buf1;<br>
plues_buf3<=pluse_buf2;<br>
end<br>
assign pluse_raise = pluse_buf2 & (~pluse_buf3);<br>
<br>
打两拍后才用,才是标准的消除亚稳态的电路。 http://bbs.eetop.cn/images/smilies/default/smile.gif
高!
7#
kk2009 7楼正解,不过还是要考虑快慢时钟的问题,打两拍不是万能的 还是7楼的标准
页:
[1]
2