Advertisement
Andrei_M

BCD_ADDER with param k = 3, array inst.

Nov 19th, 2019
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module bcd_adder #(parameter k = 3)
  2.   (
  3.   input [4*k - 1:0] x, y,
  4.   input ci,
  5.   output [4*k - 1:0] z,
  6.   output co
  7.   );
  8.  
  9.   wire [k-1:0] cip, cop;
  10.  
  11.   bcd_add tadd[k - 1:0](
  12.   .x(x),
  13.   .y(y),
  14.   .ci(cip),
  15.   .z(z),
  16.   .co(cop)
  17.   );
  18.  
  19.   assign cip[0] = ci;
  20.  
  21.   assign cip[k-1:1] = cop[k-2:0];
  22.   assign co = cop[k-1];
  23.  
  24. endmodule
  25.  
  26.  
  27. module bcd_adder_tb
  28.   (
  29.   output reg [11:0] x, y,
  30.   output reg ci,
  31.   output [11:0] z,
  32.   output co
  33.   );
  34.  
  35.   bcd_adder #(.k(3))
  36.   test
  37.   (
  38.   .x(x),
  39.   .y(y),
  40.   .ci(ci),
  41.   .z(z),
  42.   .co(co)
  43.   );
  44.  
  45.   integer i, j, ct = 0;
  46.    
  47. initial begin
  48.   for(i = 0; i < 4096; i = i+1)
  49.     if(ct == 10)
  50.       begin
  51.         i = i+5;
  52.         ct = 0;
  53.       end
  54.     else
  55.       begin
  56.         #100 ct = ct + 1;
  57.         $display("i = %h",i);
  58.       end
  59.   end
  60. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement