Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. module dec_2s (
  2. input [1:0] s,
  3. input e,
  4. output reg[3:0] o
  5. );
  6. always @ (*) begin
  7. o=4'd0;
  8. if (e) o[s]=1'd1;
  9. end
  10. endmodule
  11.  
  12. module rgst# (
  13. parameter w=8
  14. )(
  15. input clk,rst_b,ld,clr,
  16. input [w-1:0] d,
  17. output reg [w-1:0] q
  18. );
  19.  
  20. always @ (posedge clk ,negedge rst_b)
  21. if (!rst_b) q<=1'd0;
  22. else if (clr) q<=1'd0;
  23. else if (ld) q<=d;
  24.  
  25. endmodule
  26. module reg_f1 (
  27. input clk,rst_b,wr_e,
  28. input [1:0] wr_addr,
  29. input [6:0] wr_data,
  30. input [1:0] rd_addr,
  31. output [6:0] rd_data
  32. );
  33. wire [3:0] a;
  34. wire [6:0] q0,q1,q2,q3;
  35.  
  36. dec_2s i1 (
  37. .s(wr_adr),
  38. .e(wr_e),
  39. .o(a)
  40. );
  41. rgst #(.w(7)) i2 (
  42. .clk(clk),
  43. .rst_b(rst_b),
  44. .clr(1'd0),
  45. .ld(a[0]),
  46. .d(wr_data),
  47. .q(q0)
  48. );
  49.  
  50. mux_2s #(.w(7)) i6 (
  51. .s(rd_addr),
  52. .do(qo),
  53. .d1(q1),
  54. .d2(q2),
  55. .d3(q3),
  56. .o(rd_data)
  57. );
  58.  
  59. endmodule
  60. /////////////////////////////////////////////
  61.  
  62.  
  63. module mux_2s # (
  64. parameter w=8
  65. )(
  66. input[1:0] s,
  67. input[w-1:0] d0,d1,d2,d3,
  68. output reg [w-1:0] o
  69. );
  70.  
  71. always @(*)
  72. if(s==2'd3) o=d3;
  73. else if (s== 2'd2) o=d2;
  74. else if (s==2'd1) o=d1;
  75. else o=d0;
  76. endmodule
  77. module mux_2s_tb (
  78. output reg[1:0] s,d0,d1,d2,d3,
  79. output [1:0] o
  80. );
  81.  
  82. mux_2s #(.w(2)) cut (
  83. .d0(d0) ,
  84. .d1(d1) ,
  85. .d2(d2) ,
  86. .d3(d3) ,
  87. .s(s),
  88. .o(o)
  89. );
  90.  
  91.  
  92. integer i;
  93. initial begin
  94.  
  95. {s,d0,d1,d2,d3}=10'd0;
  96. for (i=1;i<1024;i=i+1)
  97. #100 {s,d0,d1,d2,d3} =i[9:0];
  98.  
  99. end
  100. endmodule;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement