Advertisement
teleias

Verilog Datapath

May 6th, 2015
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module dataPath(ia, ib, ic, id, m_, st, rst, total, done, error);
  2. input [7:0] ia;
  3. input [7:0] ib;
  4. input [7:0] ic;
  5. input [7:0] id;
  6. input [0:0] m_;
  7.  
  8. reg [3:0] d = 0;
  9. wire [3:0] q;
  10. input [0:0] st;
  11. input [0:0] rst;
  12. reg [0:0] clk = 0;
  13.  
  14.  
  15. reg [0:0] m = 0;
  16. reg [7:0] a = 0;
  17. reg [7:0] b = 0;
  18. wire [7:0] s;
  19. wire [7:0] c;
  20. wire [0:0] ovf;
  21. wrongEightCLA _cla(m, 0, a, b, s, c, ovf);
  22.  
  23. output reg [0:0] done = 0;
  24. output reg [0:0] error = 0;
  25. output reg [7:0] total = 0;
  26. ff ff1(d, clk, rst, q);
  27.     always
  28.         #1 clk = ~clk;
  29.     always @ (st)
  30.     begin
  31.         assign d = 0;
  32.         m <= 0;
  33.         a <= 0;
  34.         b <= 0;
  35.         total <= 0;
  36.         done <= 0;
  37.     end
  38.     always @ (rst)
  39.     begin
  40.         error <= 0;
  41.     end
  42.     always
  43.     begin
  44.         #2
  45.         //$display("%d",ovf);
  46.         //if(ovf)
  47.         //  assign error = 1;
  48.  
  49.         if(!error & !done)
  50.         begin
  51.             case (q)
  52.             0:
  53.             begin
  54.                 a <= s;
  55.                 b <= ia;
  56.                 assign d = q+1;
  57.             end
  58.             1:
  59.             begin
  60.                 a <= s;
  61.                 b <= ib;
  62.                 assign d = q+1;
  63.             end
  64.             2:
  65.             begin
  66.                 a <= s;
  67.                 b <= ic;
  68.                 assign d = q+1;
  69.             end
  70.             3:
  71.             begin
  72.                 m <= m_;
  73.                 a <= s;
  74.                 b <= id;
  75.                 assign d = q+1;
  76.             end
  77.             default:
  78.             begin
  79.                 total <= s;
  80.                 done <= 1;
  81.             end
  82.             endcase
  83.         end
  84.     end
  85.  
  86. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement