x393  1.0
FPGAcodeforElphelNC393camera
dqs_single_nofine.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
41  parameter IODELAY_GRP ="IODELAY_MEMORY",
42  parameter integer IDELAY_VALUE = 0, // same scale as for fine delay
43  parameter integer ODELAY_VALUE = 0,
44  parameter IBUF_LOW_PWR ="TRUE",
45  parameter IOSTANDARD = "DIFF_SSTL15_T_DCI",
46  parameter SLEW = "SLOW",
47  parameter real REFCLK_FREQUENCY = 300.0,
48  parameter HIGH_PERFORMANCE_MODE = "FALSE"
49 
50 )(
51  inout dqs,
52  inout ndqs,
53  input clk,
54  input clk_div,
55  input rst,
57 // output dqs_di, // debugging:
58  //Input buffer ddrc_sequencer_i/phy_cmd_i/phy_top_i/byte_lane0_i/dqs_i/iobufs_dqs_i/IBUFDS/IBUFDS_S (in ddrc_sequencer_i/phy_cmd_i/phy_top_i/byte_lane0_i/dqs_i/iobufs_dqs_i macro) has no loads. An input buffer must drive an internal load.
59 
60  input dci_disable, // disable DCI termination during writes and idle
61  input [7:0] dly_data,
62  input [3:0] din,
63  input [3:0] tin,
64  input set_odelay,
65  input ld_odelay,
66  input set_idelay,
67  input ld_idelay
68 );
69 wire d_ser;
70 wire dqs_tri;
72 wire dqs_di;
73 
74 
75 oserdes_mem oserdes_i (
76  .clk(clk), // serial output clock
77  .clk_div(clk_div), // oclk divided by 2, front aligned
78  .rst(rst), // reset
79  .din(din[3:0]), // parallel data in
80  .tin(tin[3:0]), // parallel tri-state in
81  .dout_dly(d_ser), // data out to be connected to odelay input
82  .dout_iob(), // data out to be connected directly to the output buffer
83  .tout_dly(), // tristate out to be connected to odelay input
84  .tout_iob(dqs_tri) // tristate out to be connected directly to the tristate control of the output buffer
85 );
88  .DELAY_VALUE(ODELAY_VALUE),
91 ) dqs_out_dly_i(
92  .clk(clk_div),
93  .rst(rst),
94  .set(set_odelay),
95  .ld(ld_odelay),
96  .delay(dly_data[7:0]),
97  .data_in(d_ser),
99 );
100 
102  .DIFF_TERM("FALSE"),
103  .DQS_BIAS("TRUE"), // outputs 1'b0 when IOB is floating
106  .SLEW(SLEW),
107  .USE_IBUFDISABLE("FALSE")
108 ) iobufs_dqs_i (
109  .O(dqs_di),
110  .IO(dqs),
111  .IOB(ndqs),
112  .DCITERMDISABLE(dci_disable),
113  .IBUFDISABLE(1'b0),
114  .I(dqs_data_dly), //dqs_data),
115  .T(dqs_tri));
118  .DELAY_VALUE(IDELAY_VALUE>>3),
121 ) dqs_in_dly_i(
122  .clk(clk_div),
123  .rst(rst),
124  .set(set_idelay),
125  .ld(ld_idelay),
126  .delay(dly_data[7:3]),
127  .data_in(dqs_di),
129 );
130 endmodule
131 
real 6166REFCLK_FREQUENCY300.0
6160IODELAY_GRP"IODELAY_MEMORY"
dqs_in_dly_i idelay_nofine
[MODE_DDR=="TRUE"?3:1:0] 11538din
Definition: oserdes_mem.v:48
dqs_out_dly_i odelay_fine_pipe
6164IOSTANDARD"DIFF_SSTL15_T_DCI"
[MODE_DDR=="TRUE"?3:0:0] 11539tin
Definition: oserdes_mem.v:50
6167HIGH_PERFORMANCE_MODE"FALSE"
iobufs_dqs_i IOBUFDS_DCIEN
[4:0] 11280delay
Definition: idelay_nofine.v:52