基于FPGA的二路选择器-基础篇
2026/6/5 14:39:39 网站建设 项目流程

每日小知识

1.位拼接:{2’b10,3’b011}->5’b10011例如:A[2:0] B={A[0],A[1],A[2]}

2.功能模块调用时,输入信号可以接常数,例如:.in(8’d0)//输入信号in为8位宽

3.= 阻塞赋值(组合逻辑) <= 非阻塞赋值(时序逻辑)

例如:a=0,b=1,c=100

begin begin

b=a;//b=0 b<=a;//b=0

c=b;//c=0 c<=b;//c=1

end end

4.四选一 多路选择器

module mux4_1( input wire [7:0] data_in0, input wire [7:0] data_in1, input wire [7:0] data_in2, input wire [7:0] data_in3, input wire [1:0] sel , output wire [7:0] data_out ); //方法一 assign后只能跟赋值对象 //在本设计中若使用assign语句只能使用三目(元)运算符 assign data_out = (sel == 2'b00) ? data_in0 : (sel == 2'b01) ? data_in1 : (sel == 2'b10) ? data_in2 : data_in3; //方法二 always + 三目运算符 //always @ (*) //begin // data_out = (sel == 2'b00) ? data_in0 : // (sel == 2'b01) ? data_in1 : // (sel == 2'b10) ? data_in2 : data_in3; //end //方法三 always + if else语句 //always @ (*) //begin // if(sel == 2'b00) // data_out = data_in0; // else if(sel == 2'b01) // data_out = data_in1; // else if(sel == 2'b10) // data_out = data_in2; // else // data_out = data_in3; //end //方法四 always + case语句 //always @ (*) //begin // case(sel) // 2'b00: data_out = data_in0; // 2'b01: data_out = data_in1; // 2'b10: data_out = data_in2; // //2'b11: data_out = data_in3; // default:data_out = data_in3; // endcase //end endmodule

二路选择器的设计

绘制模块框图

编写代码

仿真验证

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询