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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6179|回复: 20

[求助] 求教verilog 代码解释和@ 的用法

[复制链接]
发表于 2011-7-20 17:44:44 | 显示全部楼层 |阅读模式

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

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

x
task read_word;
begin
   @(negedge clk);
   readp = 1;
   @(posedge clk) #5;
   readp = 0;
end
endtask

请问上面这段verilog代码是什么意思,“@”没有和always在一起用, 却单独使用,头一次见到,@有什么用法,请教各位,多谢多谢!!!
发表于 2011-7-20 18:25:06 | 显示全部楼层
就是等待后面的条件才能触发往下走
发表于 2011-7-20 19:49:27 | 显示全部楼层
这个我也还真没见过,同求解
发表于 2011-7-20 22:36:22 | 显示全部楼层
发表于 2011-7-20 22:54:27 | 显示全部楼层
看书不比你在这里问强嘛?这是最基本的语法,跟电路无关的东西,只有在tb里才用的到。
发表于 2011-7-21 08:53:16 | 显示全部楼层
二楼的朋友说得对,这个是用在测试代码中的,有点像wait(...),但是@(posedge ...)是边沿触发的~~~,只有等到这个时间触发了,仿真才回往下进行~~~
发表于 2011-7-21 09:14:51 | 显示全部楼层


二楼的朋友说得对,这个是用在测试代码中的,有点像wait(...),但是@(posedge ...)是边沿触发的~~~,只 ...
lxing_1988 发表于 2011-7-21 08:53


正解,就是在等到这个事件触发条件的满足,满足了才往下走。
发表于 2011-7-21 10:20:44 | 显示全部楼层
书上说得很清楚呢,任务的使用。
发表于 2011-7-22 08:27:15 | 显示全部楼层
这种代码只用在仿真,在实际的综合代码中很少这么用的
发表于 2011-7-22 11:30:09 | 显示全部楼层
这样理解:
initial块只执行一次,always块会一直被执行。所以可以这样写时钟:initial clk = 0; always #10 clk = ~clk;对吧?
那么再说@,那是个触发条件的标识符,后面跟的是条件表达式,比如posedge clk或者*。如果是电平信号,用wait。
总之,把always和@分开理解,一个是块标识,一个是触发条件标识。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-22 21:53 , Processed in 0.038036 second(s), 25 queries , Gzip On.

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