问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Verilog中阻塞赋值和非阻塞赋值 求助

发布网友 发布时间:2023-06-22 22:34

我来回答

1个回答

热心网友 时间:2024-12-06 01:00

verilog设计进阶

时间:2014年5月6日星期二

主要收获:

1.阻塞赋值与非阻塞赋值;

2.代码测试;

3.组合逻辑电路和时序逻辑电路。

阻塞赋值与非阻塞赋值:

1.阻塞赋值“=”(组合逻辑电路),非阻塞赋值“<=”(时序逻辑电路);

2.Verilog模块编程的8个原则:

(1) 时序电路建模时,用非阻塞赋值。

(2) 锁存器电路建模时,用非阻塞赋值。

(3) 用always块建立组合逻辑模型时,用阻塞赋值。

(4) 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。

(5) 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。

(6) 不要在一个以上的always块中为同一个变量赋值。

(7) 用$strobe系统任务来显示用非阻塞赋值的变量值。

(8) 在赋值时不要使用#0延时。

在编写时牢记这八个要点可以为绝大多数的Verilog用户解决在综合后仿真中出现的90-100% 的冒险竞争问题。

3.所谓阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上是在前一条赋值语句结束后开始赋值的。

4.非阻塞语句的执行过程是:首先计算语句块内部所有右边表达式(RHS)的值,然后完成对左边寄存器变量的赋值操作。

5.在代码上的区别:

begin

B=A;

C=B+1;

end

上述代码先将A的值赋值给B,C的值是A+1;

begin

B<=A;

C<=B+1;

end

上述代码的最终结果是:将A赋值给了B,但是C的值是B原来的值+1。因为最先计是的是右边的表达式。

组合逻辑电路与时序逻辑电路:

1.数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。

2.组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。

3.时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。

Verilog代码:

moleblocking(clk, a, b, c);

output [3:0] b,c;

input [3:0] a;

input clk;

reg [3:0] b,c;

always@(posedge clk) begin

b = a;

c = b;

$display("Blocking: a = %d, b= %d, c = %d.", a, b, c);

end

endmole

对应原理图:

molenon_blocking(clk, a, b, c);

output [3:0] b,c;

input [3:0] a;

input clk;

reg [3:0] b,c;

always@(posedge clk) begin

b <= a;

c <= b;

$display("Non_Blocking: a =%d, b = %d, c = %d.", a, b, c);

end

endmole

对应原理图:

测试代码:

`timescale1ns/1ns

moleblocking_test;

wire [3:0] b1, c1, b2, c2;

reg [3:0] a;

reg clk;

initial begin

clk = 0;

forever #50 clk = ~clk;

end

initial begin

a = 4'h3;

$display("______________________");

#100 a = 4'h7;

$display("______________________");

#100 a = 4'hf;

$display("______________________");

#100 a = 4'ha;

$display("______________________");

#100 a = 4'h2;

$display("______________________");

#100$display("______________________");

$stop;

end

non_blocking u1(clk, a, b2, c2);

blocking u2(clk,a, b1, c1);

endmole
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何选手机号码才大吉好运发财的手机号码? 手机号码吉凶吉祥号富贵大吉的手机尾号有哪些? 鸽子吃卫生纸是缺什么 为什么鸽子不吃菜叶子而只吃玉米呢 电脑显示未安装evernote怎么回事请教高手我的印象笔记不能在台式电脑... 韩国是岛国吗 韩国最便宜的vps 电脑开机时出现rebootandselectproperbootdevice怎么办 reboot and sel... ...出现reboot and select proper boot device 高清的液晶电视最好的选择?? FPGA 怎么输出方波时钟 欧姆龙程序里CH编号是什么 华硕EEE PC操作系统Puppy Linux怎么设置中文? 孕妇梦见好多人走路 梦见一群朋友走路的预兆 梦见很多人在走路的预兆 理想运放输入电阻 方舟泰克发电机界面上的英文都什么意思 方舟反应堆..原理是怎么... 正在四号井原矿底槽清紫砂壶颜色发暗棕黄色 几套房要征收房产税?房产税与契税的区别是什么 电路原理中 怎么区分支路电流 回路电压 回路电流 的方法? 电路原理中什么是不可逆分量? 电路原理是什么中与微积 电路原理是什么讲解 电路怎么看 初学者必备的电路分析技巧? ...输入信号之间的什么关系分析数字电路的主要工具是 中奖后去哪里领奖呢? 老村长酒兑奖限地区吗? 我买了十元一瓶的老村长中的奖品是美的电磁炉三件套要到哪里对奖 戏怎么念? 2022财务工作人员个人年终总结5篇 根据国家标准,RQ61是什么电容器?CB81是什么元件?CD41是什么元件?3DD是... 梦见梦里接连出现两条蛇的预兆 梦见前老总赶车的预兆 内衣abc哪个大 中粮地产重庆分公司地址 中粮油脂重庆有限公司是国企吗 查重庆江津中粮公司怎么样 重庆中粮集团做物流待遇,工作累不累。 三菱凌云电路图中ASLM是什么意思? 重庆中粮大悦城有超市吗 中粮集团在重庆铁山坪有新投项目吗 老村长兑手表代理商收多少 ...请问你有光电管GD24的资料吗 如果有关它的电路图最好不过了 希望不... 平潭介绍旅游景点 平潭介绍旅游景点欢迎词 那位高能给讲解一下门式起重机的控制电路 (塔式)起重机械的电路图,怎样看才明天 桥式起重机电路中的自激和预磁是起什么作用 ...什么也不知道,我想问一下双梁起重机电路方面的问题,我要先学什么...