x393  1.0
FPGAcodeforElphelNC393camera
phy_cmd.v
Go to the documentation of this file.
1 
40 `timescale 1ns/1ps
41 
42 module phy_cmd#(
43  parameter ADDRESS_NUMBER = 15,
44  parameter PHASE_WIDTH = 8,
45  parameter SLEW_DQ = "SLOW",
46  parameter SLEW_DQS = "SLOW",
47  parameter SLEW_CMDA = "SLOW",
48  parameter SLEW_CLK = "SLOW",
49  parameter IBUF_LOW_PWR = "TRUE",
50  parameter real REFCLK_FREQUENCY = 300.0,
51  parameter HIGH_PERFORMANCE_MODE = "FALSE",
52  parameter CLKIN_PERIOD = 10, //ns >1.25, 600<Fvco<1200
53  parameter CLKFBOUT_MULT = 8, // Fvco=Fclkin*CLKFBOUT_MULT_F/DIVCLK_DIVIDE, Fout=Fvco/CLKOUT#_DIVIDE
54  parameter DIVCLK_DIVIDE= 1,
55  parameter CLKFBOUT_USE_FINE_PS= 1, // 0 - old, 1 - new
56  parameter CLKFBOUT_PHASE = 0.000,
57  parameter SDCLK_PHASE = 0.000,
58  parameter CLK_PHASE = 0.000,
59  parameter CLK_DIV_PHASE = 0.000,
60  parameter MCLK_PHASE = 90.000,
61  parameter REF_JITTER1 = 0.010,
62  parameter SS_EN = "FALSE",
63  parameter SS_MODE = "CENTER_HIGH",
64  parameter SS_MOD_PERIOD = 10000,
65  parameter CMD_PAUSE_BITS= 10, // numer of (address) bits to encode pause
66  parameter CMD_DONE_BIT= 10 // bit number (address) to signal sequence done
67 )(
68  // DDR3 interface
69  output SDRST, // DDR3 reset (active low)
70  output SDCLK, // DDR3 clock differential output, positive
71  output SDNCLK,// DDR3 clock differential output, negative
72  output [ADDRESS_NUMBER-1:0] SDA, // output address ports (14:0) for 4Gb deviceencode_seq_word
73  output [2:0] SDBA, // output bank address ports
74  output SDWE, // output WE port
75  output SDRAS, // output RAS port
76  output SDCAS, // output CAS port
77  output SDCKE, // output Clock Enable port
78  output SDODT, // output ODT port
79 
80  inout [15:0] SDD, // DQ I/O pads
81  output SDDML, // LDM I/O pad (actually only output)
82  inout DQSL, // LDQS I/O pad
83  inout NDQSL, // ~LDQS I/O pad
84  output SDDMU, // UDM I/O pad (actually only output)
85  inout DQSU, // UDQS I/O pad
86  inout NDQSU, // ~UDQS I/O pad
87 // clocks, reset
88  input clk_in,
89  input rst_in,
90  output mclk, // global clock, half DDR3 clock, synchronizes all I/O through the command port
91  input mrst, // @posedge mclk synchronous reset - should not interrupt mclk generation
92  input ref_clk, // global clock for idelay_ctrl calibration
94 // inteface to control I/O delays and mmcm
95  input [7:0] dly_data, // delay value (3 LSB - fine delay)
96  input [6:0] dly_addr, // select which delay to program
97  input ld_delay, // load delay data to selected iodelayl (clk_div synchronous)
98  input set, // clk_div synchronous set all delays from previously loaded values
99  output locked_mmcm,
100  output locked_pll,
101  output dly_ready,
102  output dci_ready,
103 
108 
109  output [7:0] tmp_debug,
110 
111  output ps_rdy,
112  output [PHASE_WIDTH-1:0] ps_out,
113 // command port
114  input [31:0] phy_cmd_word,
115  output phy_cmd_nop,
116  output phy_cmd_add_pause, // one pause cycle (for 8-bursts)
117  input add_pause, // use previous command settings, just replace command with nop
118  output [CMD_PAUSE_BITS-1:0] pause_len,
120 // external memory buffer (cs- channel select, high addresses- page addresses are decoded externally)
121  output [63:0] buf_wdata, // data to be written to the buffer (from DDR3), valid @ negedge mclk
122  input [63:0] buf_rdata, // data read from the buffer (to DDR3)
123  output buf_wr, // write buffer (next cycle!)
124  output buf_rd, // read buffer (ready next cycle)
125  output buf_rst, // reset external buffer address to page start
126  // extras
127  input cmda_en, // tristate command and address lines // not likely to be used
128  input ddr_rst, // generate reset to DDR3 memory (active high)
129  input dci_rst, // active high - reset DCI circuitry
130  input dly_rst, // active high - delay calibration circuitry
131  input ddr_cke, // DDR clock enable , XOR-ed with command bit
132  input inv_clk_div,
133  input [7:0] dqs_pattern, // 8'h55
134  input [7:0] dqm_pattern, // 8'h00
135  input [ 3:0] dq_tri_on_pattern, // DQ tri-state control word, first when enabling output
136  input [ 3:0] dq_tri_off_pattern, // DQ tri-state control word, first after disabling output
137  input [ 3:0] dqs_tri_on_pattern, // DQS tri-state control word, first when enabling output
138  input [ 3:0] dqs_tri_off_pattern // DQS tri-state control word, first after disabling output
139 );
140 
141 // Decoding phy_cmd[35:0] into individual fields;
142  wire [ADDRESS_NUMBER-1:0] phy_addr_in; // also provides pause length when the command is NOP
143  wire [ 2:0] phy_bank_in;
144  wire [ 2:0] phy_rcw_pos; // positive lof=gic for RAS, CAS, WE (0 - NOP)
145  wire [ 2:0] phy_rcw_in; // {ras,cas,we}
146 
147  wire phy_odt_in; // may be optimized?
148  wire phy_cke_dis; // command bit 0: enable CKE, 1 - disable CKE
149  wire phy_cke_in; // may be optimized?
150  wire phy_sel_in; // first/second half-cycle, oter will be nop (cke+odt applicable to both)
153  wire phy_dq_tri_in; // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
154  wire phy_dqs_tri_in; // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
155  wire phy_dci_en_in; // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
156  wire phy_dci_in; // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
157  wire phy_dqs_toggle_en; //enable toggle DQS according to the pattern
158  wire phy_buf_wr; // connect to extrenal buffer
159  wire phy_buf_rd; // connect to extrenal buffer
160  wire phy_buf_rst; // reset buffers to page start
161  wire cmda_tri;
162 
163  wire [2:0] phy_rcw_cur; // {ras,cas,we}
164  wire phy_odt_cur; //
165  wire phy_cke_dis_cur; // disable cke (0 - enable), also controlled by a command bit ddr_cke (XOR-ed)
166  wire phy_sel_cur; // first/second half-cycle, oter will be nop (cke+odt applicable to both)
167  wire phy_dq_en_cur; //phy_dq_tri_in, // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
168  wire phy_dqs_en_cur; //phy_dqs_tri_in, // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
169  wire phy_dqs_toggle_cur;//enable toggle DQS according to the pattern
170  wire phy_dci_en_cur; //phy_dci_in, // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
171  wire phy_buf_wr_cur; // connect to external buffer (but only if not paused)
172  wire phy_buf_rd_cur; // connect to external buffer (but only if not paused)
174 
175  wire clk_div;
176 
177  reg [7:0] dly_data_r; // delay value (3 LSB - fine delay)
178  reg [6:0] dly_addr_r; // select which delay to program
179  reg ld_delay_r; // load delay data to selected iodelayl (clk_div synchronous)
180  reg set_r; // clk_div synchronous set all delays from previously loaded values
181 
182  wire [2*ADDRESS_NUMBER-1:0] phy_addr; // also provides pause length when the command is NOP
183  wire [ 5:0] phy_bank;
184  wire [ 5:0] phy_rcw; // {ras,cas,we}
185  wire [1:0] phy_odt; // may be optimized?
186  wire [1:0] phy_cke; // may be optphy_dqs_tri_inimized?
187  wire [7:0] phy_dq_tri; // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
188  wire [7:0] phy_dqs_tri; // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
191 
194  wire [PHASE_WIDTH-1:0] phy_ps_out;
200 
201 
203  wire [63:0] phy_rdata; // data read from ddr3 iserdese2 at posedge clk_div
204  reg [63:0] phy_rdata_r; // registered @ posedge mclk
205 
207  reg [ 2:0] phy_bank_prev;
209  wire [ 2:0] phy_bank_calm;
210  reg [ 9:0] extra_prev;
211 
212  assign {
213  phy_addr_in,
214  phy_bank_in,
215  phy_rcw_pos, // {ras,cas,we}
216  phy_odt_in, //
217  phy_cke_dis, // disable cke (0 - enable), also controlled by a command bit ddr_cke (XOR-ed)
218  phy_sel_in, // fitst/second half-cycle, oter will be nop (cke+odt applicable to both)
219  phy_dq_en_in, //phy_dq_tri_in, // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
220  phy_dqs_en_in, //phy_dqs_tri_in, // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
221  phy_dqs_toggle_en, //enable toggle DQS according to the pattern
222  phy_dci_en_in, //phy_dci_in, // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
223  phy_buf_wr, // connect to external buffer (but only if not paused)
224  phy_buf_rd, // connect to external buffer (but only if not paused)
225  phy_cmd_add_pause, // add nop to current command
226  phy_buf_rst // phy_spare // Reserved for future use
227  } = phy_cmd_word;
228 
229  assign {
230  phy_rcw_cur[2:0], // all set to 0
231  phy_odt_cur, // 9 8 ODT
232  phy_cke_dis_cur, // 8 7 disable cke (0 - enable), also controlled by a command bit ddr_cke (XOR-ed)
233  phy_sel_cur, // 7 6 first/second half-cycle, other will be nop (cke+odt applicable to both) - NOT USED?
234  phy_dq_en_cur, // 6 5 phy_dq_tri_in, // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
235  phy_dqs_en_cur, // 5 4 phy_dqs_tri_in, // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
236  phy_dqs_toggle_cur,// 4 3 enable toggle DQS according to the pattern
237  phy_dci_en_cur, // 3 2 phy_dci_in, // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
238  phy_buf_wr_cur, // 2 1 connect to external buffer (but only if not paused)
239  phy_buf_rd_cur, // 1 0 connect to external buffer (but only if not paused)
240  phy_buf_rst_cur // 0
241  } = add_pause ? {3'b0, extra_prev} : // 3'b0 for rcw (nop)
242  {
243  phy_rcw_pos[2:0], // {ras,cas,we}
244  phy_odt_in, // may be optimized?
245  phy_cke_dis, // disable cke (0 - enable), also controlled by a command bit ddr_cke (XOR-ed)
246  phy_sel_in, // first/second half-cycle, oter will be nop (cke+odt applicable to both)
247  phy_dq_en_in, //phy_dq_tri_in, // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
248  phy_dqs_en_in, //phy_dqs_tri_in, // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
249  phy_dqs_toggle_en, //enable toggle DQS according to the pattern
250  phy_dci_en_in, //phy_dci_in, // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
251  phy_buf_wr, // connect to external buffer (but only if not paused)
252  phy_buf_rd, // connect to external buffer (but only if not paused)
254  };
256  assign phy_dq_tri_in= ~phy_dq_en_cur;
258  assign phy_dci_in= ~phy_dci_en_cur;
259  assign phy_rcw_in= ~phy_rcw_cur;
260  assign phy_cmd_nop= (phy_rcw_pos==0) && !add_pause; // ignores inserted NOP
262  assign pause_len= phy_addr_in[CMD_DONE_BIT]? 0: phy_addr_in[CMD_PAUSE_BITS-1:0]; // protect from non-zero length with done bit
263 
266  assign buf_wr = phy_buf_wr_cur;
267  assign buf_rd = phy_buf_rd_cur;
268  assign buf_rst= phy_buf_rst_cur;
269 
270  assign phy_addr= {phy_addr_calm,phy_addr_calm}; // also provides pause length when the command is NOP
272  assign phy_rcw= {phy_sel_cur?phy_rcw_in:3'h7, phy_sel_cur?3'h7:phy_rcw_in}; // {ras,cas,we}
273  assign phy_odt= {phy_odt_cur,phy_odt_cur};
274  assign phy_cke= {phy_cke_in,phy_cke_in};
275 
276  // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
279  // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
282  assign phy_dci_dis_dq = phy_dci_in; // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
283  assign phy_dci_dis_dqs = phy_dci_in || phy_odt_cur; // In write leveling mode phy_dci_in = 0, phy_odt_cur=1 - use DCI on DQ only, no DQS
284 
285  assign ps_rdy = ps_rdy_r2;
286  assign ps_out = ps_out_r2;
287 
288  assign locked_mmcm = locked_mmcm_r2;
289  assign locked_pll = locked_pll_r2;
290  assign dly_ready = dly_ready_r2;
291  assign dci_ready = dci_ready_r2;
292 
293  assign buf_wdata[63:0] = phy_rdata_r[63:0];
294 
295  assign cmda_tri=!cmda_en;
296 
297  always @ (posedge mclk) begin
300  end
301 
302  always @ (posedge mclk) begin
303  if (mrst) begin
304  phy_addr_prev <= 0;
305  phy_bank_prev <= 0;
306  extra_prev <= 0;
307  end else if (!phy_cmd_nop) begin
310  extra_prev <= {
311  phy_odt_in, // 9 8 may be optimized?
312  phy_cke_dis, // 8 7 disable cke (0 - enable), also controlled by a command bit ddr_cke (XOR-ed)
313  phy_sel_in, // 7 6 first/second half-cycle, other will be nop (cke+odt applicable to both)
314  phy_dq_en_in, // 6 5 phy_dq_tri_in, // tristate DQ lines (internal timing sequencer for 0->1 and 1->0)
315  phy_dqs_en_in, // 5 4 phy_dqs_tri_in, // tristate DQS lines (internal timing sequencer for 0->1 and 1->0)
316  phy_dqs_toggle_en,// 4 3 enable toggle DQS according to the pattern
317  phy_dci_en_in, // 3 2 phy_dci_in, // DCI disable, both DQ and DQS lines (internal logic and timing sequencer for 0->1 and 1->0)
318  phy_buf_wr, // 2 1 connect to external buffer (but only if not paused)
319  phy_buf_rd, // 1 0 connect to external buffer (but only if not paused)
320  phy_buf_rst // 0 connect to external buffer (but only if not paused)
321  };
322 
323  end
324 
325  end
326 
327 // cross clock boundary posedge mclk -> posedge clk_div (mclk is later than clk_div)
328  reg rst_clk_div = 1;
329  always @ (posedge clk_div) rst_clk_div <= mrst;
330 
331  always @ (posedge clk_div) begin
332  if (rst_clk_div) begin
333  dly_data_r <= 0;
334  dly_addr_r <= 0;
335  ld_delay_r <= 0;
336  set_r <= 0;
337  end else begin
338  dly_data_r <= dly_data;
339  dly_addr_r <= dly_addr;
340  ld_delay_r <= ld_delay;
341  set_r <= set;
342  end
343  end
344 
345 
346 // cross clock boundary posedge posedge clk_div->negedge clk_div -> posedge mclk (mclk is later than clk_div)
347  always @ (negedge clk_div) begin
350 
355 
356  end
357  always @ (posedge mclk) begin
358  ps_rdy_r2 <= ps_rdy_r1;
359  ps_out_r2 <= ps_out_r1;
360 
365  end
366 
367 
368  always @ (negedge mclk) begin
369  phy_rdata_r[63:0] <= phy_rdata[63:0];
370  end
371 
372 
373 
374  wire [7:0] dqs_data;
375  assign dqs_data=phy_dqs_toggle_cur?dqs_pattern[7:0]:8'h0; // Has to be low to satisfy write levelling preamble
376 
378  .IOSTANDARD_DQ ("SSTL15_T_DCI"),
379  .IOSTANDARD_DM ("SSTL15"),
380  .IOSTANDARD_DQS ("DIFF_SSTL15_T_DCI"),
381  .IOSTANDARD_CMDA ("SSTL15"),
382  .IOSTANDARD_CLK ("DIFF_SSTL15"),
383  .SLEW_DQ (SLEW_DQ),
384  .SLEW_DQS (SLEW_DQS),
385  .SLEW_CMDA (SLEW_CMDA),
386  .SLEW_CLK (SLEW_CLK),
388  .IODELAY_GRP ("IODELAY_MEMORY"),
392  .PHASE_WIDTH (8),
393  .BANDWIDTH ("OPTIMIZED"),
400  .CLK_PHASE (CLK_PHASE),
404  .SS_EN (SS_EN),
405  .SS_MODE (SS_MODE),
407  ) phy_top_i (
408  .ddr3_nrst (SDRST), // output
409  .ddr3_clk (SDCLK), // output
410  .ddr3_nclk (SDNCLK), // output
411  .ddr3_a (SDA[ADDRESS_NUMBER-1:0]), // output[14:0]
412  .ddr3_ba (SDBA[2:0]), // output[2:0]
413  .ddr3_we (SDWE), // output
414  .ddr3_ras (SDRAS), // output
415  .ddr3_cas (SDCAS), // output
416  .ddr3_cke (SDCKE), // output
417  .ddr3_odt (SDODT), // output
418  .dq (SDD[15:0]), // inout[15:0]
419  .dml (SDDML), // inout
420  .dqsl (DQSL), // inout
421  .ndqsl (NDQSL), // inout
422  .dmu (SDDMU), // inout
423  .dqsu (DQSU), // inout
424  .ndqsu (NDQSU), // inout
425  .clk_in (clk_in), // input
426  .clk (), // output
427  .clk_div (clk_div), // output
428  .mclk (mclk), // output
429  .mrst (mrst), // input
430  .ref_clk (ref_clk), // input
432 
433  .rst_in (rst_in), // input
434  .ddr_rst (ddr_rst), // input
435  .dci_rst (dci_rst), // input
436  .dly_rst (dly_rst), // input
437  .in_a (phy_addr[2*ADDRESS_NUMBER-1:0]), // input[29:0]
438  .in_ba (phy_bank[5:0]), // input[5:0]
439  .in_we ({phy_rcw[3],phy_rcw[0]}), // input[1:0]
440  .in_ras ({phy_rcw[5],phy_rcw[2]}), // input[1:0]
441  .in_cas ({phy_rcw[4],phy_rcw[1]}), // input[1:0]
442  .in_cke (phy_cke), // input[1:0]
443  .in_odt (phy_odt), // input[1:0]
444  .in_tri (cmda_tri), // input
445  .din (buf_rdata[63:0]), // input[63:0]
446  .din_dm (dqm_pattern[7:0]), // input[7:0]
447  .tin_dq (phy_dq_tri[7:0]), // input[7:0]
448  .din_dqs (dqs_data), // input[7:0]
449  .tin_dqs (phy_dqs_tri[7:0]), // input[7:0]
450  .dout (phy_rdata[63:0]), // output[63:0] @posedge clk_div
451  .inv_clk_div (inv_clk_div), // input
452  .dci_disable_dqs (phy_dci_dis_dqs), // input
453  .dci_disable_dq (phy_dci_dis_dq), // input
454  .dly_data (dly_data_r), // input[7:0]
455  .dly_addr (dly_addr_r), // input[6:0]
456  .ld_delay (ld_delay_r), // input
457  .set (set_r), // input
458  .locked_mmcm (phy_locked_mmcm), // output
459  .locked_pll (phy_locked_pll), // output
460  .dly_ready (phy_dly_ready), // output
461  .dci_ready (phy_dci_ready), // output
462  .tmp_debug (tmp_debug[7:0]), // output[7:0]
463  .ps_rdy (phy_ps_rdy), // output
464  .ps_out (phy_ps_out) // output[7:0]
465  );
466 
467 endmodule
468 
[ 3:0] 6454dq_tri_on_pattern
Definition: phy_cmd.v:135
6375SLEW_DQ"SLOW"
Definition: phy_cmd.v:45
[15:0] 6407SDD
Definition: phy_cmd.v:80
[7:0] 6594tin_dq
Definition: phy_top.v:116
6513dly_ready_r2reg
Definition: phy_cmd.v:198
6461phy_rcw_inwire[2:0]
Definition: phy_cmd.v:145
6582dci_rst
Definition: phy_top.v:101
6479phy_cke_dis_curwire
Definition: phy_cmd.v:165
6410NDQSL
Definition: phy_cmd.v:83
6492set_rreg
Definition: phy_cmd.v:180
6520phy_addr_prevreg[ADDRESS_NUMBER-1:0]
Definition: phy_cmd.v:206
[7:0] 6420dly_data
Definition: phy_cmd.v:95
6565ddr3_odt
Definition: phy_top.v:82
6381HIGH_PERFORMANCE_MODE"FALSE"
Definition: phy_cmd.v:51
6578ref_clk
Definition: phy_top.v:97
6399SDNCLK
Definition: phy_cmd.v:71
6519phy_rdata_rreg[63:0]
Definition: phy_cmd.v:204
6490dly_addr_rreg[6:0]
Definition: phy_cmd.v:178
6478phy_odt_curwire
Definition: phy_cmd.v:164
6402SDWE
Definition: phy_cmd.v:74
6426dly_ready
Definition: phy_cmd.v:101
[1:0] 6586in_we
Definition: phy_top.v:106
[63:0] 6592din
Definition: phy_top.v:114
6498phy_dq_triwire[7:0]
Definition: phy_cmd.v:187
6567dml
Definition: phy_top.v:85
6599dci_disable_dqs
Definition: phy_top.v:123
6525rst_clk_divreg
Definition: phy_cmd.v:328
6485phy_buf_wr_curwire
Definition: phy_cmd.v:171
6462phy_odt_inwire
Definition: phy_cmd.v:147
6603ld_delay
Definition: phy_top.v:128
[ADDRESS_NUMBER-1:0] 6559ddr3_a
Definition: phy_top.v:76
6564ddr3_cke
Definition: phy_top.v:81
6511locked_pll_r2reg
Definition: phy_cmd.v:197
6493phy_addrwire[2*ADDRESS_NUMBER-1:0]
Definition: phy_cmd.v:182
6562ddr3_ras
Definition: phy_top.v:79
6581ddr_rst
Definition: phy_top.v:100
6425locked_pll
Definition: phy_cmd.v:100
phy_top_i phy_top
Definition: phy_cmd.v:377
[15:0] 6566dq
Definition: phy_top.v:84
6475phy_buf_rstwire
Definition: phy_cmd.v:160
6472phy_dqs_toggle_enwire
Definition: phy_cmd.v:157
6476cmda_triwire
Definition: phy_cmd.v:161
6495phy_rcwwire[5:0]
Definition: phy_cmd.v:184
6607dly_ready
Definition: phy_top.v:133
6515dci_ready_r2reg
Definition: phy_cmd.v:199
6409DQSL
Definition: phy_cmd.v:82
6499phy_dqs_triwire[7:0]
Definition: phy_cmd.v:188
[ADDRESS_NUMBER-1:0] 6400SDA
Definition: phy_cmd.v:72
[2:0] 6401SDBA
Definition: phy_cmd.v:73
6388CLK_PHASE0.000
Definition: phy_cmd.v:58
[ 3:0] 6455dq_tri_off_pattern
Definition: phy_cmd.v:136
[ 3:0] 6456dqs_tri_on_pattern
Definition: phy_cmd.v:137
6414clk_in
Definition: phy_cmd.v:88
6574clk
Definition: phy_top.v:93
6411SDDMU
Definition: phy_cmd.v:84
6570dmu
Definition: phy_top.v:88
6494phy_bankwire[5:0]
Definition: phy_cmd.v:183
6580rst_in
Definition: phy_top.v:99
6480phy_sel_curwire
Definition: phy_cmd.v:166
6477phy_rcw_curwire[2:0]
Definition: phy_cmd.v:163
[7:0] 6596tin_dqs
Definition: phy_top.v:118
6563ddr3_cas
Definition: phy_top.v:80
6416mclk
Definition: phy_cmd.v:90
6389CLK_DIV_PHASE0.000
Definition: phy_cmd.v:59
6473phy_buf_wrwire
Definition: phy_cmd.v:158
[1:0] 6590in_odt
Definition: phy_top.v:110
6415rst_in
Definition: phy_cmd.v:89
6458phy_addr_inwire[ADDRESS_NUMBER-1:0]
Definition: phy_cmd.v:142
6505phy_ps_outwire[PHASE_WIDTH-1:0]
Definition: phy_cmd.v:194
[7:0] 6601dly_data
Definition: phy_top.v:126
6610ps_rdy
Definition: phy_top.v:136
6384DIVCLK_DIVIDE1
Definition: phy_cmd.v:54
6448dci_rst
Definition: phy_cmd.v:129
6465phy_sel_inwire
Definition: phy_cmd.v:150
6471phy_dci_inwire
Definition: phy_cmd.v:156
6427dci_ready
Definition: phy_cmd.v:102
6444buf_rd
Definition: phy_cmd.v:124
6516ps_out_r1reg[PHASE_WIDTH-1:0]
Definition: phy_cmd.v:202
6405SDCKE
Definition: phy_cmd.v:77
6568dqsl
Definition: phy_top.v:86
6406SDODT
Definition: phy_cmd.v:78
6569ndqsl
Definition: phy_top.v:87
6466phy_dq_en_inwire
Definition: phy_cmd.v:151
6385CLKFBOUT_USE_FINE_PS1
Definition: phy_cmd.v:55
6497phy_ckewire[1:0]
Definition: phy_cmd.v:186
6376SLEW_DQS"SLOW"
Definition: phy_cmd.v:46
6395CMD_PAUSE_BITS10
Definition: phy_cmd.v:65
6510locked_pll_r1reg
Definition: phy_cmd.v:197
6507ps_rdy_r2reg
Definition: phy_cmd.v:195
6431phy_dci_ready
Definition: phy_cmd.v:107
6557ddr3_clk
Definition: phy_top.v:74
6393SS_MODE"CENTER_HIGH"
Definition: phy_cmd.v:63
[ 3:0] 6457dqs_tri_off_pattern
Definition: phy_cmd.v:138
6398SDCLK
Definition: phy_cmd.v:70
6463phy_cke_diswire
Definition: phy_cmd.v:148
[6:0] 6421dly_addr
Definition: phy_cmd.v:96
6464phy_cke_inwire
Definition: phy_cmd.v:149
6509locked_mmcm_r2reg
Definition: phy_cmd.v:196
6474phy_buf_rdwire
Definition: phy_cmd.v:159
6577mrst
Definition: phy_top.v:96
6422ld_delay
Definition: phy_cmd.v:97
[7:0] 6609tmp_debug
Definition: phy_top.v:135
6523phy_bank_calmwire[2:0]
Definition: phy_cmd.v:209
6583dly_rst
Definition: phy_top.v:102
6459phy_bank_inwire[2:0]
Definition: phy_cmd.v:143
6500phy_dci_dis_dqwire
Definition: phy_cmd.v:189
6391REF_JITTER10.010
Definition: phy_cmd.v:61
6573clk_in
Definition: phy_top.v:92
6470phy_dci_en_inwire
Definition: phy_cmd.v:155
[1:0] 6588in_cas
Definition: phy_top.v:108
6387SDCLK_PHASE0.000
Definition: phy_cmd.v:57
6403SDRAS
Definition: phy_cmd.v:75
6383CLKFBOUT_MULT8
Definition: phy_cmd.v:53
6437phy_cmd_add_pause
Definition: phy_cmd.v:116
6417mrst
Definition: phy_cmd.v:91
[1:0] 6589in_cke
Definition: phy_top.v:109
6518phy_rdatawire[63:0]
Definition: phy_cmd.v:203
6491ld_delay_rreg
Definition: phy_cmd.v:179
6501phy_dci_dis_dqswire
Definition: phy_cmd.v:190
6423set
Definition: phy_cmd.v:98
6443buf_wr
Definition: phy_cmd.v:123
[1:0] 6587in_ras
Definition: phy_top.v:107
6514dci_ready_r1reg
Definition: phy_cmd.v:199
6517ps_out_r2reg[PHASE_WIDTH-1:0]
Definition: phy_cmd.v:202
6382CLKIN_PERIOD10
Definition: phy_cmd.v:52
6446cmda_en
Definition: phy_cmd.v:127
6579idelay_ctrl_reset
Definition: phy_top.v:98
6386CLKFBOUT_PHASE0.000
Definition: phy_cmd.v:56
6571dqsu
Definition: phy_top.v:89
[PHASE_WIDTH-1:0] 6434ps_out
Definition: phy_cmd.v:112
[7:0] 6452dqs_pattern
Definition: phy_cmd.v:133
6488clk_divwire
Definition: phy_cmd.v:175
6440sequence_done
Definition: phy_cmd.v:119
6374PHASE_WIDTH8
Definition: phy_cmd.v:44
6489dly_data_rreg[7:0]
Definition: phy_cmd.v:177
6418ref_clk
Definition: phy_cmd.v:92
6430phy_dly_ready
Definition: phy_cmd.v:106
real 6380REFCLK_FREQUENCY300.0
Definition: phy_cmd.v:50
6487phy_buf_rst_curwire
Definition: phy_cmd.v:173
6408SDDML
Definition: phy_cmd.v:81
6504phy_ps_rdywire
Definition: phy_cmd.v:193
6604set
Definition: phy_top.v:129
[7:0] 6595din_dqs
Definition: phy_top.v:117
6445buf_rst
Definition: phy_cmd.v:125
[63:0] 6441buf_wdata
Definition: phy_cmd.v:121
6591in_tri
Definition: phy_top.v:112
[5:0] 6585in_ba
Definition: phy_top.v:105
6502dqs_tri_prevreg
Definition: phy_cmd.v:192
6558ddr3_nclk
Definition: phy_top.v:75
6424locked_mmcm
Definition: phy_cmd.v:99
6481phy_dq_en_curwire
Definition: phy_cmd.v:167
6433ps_rdy
Definition: phy_cmd.v:111
6512dly_ready_r1reg
Definition: phy_cmd.v:198
6404SDCAS
Definition: phy_cmd.v:76
6572ndqsu
Definition: phy_top.v:90
[63:0] 6442buf_rdata
Definition: phy_cmd.v:122
6451inv_clk_div
Definition: phy_cmd.v:132
6449dly_rst
Definition: phy_cmd.v:130
[2*ADDRESS_NUMBER-1:0] 6584in_a
Definition: phy_top.v:104
[63:0] 6597dout
Definition: phy_top.v:119
[7:0] 6453dqm_pattern
Definition: phy_cmd.v:134
[7:0] 6593din_dm
Definition: phy_top.v:115
6576mclk
Definition: phy_top.v:95
6483phy_dqs_toggle_curwire
Definition: phy_cmd.v:169
6506ps_rdy_r1reg
Definition: phy_cmd.v:195
6482phy_dqs_en_curwire
Definition: phy_cmd.v:168
[2:0] 6560ddr3_ba
Definition: phy_top.v:77
6600dci_disable_dq
Definition: phy_top.v:124
6484phy_dci_en_curwire
Definition: phy_cmd.v:170
6394SS_MOD_PERIOD10000
Definition: phy_cmd.v:64
6508locked_mmcm_r1reg
Definition: phy_cmd.v:196
6378SLEW_CLK"SLOW"
Definition: phy_cmd.v:48
6521phy_bank_prevreg[2:0]
Definition: phy_cmd.v:207
6608dci_ready
Definition: phy_top.v:134
6447ddr_rst
Definition: phy_cmd.v:128
6438add_pause
Definition: phy_cmd.v:117
6503dq_tri_prevreg
Definition: phy_cmd.v:192
6460phy_rcw_poswire[2:0]
Definition: phy_cmd.v:144
6436phy_cmd_nop
Definition: phy_cmd.v:115
6419idelay_ctrl_reset
Definition: phy_cmd.v:93
6486phy_buf_rd_curwire
Definition: phy_cmd.v:172
[6:0] 6602dly_addr
Definition: phy_top.v:127
[31:0] 6435phy_cmd_word
Definition: phy_cmd.v:114
6397SDRST
Definition: phy_cmd.v:69
6524extra_prevreg[9:0]
Definition: phy_cmd.v:210
6390MCLK_PHASE90.000
Definition: phy_cmd.v:60
6396CMD_DONE_BIT10
Definition: phy_cmd.v:66
6450ddr_cke
Definition: phy_cmd.v:131
6379IBUF_LOW_PWR"TRUE"
Definition: phy_cmd.v:49
6606locked_pll
Definition: phy_top.v:132
6377SLEW_CMDA"SLOW"
Definition: phy_cmd.v:47
6467phy_dqs_en_inwire
Definition: phy_cmd.v:152
[PHASE_WIDTH-1:0] 6611ps_out
Definition: phy_top.v:137
6412DQSU
Definition: phy_cmd.v:85
6428phy_locked_mmcm
Definition: phy_cmd.v:104
[7:0] 6432tmp_debug
Definition: phy_cmd.v:109
6605locked_mmcm
Definition: phy_top.v:131
6526dqs_datawire[7:0]
Definition: phy_cmd.v:374
6561ddr3_we
Definition: phy_top.v:78
6598inv_clk_div
Definition: phy_top.v:122
6556ddr3_nrst
Definition: phy_top.v:73
6468phy_dq_tri_inwire
Definition: phy_cmd.v:153
6469phy_dqs_tri_inwire
Definition: phy_cmd.v:154
6429phy_locked_pll
Definition: phy_cmd.v:105
6496phy_odtwire[1:0]
Definition: phy_cmd.v:185
6392SS_EN"FALSE"
Definition: phy_cmd.v:62
6413NDQSU
Definition: phy_cmd.v:86
6522phy_addr_calmwire[ADDRESS_NUMBER-1:0]
Definition: phy_cmd.v:208
6373ADDRESS_NUMBER15
Definition: phy_cmd.v:43
[CMD_PAUSE_BITS-1:0] 6439pause_len
Definition: phy_cmd.v:118
6575clk_div
Definition: phy_top.v:94