//First Rx JESD204 core
jesd204_v4_0_top #(
.C_ELABORATION_TRANSIENT_DIR (C_ELABORATION_TRANSIENT_DIR),
.C_COMPONENT_NAME (C_COMPONENT_NAME),
.C_FAMILY (C_FAMILY),
.C_NODE_IS_TRANSMIT (0),
.C_LANES (2),
.C_USE_BRAM (C_USE_BRAM),
.C_LMFC_BUFFER_SIZE (C_LMFC_BUFFER_SIZE),
.C_DEVICE_SUBCLASS (C_DEVICE_SUBCLASS)
)
i_jesd204_0_rx_0 (
// Clk and Reset
.clk (rx_core_clk),
.rst (rx_core_rst),
// Common
.support_lane_sync (rx_cfg_support_lane_sync),
.lanes_in_use (rx_cfg_lanes_in_use),
.test_modes (rx_cfg_test_modes),
.start_of_frame (rx_start_of_frame),
.start_of_multiframe (),
.end_of_frame (rx_end_of_frame),
.sysref_always (rx_cfg_sysref_always),
.sysref_in (rx_sysref_r),
.sysref_out (),
// Rx
.octets_per_frame (rx_cfg_octets_per_frame),
.scram_enable (rx_cfg_scram_enable),
.frames_per_multiframe (rx_cfg_frames_per_multi),
.rx_buffer_delay (rx_cfg_buffer_delay),
.rx_buffer_adjust (rx_buffer_adjust[19:0]),
.disable_error_reporting (rx_cfg_disable_error_reporting),
.init0 (rx_init0[63:0]),
.init1 (rx_init1[63:0]),
.init2 (rx_init2[63:0]),
.init3 (rx_init3[63:0]),
.test_err_count (rx_test_err_count[63:0]),
.test_ila_count (rx_test_ila_count[63:0]),
.test_mf_count (rx_test_mf_count[63:0]),
.rxdata (rxdata[63:0]),
.rxcharisk (rxcharisk[7:0]),
.rxdisperr (rxdisperr[7:0]),
.rxnotintable (rxnotintable[7:0]),
.rx_sync (rx_sync_i_1),
.encommaalign (rxencommaalign),
.rxdataout (rxdataout[63:0]),
.frame_error (rx_frame_error[7:0]),
// Tx ports (unused)
.multi_frames (8'b0),
.tx_cfg_f (8'b0),
.tx_cfg_k (5'b0),
.tx_cfg_scr (1'b0),
.tx_cfg_did (8'b0),
.tx_cfg_bid (4'b0),
.tx_cfg_m (8'b0),
.tx_cfg_cs (2'b0),
.tx_cfg_n (5'b0),
.tx_cfg_np (5'b0),
.tx_cfg_s (5'b0),
.tx_cfg_hd (1'b0),
.tx_cfg_res1 (8'b0),
.tx_cfg_res2 (8'b0),
.tx_cfg_cf (5'b0),
.tx_cfg_adjcnt (4'b0),
.tx_cfg_adjdir (1'b0),
.tx_cfg_phadj (1'b0),
.tx_cfg_cs_all (1'b0),
.tx_sync (1'b0),
.txdatain (64'b0),
.txdata (),
.txcharisk ()
);
//Second Rx JESD204 core
jesd204_v4_0_top #(
.C_ELABORATION_TRANSIENT_DIR (C_ELABORATION_TRANSIENT_DIR),
.C_COMPONENT_NAME (C_COMPONENT_NAME),
.C_FAMILY (C_FAMILY),
.C_NODE_IS_TRANSMIT (0),
.C_LANES (2),
.C_USE_BRAM (C_USE_BRAM),
.C_LMFC_BUFFER_SIZE (C_LMFC_BUFFER_SIZE),
.C_DEVICE_SUBCLASS (C_DEVICE_SUBCLASS)
)
i_jesd204_rx_1 (
// Clk and Reset
.clk (rx_core_clk),
.rst (rx_core_rst),
// Common
.support_lane_sync (rx_cfg_support_lane_sync),
.lanes_in_use (rx_cfg_lanes_in_use),
.test_modes (rx_cfg_test_modes),
.start_of_frame (rx_start_of_frame2),
.start_of_multiframe (),
.end_of_frame (end_of_frame2),
.sysref_always (rx_cfg_sysref_always),
.sysref_in (rx_sysref_r),
.sysref_out (),
// Rx
.octets_per_frame (rx_cfg_octets_per_frame),
.scram_enable (rx_cfg_scram_enable),
.frames_per_multiframe (rx_cfg_frames_per_multi),
.rx_buffer_delay (rx_cfg_buffer_delay),
.rx_buffer_adjust (rx_buffer_adjust[39:20]),
.disable_error_reporting (rx_cfg_disable_error_reporting),
.init0 (rx_init0[127:64]),
.init1 (rx_init1[127:64]),
.init2 (rx_init2[127:64]),
.init3 (rx_init3[127:64]),
.test_err_count (rx_test_err_count[127:64]),
.test_ila_count (rx_test_ila_count[127:64]),
.test_mf_count (rx_test_mf_count[127:64]),
.rxdata (rxdata[127:64]),
.rxcharisk (rxcharisk[15:8]),
.rxdisperr (rxdisperr[15:8]),
.rxnotintable (rxnotintable[15:8]),
.rx_sync (rx_sync_i_2),
.encommaalign (rxencommaalign),
.rxdataout (rxdataout[127:64]),
.frame_error (rx_frame_error[15:8]),
// Tx ports (unused)
.multi_frames (8'b0),
.tx_cfg_f (8'b0),
.tx_cfg_k (5'b0),
.tx_cfg_scr (1'b0),
.tx_cfg_did (8'b0),
.tx_cfg_bid (4'b0),
.tx_cfg_m (8'b0),
.tx_cfg_cs (2'b0),
.tx_cfg_n (5'b0),
.tx_cfg_np (5'b0),
.tx_cfg_s (5'b0),
.tx_cfg_hd (1'b0),
.tx_cfg_res1 (8'b0),
.tx_cfg_res2 (8'b0),
.tx_cfg_cf (5'b0),
.tx_cfg_adjcnt (4'b0),
.tx_cfg_adjdir (1'b0),
.tx_cfg_phadj (1'b0),
.tx_cfg_cs_all (1'b0),
.tx_sync (1'b0),
.txdatain (64'b0),
.txdata (),
.txcharisk ()
);
7. Locate the following lines of code:
This takes the two sync outputs from each Rx core and combines them into one.
8. Locate the following piece of code