基于case语句的选择器设计

首先,这里设计的是一个8选1的的选择器,在这里博主的代码风格可能与之前会有所变化,毕竟去了公司,就都按照公司的代码风格来写了;另外,会了8选1之后,再进行其他的128选一等都是比较容易的,无非就是多写8选1而已。话不多说直接上代码。

module MUX8_1

(

clk,

rst_n,

input wire [7:0] i0,

input wire [7:0] i1,

input wire [7:0] i2,

input wire [7:0] i3,

input wire [7:0] i4,

input wire [7:0] i5,

input wire [7:0] i6,

input wire [7:0] i7,

input wire [2:0] sel,   

output reg [7:0] dout

);

always@(posedge clk or negedge rst_n)begin

  if(!rst_n)begin

     dout <= 8'b0;

  end

  else begin

  case (sel) begin

  3'b0 : dout <=  i0; 

  3'b1 : dout <=  i1; 

  3'b2 : dout <=  i2; 

  3'b3 : dout <=  i3; 

  3'b4 : dout <=  i4; 

  3'b5 : dout <=  i5; 

  3'b6 : dout <=  i6; 

  3'b7 : dout <=  i7; 

  default : dout <= 8'b0;

  endcase

  end

end

endmodule

原文地址:https://www.cnblogs.com/curatan/p/9428128.html