| `default_nettype none |
| |
| // ============================================================================ |
| |
| module idelay_calibrator # |
| ( |
| parameter SITE_LOC = "" |
| ) |
| ( |
| input wire refclk, // REFCLK for IDELAYCTRL |
| input wire rst, // External reset |
| |
| output wire rdy // Output ready signal |
| ); |
| |
| // ============================================================================ |
| // Long reset generator (~60ns for Artix 7 according to the datasheet) |
| |
| reg [6:0] r_cnt; |
| wire r_rst; |
| |
| initial r_cnt <= 0; |
| |
| always @(posedge refclk) |
| if (rst) |
| r_cnt <= 0; |
| else if (r_rst) |
| r_cnt <= r_cnt + 1; |
| |
| assign r_rst = !r_cnt[6]; |
| |
| // ============================================================================ |
| // IDELAYCTRL |
| |
| (* KEEP, DONT_TOUCH, LOC = SITE_LOC *) |
| IDELAYCTRL idelayctlr |
| ( |
| .REFCLK (refclk), |
| .RST (r_rst), |
| .RDY (rdy) |
| ); |
| |
| endmodule |