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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4328|回复: 15

[求助] 关于verilog中的“#”问题

[复制链接]
发表于 2018-7-8 10:11:07 | 显示全部楼层 |阅读模式

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

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

x
一直以为verilog中的“#”只能用于testbench中,用来产生延时,可是最近几天看别人写的i2c协议却频繁地发现RTL代码中也在使用“#”,求诸位高手帮我解释一下,这个“#”用在这些语句中的目的是什么,下面是例子:



  1. always @(posedge clk)
  2.           dscl_oen <= #1 scl_oen;


复制代码
 楼主| 发表于 2018-7-9 09:48:30 | 显示全部楼层
没有人回答吗。。。
发表于 2018-7-9 09:58:32 | 显示全部楼层
在clk上升沿之后的1个时间单位后,将<=后边的值赋给前边,其目的是为了避免设计中的竞争。#1在后端综合时实际上是没有用的。
发表于 2018-7-9 10:09:10 | 显示全部楼层




   既然目的是“为了防止冒险竞争”,但是最后综合时又被忽略了,那这样做有什么实际意义呢?对这个问题我也很不解,延迟时间并没有产生实际的电路,只是为了仿真好看吗?在我的设计中从来没有使用过这种语句。
发表于 2018-7-9 10:21:17 | 显示全部楼层
只用于仿真吧
 楼主| 发表于 2018-7-9 10:33:52 | 显示全部楼层
回复 3# Ground_lan


   那这样写没有用,为啥不直接不写它呢
发表于 2018-7-9 13:52:06 | 显示全部楼层
基本上就是为了仿真更接近于实际电路,好看点。不写也没有关系的。
发表于 2018-7-9 14:59:36 | 显示全部楼层
方便仿真,有一些仿真器是基于时间,有一些则是基于事件,在前仿真时表现的结果会出现不同结果。所以在前仿时为了模拟后仿真情况,加入一定的延时(#)。
 楼主| 发表于 2018-7-9 15:32:51 | 显示全部楼层
回复 4# 吾要单片机


   我也这样觉得,但因为这是从别人的例子上截过来的,所以我认为这样写肯定有什么好处,不然就是画蛇添足,都能出书了不至于回画蛇添足吧
 楼主| 发表于 2018-7-9 15:35:36 | 显示全部楼层
回复 8# window_blinds


   哦那我懂了,是要模拟实际情况中的器件的传输延时是吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 22:29 , Processed in 0.023133 second(s), 6 queries , Gzip On, Redis On.

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