x393  1.0
FPGAcodeforElphelNC393camera
pxd_clock.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module pxd_clock #(
42  parameter IODELAY_GRP ="IODELAY_SENSOR", // may need different for different channels?
43  parameter integer IDELAY_VALUE = 0,
44  parameter integer PXD_DRIVE = 12,
45  parameter PXD_IBUF_LOW_PWR = "TRUE",
46  parameter PXD_IOSTANDARD = "DEFAULT",
47  parameter PXD_SLEW = "SLOW",
48  parameter real REFCLK_FREQUENCY = 300.0,
49  parameter HIGH_PERFORMANCE_MODE = "FALSE"
50 
51 ) (
52  inout pxclk, // I/O pad
53  input pxclk_out, // data to be sent out through the pad (normally not used)
54  input pxclk_en, // enable data output (normally not used)
55  output pxclk_in, // data output - delayed pad data
56  input rst, // reset
57  input mclk, // clock for setting delay values
58  input [7:0] dly_data, // delay value (3 LSB - fine delay) - @posedge mclk
59  input set_idelay, // mclk synchronous load idelay value
60  input ld_idelay // mclk synchronous set idealy value
61 );
63 
64  iobuf #(
65  .DRIVE (PXD_DRIVE),
66  .IBUF_LOW_PWR (PXD_IBUF_LOW_PWR),
67  .IOSTANDARD (PXD_IOSTANDARD),
68  .SLEW (PXD_SLEW)
69  ) iobuf_pxclk_i (
70  .O (pxclk_iobuf), // output
71  .IO (pxclk), // inout
72  .I (pxclk_out), // input
73  .T (!pxclk_en) // input
74  );
75 /*
76 //finedelay not supported by HR banks?
77  idelay_fine_pipe # (
78  .IODELAY_GRP (IODELAY_GRP),
79  .DELAY_VALUE (IDELAY_VALUE),
80  .REFCLK_FREQUENCY (REFCLK_FREQUENCY),
81  .HIGH_PERFORMANCE_MODE (HIGH_PERFORMANCE_MODE)
82  ) pxclk_dly_i(
83  .clk (mclk),
84  .rst (rst),
85  .set (set_idelay),
86  .ld (ld_idelay),
87  .delay (dly_data[7:0]),
88  .data_in (pxclk_iobuf),
89  .data_out (pxclk_in)
90  );
91 */
94  .DELAY_VALUE (IDELAY_VALUE),
97  ) pxclk_dly_i(
98  .clk (mclk),
99  .rst (rst),
100  .set (set_idelay),
101  .ld (ld_idelay),
102  .delay (dly_data[7:3]),
103  .data_in (pxclk_iobuf),
104  .data_out (pxclk_in)
105  );
106 
107 
108 endmodule
109 
6792PXD_IBUF_LOW_PWR"TRUE"
Definition: pxd_clock.v:45
6799pxclk_en
Definition: pxd_clock.v:54
6794PXD_SLEW"SLOW"
Definition: pxd_clock.v:47
11290T
Definition: iobuf.v:51
6806pxclk_iobufwire
Definition: pxd_clock.v:62
6789IODELAY_GRP"IODELAY_SENSOR"
Definition: pxd_clock.v:42
[7:0] 6803dly_data
Definition: pxd_clock.v:58
6805ld_idelay
Definition: pxd_clock.v:60
11288IO
Definition: iobuf.v:49
pxclk_dly_i idelay_nofine
Definition: pxd_clock.v:92
real 6795REFCLK_FREQUENCY300.0
Definition: pxd_clock.v:48
6796HIGH_PERFORMANCE_MODE"FALSE"
Definition: pxd_clock.v:49
6798pxclk_out
Definition: pxd_clock.v:53
6793PXD_IOSTANDARD"DEFAULT"
Definition: pxd_clock.v:46
6804set_idelay
Definition: pxd_clock.v:59
[4:0] 11280delay
Definition: idelay_nofine.v:52
iobuf_pxclk_i iobuf
Definition: pxd_clock.v:64
integer 6791PXD_DRIVE12
Definition: pxd_clock.v:44
integer 6790IDELAY_VALUE0
Definition: pxd_clock.v:43
6800pxclk_in
Definition: pxd_clock.v:55
11287O
Definition: iobuf.v:48
11289I
Definition: iobuf.v:50