三目运算符
? : 三目运算符
assign a = b ? c : d
等同于
if(b == true)
a = c;
else
a = d;
进阶示例:
以牛客网 VL1 四选一多路器 为例
`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
reg [1:0] mux_out_reg;
always @(*)
begin
case(sel)
2'b00 : mux_out_reg = d3;
2'b01 : mux_out_reg = d2;
2'b10 : mux_out_reg = d1;
2'b11 : mux_out_reg = d0;
default : mux_out_reg = d0;
endcase
end
assign mux_out = mux_out_reg;
endmodule
使用三目运算符写法:文章来源地址https://www.toymoban.com/news/detail-508764.html
`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
assign mux_out= (sel == 2'b00) ? d3 : ((sel == 2'b01) ? d2 : (sel == 2'b10) ? d1 : d0);
endmodule
文章来源:https://www.toymoban.com/news/detail-508764.html
到了这里,关于Verilog学习记录3——三目运算符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!