Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. `timescale 1ns/1ps
  2. module t_controller();
  3.     reg [5:0] op, funct; reg zero;
  4.     wire memtoreg, memwrite, pcsrc, alusrc, regdst,regwrite, jump;
  5.     wire [2:0] alucontrol;
  6.    
  7.     controller dut( op, funct, zero, memtoreg, memwrite,
  8.                     pcsrc, alusrc, regdst, regwrite, jump, alucontrol);
  9.     integer i;  reg [5:0] funct_codes [4:0];
  10.    
  11.     initial begin
  12.         funct_codes[0] = 6'b100000;
  13.         funct_codes[1] = 6'b100010;
  14.         funct_codes[2] = 6'b100100;
  15.         funct_codes[3] = 6'b100101;
  16.         funct_codes[4] = 6'b101010;
  17.     end
  18.    
  19.     initial begin
  20.         $display("Testing R-Type instructions");
  21.         op = 0;
  22.         for(i = 0; i < 5; i = i + 1)
  23.         begin
  24.                 funct = funct_codes[i]; #1 showsignals();
  25.         end
  26.         funct = 6'bx;
  27.         op = 6'b100011; #1 $display("lw"); showsignals();
  28.         op = 6'b101011; #1 $display("sw"); showsignals();
  29.         op = 6'b000100; zero = 1; #1 $display("beq (branch taken)"); showsignals();
  30.                         zero = 0; #1 $display("beq (branch NOT taken)"); showsignals();
  31.         op = 6'b001000; #1 $display("addi"); showsignals();
  32.         op = 6'b000010; #1 $display("j"); showsignals();
  33.         $display("end simulation!"); $finish;
  34.     end
  35.     task showsignals; begin
  36.     $display("%b", {memtoreg, memwrite, pcsrc, alusrc, regdst, regwrite, jump, alucontrol});
  37.     end endtask
  38. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement