Verilog学习笔记1,记录要点

这篇博客详细介绍了Verilog语言中assign和always语句的使用区别。assign语句用于连续赋值,适用于wire型变量,综合结果为组合逻辑电路;而always语句则用于条件赋值,适用于reg型变量,可以综合成时序逻辑电路。此外,还讲解了case语句的用法,并给出了四选一多路选择器的案例。最后,提到了三目运算符在assign语句中的应用,作为if-else语句的简洁替代。
摘要由CSDN通过智能技术生成

Verilog学习笔记1,记录要点

assign和always语句的区别

assign语句是连续赋值语句
always语句是条件赋值语句,也叫敏感赋值语句

assign语句需要使用的是wire型变量
always语句使用reg型变量

assign综合的一定是组合逻辑电路
always综合的不一定是时序逻辑电路

always@(*)begin

end
 //*表示always块中所有输入变量发生变化时,执行always中的语句

case语句

用法与c语言类似

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//四选一多路选择器
//*************code***********//
    reg [1:0] temp;   
    always@(*)begin
    case(sel)
        2'b00:temp=d3;
        2'b01:temp=d2;
        2'b10:temp=d1;
        2'b11:temp=d0;
        default:temp=d0;
    endcase
    end        
assign mux_out=temp;
//*************code***********//
endmodule

?:三目运算符

assign a=b?c:d;
//等价于如果b为真,将c赋值给a,否则将d赋值给a
//等价于if else语句,但是if else只能在always块中使用
//三目运算符可以在assign中使用,不需要单独声明寄存器变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值