初次接触硬件设计相关的东西,对学习过程进行一下记录。
首先根据书上内容设计了一个简单的二选一选择器
Verilog代码如下:
module mux2_1 #(
parameter DW = 32 //位宽
)(
input [DW-1:0] data_in0,
input [DW-1:0] data_in1,
input sel,
output [DW-1:0] data_out
);
wire sel_in0;
wire sel_in1;
assign sel_in0 = (sel==1'b0);
assign sel_in1 = (sel==1'b1);
assign data_out = {DW{sel_in0}}&data_in0 | {DW{sel_in1}}&data_in1;
endmodule
后仿造2选1多路选择器,用Verilog对4选1多路选择器进行建模。
题目如下:
要求输入分别为data_in0,data_in1,data_in2,data_in3,sel[1:0](数据的位宽请用parameter指定为DW)[PS:为养成良好的代码习惯,带我学习的大佬给我的代码提了一些要求(为了良好的代码风格,题目中的verilog文件不允许出现关键字“reg” “always” “case” “casex” “if” “else”)]
这是一个非常简单的题,根据情面2选1的例子,我们可以类推,将输入的数据提高为4个,选择信号改为2位宽度,后面的assign部分,分别将对应的编码进行设置带入