Entity: erx_io
- File: erx_io.v
Diagram
Description
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| PLATFORM | `CFG_PLATFORM | ||
| IOSTD_ELINK | "LVDS_25" | ||
| PW | 104 | ||
| ETYPE | 1 | 0=parallella |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| erx_io_nreset | input | high sped reset | |
| rx_lclk | input | fast I/O clock | |
| rx_lclk_div4 | input | slow clock | |
| rx_clkin | output | clock output for pll | |
| idelay_value | input | [44:0] | ########################## idelays ######################### |
| load_taps | input | ||
| rxi_lclk_p | input | rx clock input | |
| rxi_lclk_n | input | rx clock input | |
| rxi_frame_p | input | rx frame signal | |
| rxi_frame_n | input | rx frame signal | |
| rxi_data_p | input | [7:0] | rx data |
| rxi_data_n | input | [7:0] | rx data |
| rxo_wr_wait_p | output | rx write pushback output | |
| rxo_wr_wait_n | output | rx write pushback output | |
| rxo_rd_wait_p | output | rx read pushback output | |
| rxo_rd_wait_n | output | rx read pushback output | |
| rx_access | output | ########################### erx logic interface ########################## | |
| rx_burst | output | ||
| rx_packet | output | [PW-1:0] | |
| rx_wr_wait | input | ||
| rx_rd_wait | input |
Signals
| Name | Type | Description |
|---|---|---|
| rxi_data | wire [7:0] | ############ # WIRES ############ |
| rxi_frame | wire | |
| rxi_lclk | wire | |
| access_wide | wire | |
| rx_word_iddr | wire [15:0] | |
| rx_frame_iddr | wire | |
| valid_packet | reg | ############ # REGS ############ |
| rx_word_sync | reg [15:0] | |
| rx_sample | reg [111:0] | |
| rx_pointer | reg [6:0] | |
| access | reg | |
| burst | reg | |
| rx_packet_lclk | reg [PW-1:0] | |
| rx_access | reg | |
| rx_packet | reg [PW-1:0] | |
| rx_burst | reg | |
| rxi_delay_in | wire [8:0] | |
| rxi_delay_out | wire [8:0] | |
| burst_detect | reg | |
| valid | reg [3:0] | |
| rx_frame | reg | ####################################### #Register DDR inputs for better timing ####################################### |
| rx_word | reg [15:0] | |
| rx_lclk_iddr | wire | ################################### #RX CLOCK for IDDR ################################### |
Processes
- unnamed: ( @ (posedge rx_lclk) )
Type: always
- unnamed: ( @ (posedge rx_lclk or negedge erx_io_nreset) )
Type: always
Description
##################### #CREATE 112 BIT PACKET ##################### write Pointer
- unnamed: ( @ (posedge rx_lclk) )
Type: always
Description
middle of frame convert to 112 bit packet
- unnamed: ( @ (posedge rx_lclk) )
Type: always
Description
if (rx_frame) ##################### #DATA VALID SIGNAL ####################
- unnamed: ( @ (posedge rx_lclk or negedge erx_io_nreset) )
Type: always
- unnamed: ( @ (posedge rx_lclk or negedge erx_io_nreset) )
Type: always
Description
################################### #SAMPLE AND HOLD DATA ################################### (..and shuffle data for 104 bit packet) seems redundant??? for burst??
- unnamed: ( @ (posedge rx_lclk) )
Type: always
- unnamed: ( @ (posedge rx_lclk) )
Type: always
Description
################################### #SYNCHRONIZE TO SLOW CLK ################################### stretch access pulse to 4 cycles use shift register for speed TODO: simplify
- unnamed: ( @ (posedge rx_lclk_div4) )
Type: always
Description
access
- unnamed: ( @ (posedge rx_lclk_div4) )
Type: always
Description
packet
- unnamed: ( @ (posedge rx_lclk_div4) )
Type: always
Description
burst
Instantiations
- ibuf_data[7:0]: IBUFDS
Description
################################
I/O Buffers Instantiation
################################
- ibuf_frame: IBUFDS
- ibuf_lclk: IBUFDS
- ibuf_lclk: IBUFDS
- i_bufio0: BUFIO
Description
for iddr