Ex08 マルチサイクルプロセッサの制御2017: CUbench_1.v

File CUbench_1.v, 1.0 KB (added by nakasato, 9 years ago)
Line 
1`timescale 1ns/1ps
2`include "ControlUnit_1.v"
3
4module CUbench;
5
6   reg ck;
7   reg clr;
8   reg [5:0] op;
9   wire      pcwritecond;
10   wire      pcwrite;
11   wire      iord;
12   wire      memread;
13   wire      memwrite;
14   wire      memtoreg;
15   wire      irwrite;
16   wire [1:0] pcsource;
17   wire [1:0] aluop;
18   wire [2:0] alusrcb;
19   wire       alusrca;
20   wire       regwrite;
21   wire       regdst;
22
23   ControlUnit cu(.PCWriteCond(pcwritecond), .PCWrite(pcwrite), .IorD(iord), .MemRead(memread), .MemWrite(memwrite), .MemtoReg(memtoreg), .IRWrite(irwrite), .PCSource(pcsource), .ALUOp(aluop), .ALUSrcB(alusrcb), .ALUSrcA(alusrca), .RegWrite(regwrite), .RegDST(regdst), .Op(op), .CK(ck), .CLR(clr));
24
25   initial
26     begin
27        $dumpfile("CUbench_1.vcd");
28        $dumpvars(0, cu);
29
30        // initialize
31        ck = 1'b0;
32        clr = 1'b1;
33
34        #60
35       
36        // operation = RTYPE(register type)
37        op = 0;
38        clr = 1'b0;
39
40        $display("\noperation = RTYPE");
41
42        // 4 cycles
43        #100
44        #100
45        #100
46        #100
47         
48          clr = 1'b1;
49        #160
50         
51          $finish;
52     end // initial begin
53   
54   always #50 ck = ~ck;
55endmodule // CUbench