verilog中用“<= “ 和 “=”赋值的区别
来源:互联网 发布:淘宝店已下架什么意思 编辑:程序博客网 时间:2024/06/17 23:31
“<=”是非阻塞赋值,“=”是阻塞赋值
例
当执行到第46行时,线程会暂停在赋值处等待赋值完成再进行下面的语句,因此sel的值为:0,1,2,3,0,1,2,3 。。。。
此处执行到46行时,并不会等待赋值的完成,而是进行下面的if判断,因此实际上,sel的4并不会被清零,所以sel的值为:0,1,2,3,4,0,1,2,3,4。。。。。
附上本次的实现的在basy3板上数码管上显示0078数字的代码
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2017/11/21 12:33:01// Design Name: // Module Name: last4// Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //////////////////////////////////////////////////////////////////////////////////module last4( input CLK, output reg[10:0]display_out ); reg[19:0]count = 0; reg[2:0]sel = 0; parameter T1MS = 50000; always@(posedge CLK) begin case(sel) 0:display_out <= 11'b01110000001; 1:display_out <= 11'b10110000001; 2:display_out <= 11'b11010001111; 3:display_out <= 11'b11100000000; default:display_out <= 11'b11111111111; endcase end always@(posedge CLK) begin count <= count + 1; if(count == T1MS) begin count <= 0; sel <= sel + 1; if (sel == 4) sel <= 0; end end endmodule
约束文件
set_property PACKAGE_PIN W5 [get_ports CLK]set_property IOSTANDARD LVCMOS33 [get_ports CLK]set_property PACKAGE_PIN W4 [get_ports {display_out[10]}]set_property PACKAGE_PIN V4 [get_ports {display_out[9]}]set_property PACKAGE_PIN U4 [get_ports {display_out[8]}]set_property PACKAGE_PIN U2 [get_ports {display_out[7]}]set_property PACKAGE_PIN W7 [get_ports {display_out[6]}]set_property PACKAGE_PIN W6 [get_ports {display_out[5]}]set_property PACKAGE_PIN U8 [get_ports {display_out[4]}]set_property PACKAGE_PIN V8 [get_ports {display_out[3]}]set_property PACKAGE_PIN U5 [get_ports {display_out[2]}]set_property PACKAGE_PIN V5 [get_ports {display_out[1]}]set_property PACKAGE_PIN U7 [get_ports {display_out[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[10]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[9]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[8]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[7]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[6]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[5]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[4]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {display_out[0]}]
阅读全文
0 0
- verilog中用“<= “ 和 “=”赋值的区别
- verilog中非阻塞赋值和阻塞赋值的区别
- verilog中阻塞赋值和非阻塞赋值的区别
- Verilog中“=”和“<=”的区别
- verilog赋值:阻塞(=)和非阻塞(<=)赋值的不同
- (Verilog HDL)阻塞赋值和非阻塞赋值的区别和使用
- Verilog中阻塞赋值和非阻塞赋值区别
- Verilog开发中“=”和“<=”的区别
- makefile 中":"和":="赋值的区别
- Verilog 初级入门概念讲解(wire 和 reg 类型的区别, always 和 assign 的区别,“阻塞”赋值 和 “非阻塞赋值”的区别 )
- VHDL和Verilog的区别
- VHDL和Verilog的区别
- 网页代码中用<%=request.getContextPath()%>和不用的区别?
- verilog中task和function的区别
- VHDL和Verilog HDL的区别
- Verilog中parameter和define的区别
- Verilog中parameter和define的区别
- Verilog中parameter和define的区别
- 文章标题
- 函数参数传递方式(c/c++)
- 沐枫NOI 2839. 单词替换
- 支持向量机学习之3-SVR(回归)
- 排序算法之堆排序
- verilog中用“<= “ 和 “=”赋值的区别
- scikit-learn 中文文档-最近邻-监督学习|ApacheCN
- 代理服务器通俗解释
- Angular JS select
- Retrofit2 + RxJava + Okhttp + RecyclerView用MVP架构展示数据
- 【JS】单例模式
- c++网络编程服务器
- LeetCode-485. Max Consecutive Ones
- Caffe学习笔记7--自定义layer的实现