OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [rtl/] [src_peripheral/] [jtag/] [jtag_simulation/] [jtag_wb_test/] [verilog/] [BSCANE2_sim.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
// synthesis translate_off
2
`timescale 1ns / 1ps
3
// synthesis translate_on
4
 
5
module BSCANE2_sim # (
6
parameter   JTAG_CHAIN  =4
7
)(
8
     output CAPTURE, // 1-bit output: CAPTURE output from TAP controller.
9
     output DRCK, // 1-bit output: Gated TCK output. When SEL is asserted, DRCK toggles when CAPTURE or SHIFT are asserted.
10
     output RESET, // 1-bit output: Reset output for TAP controller.
11
     output RUNTEST, // 1-bit output: Output asserted when TAP controller is in Run Test/Idle state.
12
     output SEL, // 1-bit output: USER instruction active output.
13
     output SHIFT, // 1-bit output: SHIFT output from TAP controller.
14
     output TCK, // 1-bit output: Test Clock output. Fabric connection to TAP Clock pin.
15
     output TDI, // 1-bit output: Test Data Input (TDI) output from TAP controller.
16
     output TMS, // 1-bit output: Test Mode Select output. Fabric connection to TAP.
17
     output UPDATE, // 1-bit output: UPDATE output from TAP controller
18
     input  TDO // 1-bit input: Test Data Output (TDO) input for USER function.
19
);
20
 
21
 
22
    wire    [2:0]  ir_out;
23
    wire    tdo;
24
    wire    [2:0]  ir_in;
25
    wire    tck;
26
    wire    tdi;
27
    wire    virtual_state_cdr;
28
    wire    virtual_state_cir;
29
    wire    virtual_state_e1dr;
30
    wire    virtual_state_e2dr;
31
    wire    virtual_state_pdr;
32
    wire    virtual_state_sdr;
33
    wire    virtual_state_udr;
34
    wire    virtual_state_uir;
35
 
36
 
37
    assign CAPTURE = virtual_state_cdr;
38
    assign DRCK = tck & (SEL & (CAPTURE | SHIFT)); // I am not using it. So I am not sure if the definition is correct
39
    assign RESET=1'b0;
40
    assign RUNTEST = 1'b0; // not used
41
    assign SEL = virtual_state_cdr | virtual_state_sdr | virtual_state_udr;
42
    assign SHIFT=virtual_state_sdr;
43
    assign TCK = tck;
44
    assign TDI = tdi;
45
    assign TMS=1'b0;//not used by me
46
    assign UPDATE = virtual_state_udr;
47
    assign tdo = TDO;
48
 
49
    assign ir_out =ir_in;
50
    vjtag_sim #(
51
 
52
        .VJTAG_INDEX(0)
53
    )
54
    the_vjtag_sim
55
    (
56
        .ir_out(ir_out),
57
        .tdo(tdo),
58
        .ir_in(ir_in),
59
        .tck(tck),
60
        .tdi(tdi),
61
        .virtual_state_cdr(virtual_state_cdr),
62
        .virtual_state_cir(virtual_state_cir),
63
        .virtual_state_e1dr(virtual_state_e1dr),
64
        .virtual_state_e2dr(virtual_state_e2dr),
65
        .virtual_state_pdr(virtual_state_pdr),
66
        .virtual_state_sdr(virtual_state_sdr),
67
        .virtual_state_udr(virtual_state_udr),
68
        .virtual_state_uir(virtual_state_uir)
69
    );
70
 
71
 
72
 
73
endmodule
74
 
75
 
76
 
77
module vjtag_sim
78
(
79
        ir_out,
80
        tdo,
81
        ir_in,
82
        tck,
83
        tdi,
84
        virtual_state_cdr,
85
        virtual_state_cir,
86
        virtual_state_e1dr,
87
        virtual_state_e2dr,
88
        virtual_state_pdr,
89
        virtual_state_sdr,
90
        virtual_state_udr,
91
        virtual_state_uir);
92
 
93
        input   [2:0]  ir_out;
94
        input     tdo;
95
        output  [2:0]  ir_in;
96
        output    tck;
97
        output    tdi;
98
        output    virtual_state_cdr;
99
        output    virtual_state_cir;
100
        output    virtual_state_e1dr;
101
        output    virtual_state_e2dr;
102
        output    virtual_state_pdr;
103
        output    virtual_state_sdr;
104
        output    virtual_state_udr;
105
        output    virtual_state_uir;
106
 
107
        wire  sub_wire0;
108
        wire  sub_wire1;
109
        wire [2:0] sub_wire2;
110
        wire  sub_wire3;
111
        wire  sub_wire4;
112
        wire  sub_wire5;
113
        wire  sub_wire6;
114
        wire  sub_wire7;
115
        wire  sub_wire8;
116
        wire  sub_wire9;
117
        wire  sub_wire10;
118
        wire  virtual_state_cir = sub_wire0;
119
        wire  virtual_state_pdr = sub_wire1;
120
        wire [2:0] ir_in = sub_wire2[2:0];
121
        wire  tdi = sub_wire3;
122
        wire  virtual_state_udr = sub_wire4;
123
        wire  tck = sub_wire5;
124
        wire  virtual_state_e1dr = sub_wire6;
125
        wire  virtual_state_uir = sub_wire7;
126
        wire  virtual_state_cdr = sub_wire8;
127
        wire  virtual_state_e2dr = sub_wire9;
128
        wire  virtual_state_sdr = sub_wire10;
129
 
130
 
131
        parameter  VJTAG_INDEX=0;
132
 
133
        /*
134
    parameter SIM_ACTION = "((0,1,7,3),(0,2,ff,20),(0,1,6,3),(0,2,ffffffff,20),(0,2,1,20),(0,2,2,20),(0,2,3,20),(0,2,4,20))",
135
    parameter SIM_N_SCAN=8,
136
    parameter SIM_SIM_LENGTH=198
137
        */
138
    `define INCLUDE_SIM_INPUT
139
    `include "jtag_sim_input.v"
140
 
141
        sld_virtual_jtag        sld_virtual_jtag_component (
142
                                .ir_out (ir_out),
143
                                .tdo (tdo),
144
                                .virtual_state_cir (sub_wire0),
145
                                .virtual_state_pdr (sub_wire1),
146
                                .ir_in (sub_wire2),
147
                                .tdi (sub_wire3),
148
                                .virtual_state_udr (sub_wire4),
149
                                .tck (sub_wire5),
150
                                .virtual_state_e1dr (sub_wire6),
151
                                .virtual_state_uir (sub_wire7),
152
                                .virtual_state_cdr (sub_wire8),
153
                                .virtual_state_e2dr (sub_wire9),
154
                                .virtual_state_sdr (sub_wire10)
155
                                // synopsys translate_off
156
                                ,
157
                                .jtag_state_cdr (),
158
                                .jtag_state_cir (),
159
                                .jtag_state_e1dr (),
160
                                .jtag_state_e1ir (),
161
                                .jtag_state_e2dr (),
162
                                .jtag_state_e2ir (),
163
                                .jtag_state_pdr (),
164
                                .jtag_state_pir (),
165
                                .jtag_state_rti (),
166
                                .jtag_state_sdr (),
167
                                .jtag_state_sdrs (),
168
                                .jtag_state_sir (),
169
                                .jtag_state_sirs (),
170
                                .jtag_state_tlr (),
171
                                .jtag_state_udr (),
172
                                .jtag_state_uir (),
173
                                .tms ()
174
                                // synopsys translate_on
175
                                );
176
 
177
 
178
        defparam
179
                sld_virtual_jtag_component.sld_auto_instance_index = "NO",
180
                sld_virtual_jtag_component.sld_instance_index = VJTAG_INDEX,
181
                sld_virtual_jtag_component.sld_ir_width = 3,
182
                sld_virtual_jtag_component.sld_sim_action = SIM_ACTION,
183
                sld_virtual_jtag_component.sld_sim_n_scan = SIM_N_SCAN,
184
                sld_virtual_jtag_component.sld_sim_total_length = SIM_LENGTH;
185
 
186
 
187
endmodule
188
 

powered by: WebSVN 2.1.0

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