决战秋招-IC之MUX

这篇博客记录了作者在秋招期间进行FPGA开发的学习经历,通过实现4to1多路选择器(MUX)深入理解了if语句和case语句在Verilog中可能导致的锁存器问题。通过对比完整和不完整的代码,分析了锁存状态的产生,并通过波形图进行了展示。尽管存在不足,但作者决心每天进步,为接下来的四个月做准备。
摘要由CSDN通过智能技术生成

两手准备秋招,希望有个好结果,只是作为学习笔记

4to1-MUX

分别用case语句和if语句写两个module对比,从中可以对if语句和case语句未写完产生锁存器加深理解:

正确代码:

module mux(sel,a,out);
input wire [1:0] sel;
input wire [3:0] a;
output reg out;

always @(*) begin
if (sel==0) 
begin
out=a[0];
end
else if (sel==1)
begin
out=a[1];
end
else if (sel==2)
begin
out=a[2];
end

else if (sel==3)
begin
out=a[3];
end

end

endmodule


module mux1(sel,a,out);
input wire [1:0] sel;
input wire [3:0] a;
output reg out;

always @(*) begin
case (sel[1:0]) 
2'd0: out=a[0];
2'd1: out=a[1];
2'd2: out=a[2];
default:out=a[3];
endcase
end

endmodule

test代码:


`timescale 1ns/1ns

module test();
reg [1:0] sel;
reg [3:0] a;
wire out;

initial begin 
sel=2'd1;
a=4'd2;
#5;
sel=2'd2;
a=4'd1;
#5;
sel=2'd4;
a=4'd3;
#5;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值