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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4059|回复: 14

[讨论] #1有什么用

[复制链接]
发表于 2012-2-20 19:30:26 | 显示全部楼层 |阅读模式

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

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

x
verilog中的#1有什么用 常常能看到这样的赋值
always@(posedge clk)begin
         if(!rst_n)
            a<=#1 1'b0;
        else if(conditon1)
                a<=#1 1'b1;
        else if(conditon2)
                a <=#1 1'b0;
end

其中这个#1 具体意义是什么,除了仿真时的意义,是否是可以综合的。在FPGA或者asic中,是否需要这样写,意义大吗?有好处吗?
发表于 2012-2-20 19:35:56 | 显示全部楼层
仿真时候用的,#1不可综合
发表于 2012-2-20 19:45:21 | 显示全部楼层
个人习惯而已
可以不加延时
发表于 2012-2-20 22:00:51 | 显示全部楼层
1楼正解,在仿真的时候用来查看哪条路径比较长,这样写完设计之后就能在不综合之前大致了解每条路径的延迟情况
 楼主| 发表于 2012-2-20 22:52:26 | 显示全部楼层
回复 4# dreamylife


    不是特别理解
也即是综合之前都要把 #1 去掉的啦?
另外了解那条路径延时长怎么理解?都是寄存器啊,综合布线路径长短的影响一般不是在组合逻辑上啊。
发表于 2012-2-21 09:57:36 | 显示全部楼层
回复 4# dreamylife


    也觉得困惑。。知道是用来仿真的。。。但是怎么实现你说的查看哪条路径的长短呢??谢谢指教!
发表于 2012-2-21 10:20:43 | 显示全部楼层
回复 1# gg9132qq

这个#1一般应该是给仿真工具用的,仿真工具里面有一个最小单位时间deta。一般来当CLOCK的上升沿到来的时候刚好采到前一个周期的数据(因为有实际器件有延时嘛), 但如果不加#1, 有时仿真工具就会搞错,会采到当前周期这个数据(看上去就像组合逻辑一样),当然这样的机率比较小,但试想一个大工程如果遇到了这个问题找起来还是很花时间的。
发表于 2012-2-21 17:08:06 | 显示全部楼层
回复 1# gg9132qq


    #1,其实是为了看波形的时候让信号的翻转和时钟的边沿隔开,便于debug。

   综合的时候,会忽略掉的。
发表于 2012-2-23 22:00:12 | 显示全部楼层
回复 5# gg9132qq

综合时候是被自动忽略的,如果还有#2 #3出现,就是在写RTL时为了估测后端的情况凭经验加上的时间延迟。但如果都是#1,就如楼下所说,是为了debug时数据改变时刻与clock边沿错开,比较容易观察。
发表于 2012-3-9 11:01:00 | 显示全部楼层
代表延时信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-5 10:10 , Processed in 0.028277 second(s), 7 queries , Gzip On, Redis On.

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