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_wb/] [pronoc_jtag_wb.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
 
2
// synthesis translate_off
3
`timescale 1ns / 1ps
4
// synthesis translate_on
5
 
6
module pronoc_jtag_wb #(
7
 
8
    parameter JTAG_CONNECT="XILINX_JTAG_WB",// "ALTERA_JTAG_WB" , "XILINX_JTAG_WB"  
9
    parameter JTAG_INDEX= 0,
10
    parameter JDw =32,// should be a fixed value for all IPs coneccting to JTAG
11
    parameter JAw=32, // should be a fixed value for all IPs coneccting to JTAG
12
    parameter JINDEXw=8,
13
    parameter JSTATUSw=8,
14
    parameter J2WBw = (JTAG_CONNECT== "XILINX_JTAG_WB") ? 1+1+JDw+JAw : 1,
15
    parameter WB2Jw= (JTAG_CONNECT== "XILINX_JTAG_WB") ? 1+JSTATUSw+JINDEXw+1+JDw  : 1,
16
 
17
 
18
    //wishbone port parameters
19
    parameter Dw          =   32,
20
    parameter Aw          =   32,
21
    parameter TAGw          =   3,
22
    parameter SELw          =   4
23
 
24
 
25
)(
26
    clk,
27
    reset,
28
    status_i,
29
 
30
     //wishbone master interface signals
31
    m_sel_o,
32
    m_dat_o,
33
    m_addr_o,
34
    m_cti_o,
35
    m_stb_o,
36
    m_cyc_o,
37
    m_we_o,
38
    m_dat_i,
39
    m_ack_i,
40
    //jtag interface for xilinx board
41
    jtag_to_wb,
42
    wb_to_jtag
43
 
44
);
45
 
46
    //IO declaration
47
    input reset,clk;
48
    input [JSTATUSw-1 :   0]  status_i;
49
 
50
    //wishbone master interface signals
51
    output  [SELw-1          :   0] m_sel_o;
52
    output  [Dw-1            :   0] m_dat_o;
53
    output  [Aw-1            :   0] m_addr_o;
54
    output  [TAGw-1          :   0] m_cti_o;
55
    output                          m_stb_o;
56
    output                          m_cyc_o;
57
    output                          m_we_o;
58
    input   [Dw-1           :  0]   m_dat_i;
59
    input                           m_ack_i;
60
 
61
   //jtag interface
62
    input  [J2WBw-1 : 0] jtag_to_wb;
63
    output [WB2Jw-1: 0] wb_to_jtag;
64
 
65
 
66
    generate
67
    /* verilator lint_off WIDTH */
68
    if(JTAG_CONNECT == "ALTERA_JTAG_WB") begin: altera_jwb
69
    /* verilator lint_on WIDTH */
70
 
71
        vjtag_wb #(
72
            .VJTAG_INDEX(JTAG_INDEX),
73
            .DW(JDw),
74
            .AW(JAw),
75
            .SW(JSTATUSw),
76
 
77
            //wishbone port parameters
78
            .M_Aw(Aw),
79
            .TAGw(TAGw)
80
        )
81
        vjtag_inst
82
        (
83
            .clk(clk),
84
            .reset(reset),
85
            .status_i(status_i),
86
 
87
             //wishbone master interface signals
88
            .m_sel_o(m_sel_o),
89
            .m_dat_o(m_dat_o),
90
            .m_addr_o(m_addr_o),
91
            .m_cti_o(m_cti_o),
92
            .m_stb_o(m_stb_o),
93
            .m_cyc_o(m_cyc_o),
94
            .m_we_o(m_we_o),
95
            .m_dat_i(m_dat_i),
96
            .m_ack_i(m_ack_i)
97
 
98
        );
99
 
100
           assign wb_to_jtag[0] = clk;
101
 
102
    end//altera_jwb
103
 
104
 
105
 
106
/* verilator lint_off WIDTH */
107
    else if(JTAG_CONNECT == "XILINX_JTAG_WB")begin: xilinx_jwb
108
/* verilator lint_on WIDTH */
109
 
110
 
111
        wire [JDw-1 : 0] wb_to_jtag_dat;
112
        wire [JDw-1 : 0] jtag_to_wb_dat;
113
        wire [JSTATUSw-1 : 0] wb_to_jtag_status;
114
        wire [JINDEXw-1 : 0] wb_to_jtag_index;
115
        wire [JAw-1 : 0] jtag_to_wb_addr;
116
        wire jtag_to_wb_stb;
117
        wire jtag_to_wb_we;
118
        wire wb_to_jtag_ack;
119
 
120
        assign wb_to_jtag_status = status_i;
121
        assign wb_to_jtag_index = JTAG_INDEX;
122
        assign m_dat_o = jtag_to_wb_dat [Dw-1 :0];
123
        assign m_addr_o = jtag_to_wb_addr[Aw-1:0];
124
        assign m_stb_o = jtag_to_wb_stb;
125
        assign m_cyc_o = jtag_to_wb_stb;
126
        assign m_sel_o = 4'b1111;
127
        assign m_cti_o = 3'b000;
128
        assign m_we_o = jtag_to_wb_we;
129
 
130
        assign wb_to_jtag_dat = m_dat_i;
131
        assign wb_to_jtag_ack = m_ack_i;
132
 
133
 
134
        assign wb_to_jtag = {wb_to_jtag_status,wb_to_jtag_ack,wb_to_jtag_dat,wb_to_jtag_index,clk};
135
        assign {jtag_to_wb_addr,jtag_to_wb_stb,jtag_to_wb_we,jtag_to_wb_dat} = jtag_to_wb;
136
 
137
 
138
 
139
 
140
    end else begin
141
        assign wb_to_jtag[0] = clk;
142
    end
143
 
144
    endgenerate
145
 
146
 
147
endmodule

powered by: WebSVN 2.1.0

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