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/] [perl_gui/] [lib/] [verilog/] [xilinx_test_mp.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
 
2
/**************************************************************************
3
**      WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
4
**      OVERWRITTEN AND LOST. Rename this file if you wish to do any modification.
5
****************************************************************************/
6
 
7
 
8
/**********************************************************************
9
**      File: xilinx_test_mp.v
10
**
11
**      Copyright (C) 2014-2019  Alireza Monemi
12
**
13
**      This file is part of ProNoC 1.9.1
14
**
15
**      ProNoC ( stands for Prototype Network-on-chip)  is free software:
16
**      you can redistribute it and/or modify it under the terms of the GNU
17
**      Lesser General Public License as published by the Free Software Foundation,
18
**      either version 2 of the License, or (at your option) any later version.
19
**
20
**      ProNoC is distributed in the hope that it will be useful, but WITHOUT
21
**      ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
22
**      or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
23
**      Public License for more details.
24
**
25
**      You should have received a copy of the GNU Lesser General Public
26
**      License along with ProNoC. If not, see <http:**www.gnu.org/licenses/>.
27
******************************************************************************/
28
 
29
module soc #(
30
        parameter       CORE_ID=0,
31
        parameter       SW_LOC="target_dir/sw1"
32
)(
33
        MP_T0_led_port_o,
34
        MP_T0_ram_jtag_to_wb,
35
        MP_T0_ram_wb_to_jtag,
36
        MP_T1_led_port_o,
37
        MP_T1_ram_jtag_to_wb,
38
        MP_T1_ram_wb_to_jtag,
39
        MP_T2_led_port_o,
40
        MP_T2_ram_jtag_to_wb,
41
        MP_T2_ram_wb_to_jtag,
42
        MP_T3_led_port_o,
43
        MP_T3_ram_jtag_to_wb,
44
        MP_T3_ram_wb_to_jtag,
45
        MP_enable0,
46
        pll_clk_in,
47
        pll_reset_in
48
);
49
 
50
        function integer log2;
51
                input integer number; begin
52
                log2=0;
53
                while(2**log2<number) begin
54
                                log2=log2+1;
55
                        end
56
                        end
57
        endfunction // log2 
58
 
59
        function   [15:0]i2s;
60
          input   integer c;  integer i;  integer tmp; begin
61
              tmp =0;
62
              for (i=0; i<2; i=i+1) begin
63
              tmp =  tmp +    (((c % 10)   + 48) << i*8);
64
                  c       =   c/10;
65
              end
66
              i2s = tmp[15:0];
67
          end
68
     endfunction //i2s
69
        localparam      MP_T3_cpu_FEATURE_DATACACHE="ENABLED";
70
        localparam      MP_T3_cpu_FEATURE_DMMU="ENABLED";
71
        localparam      MP_T3_cpu_FEATURE_IMMU="ENABLED";
72
        localparam      MP_T3_cpu_FEATURE_INSTRUCTIONCACHE="ENABLED";
73
        localparam      MP_T3_cpu_IRQ_NUM=32;
74
        localparam      MP_T3_cpu_OPTION_DCACHE_SNOOP="ENABLED";
75
        localparam      MP_T3_cpu_OPTION_OPERAND_WIDTH=32;
76
        localparam      MP_T3_led_PORT_WIDTH=   1;
77
        localparam      MP_T3_ram_Aw=14;
78
        localparam      MP_T3_ram_Dw=32;
79
        localparam      MP_T3_ram_FPGA_VENDOR="XILINX";
80
        localparam      MP_T3_ram_J2WBw=(MP_T3_ram_JTAG_CONNECT== "XILINX_JTAG_WB") ? 1+1+MP_T3_ram_JDw+MP_T3_ram_JAw : 1;
81
        localparam      MP_T3_ram_JAw=32;
82
        localparam      MP_T3_ram_JDw=MP_T3_ram_Dw;
83
        localparam      MP_T3_ram_JINDEXw=8;
84
        localparam      MP_T3_ram_JSTATUSw=8;
85
        localparam      MP_T3_ram_JTAG_CONNECT="XILINX_JTAG_WB";
86
        localparam      MP_T3_ram_WB2Jw=(MP_T3_ram_JTAG_CONNECT== "XILINX_JTAG_WB") ? 1+MP_T3_ram_JSTATUSw+MP_T3_ram_JINDEXw+1+MP_T3_ram_JDw  : 1;
87
        localparam      MP_T3_timer_PRESCALER_WIDTH=8;
88
 
89
        localparam      pll_CLKOUT_NUM=1;
90
        localparam      pll_BANDWIDTH="OPTIMIZED";
91
        localparam      pll_CLKFBOUT_MULT=5;
92
        localparam      pll_CLKFBOUT_PHASE=0.0;
93
        localparam      pll_CLKIN1_PERIOD=0.0;
94
        localparam      pll_CLKOUT0_DIVIDE=1;
95
        localparam      pll_CLKOUT1_DIVIDE=1;
96
        localparam      pll_CLKOUT2_DIVIDE=1;
97
        localparam      pll_CLKOUT3_DIVIDE=1;
98
        localparam      pll_CLKOUT4_DIVIDE=1;
99
        localparam      pll_CLKOUT5_DIVIDE=1;
100
        localparam      pll_CLKOUT0_DUTY_CYCLE=0.5;
101
        localparam      pll_CLKOUT1_DUTY_CYCLE=0.5;
102
        localparam      pll_CLKOUT2_DUTY_CYCLE=0.5;
103
        localparam      pll_CLKOUT3_DUTY_CYCLE=0.5;
104
        localparam      pll_CLKOUT4_DUTY_CYCLE=0.5;
105
        localparam      pll_CLKOUT5_DUTY_CYCLE=0.5;
106
        localparam      pll_CLKOUT0_PHASE=0.0;
107
        localparam      pll_CLKOUT1_PHASE=0.0;
108
        localparam      pll_CLKOUT2_PHASE=0.0;
109
        localparam      pll_CLKOUT3_PHASE=0.0;
110
        localparam      pll_CLKOUT4_PHASE=0.0;
111
        localparam      pll_CLKOUT5_PHASE=0.0;
112
        localparam      pll_DIVCLK_DIVIDE=1;
113
        localparam      pll_REF_JITTER1=0.0;
114
        localparam      pll_STARTUP_WAIT="FALSE";
115
 
116
 
117
//Wishbone slave base address based on instance name
118
 
119
 
120
//Wishbone slave base address based on module name. 
121
 
122
        output   [ MP_T0_led_PORT_WIDTH-1     :   0    ] MP_T0_led_port_o;
123
        input    [ MP_T0_ram_J2WBw-1 : 0    ] MP_T0_ram_jtag_to_wb;
124
        output   [ MP_T0_ram_WB2Jw-1 : 0    ] MP_T0_ram_wb_to_jtag;
125
        output   [ MP_T1_led_PORT_WIDTH-1     :   0    ] MP_T1_led_port_o;
126
        input    [ MP_T1_ram_J2WBw-1 : 0    ] MP_T1_ram_jtag_to_wb;
127
        output   [ MP_T1_ram_WB2Jw-1 : 0    ] MP_T1_ram_wb_to_jtag;
128
        output   [ MP_T2_led_PORT_WIDTH-1     :   0    ] MP_T2_led_port_o;
129
        input    [ MP_T2_ram_J2WBw-1 : 0    ] MP_T2_ram_jtag_to_wb;
130
        output   [ MP_T2_ram_WB2Jw-1 : 0    ] MP_T2_ram_wb_to_jtag;
131
        output   [ MP_T3_led_PORT_WIDTH-1     :   0    ] MP_T3_led_port_o;
132
        input    [ MP_T3_ram_J2WBw-1 : 0    ] MP_T3_ram_jtag_to_wb;
133
        output   [ MP_T3_ram_WB2Jw-1 : 0    ] MP_T3_ram_wb_to_jtag;
134
        input                   MP_enable0;
135
 
136
        input                   pll_clk_in;
137
        input                   pll_reset_in;
138
 
139
        wire                     MP_plug_clk_1_clk_i;
140
        wire                     MP_plug_clk_0_clk_i;
141
        wire                     MP_plug_reset_0_reset_i;
142
 
143
        wire    [ pll_CLKOUT_NUM-1: 0 ] pll_socket_clk_array_clk_o;
144
        wire                     pll_socket_clk_0_clk_o;
145
        wire                     pll_socket_reset_0_reset_o;
146
 
147
 MP #(
148
                .T3_cpu_FEATURE_DATACACHE(MP_T3_cpu_FEATURE_DATACACHE),
149
                .T3_cpu_FEATURE_DMMU(MP_T3_cpu_FEATURE_DMMU),
150
                .T3_cpu_FEATURE_IMMU(MP_T3_cpu_FEATURE_IMMU),
151
                .T3_cpu_FEATURE_INSTRUCTIONCACHE(MP_T3_cpu_FEATURE_INSTRUCTIONCACHE),
152
                .T3_cpu_IRQ_NUM(MP_T3_cpu_IRQ_NUM),
153
                .T3_cpu_OPTION_DCACHE_SNOOP(MP_T3_cpu_OPTION_DCACHE_SNOOP),
154
                .T3_cpu_OPTION_OPERAND_WIDTH(MP_T3_cpu_OPTION_OPERAND_WIDTH),
155
                .T3_led_PORT_WIDTH(MP_T3_led_PORT_WIDTH),
156
                .T3_ram_Aw(MP_T3_ram_Aw),
157
                .T3_ram_Dw(MP_T3_ram_Dw),
158
                .T3_ram_FPGA_VENDOR(MP_T3_ram_FPGA_VENDOR),
159
                .T3_ram_J2WBw(MP_T3_ram_J2WBw),
160
                .T3_ram_JAw(MP_T3_ram_JAw),
161
                .T3_ram_JDw(MP_T3_ram_JDw),
162
                .T3_ram_JINDEXw(MP_T3_ram_JINDEXw),
163
                .T3_ram_JSTATUSw(MP_T3_ram_JSTATUSw),
164
                .T3_ram_JTAG_CONNECT(MP_T3_ram_JTAG_CONNECT),
165
                .T3_ram_WB2Jw(MP_T3_ram_WB2Jw),
166
                .T3_timer_PRESCALER_WIDTH(MP_T3_timer_PRESCALER_WIDTH)
167
        )  MP   (
168
                .T0_led_port_o(MP_T0_led_port_o),
169
                .T0_ram_jtag_to_wb(MP_T0_ram_jtag_to_wb),
170
                .T0_ram_wb_to_jtag(MP_T0_ram_wb_to_jtag),
171
                .T1_led_port_o(MP_T1_led_port_o),
172
                .T1_ram_jtag_to_wb(MP_T1_ram_jtag_to_wb),
173
                .T1_ram_wb_to_jtag(MP_T1_ram_wb_to_jtag),
174
                .T2_led_port_o(MP_T2_led_port_o),
175
                .T2_ram_jtag_to_wb(MP_T2_ram_jtag_to_wb),
176
                .T2_ram_wb_to_jtag(MP_T2_ram_wb_to_jtag),
177
                .T3_led_port_o(MP_T3_led_port_o),
178
                .T3_ram_jtag_to_wb(MP_T3_ram_jtag_to_wb),
179
                .T3_ram_wb_to_jtag(MP_T3_ram_wb_to_jtag),
180
                .clk1(MP_plug_clk_1_clk_i),
181
                .enable0(MP_enable0),
182
                .hhh(MP_plug_clk_0_clk_i),
183
                .reset0(MP_plug_reset_0_reset_i)
184
        );
185
 xilinx_pll_base #(
186
                .CLKOUT_NUM(pll_CLKOUT_NUM),
187
                .BANDWIDTH(pll_BANDWIDTH),
188
                .CLKFBOUT_MULT(pll_CLKFBOUT_MULT),
189
                .CLKFBOUT_PHASE(pll_CLKFBOUT_PHASE),
190
                .CLKIN1_PERIOD(pll_CLKIN1_PERIOD),
191
                .CLKOUT0_DIVIDE(pll_CLKOUT0_DIVIDE),
192
                .CLKOUT1_DIVIDE(pll_CLKOUT1_DIVIDE),
193
                .CLKOUT2_DIVIDE(pll_CLKOUT2_DIVIDE),
194
                .CLKOUT3_DIVIDE(pll_CLKOUT3_DIVIDE),
195
                .CLKOUT4_DIVIDE(pll_CLKOUT4_DIVIDE),
196
                .CLKOUT5_DIVIDE(pll_CLKOUT5_DIVIDE),
197
                .CLKOUT0_DUTY_CYCLE(pll_CLKOUT0_DUTY_CYCLE),
198
                .CLKOUT1_DUTY_CYCLE(pll_CLKOUT1_DUTY_CYCLE),
199
                .CLKOUT2_DUTY_CYCLE(pll_CLKOUT2_DUTY_CYCLE),
200
                .CLKOUT3_DUTY_CYCLE(pll_CLKOUT3_DUTY_CYCLE),
201
                .CLKOUT4_DUTY_CYCLE(pll_CLKOUT4_DUTY_CYCLE),
202
                .CLKOUT5_DUTY_CYCLE(pll_CLKOUT5_DUTY_CYCLE),
203
                .CLKOUT0_PHASE(pll_CLKOUT0_PHASE),
204
                .CLKOUT1_PHASE(pll_CLKOUT1_PHASE),
205
                .CLKOUT2_PHASE(pll_CLKOUT2_PHASE),
206
                .CLKOUT3_PHASE(pll_CLKOUT3_PHASE),
207
                .CLKOUT4_PHASE(pll_CLKOUT4_PHASE),
208
                .CLKOUT5_PHASE(pll_CLKOUT5_PHASE),
209
                .DIVCLK_DIVIDE(pll_DIVCLK_DIVIDE),
210
                .REF_JITTER1(pll_REF_JITTER1),
211
                .STARTUP_WAIT(pll_STARTUP_WAIT)
212
        )  pll  (
213
                .clk_in(pll_clk_in),
214
                .clk_out(pll_socket_clk_array_clk_o),
215
                .reset_in(pll_reset_in),
216
                .reset_out(pll_socket_reset_0_reset_o)
217
        );
218
 
219
        assign  MP_plug_clk_1_clk_i = pll_socket_clk_0_clk_o;
220
        assign  MP_plug_clk_0_clk_i = pll_socket_clk_0_clk_o;
221
        assign  MP_plug_reset_0_reset_i = pll_socket_reset_0_reset_o;
222
 
223
 
224
 
225
        assign pll_socket_clk_0_clk_o = pll_socket_clk_array_clk_o;
226
 
227
 
228
//Wishbone slave address match
229
 endmodule
230
 

powered by: WebSVN 2.1.0

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