在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6566|回复: 17

[求助] 一个很弱的问题,关于D触发器

[复制链接]
发表于 2011-2-14 18:26:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
因为程序里面必须用到别人写的一个模块,我自己写了testbench,看仿真的结果,感觉就是个D触发器

仿真结果如图:
simulation.jpg

当然这个模块的输出在后面还要被使用。 有一个问题就是:比如在这个仿真图中,第一个时钟上升沿之后输出就已经是9了。

那在后面的模块中,我能在第一个时钟上升沿之后就能使用这个9呢?还是至少得等到第二个时钟上升沿之后才能用啊?


因为助教一直跟我强调我不能在第一个周期使用这个9,至少要等到第二个周期,我对这个没懂。


希望知道的大侠们能帮帮我啊~~
发表于 2011-2-15 10:17:54 | 显示全部楼层
助教说的是对的,因为触发器之后有一定的延迟,第一个clock是采不到你要的这个数据9的
发表于 2011-2-15 10:57:09 | 显示全部楼层
学习了,,,
发表于 2011-2-15 12:43:32 | 显示全部楼层
二楼说的有道理,建议你在写D触发器的时候加一个延时,这样在仿真的时候就比较容易理解。例如:
always @(posedge clk or posedge rst)
if(rst) out <= 0;
else   out <= #1 in;
发表于 2011-2-15 14:01:11 | 显示全部楼层
本帖最后由 guoyu 于 2011-2-15 14:02 编辑

第二个沿才能够采到那个“9”。仿真没有像楼上加上一个延迟(#1),最好还是加上。如果不加,可以这样:沿前低电平对应时钟沿到来的D输入值,沿后的高电平对应时钟沿到达之后的Q输出值。
发表于 2011-2-15 16:59:54 | 显示全部楼层
从电路结构上来说,该触发器在CLK低电平将数据打入到触发器内,然后再CLK变为高电平后输出打入的数据。可以认为是高电平触发、高电平复位的D触发器。而实际使用时,我在做工程的时候,是可以在第一个时钟上升沿后使用“9”。但是要注意,是否满足HOLD TIME。
发表于 2011-2-15 18:39:44 | 显示全部楼层
贊成用
always @(posedge clk or posedge rst)
if(rst) out <= 0;
else   out <= #1 in;
由於DELAY在合成時會被忽略掉
所以並不會對實際電路造成影響
但卻可幫助simulation時的除錯
发表于 2011-2-15 19:49:25 | 显示全部楼层
reset最好长点,跨一两个cycle比较好
 楼主| 发表于 2011-2-16 03:41:33 | 显示全部楼层
谢谢楼上各位的回答,受益了
发表于 2011-2-16 12:13:00 | 显示全部楼层
还是6楼说的有道理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-3 04:43 , Processed in 0.029856 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表