x393  1.0
FPGAcodeforElphelNC393camera
phy_top.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module phy_top #(
42  parameter IOSTANDARD_DQ = "SSTL15_T_DCI",
43  parameter IOSTANDARD_DM = "SSTL15",
44  parameter IOSTANDARD_DQS = "DIFF_SSTL15_T_DCI",
45  parameter IOSTANDARD_CMDA = "SSTL15",
46  parameter IOSTANDARD_CLK = "DIFF_SSTL15",
47  parameter SLEW_DQ = "SLOW",
48  parameter SLEW_DQS = "SLOW",
49  parameter SLEW_CMDA = "SLOW",
50  parameter SLEW_CLK = "SLOW",
51  parameter IBUF_LOW_PWR = "TRUE",
52  parameter IODELAY_GRP = "IODELAY_MEMORY",
53  parameter real REFCLK_FREQUENCY = 300.0,
54  parameter HIGH_PERFORMANCE_MODE = "FALSE",
55  parameter integer ADDRESS_NUMBER= 15,
56  parameter PHASE_WIDTH = 8,
57  parameter BANDWIDTH = "OPTIMIZED",
58  // Assuming 100MHz input clock, 800MHz Fvco, 400MHz clk, 200MHz clk_div, 200MHz mclk
59  parameter CLKIN_PERIOD = 10, //ns >1.25, 600<Fvco<1200
60  parameter CLKFBOUT_MULT = 8, // Fvco=Fclkin*CLKFBOUT_MULT_F/DIVCLK_DIVIDE, Fout=Fvco/CLKOUT#_DIVIDE
61  parameter DIVCLK_DIVIDE= 1,
62  parameter CLKFBOUT_USE_FINE_PS =1, // if 1 move CLKFBOUT_PHASE and SDCLK_PHASE, if 0 - other outputs (moved phases should be 0/same)
63  parameter CLKFBOUT_PHASE = 0.000,
64  parameter SDCLK_PHASE = 0.000,
65  parameter CLK_PHASE = 0.000,
66  parameter CLK_DIV_PHASE = 0.000,
67  parameter MCLK_PHASE = 90.000,
68  parameter REF_JITTER1 = 0.010,
69  parameter SS_EN = "FALSE",
70  parameter SS_MODE = "CENTER_HIGH",
71  parameter SS_MOD_PERIOD = 10000
72 )(
73  output ddr3_nrst, // output NRST port
74  output ddr3_clk, // DDR3 clock differential output, positive
75  output ddr3_nclk,// DDR3 clock differential output, negative
76  output [ADDRESS_NUMBER-1:0] ddr3_a, // output address ports (14:0) for 4Gb device
77  output [2:0]ddr3_ba, // output bank address ports
78  output ddr3_we, // output WE port
79  output ddr3_ras, // output RAS port
80  output ddr3_cas, // output CAS port
81  output ddr3_cke, // output Clock Enable port
82  output ddr3_odt, // output ODT port
83 
84  inout [15:0] dq, // DQ I/O pads
85  output dml, // LDM I/O pad (actually only output)
86  inout dqsl, // LDQS I/O pad
87  inout ndqsl, // ~LDQS I/O pad
88  output dmu, // UDM I/O pad (actually only output)
89  inout dqsu, // UDQS I/O pad
90  inout ndqsu, // ~UDQS I/O pad
91 
92  input clk_in, // master input clock, initially assuming 100MHz
93  output clk, // free-running system clock, same frequency as iclk (shared for R/W), BUFR output
94  output clk_div, // free-running half clk frequency, front aligned to clk (shared for R/W), BUFR output
95  output mclk, // same as clk_div, through separate BUFG and static phase adjust
96  input mrst, // @posedge mclk synchronous reset - should not interrupt mclk generation
97  input ref_clk, // global clock for idelay_ctrl calibration
99  input rst_in, // reset delays/serdes - global reset?
100  input ddr_rst, // active high - generate NRST to memory
101  input dci_rst, // active high - reset DCI circuitry
102  input dly_rst, // active high - delay calibration circuitry
103 
104  input [2*ADDRESS_NUMBER-1:0] in_a, // input address, 2 bits per signal (first, second) (29:0) for 4Gb device
105  input [5:0] in_ba, // input bank address, 2 bits per signal (first, second)
106  input [1:0] in_we, // input WE, 2 bits (first, second)
107  input [1:0] in_ras, // input RAS, 2 bits (first, second)
108  input [1:0] in_cas, // input CAS, 2 bits (first, second)
109  input [1:0] in_cke, // input CKE, 2 bits (first, second)
110  input [1:0] in_odt, // input ODT, 2 bits (first, second)
111 // input [1:0] in_tri, // tristate command/address outputs - same timing, but no odelay
112  input in_tri, // tristate command/address outputs - same timing, but no odelay
113 
114  input [63:0] din, // parallel data to be sent out (4 bits per DG I/))
115  input [7:0] din_dm, // parallel data to be sent out over DM
116  input [7:0] tin_dq, // tristate for data out (sent out earlier than data!) and dm
117  input [7:0] din_dqs, // parallel data to be sent out over DQS
118  input [7:0] tin_dqs, // tristate for DQS out (sent out earlier than data!)
119  output [63:0] dout, // parallel data received from DDR3 memory, 4 bits per DQ I/O
120 
121 
122  input inv_clk_div, // invert clk_div for R channels (clk_div is shared between R and W)
123  input dci_disable_dqs, // disable DCI termination during writes and idle for dqs
124  input dci_disable_dq, // disable DCI termination during writes and idle for dq and dm signals
125 
126  input [7:0] dly_data, // delay value (3 LSB - fine delay)
127  input [6:0] dly_addr, // select which delay to program
128  input ld_delay, // load delay data to selected iodelayl (clk_div synchronous)
129  input set, // clk_div synchronous set all delays from previously loaded values
130 // output locked,
131  output locked_mmcm,
132  output locked_pll,
133  output dly_ready,
134  output dci_ready,
135  output [7:0] tmp_debug,
136  output ps_rdy,
137  output [PHASE_WIDTH-1:0] ps_out
138 );
139  assign locked_pll = 1; // not used anymore, reference clock generation moved to other module
140  reg rst= 1'b1;
141 
142  always @(posedge clk_div) begin // Why is it @ negedge clk_div?
143  if (mrst) rst <= 1'b1;
144  else rst <= 1'b0;
145  end
146 
147  wire ld_data_l = (dly_addr[6:5] == 2'h0) && ld_delay ;
148  wire ld_data_h = (dly_addr[6:5] == 2'h1) && ld_delay ;
149  wire ld_cmda = (dly_addr[6:5] == 2'h2) && ld_delay ;
150  wire ld_mmcm= (dly_addr[6:0] == 7'h60) && ld_delay ;
151 // wire clkfb_ref, clk_ref_pre;
152 
155 
156 
157  reg dbg1=0;
158  reg dbg2=0;
159 
160  always @ (posedge mclk) begin
161  if (mrst) dbg1 <= 0;
162  else dbg1 <= ~dbg1;
163  end
164 
165  always @ (posedge clk_div) begin
166  if (mrst) dbg2 <= 0;
167  else dbg2 <= ~dbg2;
168  end
169 
170 
171  assign tmp_debug ={
172  dbg2, //dly_addr[1],
173  dbg1, //dly_addr[0],
176  ddr_rst,
177  mrst, // rst_in, rst_in - is it global clock?
178  dci_rst,
179  dly_rst
180  };
181 
182 /* memory reset **/
183  obuf #(
184  .CAPACITANCE("DONT_CARE"),
185  .DRIVE(12),
186  .IOSTANDARD(IOSTANDARD_CMDA),
187  .SLEW("SLOW")
188  ) obuf_i (
189  .O(ddr3_nrst), // output
190  .I(~ddr_rst) // input
191  );
192 
195  .IOSTANDARD(IOSTANDARD_CMDA),
196  .SLEW(SLEW_CMDA),
200  ) cmd_addr_i(
201  .ddr3_a (ddr3_a[ADDRESS_NUMBER-1:0]), // output address ports (14:0) for 4Gb device
202  .ddr3_ba (ddr3_ba[2:0]), // output bank address ports
203  .ddr3_we (ddr3_we), // output WE port
204  .ddr3_ras (ddr3_ras), // output RAS port
205  .ddr3_cas (ddr3_cas), // output CAS port
206  .ddr3_cke (ddr3_cke), // output Clock Enable port
207  .ddr3_odt (ddr3_odt), // output ODT port
208  .clk (clk), // free-running system clock, same frequency as iclk (shared for R/W)
209  .clk_div (clk_div), // free-running half clk frequency, front aligned to clk (shared for R/W)
210  .rst (rst), // reset delays/serdes
211  .in_a (in_a[2*ADDRESS_NUMBER-1:0]), // input address, 2 bits per signal (first, second) (29:0) for 4Gb device
212  .in_ba (in_ba[5:0]), // input bank address, 2 bits per signal (first, second)
213  .in_we (in_we[1:0]), // input WE, 2 bits (first, second)
214  .in_ras (in_ras[1:0]), // input RAS, 2 bits (first, second)
215  .in_cas (in_cas[1:0]), // input CAS, 2 bits (first, second)
216  .in_cke (in_cke[1:0]), // input CKE, 2 bits (first, second)
217  .in_odt (in_odt[1:0]), // input ODT, 2 bits (first, second)
218 // .in_tri (in_tri[1:0]), // tristate command/address outputs - same timing, but no odelay
219  .in_tri (in_tri), // tristate command/address outputs - same timing, but no odelay
220  .dly_data (dly_data[7:0]), // delay value (3 LSB - fine delay)
221  .dly_addr (dly_addr[4:0]), // select which delay to program
222  .ld_delay (ld_cmda), // load delay data to selected iodelayl (clk_div synchronous)
223  .set (set) // clk_div synchronous set all delays from previously loaded values
224 );
225 
232  .SLEW_DQ (SLEW_DQ),
233  .SLEW_DQS (SLEW_DQS),
236  ) byte_lane0_i (
237  .dq (dq[7:0]), // DQ I/O pads
238  .dm (dml), // DM I/O pad (actually only output)
239  .dqs (dqsl), // DQS I/O pad
240  .ndqs (ndqsl), // ~DQS I/O pad
241  .clk (clk), // free-running system clock, same frequency as iclk (shared for R/W)
242  .clk_div (clk_div), // free-running half clk frequency, front aligned to clk (shared for R/W)
243  .inv_clk_div (inv_clk_div), // invert clk_div for R channels (clk_div is shared between R and W)
244  .rst (rst),
245  .dci_disable_dqs (dci_disable_dqs), // disable DCI termination during writes and idle for dqs
246  .dci_disable_dq (dci_disable_dq), // disable DCI termination during writes and idle for dq and dm signals
247  .din (din[31:0]), // parallel data to be sent out (4 bits per DQ I/O))
248  .din_dm (din_dm[3:0]), // parallel data to be sent out over DM
249  .tin_dq (tin_dq[3:0]), // tristate for data out (sent out earlier than data!) and dm
250  .din_dqs (din_dqs[3:0]), // parallel data to be sent out over DQS
251  .tin_dqs (tin_dqs[3:0]), // tristate for DQS out (sent out earlier than data!)
252  .dout (dout[31:0]), // parallel data received from DDR3 memory, 4 bits per DQ I/O
253  .dly_data (dly_data[7:0]), // delay value (3 LSB - fine delay)
254  .dly_addr (dly_addr[4:0]), // select which delay to program
255  .ld_delay (ld_data_l), // load delay data to selected iodelayl (clk_div synchronous)
256  .set (set) // clk_div synchronous set all delays from previously loaded values
257 );
258 
265  .SLEW_DQ (SLEW_DQ),
266  .SLEW_DQS (SLEW_DQS),
269  ) byte_lane1_i (
270  .dq (dq[15:8]), // DQ I/O pads
271  .dm (dmu), // DM I/O pad (actually only output)
272  .dqs (dqsu), // DQS I/O pad
273  .ndqs (ndqsu), // ~DQS I/O pad
274  .clk (clk), // free-running system clock, same frequency as iclk (shared for R/W)
275  .clk_div (clk_div), // free-running half clk frequency, front aligned to clk (shared for R/W)
276  .inv_clk_div (inv_clk_div), // invert clk_div for R channels (clk_div is shared between R and W)
277  .rst (rst),
278  .dci_disable_dqs (dci_disable_dqs), // disable DCI termination during writes and idle for dqs
279  .dci_disable_dq (dci_disable_dq), // disable DCI termination during writes and idle for dq and dm signals
280  .din (din[63:32]), // parallel data to be sent out (4 bits per DQ I/O))
281  .din_dm (din_dm[7:4]), // parallel data to be sent out over DM
282  .tin_dq (tin_dq[7:4]), // tristate for data out (sent out earlier than data!) and dm
283  .din_dqs (din_dqs[7:4]), // parallel data to be sent out over DQS
284  .tin_dqs (tin_dqs[7:4]), // tristate for DQS out (sent out earlier than data!)
285  .dout (dout[63:32]), // parallel data received from DDR3 memory, 4 bits per DQ I/O
286  .dly_data (dly_data[7:0]), // delay value (3 LSB - fine delay)
287  .dly_addr (dly_addr[4:0]), // select which delay to program
288  .ld_delay (ld_data_h), // load delay data to selected iodelayl (clk_div synchronous)
289  .set (set) // clk_div synchronous set all delays from previously loaded values
290 );
291 //ddr3_clk
292 wire sdclk; // BUFIO
294  .IOSTANDARD(IOSTANDARD_CLK),
295  .SLEW(SLEW_CLK)
296  ) oddr_ds_i (
297  .clk(sdclk), // input
298  .ce(1'b1), // input
299  .rst(1'b0), //rst_n_clk), // input no need to reset?
300  .set(1'b0), // input
301  .din(2'b01), // input[1:0]
302  .tin(rst), // tristate at reset
303  .dq(ddr3_clk), // output
304  .ndq(ddr3_nclk) // output
305  );
306 // Clocks: MMCM is used to generate ddr3 differential clock (no dynamic phase shift),
307 // clk - write bit clock, phase dynamically adjusted, BUFR (initially 400MHz)
308 // clk_div half bit frequency clock, phase dynamically adjusted, BUFR. Used also for delay/phase control (200MHz)
309 // mclk - same frequency as clk_div (same dynamic phase adjust), but with BUFG to be used in other regions. Phase to be
310 // statically adjusted for clock boundary crossing
311 // Phase control included, allowing setting phase in +/- 127 steps, each 1/56 of 1/Fvco (~22ps for Fvco=800MHz)
312 // So shifting phase dynamically by plus/- 113 moves SDCLK by a full period (2.5ns) forward and backward (113= 0x71)
314 BUFR clk_bufr_i (.O(clk), .CE(), .CLR(), .I(clk_pre));
315 //BUFIO clk_buf_i (.O(clk), .I(clk_pre));
316 BUFR clk_div_bufr_i (.O(clk_div), .CE(), .CLR(), .I(clk_div_pre));
317 BUFIO iclk_bufio_i (.O(sdclk), .I(sdclk_pre) );
318 ///BUFG clk_ref_i (.O(ref_clk), .I(clk_ref_pre));
319 BUFG mclk_i (.O(mclk),.I(mclk_pre) );
323  .BANDWIDTH (BANDWIDTH),
324  .CLKFBOUT_MULT_F (CLKFBOUT_MULT),
327  .CLKOUT0_PHASE (CLKFBOUT_USE_FINE_PS? 0.0 : SDCLK_PHASE),
328  .CLKOUT1_PHASE (CLKFBOUT_USE_FINE_PS? CLK_PHASE : 0.0),
329  .CLKOUT2_PHASE (CLKFBOUT_USE_FINE_PS? CLK_DIV_PHASE : 0.0),
330  .CLKOUT3_PHASE (CLKFBOUT_USE_FINE_PS? MCLK_PHASE : 90.000), // (78.75), // (MCLK_PHASE), // should be multiple of 11.25 (90.000/8)
331 //ERROR: [DRC 23-20] Rule violation (AVAL-139) Phase shift check - The MMCME2_ADV cell mcntrl393_i/memctrl16_i/mcontr_sequencer_i/phy_cmd_i/phy_top_i/mmcm_phase_cntr_i/MMCME2_ADV_i has a fractional CLKOUT3_PHASE value (75.000) with CLKOUT3_USE_FINE_PS set to FALSE. It should be a multiple of [45 / CLKOUT3_DIVIDE] = [45 / 4] = 11.250.
332 
333 // .CLKOUT4_PHASE (0.000),
334 // .CLKOUT5_PHASE (0.000),
335 // .CLKOUT6_PHASE (0.000),
336  .CLKFBOUT_USE_FINE_PS (CLKFBOUT_USE_FINE_PS? "TRUE" : "FALSE"),
337  .CLKOUT0_USE_FINE_PS (CLKFBOUT_USE_FINE_PS? "TRUE" : "FALSE"),
338  .CLKOUT1_USE_FINE_PS (CLKFBOUT_USE_FINE_PS? "FALSE" : "TRUE"),
339  .CLKOUT2_USE_FINE_PS (CLKFBOUT_USE_FINE_PS? "FALSE" : "TRUE"),
340  .CLKOUT3_USE_FINE_PS (CLKFBOUT_USE_FINE_PS? "FALSE" : "TRUE"),
341 // .CLKOUT4_USE_FINE_PS("FALSE"),
342 // .CLKOUT5_USE_FINE_PS("FALSE"),
343 // .CLKOUT6_USE_FINE_PS("FALSE"),
344  .CLKOUT0_DIVIDE_F (2.000),
345  .CLKOUT1_DIVIDE (2),
346  .CLKOUT2_DIVIDE (4),
347  .CLKOUT3_DIVIDE (4),
348 // .CLKOUT4_DIVIDE(1),
349 // .CLKOUT5_DIVIDE(1),
350 // .CLKOUT6_DIVIDE(1),
351  .COMPENSATION ("ZHOLD"),
353 // .REF_JITTER2(0.010),
354  .SS_EN (SS_EN),
355  .SS_MODE (SS_MODE),
357  .STARTUP_WAIT ("FALSE")
358  ) mmcm_phase_cntr_i (
359  .clkin1 (clk_in), // input
360  .clkin2 (1'b0), // input
361  .sel_clk2 (1'b0), // input
362  .clkfbin (clk_fb), // input
363 // .rst (rst), // input
364  .rst (rst_in), // input
365  .pwrdwn (1'b0), // input
366  .psclk (clk_div), // input
367  .ps_we (ld_mmcm), // input
368  .ps_din (dly_data), // input[7:0]
369  .ps_ready (ps_rdy), // output
370  .ps_dout (ps_out), // output[7:0] reg
371  .clkout0 (sdclk_pre), // output
372  .clkout1 (clk_pre), // output
373  .clkout2 (clk_div_pre), // output
374  .clkout3 (mclk_pre), // output
375  .clkout4(), // output
376  .clkout5(), // output
377  .clkout6(), // output
378  .clkout0b(), // output
379  .clkout1b(), // output
380  .clkout2b(), // output
381  .clkout3b(), // output
382  .clkfbout (clk_fb), // output
383  .clkfboutb(), // output
384  .locked (locked_mmcm),
385  .clkin_stopped (clkin_stopped_mmcm), // output
386  .clkfb_stopped (clkfb_stopped_mmcm) // output
387  // output
388  );
389 // Does it need to be re-calibrated periodically - yes when temperature changes, same as dci_reset
390 assign idelay_ctrl_reset = rst || dly_rst;
392  .IODELAY_GRP("IODELAY_MEMORY")
393  ) idelay_ctrl_i (
394  .refclk(ref_clk),
395  .rst(idelay_ctrl_reset), // route it to the top
396  .rdy(dly_ready)
397  );
398  dci_reset dci_reset_i (
399  .reset(rst || dci_rst), // input
400  .ready(dci_ready) // output
401  );
402 //assign dci_ready= !(rst || dci_rst);
403 endmodule
404 
11494dq
Definition: oddr_ds.v:55
6616ld_mmcmwire
Definition: phy_top.v:150
[31:0] 5999din
Definition: byte_lane.v:65
11466I
Definition: obuf.v:48
[7:0] 6594tin_dq
Definition: phy_top.v:116
[3:0] 6001tin_dq
Definition: byte_lane.v:67
6582dci_rst
Definition: phy_top.v:101
6614ld_data_hwire
Definition: phy_top.v:148
[4:0] 6051dly_addr
Definition: cmd_addr.v:72
6040clk_div
Definition: cmd_addr.v:60
6625mclk_prewire
Definition: phy_top.v:313
6565ddr3_odt
Definition: phy_top.v:82
6578ref_clk
Definition: phy_top.v:97
dci_reset_i dci_reset
Definition: phy_top.v:398
[1:0] 6586in_we
Definition: phy_top.v:106
6555SS_MOD_PERIOD10000
Definition: phy_top.v:71
[63:0] 6592din
Definition: phy_top.v:114
6535SLEW_CLK"SLOW"
Definition: phy_top.v:50
6619dbg1reg
Definition: phy_top.v:157
[4:0] 6006dly_addr
Definition: byte_lane.v:72
6567dml
Definition: phy_top.v:85
6599dci_disable_dqs
Definition: phy_top.v:123
6552REF_JITTER10.010
Definition: phy_top.v:68
6551MCLK_PHASE90.000
Definition: phy_top.v:67
6036ddr3_cas
Definition: cmd_addr.v:56
6603ld_delay
Definition: phy_top.v:128
6052ld_delay
Definition: cmd_addr.v:73
[ADDRESS_NUMBER-1:0] 6559ddr3_a
Definition: phy_top.v:76
6564ddr3_cke
Definition: phy_top.v:81
6562ddr3_ras
Definition: phy_top.v:79
6581ddr_rst
Definition: phy_top.v:100
6622clk_prewire
Definition: phy_top.v:313
6532SLEW_DQ"SLOW"
Definition: phy_top.v:47
6037ddr3_cke
Definition: cmd_addr.v:57
mclk_i BUFG
Definition: phy_top.v:319
[15:0] 6566dq
Definition: phy_top.v:84
real 6538REFCLK_FREQUENCY300.0
Definition: phy_top.v:53
6607dly_ready
Definition: phy_top.v:133
[5:0] 6043in_ba
Definition: cmd_addr.v:63
6554SS_MODE"CENTER_HIGH"
Definition: phy_top.v:70
[1:0] 6046in_cas
Definition: cmd_addr.v:66
byte_lane1_i byte_lane
Definition: phy_top.v:259
6541PHASE_WIDTH8
Definition: phy_top.v:56
6574clk
Definition: phy_top.v:93
6543CLKIN_PERIOD10
Definition: phy_top.v:59
5997dci_disable_dqs
Definition: byte_lane.v:63
6570dmu
Definition: phy_top.v:88
[2*ADDRESS_NUMBER-1:0] 6042in_a
Definition: cmd_addr.v:62
6580rst_in
Definition: phy_top.v:99
5995inv_clk_div
Definition: byte_lane.v:61
6537IODELAY_GRP"IODELAY_MEMORY"
Definition: phy_top.v:52
[7:0] 6596tin_dqs
Definition: phy_top.v:118
6563ddr3_cas
Definition: phy_top.v:80
6533SLEW_DQS"SLOW"
Definition: phy_top.v:48
6035ddr3_ras
Definition: cmd_addr.v:55
[1:0] 6590in_odt
Definition: phy_top.v:110
6553SS_EN"FALSE"
Definition: phy_top.v:69
6542BANDWIDTH"OPTIMIZED"
Definition: phy_top.v:57
6531IOSTANDARD_CLK"DIFF_SSTL15"
Definition: phy_top.v:46
[1:0] 11492din
Definition: oddr_ds.v:53
[7:0] 6601dly_data
Definition: phy_top.v:126
6610ps_rdy
Definition: phy_top.v:136
[7:0] 5989dq
Definition: byte_lane.v:54
6527IOSTANDARD_DQ"SSTL15_T_DCI"
Definition: phy_top.v:42
6568dqsl
Definition: phy_top.v:86
6528IOSTANDARD_DM"SSTL15"
Definition: phy_top.v:43
6569ndqsl
Definition: phy_top.v:87
11465O
Definition: obuf.v:47
6557ddr3_clk
Definition: phy_top.v:74
6530IOSTANDARD_CMDA"SSTL15"
Definition: phy_top.v:45
6038ddr3_odt
Definition: cmd_addr.v:58
[31:0] 6004dout
Definition: byte_lane.v:70
6550CLK_DIV_PHASE0.000
Definition: phy_top.v:66
[3:0] 6002din_dqs
Definition: byte_lane.v:68
oddr_ds_i oddr_ds
Definition: phy_top.v:293
6549CLK_PHASE0.000
Definition: phy_top.v:65
6577mrst
Definition: phy_top.v:96
6548SDCLK_PHASE0.000
Definition: phy_top.v:64
mmcm_phase_cntr_i mmcm_phase_cntr
Definition: phy_top.v:320
[1:0] 6048in_odt
Definition: cmd_addr.v:68
[7:0] 6609tmp_debug
Definition: phy_top.v:135
6583dly_rst
Definition: phy_top.v:102
[7:0] 6005dly_data
Definition: byte_lane.v:71
6617clkin_stopped_mmcmwire
Definition: phy_top.v:153
6544CLKFBOUT_MULT8
Definition: phy_top.v:60
6573clk_in
Definition: phy_top.v:92
6613ld_data_lwire
Definition: phy_top.v:147
[1:0] 6588in_cas
Definition: phy_top.v:108
[1:0] 6589in_cke
Definition: phy_top.v:109
11490rst
Definition: oddr_ds.v:51
clk_div_bufr_i BUFR
Definition: phy_top.v:316
[3:0] 6003tin_dqs
Definition: byte_lane.v:69
6547CLKFBOUT_PHASE0.000
Definition: phy_top.v:63
[1:0] 6587in_ras
Definition: phy_top.v:107
6579idelay_ctrl_reset
Definition: phy_top.v:98
[2:0] 6033ddr3_ba
Definition: cmd_addr.v:53
6536IBUF_LOW_PWR"TRUE"
Definition: phy_top.v:51
6571dqsu
Definition: phy_top.v:89
[PHASE_WIDTH-1:0] 11433ps_dout
11491set
Definition: oddr_ds.v:52
6615ld_cmdawire
Definition: phy_top.v:149
iclk_bufio_i BUFIO
Definition: phy_top.v:317
6621sdclkwire
Definition: phy_top.v:292
6546CLKFBOUT_USE_FINE_PS1
Definition: phy_top.v:62
11488clk
Definition: oddr_ds.v:49
cmd_addr_i cmd_addr
Definition: phy_top.v:193
6604set
Definition: phy_top.v:129
[7:0] 6595din_dqs
Definition: phy_top.v:117
6620dbg2reg
Definition: phy_top.v:158
[1:0] 6045in_ras
Definition: cmd_addr.v:65
6539HIGH_PERFORMANCE_MODE"FALSE"
Definition: phy_top.v:54
6591in_tri
Definition: phy_top.v:112
[1:0] 6044in_we
Definition: cmd_addr.v:64
[5:0] 6585in_ba
Definition: phy_top.v:105
6558ddr3_nclk
Definition: phy_top.v:75
[PHASE_WIDTH-1:0] 11431ps_din
5998dci_disable_dq
Definition: byte_lane.v:64
obuf_i obuf
Definition: phy_top.v:183
6623clk_div_prewire
Definition: phy_top.v:313
6572ndqsu
Definition: phy_top.v:90
[7:0] 6050dly_data
Definition: cmd_addr.v:71
11489ce
Definition: oddr_ds.v:50
[2*ADDRESS_NUMBER-1:0] 6584in_a
Definition: phy_top.v:104
[63:0] 6597dout
Definition: phy_top.v:119
[7:0] 6593din_dm
Definition: phy_top.v:115
6576mclk
Definition: phy_top.v:95
[2:0] 6560ddr3_ba
Definition: phy_top.v:77
6600dci_disable_dq
Definition: phy_top.v:124
idelay_ctrl_i idelay_ctrl
Definition: phy_top.v:391
6608dci_ready
Definition: phy_top.v:134
[6:0] 6602dly_addr
Definition: phy_top.v:127
11495ndq
Definition: oddr_ds.v:56
[3:0] 6000din_dm
Definition: byte_lane.v:66
[ADDRESS_NUMBER-1:0] 6032ddr3_a
Definition: cmd_addr.v:52
6007ld_delay
Definition: byte_lane.v:73
[1:0] 6047in_cke
Definition: cmd_addr.v:67
6049in_tri
Definition: cmd_addr.v:70
6529IOSTANDARD_DQS"DIFF_SSTL15_T_DCI"
Definition: phy_top.v:44
6606locked_pll
Definition: phy_top.v:132
[PHASE_WIDTH-1:0] 6611ps_out
Definition: phy_top.v:137
11493tin
Definition: oddr_ds.v:54
integer 6540ADDRESS_NUMBER15
Definition: phy_top.v:55
6534SLEW_CMDA"SLOW"
Definition: phy_top.v:49
6034ddr3_we
Definition: cmd_addr.v:54
6605locked_mmcm
Definition: phy_top.v:131
6626clk_fbwire
Definition: phy_top.v:313
6561ddr3_we
Definition: phy_top.v:78
6598inv_clk_div
Definition: phy_top.v:122
6556ddr3_nrst
Definition: phy_top.v:73
6612rstreg
Definition: phy_top.v:140
6618clkfb_stopped_mmcmwire
Definition: phy_top.v:154
6624sdclk_prewire
Definition: phy_top.v:313
6545DIVCLK_DIVIDE1
Definition: phy_top.v:61
6575clk_div
Definition: phy_top.v:94