Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. `timescale 1ns/1ps
  2.  
  3. module LineDecoder_1x2(m0, m1, i0);
  4. input i0;
  5. output m0, m1;
  6.  
  7. not (m0, i0);
  8. buf (m1, i0);
  9. endmodule;
  10.  
  11. module LineDecoder_2x4(m0, m1, m2, m3, i0, i1);
  12. input i0, i1;
  13. output m0, m1, m2, m3;
  14.  
  15. wire ld1m0, ld1m1;
  16. wire ld2m0, ld2m1;
  17.  
  18. LineDecoder_1x2 ld0(.m0(ld0m0), .m1(ld0m1), .i0(i0));
  19.  
  20. LineDecoder_1x2 ld1(.m0(ld1m0), .m1(ld1m1), .i0(i1));
  21.  
  22. and and_inst_m0 (m0, ld0m0, ld1m0);
  23. and and_inst_m1 (m1, ld0m1, ld1m0);
  24. and and_inst_m2 (m2, ld0m0, ld1m1);
  25. and and_inst_m3 (m3, ld0m1, ld1m1);
  26.  
  27. endmodule;
  28.  
  29. module MUX2x1_1bit(out, in1, in0, s0);
  30.  
  31. input in1, in0, s0;
  32. output out;
  33.  
  34. wire ld0m0, ld0m1;
  35. wire am0, am1;
  36.  
  37. LineDecoder_1x2 ld0(.m0(ld0m0), .m1(ld0m1), .i0(s0));
  38.  
  39. and and_inst0(am0, ld0m0, in0);
  40.  
  41. and and_inst1(am1, ld0m1, in1);
  42. or or_inst0(out, am0, am1);
  43.  
  44.  
  45. endmodule;
  46.  
  47. module MUX2x1_4bit(out, in0, in1, s0);
  48. input [3:0] in0, in1;
  49. input s0;
  50. output [3:0] out;
  51.  
  52. MUX2x1_1bit mx2x1_1b_0 (.out(out[0]), .in1(in1[0]), .in0(in0[0]), .s0(s0));
  53. MUX2x1_1bit mx2x1_1b_1 (.out(out[1]), .in1(in1[1]), .in0(in0[1]), .s0(s0));
  54. MUX2x1_1bit mx2x1_1b_2 (.out(out[2]), .in1(in1[2]), .in0(in0[2]), .s0(s0));
  55. MUX2x1_1bit mx2x1_1b_3 (.out(out[3]), .in1(in1[3]), .in0(in0[3]), .s0(s0));
  56.  
  57.  
  58. endmodule;
  59.  
  60. module MUX4x1_1bit(out, in3, in2, in1, in0, s1, s0);
  61. input in3, in2, in1, in0, s1, s0;
  62. output out;
  63.  
  64. wire ldm0, ldm1, ldm2, ldm3;
  65. wire am0, am1, am2, am3;
  66. LineDecoder_2x4 ld2x4_inst0(.m0(ldm0), .m1(ldm1), .m2(ldm2), .m3(ldm3), .i0(s0), .i1(s1));
  67.  
  68. and and_inst0(am0,ldm0,in0);
  69. and and_inst1(am1,ldm1,in1);
  70. and and_inst2(am2,ldm2,in2);
  71. and and_inst3(am3,ldm3,in3);
  72.  
  73. or or_inst0(out, am0, am1, am2, am3);
  74. endmodule;
  75.  
  76. module MUX4x1_4bit(out, in3, in2, in1, in0, s1, s0);
  77. input [3:0] in3, in2, in1, in0;
  78. input s1, s0;
  79. output [3:0] out;
  80.  
  81. MUX4x1_1bit mx4x1_0(.out(out[0]), .in3(in3[0]),.in2(in2[0]),.in1(in1[0]),.in0(in0[0]),.s1(s1), .s0(s0));
  82.  
  83. MUX4x1_1bit mx4x1_1(.out(out[1]), .in3(in3[1]),.in2(in2[1]),.in1(in1[1]),.in0(in0[1]),.s1(s1), .s0(s0));
  84.  
  85. MUX4x1_1bit mx4x1_2(.out(out[2]), .in3(in3[2]),.in2(in2[2]),.in1(in1[2]),.in0(in0[2]),.s1(s1), .s0(s0));
  86.  
  87. MUX4x1_1bit mx4x1_3(.out(out[3]), .in3(in3[3]),.in2(in2[3]),.in1(in1[3]),.in0(in0[3]),.s1(s1), .s0(s0));
  88.  
  89.  
  90. endmodule;
  91.  
  92. module LeftBarrelShifter_4bit(out, in, shamt);
  93. input [3:0] in;
  94. input [1:0] shamt;
  95. output [3:0] out;
  96. /*
  97. wire [3:0] stage1;
  98. MUX2x1_1bit mx2x1_lb_00(.out(stage1[0]), .in1(1'b0), .in0(in[0]), .s0(shamt[0]));
  99. MUX2x1_1bit mx2x1_lb_01(.out(stage1[1]), .in1(in[1]), .in0(in[0]), .s0(shamt[0]));
  100. MUX2x1_1bit mx2x1_lb_02(.out(stage1[2]), .in1(in[2]), .in0(in[0]), .s0(shamt[0]));
  101. MUX2x1_1bit mx2x1_lb_03(.out(stage1[3]), .in1(in[3]), .in0(in[0]), .s0(shamt[0]));
  102.  
  103. */
  104.  
  105. endmodule;
  106.  
  107. module RightBarrelShifter_4bit(out, in, shamt);
  108. input [3:0] in;
  109. input [1:0] shamt;
  110. output [3:0] out;
  111.  
  112.  
  113. endmodule;
  114.  
  115. module BarrelShifter_4bit(out, in, shamt, LnR);
  116. input [3:0] in;
  117. input [1:0] shamt;
  118. input LnR;
  119. output [3:0] out;
  120.  
  121.  
  122. endmodule;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement