mirror of
https://github.com/fpganinja/taxi.git
synced 2026-04-07 12:38:44 -07:00
cndm: Add register to RC path from PCIe HIP to improve timing performance
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
cndm_lite_pcie_us.sv
|
cndm_lite_pcie_us.sv
|
||||||
cndm_lite_core.f
|
cndm_lite_core.f
|
||||||
|
../lib/taxi/src/axis/rtl/taxi_axis_register.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_axil_master.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_axil_master.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_msi.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_msi.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_cfg.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_cfg.sv
|
||||||
|
|||||||
@@ -318,6 +318,35 @@ always_ff @(posedge pcie_clk) begin
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
// Register on RC path to break timing paths from PCIe HIP
|
||||||
|
// The HIP commonly has some combination of long clock-to-output delays
|
||||||
|
// and/or a 500 MHz to 250 MHz multicycle path
|
||||||
|
taxi_axis_if #(
|
||||||
|
.DATA_W(s_axis_pcie_rc.DATA_W),
|
||||||
|
.KEEP_EN(1),
|
||||||
|
.KEEP_W(s_axis_pcie_rc.KEEP_W),
|
||||||
|
.USER_EN(1),
|
||||||
|
.USER_W(s_axis_pcie_rc.USER_W)
|
||||||
|
) axis_pcie_rc_int();
|
||||||
|
|
||||||
|
taxi_axis_register #(
|
||||||
|
.REG_TYPE(2)
|
||||||
|
)
|
||||||
|
rc_reg_inst (
|
||||||
|
.clk(pcie_clk),
|
||||||
|
.rst(pcie_rst),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI4-Stream input (sink)
|
||||||
|
*/
|
||||||
|
.s_axis(s_axis_pcie_rc),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI4-Stream output (source)
|
||||||
|
*/
|
||||||
|
.m_axis(axis_pcie_rc_int)
|
||||||
|
);
|
||||||
|
|
||||||
taxi_dma_if_pcie_us #(
|
taxi_dma_if_pcie_us #(
|
||||||
.RQ_SEQ_NUM_W(RQ_SEQ_NUM_W),
|
.RQ_SEQ_NUM_W(RQ_SEQ_NUM_W),
|
||||||
.RQ_SEQ_NUM_EN(RQ_SEQ_NUM_EN),
|
.RQ_SEQ_NUM_EN(RQ_SEQ_NUM_EN),
|
||||||
@@ -339,7 +368,7 @@ dma_if_inst (
|
|||||||
* UltraScale PCIe interface
|
* UltraScale PCIe interface
|
||||||
*/
|
*/
|
||||||
.m_axis_rq(m_axis_pcie_rq),
|
.m_axis_rq(m_axis_pcie_rq),
|
||||||
.s_axis_rc(s_axis_pcie_rc),
|
.s_axis_rc(axis_pcie_rc_int),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Transmit sequence number input
|
* Transmit sequence number input
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
cndm_micro_pcie_us.sv
|
cndm_micro_pcie_us.sv
|
||||||
cndm_micro_core.f
|
cndm_micro_core.f
|
||||||
|
../lib/taxi/src/axis/rtl/taxi_axis_register.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_axil_master.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_axil_master.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_msi.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_msi.sv
|
||||||
../lib/taxi/src/pcie/rtl/taxi_pcie_us_cfg.sv
|
../lib/taxi/src/pcie/rtl/taxi_pcie_us_cfg.sv
|
||||||
|
|||||||
@@ -318,6 +318,35 @@ always_ff @(posedge pcie_clk) begin
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
// Register on RC path to break timing paths from PCIe HIP
|
||||||
|
// The HIP commonly has some combination of long clock-to-output delays
|
||||||
|
// and/or a 500 MHz to 250 MHz multicycle path
|
||||||
|
taxi_axis_if #(
|
||||||
|
.DATA_W(s_axis_pcie_rc.DATA_W),
|
||||||
|
.KEEP_EN(1),
|
||||||
|
.KEEP_W(s_axis_pcie_rc.KEEP_W),
|
||||||
|
.USER_EN(1),
|
||||||
|
.USER_W(s_axis_pcie_rc.USER_W)
|
||||||
|
) axis_pcie_rc_int();
|
||||||
|
|
||||||
|
taxi_axis_register #(
|
||||||
|
.REG_TYPE(2)
|
||||||
|
)
|
||||||
|
rc_reg_inst (
|
||||||
|
.clk(pcie_clk),
|
||||||
|
.rst(pcie_rst),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI4-Stream input (sink)
|
||||||
|
*/
|
||||||
|
.s_axis(s_axis_pcie_rc),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AXI4-Stream output (source)
|
||||||
|
*/
|
||||||
|
.m_axis(axis_pcie_rc_int)
|
||||||
|
);
|
||||||
|
|
||||||
taxi_dma_if_pcie_us #(
|
taxi_dma_if_pcie_us #(
|
||||||
.RQ_SEQ_NUM_W(RQ_SEQ_NUM_W),
|
.RQ_SEQ_NUM_W(RQ_SEQ_NUM_W),
|
||||||
.RQ_SEQ_NUM_EN(RQ_SEQ_NUM_EN),
|
.RQ_SEQ_NUM_EN(RQ_SEQ_NUM_EN),
|
||||||
@@ -339,7 +368,7 @@ dma_if_inst (
|
|||||||
* UltraScale PCIe interface
|
* UltraScale PCIe interface
|
||||||
*/
|
*/
|
||||||
.m_axis_rq(m_axis_pcie_rq),
|
.m_axis_rq(m_axis_pcie_rq),
|
||||||
.s_axis_rc(s_axis_pcie_rc),
|
.s_axis_rc(axis_pcie_rc_int),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Transmit sequence number input
|
* Transmit sequence number input
|
||||||
|
|||||||
Reference in New Issue
Block a user