OpenCores
URL https://opencores.org/ocsvn/fpga-cf/fpga-cf/trunk

Subversion Repositories fpga-cf

[/] [fpga-cf/] [trunk/] [hdl/] [PATLPP/] [microcodelogic/] [microcodelogic_tb.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 peteralieb
// Microcode logic testbench
2
// Author: Peter Lieber
3
//
4
`timescale 1ns / 100ps
5
 
6
module microcodelogic_tb;
7
 
8
// Input stimulus:
9
reg     clk;
10
reg     rst;
11
reg     sof_in;
12
reg     eof_in;
13
reg     src_rdy_in;
14
reg     dst_rdy_out;
15
reg     comp_res;
16
 
17
// Output connections:
18
wire    dst_rdy_in;
19
wire    sof_out;
20
wire    eof_out;
21
wire    src_rdy_out;
22
wire    comp_mux_a_s;
23
wire    comp_mux_b_s;
24
wire    [15:0]   inst_constant;
25
wire    sr1_in_en;
26
wire    sr2_in_en;
27
wire    sr1_out_en;
28
wire    sr2_out_en;
29
wire    [3:0]    reg_addr;
30
wire    reg_wen_high;
31
wire    reg_wen_low;
32
wire    [2:0]    mux_data_out_s;
33
 
34
 
35
//Instantiate the DUT (device under test):
36
microcodelogic DUT (
37
        // Inputs:
38
        .clk ( clk ),   // Clock
39
        .rst ( rst ),   // Reset
40
        .sof_in ( sof_in ),     // Input Stream Start of Frame
41
        .eof_in ( eof_in ),     // Input Stream End of Frame
42
        .src_rdy_in ( src_rdy_in ),     // Input Stream Source Ready
43
        .dst_rdy_out ( dst_rdy_out ),   // Output Stream Destination Ready
44
        .comp_res ( comp_res ), // Comparator Result
45
 
46
        // Outputs:
47
        .dst_rdy_in ( dst_rdy_in ),     // Input Stream Destination Ready
48
        .sof_out ( sof_out ),   // Output Stream Start of Frame
49
        .eof_out ( eof_out ),   // Output Stream End of Frame
50
        .src_rdy_out ( src_rdy_out ),   // Output Stream Source Ready
51
        .comp_mux_a_s ( comp_mux_a_s ), // Comparator Mux A Select
52
        .comp_mux_b_s ( comp_mux_b_s ), // Comparator Mux B Select
53
        .inst_constant ( inst_constant ),       // Instruction Constant
54
        .sr1_in_en ( sr1_in_en ),       // Shift Register 1 Input Enable
55
        .sr2_in_en ( sr2_in_en ),       // Shift Register 2 Input Enable
56
        .sr1_out_en ( sr1_out_en ),     // Shift Register 1 Output Enable
57
        .sr2_out_en ( sr2_out_en ),     // Shift Register 2 Output Enable
58
        .reg_addr ( reg_addr ), // Register File Address
59
        .reg_wen_high ( reg_wen_high ), // Register File High Byte Enable
60
        .reg_wen_low ( reg_wen_low ),   // Register File Low Byte Enable
61
        .mux_data_out_s ( mux_data_out_s )      // Data Output Mux Select
62
);
63
 
64
        // Specify input stimulus:
65
 
66
initial begin
67
 
68
        // Initial values for input stimulus:
69
        clk = 1'b0;
70
        rst = 1'b1;
71
        sof_in = 1'b0;
72
        eof_in = 1'b0;
73
        src_rdy_in = 1'b0;
74
        dst_rdy_out = 1'b0;
75
        comp_res = 1'b0;
76
 
77
        @(posedge clk);
78
        rst = 0;
79
        @(posedge clk);
80
        @(posedge clk);
81
        dst_rdy_out = 1;
82
        @(posedge clk);
83
        @(posedge clk);
84
        @(posedge clk);
85
        src_rdy_in = 1;
86
        dst_rdy_out = 0;
87
        @(posedge clk);
88
        @(posedge clk);
89
        @(posedge clk);
90
        @(posedge clk);
91
        src_rdy_in = 0;
92
        @(posedge clk);
93
        @(posedge clk);
94
        src_rdy_in = 1;
95
        @(posedge clk);
96
        @(posedge clk);
97
        @(posedge clk);
98
        @(posedge clk);
99
        @(posedge clk);
100
        src_rdy_in = 0;
101
        @(posedge clk);
102
        @(posedge clk);
103
        @(posedge clk);
104
        @(posedge clk);
105
        @(posedge clk);
106
        @(posedge clk);
107
        @(posedge clk);
108
        @(posedge clk);
109
 
110
        #10 $stop;
111
end
112
 
113
        // Template for master clock. Uncomment and modify signal name as needed.
114
        // Remember to set the initial value of 'Clock' in the 'initial' block above.
115
always #10 clk = ~clk;
116
 
117
 
118
endmodule
119
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.