交出你的灵魂

设计一个合理结构的32-1MUX

上一篇 / 下一篇  2019-01-30 23:35:50







module MUX32_1(sel32, i32, o32)

begin

 

input [4:0] sel32;

input [31:0] i32;

output  o32;

wire [7:0] a;

wire [1:0] b;

 

MUX4_1 U0 ( .sel4(sel32[1:0]), .i4(i32[ 3: 0]), .o4(a[0]) );

MUX4_1 U1 ( .sel4(sel32[1:0]), .i4(i32[ 7: 4]), .o4(a[1]) );

MUX4_1 U2 ( .sel4(sel32[1:0]), .i4(i32[11: 8]), .o4(a[2]) );

MUX4_1 U3 ( .sel4(sel32[1:0]), .i4(i32[15:12]), .o4(a[3]) );

MUX4_1 U4 ( .sel4(sel32[1:0]), .i4(i32[19:16]), .o4(a[4]) );

MUX4_1 U5 ( .sel4(sel32[1:0]), .i4(i32[23:20]), .o4(a[5]) );

MUX4_1 U6 ( .sel4(sel32[1:0]), .i4(i32[27:24]), .o4(a[6]) );

MUX4_1 U7 ( .sel4(sel32[1:0]), .i4(i32[31:28]), .o4(a[7]) );

 

assign b[0] = sel32[2] ? a[4] : a[1];

assign b[1] = sel32[2] ? a[7] : a[0];

assign b[2] = sel32[2] ? a[5] : a[2];

assign b[3] = sel32[2] ? a[6] : a[3];

 

MUX4_1 U8 (.sel4(sel32[4:3]), .i4(b[3:0]), .o4(o32) );

 

endmodule

 

 

/********  sub module ********/

module MUX4_1(sel4, i4, o4)

begin

 

input  [1:0] sel4;

input  [3:0] i4;

output  o4;

 

always @(*)

    case(sel4):

      2’b00: o4 = i4 [0];

      2’b01: o4 = i4 [1];

      2’b10: o4 = i4 [2];

      2’b11: o4 = i4 [3];

    endcase

 

endmodule

 



TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-02-18  
     12
3456789
10111213141516
17181920212223
2425262728  

数据统计

  • 访问量: 1100
  • 日志数: 5
  • 建立时间: 2018-10-29
  • 更新时间: 2019-01-31

RSS订阅

Open Toolbar