集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: encounter

verilog例子1X2的选通器

[复制链接]
CCIE 发表于 2010-6-28 10:08:36 | 显示全部楼层
原帖由 rangertang 于 2006-9-21 13:07 发表<br>
module example( Out_A , Out_B , Sign_In , Sel , En );<br>
<br>
output Out_A;<br>
output Out_B;<br>
input Sign_In;<br>
input Sel;<br>
input En;<br>
<br>
assign Out_A = En &amp; Sel &amp; Sign_In;<br>
assign Out_B = En &amp; ~ ... 嗯,很不错!<br>
其实你写了一大堆的always模块,可能最后综合成的就是这样两个与门。
CHAN 发表于 2010-6-28 10:58:13 | 显示全部楼层
六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换
FFT 发表于 2010-6-28 12:38:27 | 显示全部楼层
看来要好好努力了 啊
VVC 发表于 2010-6-28 13:06:43 | 显示全部楼层
高人啊&nbsp;&nbsp;佩服佩服
usb 发表于 2010-6-28 15:05:40 | 显示全部楼层
输入信号没有在敏感表中
VVC 发表于 2010-6-28 17:01:08 | 显示全部楼层
要不就写成assign的blocking赋值,要不就posedge clk的nonblocking赋值,不要混淆
longtim 发表于 2010-6-28 17:22:56 | 显示全部楼层
使用always块描述combinational logic时应该使用blocking assignments,
注意:敏感表要列出rhs expression中的相关变量,
否则,仿真和综合结果可能不一致。
always @ (en or sel or sign_in)
begin
if (en) begin
  if (sel) begin
   sign_out_a = sign_in;
   sign_out_b = 0;
   end
   else begin
    ...     // else分支不能省略,否则,综合时会生成latch
   end
end
else
  ...      // else分支不能省略,否则,综合时会生成latch
end

描述sequential logic时使用nonblocking assignments,敏感表中一定要有posedge/negedge。

以上说明是针对RTL描述而言的!

对于behavial的描述,blocking/nonblocking使用就非常灵活,
完全依赖对概念理解,理解不深就比较容易出错,
所以建议写behavial也遵循以上rules
longt 发表于 2010-6-28 17:36:03 | 显示全部楼层
欣赏六楼的。。
ANG 发表于 2010-6-28 17:47:48 | 显示全部楼层
受教了,受教了,
CTT 发表于 2010-6-28 18:54:01 | 显示全部楼层
原帖由 jennyjiao 于 2006-9-22 09:55 发表<br>
六楼写得不错,我就是不会在阻塞附值与非阻塞附值之间自如的转换 这个和阻塞赋值和非阻塞赋值偶什么关系吗
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-18 17:14 , Processed in 0.074076 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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