verilog阻塞与非阻塞的综合
来源:互联网 发布:杨幂同款冬季拖鞋淘宝 编辑:程序博客网 时间:2024/05/22 11:32
http://blog.chinaunix.net/uid-24203478-id-3031286.html
关于阻塞和非阻塞语句的5大原则:
原则1: 时序电路建模时,用非阻塞赋值。原则2: 用always块写组合逻辑时,采用阻塞赋值。
原则3: 在同一个always块中不要同时使用非阻塞赋值和阻塞赋值。
原则4: 锁存器电路建模时,用非阻塞赋值。
原则5: 在同一个always块中同时建立时序和组合逻辑电路时,用非阻塞赋值。
最好按照这些原则去做,以免综合出的电路不合要求。
例如:
always@(posedge clk)
begin
a=a+1;
b=a-c;
end
always@(posedge clk)
begin
c=a;
end
endmodule
b的结果为2。因为b取a赋值后的值,但取c赋值之前的值。
打开Tool->Netlist Viewer->RTL Viever查看综合出的电路如图:
实际上a、b、c触发器的赋值仍然是同时进行的,只不过b会与a同时赋a+1的值。
如改为非阻塞语句:
always@(posedge clk)
begin
a<=a+1;
b<=a-c;
end
always@(posedge clk)
begin
c<=a;
end
endmodule
结果b=1,则综合出电路如下:
区别仅在于b赋a而上面是b赋a+1。
如果是组合逻辑中的阻塞语句:
always@(posedge clk)
begin
a<=a+1;
end
always@(a)
begin
b=a+3;
c=b+7;
end
则综合结束如下:
b、c全由组合逻辑电路实现。
若使用非阻塞语句:
always@(posedge clk)
begin
a<=a+1;
end
always@(a)
begin
b<=a+3;
c<=b+7;
end
则综合出的电路和上面一样。因此似乎在组合逻辑中使用非阻塞语句没有意义。因此一般的在组合逻辑中就直接使用阻塞语句。
0 0
- verilog阻塞与非阻塞的综合
- Verilog 阻塞与非阻塞
- Verilog HDL阻塞与非阻塞的几个例子!
- Verilog 非阻塞赋值的仿真/综合问题
- Verilog 非阻塞赋值的仿真/综合问题
- Verilog非阻塞赋值的仿真/综合问题
- Verilog阻塞赋值与非阻塞赋值
- Verilog中阻塞与非阻塞语句
- Verilog阻塞赋值与非阻塞赋值
- Verilog中阻塞与非阻塞语句
- 快照:verilog中的阻塞与非阻塞
- verilog中的 阻塞赋值 与 非阻塞赋值 详解。
- verilog中的阻塞赋值与非阻塞赋值详解
- Verilog HDL之于FPGA--阻塞与非阻塞赋值
- Verilog阻塞式赋值与非阻塞式赋值的分析
- 关于verilog里阻塞与非阻塞赋值的个人理解
- verilog HDL 的阻塞和非阻塞语句分析
- verilog HDL 的阻塞和非阻塞语句分析
- libcouchabase和libevent的恩怨
- [leetcode NO.2] Median of Two Sorted Arrays (JAVA)
- Installation Guide for Oracle WebLogic Server 11g Release 一 (10.3.3)
- 般若波罗蜜多心
- 为什么电脑卡,怎么解决?
- verilog阻塞与非阻塞的综合
- poj 1751 Highways
- 互联网创业梦已醒
- 追随内心
- 滚动视图的自动循环滚动
- 西安市经开区-公司设立流程
- NYOJ-数的长度
- Windows系统时间(FILETIME和SYSTEMTIME)
- 关于建立保持时间以及时序的一些问题集合