集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2404|回复: 8

求助:关于 @ 的问题

[复制链接]
FFT 发表于 2010-6-27 23:18:04 | 显示全部楼层 |阅读模式
比如下列的
always @ ( a or b )begin
c = a;
@( posedge d ) begin
  语句 1;      /**********/
  语句 n;
  end
e = b;
end

当执行到
@( posedge d ) begin
  语句 1;      /**********/
  语句 n; end
时,是一直处于等待有上升沿,直到有了才往下顺序执行
还是一边等待上升沿(有了才执行( begin 和 end之间的语句),一边执行完 end 后面那句
e = b;

小弟才自学verilog 不久,有很多不明白的,望各位哥哥姐姐好心帮忙解答,谢谢
longtime 发表于 2010-6-28 00:54:18 | 显示全部楼层
没有看懂,<br>
什么叫&ldquo;一边等待上升沿(有了才执行( begin 和 end之间的语句),一边执行完 end 后面那句&nbsp; &nbsp;<br>
&nbsp; &nbsp;e = b;&rdquo;
CHAN 发表于 2010-6-28 01:03:12 | 显示全部楼层
应该是一直等待上升沿之后再往下执行
ngtim 发表于 2010-6-28 02:48:38 | 显示全部楼层
哦,是我表诉不清楚<br>
always @ ( a or b )&nbsp;&nbsp;begin<br>
&nbsp; &nbsp;c = a;&nbsp; &nbsp;&nbsp;&nbsp;//(1)<br>
&nbsp; &nbsp;@&nbsp;&nbsp;( posedge d ) begin&nbsp; &nbsp; //(2)<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 n;&nbsp; &nbsp;end&nbsp;&nbsp;<br>
&nbsp; &nbsp;e = b;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; //(3)<br>
end&nbsp; &nbsp; <br>
当执行到(2)时,是一直等待 &ldquo;posedge d&rdquo;&nbsp;&nbsp;才执行<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 n;&nbsp; &nbsp;end&nbsp;&nbsp;<br>
然后再才会执行&nbsp;&nbsp;(3);<br>
还是一边等待上升沿(有了才执行( begin 和 end之间的语句),<br>
与此同时执行(3);<br>
也就是说(3)语句是一定要到有 &ldquo;posedge d&rdquo;条件发生后执行完<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 n;&nbsp; &nbsp;end&nbsp;&nbsp;<br>
才执行,还是到(2)时,只检查下有没有 &ldquo;posedge d&rdquo;条件,没有的话,也去执行(3),而有的话只是让<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; <br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;语句 n;&nbsp; &nbsp;end&nbsp;&nbsp;<br>
执行?
ICE 发表于 2010-6-28 02:55:08 | 显示全部楼层
可参考<br>
计算波形占空比得不同输出(verilog) <br>
里面有另外一种写法<br>
<br>
欢迎对程序提出修改意见
CHAN 发表于 2010-6-28 03:47:50 | 显示全部楼层
--------------------------------------------------------------------------------<br>
应该是一直等待上升沿之后再往下执行
interig 发表于 2010-6-28 04:24:55 | 显示全部楼层
这段代码有什么实际用途吗?<br>
可以综合否?
CHA 发表于 2010-6-28 05:32:01 | 显示全部楼层
应该是这样的吧!<br>
always @ ()<br>
&nbsp; &nbsp; begin<br>
&nbsp; &nbsp; .......<br>
&nbsp; &nbsp; end<br>
&nbsp;&nbsp;<br>
在整个module 内所有的always是并行的,但被begin--end封装的块内是顺序执行的,你的程序中<br>
@(posedge d) 被begin-end 所封装,所以应该是等待后执行<br>
<br>
注:我是新人
VVIC 发表于 2010-6-28 07:08:55 | 显示全部楼层
@后面就是触发条件<br>
<br>
等到@的事件发生了就执行下面的代码....
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 09:22 , Processed in 0.071001 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表