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 |
|
|
|