OpenCores
URL https://opencores.org/ocsvn/sgmii/sgmii/trunk

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [src/] [mAltGX/] [mAltGXReconfig.v] - Blame information for rev 4

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jefflieu
// megafunction wizard: %ALTGX_RECONFIG%
2
// GENERATION: STANDARD
3
// VERSION: WM1.0
4
// MODULE: alt_c3gxb_reconfig 
5
 
6
// ============================================================
7
// File Name: mAltGXReconfig.v
8
// Megafunction Name(s):
9
//                      alt_c3gxb_reconfig
10
//
11
// Simulation Library Files(s):
12
//                      altera_mf;lpm
13
// ============================================================
14
// ************************************************************
15
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
16
//
17
// 11.0 Build 157 04/27/2011 SJ Full Version
18
// ************************************************************
19
 
20
 
21
//Copyright (C) 1991-2011 Altera Corporation
22
//Your use of Altera Corporation's design tools, logic functions 
23
//and other software and tools, and its AMPP partner logic 
24
//functions, and any output files from any of the foregoing 
25
//(including device programming or simulation files), and any 
26
//associated documentation or information are expressly subject 
27
//to the terms and conditions of the Altera Program License 
28
//Subscription Agreement, Altera MegaCore Function License 
29
//Agreement, or other applicable license agreement, including, 
30
//without limitation, that your use is for the sole purpose of 
31
//programming logic devices manufactured by Altera and sold by 
32
//Altera or its authorized distributors.  Please refer to the 
33
//applicable agreement for further details.
34
 
35
 
36
//alt_c3gxb_reconfig CBX_AUTO_BLACKBOX="ALL" DEVICE_FAMILY="Cyclone IV GX" ENABLE_BUF_CAL="TRUE" NUMBER_OF_CHANNELS=1 NUMBER_OF_RECONFIG_PORTS=1 RECONFIG_FROMGXB_WIDTH=5 RECONFIG_TOGXB_WIDTH=4 busy reconfig_clk reconfig_fromgxb reconfig_togxb
37
//VERSION_BEGIN 11.0 cbx_alt_c3gxb_reconfig 2011:04:27:21:07:19:SJ cbx_alt_cal 2011:04:27:21:07:19:SJ cbx_alt_dprio 2011:04:27:21:07:19:SJ cbx_altsyncram 2011:04:27:21:07:19:SJ cbx_cycloneii 2011:04:27:21:07:19:SJ cbx_lpm_add_sub 2011:04:27:21:07:19:SJ cbx_lpm_compare 2011:04:27:21:07:19:SJ cbx_lpm_counter 2011:04:27:21:07:19:SJ cbx_lpm_decode 2011:04:27:21:07:19:SJ cbx_lpm_mux 2011:04:27:21:07:19:SJ cbx_lpm_shiftreg 2011:04:27:21:07:19:SJ cbx_mgl 2011:04:27:21:11:03:SJ cbx_stratix 2011:04:27:21:07:19:SJ cbx_stratixii 2011:04:27:21:07:19:SJ cbx_stratixiii 2011:04:27:21:07:19:SJ cbx_stratixv 2011:04:27:21:07:19:SJ cbx_util_mgl 2011:04:27:21:07:19:SJ  VERSION_END
38
// synthesis VERILOG_INPUT_VERSION VERILOG_2001
39
// altera message_off 10463
40
 
41
 
42
 
43
//alt_dprio address_width=16 CBX_AUTO_BLACKBOX="ALL" device_family="Cyclone IV GX" quad_address_width=9 address busy datain dataout dpclk dpriodisable dprioin dprioload dprioout quad_address rden reset wren wren_data
44
//VERSION_BEGIN 11.0 cbx_alt_dprio 2011:04:27:21:07:19:SJ cbx_cycloneii 2011:04:27:21:07:19:SJ cbx_lpm_add_sub 2011:04:27:21:07:19:SJ cbx_lpm_compare 2011:04:27:21:07:19:SJ cbx_lpm_counter 2011:04:27:21:07:19:SJ cbx_lpm_decode 2011:04:27:21:07:19:SJ cbx_lpm_shiftreg 2011:04:27:21:07:19:SJ cbx_mgl 2011:04:27:21:11:03:SJ cbx_stratix 2011:04:27:21:07:19:SJ cbx_stratixii 2011:04:27:21:07:19:SJ  VERSION_END
45
 
46
//synthesis_resources = lpm_compare 3 lpm_counter 1 lpm_decode 1 lut 1 reg 102 
47
//synopsys translate_off
48
`timescale 1 ps / 1 ps
49
//synopsys translate_on
50
(* ALTERA_ATTRIBUTE = {"{-to addr_shift_reg[31]} DPRIO_INTERFACE_REG=ON;{-to wr_out_data_shift_reg[31]} DPRIO_INTERFACE_REG=ON;{-to rd_out_data_shift_reg[13]} DPRIO_INTERFACE_REG=ON;{-to in_data_shift_reg[0]} DPRIO_INTERFACE_REG=ON;{-to startup_cntr[0]} DPRIO_INTERFACE_REG=ON;{-to startup_cntr[1]} DPRIO_INTERFACE_REG=ON;{-to startup_cntr[2]} DPRIO_INTERFACE_REG=ON"} *)
51
module  mAltGXReconfig_alt_dprio_v5k
52
        (
53
        address,
54
        busy,
55
        datain,
56
        dataout,
57
        dpclk,
58
        dpriodisable,
59
        dprioin,
60
        dprioload,
61
        dprioout,
62
        quad_address,
63
        rden,
64
        reset,
65
        wren,
66
        wren_data) /* synthesis synthesis_clearbox=2 */;
67
        input   [15:0]  address;
68
        output   busy;
69
        input   [15:0]  datain;
70
        output   [15:0]  dataout;
71
        input   dpclk;
72
        output   dpriodisable;
73
        output   dprioin;
74
        output   dprioload;
75
        input   dprioout;
76
        input   [8:0]  quad_address;
77
        input   rden;
78
        input   reset;
79
        input   wren;
80
        input   wren_data;
81
`ifndef ALTERA_RESERVED_QIS
82
// synopsys translate_off
83
`endif
84
        tri0   [15:0]  datain;
85
        tri0   rden;
86
        tri0   reset;
87
        tri0   wren;
88
        tri0   wren_data;
89
`ifndef ALTERA_RESERVED_QIS
90
// synopsys translate_on
91
`endif
92
 
93
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON;POWER_UP_LEVEL=LOW"} *)
94
        reg     [31:0]   addr_shift_reg;
95
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON;POWER_UP_LEVEL=LOW"} *)
96
        reg     [15:0]   in_data_shift_reg;
97
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON;POWER_UP_LEVEL=LOW"} *)
98
        reg     [15:0]   rd_out_data_shift_reg;
99
        wire    [2:0]    wire_startup_cntr_d;
100
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON;POWER_UP_LEVEL=LOW"} *)
101
        reg     [2:0]    startup_cntr;
102
        wire    [2:0]    wire_startup_cntr_ena;
103
        (* ALTERA_ATTRIBUTE = {"POWER_UP_LEVEL=LOW"} *)
104
        reg     [2:0]    state_mc_reg;
105
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON;POWER_UP_LEVEL=LOW"} *)
106
        reg     [31:0]   wr_out_data_shift_reg;
107
        wire  wire_pre_amble_cmpr_aeb;
108
        wire  wire_pre_amble_cmpr_agb;
109
        wire  wire_rd_data_output_cmpr_ageb;
110
        wire  wire_rd_data_output_cmpr_alb;
111
        wire  wire_state_mc_cmpr_aeb;
112
        wire  [5:0]   wire_state_mc_counter_q;
113
        wire  [7:0]   wire_state_mc_decode_eq;
114
        wire    wire_dprioin_mux_dataout;
115
        wire  busy_state;
116
        wire  idle_state;
117
        wire  rd_addr_done;
118
        wire  rd_addr_state;
119
        wire  rd_data_done;
120
        wire  rd_data_input_state;
121
        wire  rd_data_output_state;
122
        wire  rd_data_state;
123
        wire rdinc;
124
        wire  read_state;
125
        wire  s0_to_0;
126
        wire  s0_to_1;
127
        wire  s1_to_0;
128
        wire  s1_to_1;
129
        wire  s2_to_0;
130
        wire  s2_to_1;
131
        wire  startup_done;
132
        wire  startup_idle;
133
        wire  wr_addr_done;
134
        wire  wr_addr_state;
135
        wire  wr_data_done;
136
        wire  wr_data_state;
137
        wire  write_state;
138
 
139
        // synopsys translate_off
140
        initial
141
                addr_shift_reg = 0;
142
        // synopsys translate_on
143
        always @ ( posedge dpclk or  posedge reset)
144
                if (reset == 1'b1) addr_shift_reg <= 32'b0;
145
                else
146
                        if (wire_pre_amble_cmpr_aeb == 1'b1) addr_shift_reg <= {{2{{2{1'b0}}}}, 1'b0, quad_address[8:0], 2'b10, address};
147
                        else  addr_shift_reg <= {addr_shift_reg[30:0], 1'b0};
148
        // synopsys translate_off
149
        initial
150
                in_data_shift_reg = 0;
151
        // synopsys translate_on
152
        always @ ( posedge dpclk or  posedge reset)
153
                if (reset == 1'b1) in_data_shift_reg <= 16'b0;
154
                else if  (rd_data_input_state == 1'b1)   in_data_shift_reg <= {in_data_shift_reg[14:0], dprioout};
155
        // synopsys translate_off
156
        initial
157
                rd_out_data_shift_reg = 0;
158
        // synopsys translate_on
159
        always @ ( posedge dpclk or  posedge reset)
160
                if (reset == 1'b1) rd_out_data_shift_reg <= 16'b0;
161
                else
162
                        if (wire_pre_amble_cmpr_aeb == 1'b1) rd_out_data_shift_reg <= {{2{1'b0}}, {2{1'b1}}, 1'b0, quad_address, 2'b10};
163
                        else  rd_out_data_shift_reg <= {rd_out_data_shift_reg[14:0], 1'b0};
164
        // synopsys translate_off
165
        initial
166
                startup_cntr[0:0] = 0;
167
        // synopsys translate_on
168
        always @ ( posedge dpclk)
169
                if (wire_startup_cntr_ena[0:0] == 1'b1)
170
                        if (reset == 1'b1) startup_cntr[0:0] <= 1'b0;
171
                        else  startup_cntr[0:0] <= wire_startup_cntr_d[0:0];
172
        // synopsys translate_off
173
        initial
174
                startup_cntr[1:1] = 0;
175
        // synopsys translate_on
176
        always @ ( posedge dpclk)
177
                if (wire_startup_cntr_ena[1:1] == 1'b1)
178
                        if (reset == 1'b1) startup_cntr[1:1] <= 1'b0;
179
                        else  startup_cntr[1:1] <= wire_startup_cntr_d[1:1];
180
        // synopsys translate_off
181
        initial
182
                startup_cntr[2:2] = 0;
183
        // synopsys translate_on
184
        always @ ( posedge dpclk)
185
                if (wire_startup_cntr_ena[2:2] == 1'b1)
186
                        if (reset == 1'b1) startup_cntr[2:2] <= 1'b0;
187
                        else  startup_cntr[2:2] <= wire_startup_cntr_d[2:2];
188
        assign
189
                wire_startup_cntr_d = {(startup_cntr[2] ^ (startup_cntr[1] & startup_cntr[0])), (startup_cntr[0] ^ startup_cntr[1]), (~ startup_cntr[0])};
190
        assign
191
                wire_startup_cntr_ena = {3{((((rden | wren) | rdinc) | (~ startup_idle)) & (~ startup_done))}};
192
        // synopsys translate_off
193
        initial
194
                state_mc_reg = 0;
195
        // synopsys translate_on
196
        always @ ( posedge dpclk or  posedge reset)
197
                if (reset == 1'b1) state_mc_reg <= 3'b0;
198
                else  state_mc_reg <= {(s2_to_1 | (((~ s2_to_0) & (~ s2_to_1)) & state_mc_reg[2])), (s1_to_1 | (((~ s1_to_0) & (~ s1_to_1)) & state_mc_reg[1])), (s0_to_1 | (((~ s0_to_0) & (~ s0_to_1)) & state_mc_reg[0]))};
199
        // synopsys translate_off
200
        initial
201
                wr_out_data_shift_reg = 0;
202
        // synopsys translate_on
203
        always @ ( posedge dpclk or  posedge reset)
204
                if (reset == 1'b1) wr_out_data_shift_reg <= 32'b0;
205
                else
206
                        if (wire_pre_amble_cmpr_aeb == 1'b1) wr_out_data_shift_reg <= {{2{1'b0}}, 2'b01, 1'b0, quad_address[8:0], 2'b10, datain};
207
                        else  wr_out_data_shift_reg <= {wr_out_data_shift_reg[30:0], 1'b0};
208
        lpm_compare   pre_amble_cmpr
209
        (
210
        .aeb(wire_pre_amble_cmpr_aeb),
211
        .agb(wire_pre_amble_cmpr_agb),
212
        .ageb(),
213
        .alb(),
214
        .aleb(),
215
        .aneb(),
216
        .dataa(wire_state_mc_counter_q),
217
        .datab(6'b011111)
218
        `ifndef FORMAL_VERIFICATION
219
        // synopsys translate_off
220
        `endif
221
        ,
222
        .aclr(1'b0),
223
        .clken(1'b1),
224
        .clock(1'b0)
225
        `ifndef FORMAL_VERIFICATION
226
        // synopsys translate_on
227
        `endif
228
        );
229
        defparam
230
                pre_amble_cmpr.lpm_width = 6,
231
                pre_amble_cmpr.lpm_type = "lpm_compare";
232
        lpm_compare   rd_data_output_cmpr
233
        (
234
        .aeb(),
235
        .agb(),
236
        .ageb(wire_rd_data_output_cmpr_ageb),
237
        .alb(wire_rd_data_output_cmpr_alb),
238
        .aleb(),
239
        .aneb(),
240
        .dataa(wire_state_mc_counter_q),
241
        .datab(6'b110000)
242
        `ifndef FORMAL_VERIFICATION
243
        // synopsys translate_off
244
        `endif
245
        ,
246
        .aclr(1'b0),
247
        .clken(1'b1),
248
        .clock(1'b0)
249
        `ifndef FORMAL_VERIFICATION
250
        // synopsys translate_on
251
        `endif
252
        );
253
        defparam
254
                rd_data_output_cmpr.lpm_width = 6,
255
                rd_data_output_cmpr.lpm_type = "lpm_compare";
256
        lpm_compare   state_mc_cmpr
257
        (
258
        .aeb(wire_state_mc_cmpr_aeb),
259
        .agb(),
260
        .ageb(),
261
        .alb(),
262
        .aleb(),
263
        .aneb(),
264
        .dataa(wire_state_mc_counter_q),
265
        .datab({6{1'b1}})
266
        `ifndef FORMAL_VERIFICATION
267
        // synopsys translate_off
268
        `endif
269
        ,
270
        .aclr(1'b0),
271
        .clken(1'b1),
272
        .clock(1'b0)
273
        `ifndef FORMAL_VERIFICATION
274
        // synopsys translate_on
275
        `endif
276
        );
277
        defparam
278
                state_mc_cmpr.lpm_width = 6,
279
                state_mc_cmpr.lpm_type = "lpm_compare";
280
        lpm_counter   state_mc_counter
281
        (
282
        .clock(dpclk),
283
        .cnt_en((write_state | read_state)),
284
        .cout(),
285
        .eq(),
286
        .q(wire_state_mc_counter_q),
287
        .sclr(reset)
288
        `ifndef FORMAL_VERIFICATION
289
        // synopsys translate_off
290
        `endif
291
        ,
292
        .aclr(1'b0),
293
        .aload(1'b0),
294
        .aset(1'b0),
295
        .cin(1'b1),
296
        .clk_en(1'b1),
297
        .data({6{1'b0}}),
298
        .sload(1'b0),
299
        .sset(1'b0),
300
        .updown(1'b1)
301
        `ifndef FORMAL_VERIFICATION
302
        // synopsys translate_on
303
        `endif
304
        );
305
        defparam
306
                state_mc_counter.lpm_port_updown = "PORT_UNUSED",
307
                state_mc_counter.lpm_width = 6,
308
                state_mc_counter.lpm_type = "lpm_counter";
309
        lpm_decode   state_mc_decode
310
        (
311
        .data(state_mc_reg),
312
        .eq(wire_state_mc_decode_eq)
313
        `ifndef FORMAL_VERIFICATION
314
        // synopsys translate_off
315
        `endif
316
        ,
317
        .aclr(1'b0),
318
        .clken(1'b1),
319
        .clock(1'b0),
320
        .enable(1'b1)
321
        `ifndef FORMAL_VERIFICATION
322
        // synopsys translate_on
323
        `endif
324
        );
325
        defparam
326
                state_mc_decode.lpm_decodes = 8,
327
                state_mc_decode.lpm_width = 3,
328
                state_mc_decode.lpm_type = "lpm_decode";
329
        or(wire_dprioin_mux_dataout, ((((((wr_addr_state | rd_addr_state) & addr_shift_reg[31]) & wire_pre_amble_cmpr_agb) | ((~ wire_pre_amble_cmpr_agb) & (wr_addr_state | rd_addr_state))) | (((wr_data_state & wr_out_data_shift_reg[31]) & wire_pre_amble_cmpr_agb) | ((~ wire_pre_amble_cmpr_agb) & wr_data_state))) | (((rd_data_output_state & rd_out_data_shift_reg[15]) & wire_pre_amble_cmpr_agb) | ((~ wire_pre_amble_cmpr_agb) & rd_data_output_state))), ~(((write_state | rd_addr_state) | rd_data_output_state)));
330
        assign
331
                busy = busy_state,
332
                busy_state = (write_state | read_state),
333
                dataout = in_data_shift_reg,
334
                dpriodisable = (~ (startup_cntr[2] & (startup_cntr[0] | startup_cntr[1]))),
335
                dprioin = wire_dprioin_mux_dataout,
336
                dprioload = (~ ((startup_cntr[0] ^ startup_cntr[1]) & (~ startup_cntr[2]))),
337
                idle_state = wire_state_mc_decode_eq[0],
338
                rd_addr_done = (rd_addr_state & wire_state_mc_cmpr_aeb),
339
                rd_addr_state = (wire_state_mc_decode_eq[5] & startup_done),
340
                rd_data_done = (rd_data_state & wire_state_mc_cmpr_aeb),
341
                rd_data_input_state = (wire_rd_data_output_cmpr_ageb & rd_data_state),
342
                rd_data_output_state = (wire_rd_data_output_cmpr_alb & rd_data_state),
343
                rd_data_state = (wire_state_mc_decode_eq[7] & startup_done),
344
                rdinc = 1'b0,
345
                read_state = (rd_addr_state | rd_data_state),
346
                s0_to_0 = ((wr_data_state & wr_data_done) | (rd_data_state & rd_data_done)),
347
                s0_to_1 = (((idle_state & (wren | ((~ wren) & ((rden | rdinc) | wren_data)))) | (wr_addr_state & wr_addr_done)) | (rd_addr_state & rd_addr_done)),
348
                s1_to_0 = (((wr_data_state & wr_data_done) | (rd_data_state & rd_data_done)) | (idle_state & (wren | (((~ wren) & (~ wren_data)) & rden)))),
349
                s1_to_1 = (((idle_state & ((~ wren) & (rdinc | wren_data))) | (wr_addr_state & wr_addr_done)) | (rd_addr_state & rd_addr_done)),
350
                s2_to_0 = ((((wr_addr_state & wr_addr_done) | (wr_data_state & wr_data_done)) | (rd_data_state & rd_data_done)) | (idle_state & (wren | wren_data))),
351
                s2_to_1 = ((idle_state & (((~ wren) & (~ wren_data)) & (rdinc | rden))) | (rd_addr_state & rd_addr_done)),
352
                startup_done = ((startup_cntr[2] & (~ startup_cntr[0])) & startup_cntr[1]),
353
                startup_idle = ((~ startup_cntr[0]) & (~ (startup_cntr[2] ^ startup_cntr[1]))),
354
                wr_addr_done = (wr_addr_state & wire_state_mc_cmpr_aeb),
355
                wr_addr_state = (wire_state_mc_decode_eq[1] & startup_done),
356
                wr_data_done = (wr_data_state & wire_state_mc_cmpr_aeb),
357
                wr_data_state = (wire_state_mc_decode_eq[3] & startup_done),
358
                write_state = (wr_addr_state | wr_data_state);
359
endmodule //mAltGXReconfig_alt_dprio_v5k
360
 
361
//synthesis_resources = alt_cal_c3gxb 1 lpm_compare 3 lpm_counter 1 lpm_decode 1 lut 1 reg 114 
362
//synopsys translate_off
363
`timescale 1 ps / 1 ps
364
//synopsys translate_on
365
(* ALTERA_ATTRIBUTE = {"{-to address_pres_reg[11]} DPRIO_CHANNEL_NUM=11;{-to address_pres_reg[10]} DPRIO_CHANNEL_NUM=10;{-to address_pres_reg[9]} DPRIO_CHANNEL_NUM=9;{-to address_pres_reg[8]} DPRIO_CHANNEL_NUM=8;{-to address_pres_reg[7]} DPRIO_CHANNEL_NUM=7;{-to address_pres_reg[6]} DPRIO_CHANNEL_NUM=6;{-to address_pres_reg[5]} DPRIO_CHANNEL_NUM=5;{-to address_pres_reg[4]} DPRIO_CHANNEL_NUM=4;{-to address_pres_reg[3]} DPRIO_CHANNEL_NUM=3;{-to address_pres_reg[2]} DPRIO_CHANNEL_NUM=2;{-to address_pres_reg[1]} DPRIO_CHANNEL_NUM=1;{-to address_pres_reg[0]} DPRIO_CHANNEL_NUM=0"} *)
366
module  mAltGXReconfig_alt_c3gxb_reconfig_nrm
367
        (
368
        busy,
369
        reconfig_clk,
370
        reconfig_fromgxb,
371
        reconfig_togxb) /* synthesis synthesis_clearbox=2 */;
372
        output   busy;
373
        input   reconfig_clk;
374
        input   [4:0]  reconfig_fromgxb;
375
        output   [3:0]  reconfig_togxb;
376
 
377
        wire  wire_calibration_c3gxb_busy;
378
        wire  [15:0]   wire_calibration_c3gxb_dprio_addr;
379
        wire  [15:0]   wire_calibration_c3gxb_dprio_dataout;
380
        wire  wire_calibration_c3gxb_dprio_rden;
381
        wire  wire_calibration_c3gxb_dprio_wren;
382
        wire  [8:0]   wire_calibration_c3gxb_quad_addr;
383
        wire  wire_calibration_c3gxb_retain_addr;
384
        wire  wire_dprio_busy;
385
        wire  [15:0]   wire_dprio_dataout;
386
        wire  wire_dprio_dpriodisable;
387
        wire  wire_dprio_dprioin;
388
        wire  wire_dprio_dprioload;
389
        (* ALTERA_ATTRIBUTE = {"PRESERVE_REGISTER=ON"} *)
390
        reg     [11:0]   address_pres_reg;
391
        wire  cal_busy;
392
        wire  [0:0]  cal_dprioout_wire;
393
        wire  [0:0]  cal_testbuses;
394
        wire  [2:0]  channel_address;
395
        wire  [15:0]  dprio_address;
396
        wire offset_cancellation_reset;
397
        wire  [8:0]  quad_address;
398
        wire  reconfig_reset_all;
399
 
400
        alt_cal_c3gxb   calibration_c3gxb
401
        (
402
        .busy(wire_calibration_c3gxb_busy),
403
        .cal_error(),
404
        .clock(reconfig_clk),
405
        .dprio_addr(wire_calibration_c3gxb_dprio_addr),
406
        .dprio_busy(wire_dprio_busy),
407
        .dprio_datain(wire_dprio_dataout),
408
        .dprio_dataout(wire_calibration_c3gxb_dprio_dataout),
409
        .dprio_rden(wire_calibration_c3gxb_dprio_rden),
410
        .dprio_wren(wire_calibration_c3gxb_dprio_wren),
411
        .quad_addr(wire_calibration_c3gxb_quad_addr),
412
        .remap_addr(address_pres_reg),
413
        .reset((offset_cancellation_reset | reconfig_reset_all)),
414
        .retain_addr(wire_calibration_c3gxb_retain_addr),
415
        .testbuses(cal_testbuses)
416
        `ifndef FORMAL_VERIFICATION
417
        // synopsys translate_off
418
        `endif
419
        ,
420
        .start(1'b0)
421
        `ifndef FORMAL_VERIFICATION
422
        // synopsys translate_on
423
        `endif
424
        );
425
        defparam
426
                calibration_c3gxb.channel_address_width = 0,
427
                calibration_c3gxb.number_of_channels = 1,
428
                calibration_c3gxb.sim_model_mode = "FALSE",
429
                calibration_c3gxb.lpm_type = "alt_cal_c3gxb";
430
        mAltGXReconfig_alt_dprio_v5k   dprio
431
        (
432
        .address(({16{wire_calibration_c3gxb_busy}} & dprio_address)),
433
        .busy(wire_dprio_busy),
434
        .datain(({16{wire_calibration_c3gxb_busy}} & wire_calibration_c3gxb_dprio_dataout)),
435
        .dataout(wire_dprio_dataout),
436
        .dpclk(reconfig_clk),
437
        .dpriodisable(wire_dprio_dpriodisable),
438
        .dprioin(wire_dprio_dprioin),
439
        .dprioload(wire_dprio_dprioload),
440
        .dprioout(cal_dprioout_wire),
441
        .quad_address(address_pres_reg[11:3]),
442
        .rden((wire_calibration_c3gxb_busy & wire_calibration_c3gxb_dprio_rden)),
443
        .reset(reconfig_reset_all),
444
        .wren((wire_calibration_c3gxb_busy & wire_calibration_c3gxb_dprio_wren)),
445
        .wren_data(wire_calibration_c3gxb_retain_addr));
446
        // synopsys translate_off
447
        initial
448
                address_pres_reg = 0;
449
        // synopsys translate_on
450
        always @ ( posedge reconfig_clk or  posedge reconfig_reset_all)
451
                if (reconfig_reset_all == 1'b1) address_pres_reg <= 12'b0;
452
                else  address_pres_reg <= {quad_address, channel_address};
453
        assign
454
                busy = cal_busy,
455
                cal_busy = wire_calibration_c3gxb_busy,
456
                cal_dprioout_wire = {reconfig_fromgxb[0]},
457
                cal_testbuses = {reconfig_fromgxb[1]},
458
                channel_address = wire_calibration_c3gxb_dprio_addr[14:12],
459
                dprio_address = {wire_calibration_c3gxb_dprio_addr[15], address_pres_reg[2:0], wire_calibration_c3gxb_dprio_addr[11:0]},
460
                offset_cancellation_reset = 1'b0,
461
                quad_address = wire_calibration_c3gxb_quad_addr,
462
                reconfig_reset_all = 1'b0,
463
                reconfig_togxb = {wire_calibration_c3gxb_busy, wire_dprio_dprioload, wire_dprio_dpriodisable, wire_dprio_dprioin};
464
endmodule //mAltGXReconfig_alt_c3gxb_reconfig_nrm
465
//VALID FILE
466
 
467
 
468
// synopsys translate_off
469
`timescale 1 ps / 1 ps
470
// synopsys translate_on
471
module mAltGXReconfig (
472
        reconfig_clk,
473
        reconfig_fromgxb,
474
        busy,
475
        reconfig_togxb)/* synthesis synthesis_clearbox = 2 */;
476
 
477
        input     reconfig_clk;
478
        input   [4:0]  reconfig_fromgxb;
479
        output    busy;
480
        output  [3:0]  reconfig_togxb;
481
 
482
        wire  sub_wire0;
483
        wire [3:0] sub_wire1;
484
        wire  busy = sub_wire0;
485
        wire [3:0] reconfig_togxb = sub_wire1[3:0];
486
 
487
        mAltGXReconfig_alt_c3gxb_reconfig_nrm   mAltGXReconfig_alt_c3gxb_reconfig_nrm_component (
488
                                .reconfig_clk (reconfig_clk),
489
                                .reconfig_fromgxb (reconfig_fromgxb),
490
                                .busy (sub_wire0),
491
                                .reconfig_togxb (sub_wire1))/* synthesis synthesis_clearbox=2
492
         clearbox_macroname = alt_c3gxb_reconfig
493
         clearbox_defparam = "cbx_blackbox_list=-lpm_mux;intended_device_family=Cyclone IV GX;number_of_channels=1;number_of_reconfig_ports=1;enable_buf_cal=true;reconfig_fromgxb_width=5;reconfig_togxb_width=4;" */;
494
 
495
endmodule
496
 
497
// ============================================================
498
// CNX file retrieval info
499
// ============================================================
500
// Retrieval info: PRIVATE: ADCE NUMERIC "0"
501
// Retrieval info: PRIVATE: CMU_PLL NUMERIC "0"
502
// Retrieval info: PRIVATE: DATA_RATE NUMERIC "0"
503
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV GX"
504
// Retrieval info: PRIVATE: PMA NUMERIC "0"
505
// Retrieval info: PRIVATE: PROTO_SWITCH NUMERIC "0"
506
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
507
// Retrieval info: CONSTANT: CBX_BLACKBOX_LIST STRING "-lpm_mux"
508
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV GX"
509
// Retrieval info: CONSTANT: NUMBER_OF_CHANNELS NUMERIC "1"
510
// Retrieval info: CONSTANT: NUMBER_OF_RECONFIG_PORTS NUMERIC "1"
511
// Retrieval info: CONSTANT: enable_buf_cal STRING "true"
512
// Retrieval info: CONSTANT: reconfig_fromgxb_width NUMERIC "5"
513
// Retrieval info: CONSTANT: reconfig_togxb_width NUMERIC "4"
514
// Retrieval info: USED_PORT: busy 0 0 0 0 OUTPUT NODEFVAL "busy"
515
// Retrieval info: USED_PORT: reconfig_clk 0 0 0 0 INPUT NODEFVAL "reconfig_clk"
516
// Retrieval info: USED_PORT: reconfig_fromgxb 0 0 5 0 INPUT NODEFVAL "reconfig_fromgxb[4..0]"
517
// Retrieval info: USED_PORT: reconfig_togxb 0 0 4 0 OUTPUT NODEFVAL "reconfig_togxb[3..0]"
518
// Retrieval info: CONNECT: @reconfig_clk 0 0 0 0 reconfig_clk 0 0 0 0
519
// Retrieval info: CONNECT: @reconfig_fromgxb 0 0 5 0 reconfig_fromgxb 0 0 5 0
520
// Retrieval info: CONNECT: busy 0 0 0 0 @busy 0 0 0 0
521
// Retrieval info: CONNECT: reconfig_togxb 0 0 4 0 @reconfig_togxb 0 0 4 0
522
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig.v TRUE
523
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig.inc FALSE
524
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig.cmp FALSE
525
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig.bsf FALSE
526
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig_inst.v FALSE
527
// Retrieval info: GEN_FILE: TYPE_NORMAL mAltGXReconfig_bb.v FALSE
528
// Retrieval info: LIB_FILE: altera_mf
529
// Retrieval info: LIB_FILE: lpm

powered by: WebSVN 2.1.0

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