updates to testbench and using Xilinx width converter
This commit is contained in:
parent
641e371e01
commit
ace41c69c1
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>axis_dwidth_converter_1_to_8</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="axis_dwidth_converter" spirit:version="1.1"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.ASSOCIATED_BUSIF"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.ASSOCIATED_RESET"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.FREQ_HZ">10000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.RSTIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_SIGNAL_SET">0b00000000000000000000000000010011</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">virtexuplus</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_TDATA_WIDTH">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXIS_TDATA_WIDTH">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">axis_dwidth_converter_1_to_8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_ACLKEN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_MI_TKEEP">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_TDATA_NUM_BYTES">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.S_TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">virtexuplus</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xcvu9p</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">flgb2104</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">E</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2018.2.2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
<spirit:vendorExtensions>
|
||||
<xilinx:componentInstanceExtensions>
|
||||
<xilinx:configElementInfos>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_MI_TKEEP" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.M_TDATA_NUM_BYTES" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.TUSER_BITS_PER_BYTE" xilinx:valueSource="user"/>
|
||||
</xilinx:configElementInfos>
|
||||
</xilinx:componentInstanceExtensions>
|
||||
</spirit:vendorExtensions>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<spirit:vendor>xilinx.com</spirit:vendor>
|
||||
<spirit:library>xci</spirit:library>
|
||||
<spirit:name>unknown</spirit:name>
|
||||
<spirit:version>1.0</spirit:version>
|
||||
<spirit:componentInstances>
|
||||
<spirit:componentInstance>
|
||||
<spirit:instanceName>axis_dwidth_converter_8_to_1</spirit:instanceName>
|
||||
<spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="axis_dwidth_converter" spirit:version="1.1"/>
|
||||
<spirit:configurableElementValues>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKENIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.ASSOCIATED_BUSIF"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.ASSOCIATED_RESET"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.FREQ_HZ">10000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.CLKIF.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.M_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.RSTIF.POLARITY">ACTIVE_LOW</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.CLK_DOMAIN"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.FREQ_HZ">100000000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.LAYERED_METADATA">undef</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.PHASE">0.000</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="BUSIFPARAM_VALUE.S_AXIS.TUSER_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_SIGNAL_SET">0b00000000000000000000000000011011</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TDEST_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_AXIS_TID_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FAMILY">virtexuplus</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_TDATA_WIDTH">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_M_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXIS_TDATA_WIDTH">64</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXIS_TUSER_WIDTH">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">axis_dwidth_converter_8_to_1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_ACLKEN">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_MI_TKEEP">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TKEEP">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TLAST">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TREADY">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.HAS_TSTRB">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.M_TDATA_NUM_BYTES">1</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.S_TDATA_NUM_BYTES">8</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TDEST_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TID_WIDTH">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.TUSER_BITS_PER_BYTE">0</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">virtexuplus</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xcvu9p</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">flgb2104</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VERILOG</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">E</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">16</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2018.2.2</spirit:configurableElementValue>
|
||||
<spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue>
|
||||
</spirit:configurableElementValues>
|
||||
<spirit:vendorExtensions>
|
||||
<xilinx:componentInstanceExtensions>
|
||||
<xilinx:configElementInfos>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TKEEP" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.M_AXIS.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TKEEP" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="BUSIFPARAM_VALUE.S_AXIS.TDATA_NUM_BYTES" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_TKEEP" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.HAS_TLAST" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.M_TDATA_NUM_BYTES" xilinx:valueSource="user"/>
|
||||
<xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.S_TDATA_NUM_BYTES" xilinx:valueSource="user"/>
|
||||
</xilinx:configElementInfos>
|
||||
</xilinx:componentInstanceExtensions>
|
||||
</spirit:vendorExtensions>
|
||||
</spirit:componentInstance>
|
||||
</spirit:componentInstances>
|
||||
</spirit:design>
|
|
@ -32,6 +32,10 @@ module uart_wrapper #(
|
|||
|
||||
enum {UART_STARTUP, UART_LOOPBACK, UART_TX_STREAM, UART_RX_STREAM, UART_WAIT_STREAM} uart_state;
|
||||
|
||||
// Interfaces before data width conversion
|
||||
if_axi_stream #(.DAT_BYTS(1), .CTL_BYTS(1)) tx_int_if (i_clk);
|
||||
if_axi_stream #(.DAT_BYTS(8), .CTL_BYTS(1)) rx_int_if (i_clk);
|
||||
|
||||
logic interrupt;
|
||||
logic [31:0] uart_axi_wdata, uart_axi_rdata;
|
||||
logic [3:0] uart_axi_awaddr, uart_axi_araddr;
|
||||
|
@ -47,8 +51,8 @@ always_ff @ (posedge i_clk) begin
|
|||
uart_axi_arvalid <= 0;
|
||||
uart_axi_araddr <= 0;
|
||||
uart_state <= UART_STARTUP;
|
||||
tx_if.reset_source();
|
||||
rx_if.rdy <= 0;
|
||||
tx_int_if.reset_source();
|
||||
rx_int_if.rdy <= 0;
|
||||
tx_byt_cnt <= 0;
|
||||
tx_byt_len <= 0;
|
||||
rx_byt_cnt <= 0;
|
||||
|
@ -57,7 +61,7 @@ always_ff @ (posedge i_clk) begin
|
|||
|
||||
if (uart_axi_awvalid && uart_axi_awready) uart_axi_awvalid <= 0;
|
||||
if (uart_axi_arvalid && uart_axi_arready) uart_axi_arvalid <= 0;
|
||||
if (tx_if.val && tx_if.rdy) tx_if.val <= 0;
|
||||
if (tx_int_if.val && tx_int_if.rdy) tx_int_if.val <= 0;
|
||||
|
||||
case (uart_state)
|
||||
UART_STARTUP: begin
|
||||
|
@ -93,13 +97,13 @@ always_ff @ (posedge i_clk) begin
|
|||
UART_WAIT_STREAM: begin
|
||||
uart_axi_arvalid <= 1;
|
||||
uart_axi_araddr <= 'h8;
|
||||
if (tx_if.val || uart_axi_awvalid) begin
|
||||
if (tx_int_if.val || uart_axi_awvalid) begin
|
||||
// Wait
|
||||
end else
|
||||
if (uart_axi_rvalid && uart_axi_rdata[0]) begin
|
||||
uart_state <= UART_RX_STREAM;
|
||||
end else
|
||||
if (rx_if.val) begin
|
||||
if (rx_int_if.val) begin
|
||||
uart_state <= UART_TX_STREAM;
|
||||
end
|
||||
end
|
||||
|
@ -120,21 +124,21 @@ always_ff @ (posedge i_clk) begin
|
|||
// Check for valid data byte
|
||||
if (uart_axi_rvalid) begin
|
||||
uart_axi_araddr <= 'h8;
|
||||
tx_if.dat <= uart_axi_rdata;
|
||||
tx_if.val <= 1;
|
||||
tx_if.sop <= 0;
|
||||
tx_if.eop <= 0;
|
||||
tx_int_if.dat <= uart_axi_rdata;
|
||||
tx_int_if.val <= 1;
|
||||
tx_int_if.sop <= 0;
|
||||
tx_int_if.eop <= 0;
|
||||
|
||||
tx_byt_cnt <= tx_byt_cnt + 1;
|
||||
|
||||
if (tx_byt_cnt == 0) begin
|
||||
tx_byt_len[0 +: 8] <= uart_axi_rdata;
|
||||
tx_if.sop <= 1;
|
||||
tx_int_if.sop <= 1;
|
||||
end else
|
||||
if (tx_byt_cnt == 1) begin
|
||||
tx_byt_len[8 +: 8] <= uart_axi_rdata;
|
||||
if (tx_byt_len[0 +: 8] <= 2 && uart_axi_rdata == 0) begin
|
||||
tx_if.eop <= 1;
|
||||
tx_int_if.eop <= 1;
|
||||
tx_byt_cnt <= 0;
|
||||
tx_byt_len <= 0;
|
||||
uart_state <= UART_WAIT_STREAM;
|
||||
|
@ -142,7 +146,7 @@ always_ff @ (posedge i_clk) begin
|
|||
end else begin
|
||||
// If we hit our length
|
||||
if (tx_byt_cnt + 1 >= tx_byt_len) begin
|
||||
tx_if.eop <= 1;
|
||||
tx_int_if.eop <= 1;
|
||||
tx_byt_cnt <= 0;
|
||||
tx_byt_len <= 0;
|
||||
uart_state <= UART_WAIT_STREAM;
|
||||
|
@ -155,21 +159,21 @@ always_ff @ (posedge i_clk) begin
|
|||
uart_axi_araddr <= 'h8;
|
||||
// Swap between sending data and status register (checking for full)
|
||||
// Check status
|
||||
if (~rx_if.rdy && ~uart_axi_awvalid) begin
|
||||
if (~rx_int_if.rdy && ~uart_axi_awvalid) begin
|
||||
uart_axi_arvalid <= 1;
|
||||
if (uart_axi_rvalid && ~uart_axi_rdata[3]) begin
|
||||
rx_if.rdy <= 1;
|
||||
rx_int_if.rdy <= 1;
|
||||
uart_axi_arvalid <= 0;
|
||||
end
|
||||
end else begin
|
||||
if (~uart_axi_awvalid) begin
|
||||
// Then check data
|
||||
if (rx_if.val && rx_if.rdy) begin
|
||||
rx_if.rdy <= 0;
|
||||
uart_axi_wdata <= rx_if.dat;
|
||||
if (rx_int_if.val && rx_int_if.rdy) begin
|
||||
rx_int_if.rdy <= 0;
|
||||
uart_axi_wdata <= rx_int_if.dat;
|
||||
uart_axi_awvalid <= 1;
|
||||
uart_axi_awaddr <= 'h4;
|
||||
if (rx_if.eop) begin
|
||||
if (rx_int_if.eop) begin
|
||||
uart_state <= UART_WAIT_STREAM;
|
||||
end
|
||||
end
|
||||
|
@ -181,28 +185,83 @@ always_ff @ (posedge i_clk) begin
|
|||
end
|
||||
|
||||
axi_uartlite_0 uart (
|
||||
.s_axi_aclk(i_clk), // input wire s_axi_aclk
|
||||
.s_axi_aresetn(~i_rst), // input wire s_axi_aresetn
|
||||
.interrupt(interrupt), // output wire interrupt
|
||||
.s_axi_awaddr(uart_axi_awaddr), // input wire [3 : 0] s_axi_awaddr
|
||||
.s_axi_awvalid(uart_axi_awvalid), // input wire s_axi_awvalid
|
||||
.s_axi_awready(uart_axi_awready), // output wire s_axi_awready
|
||||
.s_axi_wdata(uart_axi_wdata), // input wire [31 : 0] s_axi_wdata
|
||||
.s_axi_wstrb('d0), // input wire [3 : 0] s_axi_wstrb
|
||||
.s_axi_wvalid(uart_axi_awvalid), // input wire s_axi_wvalid
|
||||
.s_axi_wready(uart_axi_wready), // output wire s_axi_wready
|
||||
.s_axi_bresp(uart_axi_bresp), // output wire [1 : 0] s_axi_bresp
|
||||
.s_axi_bvalid(), // output wire s_axi_bvalid
|
||||
.s_axi_bready(1'b1), // input wire s_axi_bready
|
||||
.s_axi_araddr(uart_axi_araddr), // input wire [3 : 0] s_axi_araddr
|
||||
.s_axi_arvalid(uart_axi_arvalid), // input wire s_axi_arvalid
|
||||
.s_axi_arready(uart_axi_arready), // output wire s_axi_arready
|
||||
.s_axi_rdata(uart_axi_rdata), // output wire [31 : 0] s_axi_rdata
|
||||
.s_axi_rresp(uart_axi_rresp), // output wire [1 : 0] s_axi_rresp
|
||||
.s_axi_rvalid(uart_axi_rvalid), // output wire s_axi_rvalid
|
||||
.s_axi_rready(1'd1), // input wire s_axi_rready
|
||||
.rx(i_rx_uart), // input wire rx
|
||||
.tx(o_tx_uart) // output wire tx
|
||||
);
|
||||
.s_axi_aclk(i_clk), // input wire s_axi_aclk
|
||||
.s_axi_aresetn(~i_rst), // input wire s_axi_aresetn
|
||||
.interrupt(interrupt), // output wire interrupt
|
||||
.s_axi_awaddr(uart_axi_awaddr), // input wire [3 : 0] s_axi_awaddr
|
||||
.s_axi_awvalid(uart_axi_awvalid), // input wire s_axi_awvalid
|
||||
.s_axi_awready(uart_axi_awready), // output wire s_axi_awready
|
||||
.s_axi_wdata(uart_axi_wdata), // input wire [31 : 0] s_axi_wdata
|
||||
.s_axi_wstrb('d0), // input wire [3 : 0] s_axi_wstrb
|
||||
.s_axi_wvalid(uart_axi_awvalid), // input wire s_axi_wvalid
|
||||
.s_axi_wready(uart_axi_wready), // output wire s_axi_wready
|
||||
.s_axi_bresp(uart_axi_bresp), // output wire [1 : 0] s_axi_bresp
|
||||
.s_axi_bvalid(), // output wire s_axi_bvalid
|
||||
.s_axi_bready(1'b1), // input wire s_axi_bready
|
||||
.s_axi_araddr(uart_axi_araddr), // input wire [3 : 0] s_axi_araddr
|
||||
.s_axi_arvalid(uart_axi_arvalid), // input wire s_axi_arvalid
|
||||
.s_axi_arready(uart_axi_arready), // output wire s_axi_arready
|
||||
.s_axi_rdata(uart_axi_rdata), // output wire [31 : 0] s_axi_rdata
|
||||
.s_axi_rresp(uart_axi_rresp), // output wire [1 : 0] s_axi_rresp
|
||||
.s_axi_rvalid(uart_axi_rvalid), // output wire s_axi_rvalid
|
||||
.s_axi_rready(1'd1), // input wire s_axi_rready
|
||||
.rx(i_rx_uart), // input wire rx
|
||||
.tx(o_tx_uart) // output wire tx
|
||||
);
|
||||
|
||||
// Modules for data width converstion (UART is 1 byte, we want 8)
|
||||
logic [7:0] tx_tkeep;
|
||||
axis_dwidth_converter_1_to_8 tx_dwidth_converter (
|
||||
.aclk(i_clk), // input wire aclk
|
||||
.aresetn(~i_rst), // input wire aresetn
|
||||
.s_axis_tvalid(tx_int_if.val), // input wire s_axis_tvalid
|
||||
.s_axis_tready(tx_int_if.rdy), // output wire s_axis_tready
|
||||
.s_axis_tdata (tx_int_if.dat), // input wire [7 : 0] s_axis_tdata
|
||||
.s_axis_tlast (tx_int_if.eop), // input wire s_axis_tlast
|
||||
.m_axis_tvalid(tx_if.val), // output wire m_axis_tvalid
|
||||
.m_axis_tready(tx_if.rdy), // input wire m_axis_tready
|
||||
.m_axis_tdata (tx_if.dat), // output wire [63 : 0] m_axis_tdata
|
||||
.m_axis_tkeep (tx_tkeep), // output wire [7 : 0] m_axis_tkeep
|
||||
.m_axis_tlast (tx_if.eop) // output wire m_axis_tlast
|
||||
);
|
||||
|
||||
always_comb begin
|
||||
tx_if.mod = $countones(tx_tkeep);
|
||||
end
|
||||
|
||||
always_ff @ (posedge i_clk) begin
|
||||
if (i_rst) begin
|
||||
tx_if.ctl <= 0;
|
||||
tx_if.err <= 0;
|
||||
tx_if.sop <= 1;
|
||||
end else begin
|
||||
if (tx_if.val && tx_if.rdy) begin
|
||||
tx_if.sop <= tx_if.eop;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
logic [7:0] rx_tkeep;
|
||||
axis_dwidth_converter_8_to_1 rx_dwidth_converter (
|
||||
.aclk(i_clk), // input wire aclk
|
||||
.aresetn(~i_rst), // input wire aresetn
|
||||
.s_axis_tvalid(rx_if.val), // input wire s_axis_tvalid
|
||||
.s_axis_tready(rx_if.rdy), // output wire s_axis_tready
|
||||
.s_axis_tdata(rx_if.dat), // input wire [63 : 0] s_axis_tdata
|
||||
.s_axis_tlast(rx_if.eop), // input wire s_axis_tlast
|
||||
.s_axis_tkeep(rx_tkeep), // input wire [7 : 0] s_axis_tkeep
|
||||
.m_axis_tvalid(rx_int_if.val), // output wire m_axis_tvalid
|
||||
.m_axis_tready(rx_int_if.rdy), // input wire m_axis_tready
|
||||
.m_axis_tdata(rx_int_if.dat), // output wire [7 : 0] m_axis_tdata
|
||||
.m_axis_tlast(rx_int_if.eop) // output wire m_axis_tlast
|
||||
);
|
||||
|
||||
always_comb begin
|
||||
rx_tkeep = {8{1'b1}};
|
||||
for (int i = 0; i < 7; i++)
|
||||
if (rx_if.mod > 0 && rx_if.mod <= i)
|
||||
rx_tkeep[i] = 0;
|
||||
end
|
||||
|
||||
|
||||
endmodule
|
|
@ -81,7 +81,7 @@ interface if_axi_stream # (
|
|||
input logic [CTL_BITS-1:0] ctl_in = 0);
|
||||
logic sop_l=0;
|
||||
|
||||
reset_source();
|
||||
val = 0;
|
||||
@(posedge i_clk);
|
||||
|
||||
while (len > 0) begin
|
||||
|
@ -97,7 +97,7 @@ interface if_axi_stream # (
|
|||
@(posedge i_clk); // Go to next clock edge
|
||||
while (!rdy) @(posedge i_clk); // If not rdy then wait here
|
||||
end
|
||||
reset_source();
|
||||
val = 0;
|
||||
endtask
|
||||
|
||||
task print();
|
||||
|
|
Binary file not shown.
|
@ -23,7 +23,7 @@
|
|||
module zcash_fpga_top
|
||||
import zcash_fpga_pkg::*, equihash_pkg::*;
|
||||
#(
|
||||
parameter CORE_DAT_BYTS = 8 // Only tested at 8 byte data width
|
||||
parameter DAT_BYTS = 8 // Only tested at 8 byte data width
|
||||
)(
|
||||
// Clocks and resets
|
||||
input i_clk_100, i_rst_100, // 100 MHz clock
|
||||
|
@ -36,9 +36,7 @@ module zcash_fpga_top
|
|||
if_axi_stream.source tx_if
|
||||
);
|
||||
|
||||
localparam CORE_DAT_BITS = CORE_DAT_BYTS*8;
|
||||
localparam CORE_MOD_BITS = $clog2(CORE_DAT_BYTS);
|
||||
localparam CORE_CTL_BITS = 8;
|
||||
localparam CTL_BITS = 8;
|
||||
|
||||
// These are the resets combined with the user reset
|
||||
logic usr_rst_100, rst_100;
|
||||
|
@ -46,13 +44,13 @@ logic usr_rst_200, rst_200;
|
|||
logic usr_rst_300, rst_300;
|
||||
logic usr_rst;
|
||||
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) equihash_axi(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) equihash_axi_s(i_clk_100);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) equihash_axi(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) equihash_axi_s(i_clk_100);
|
||||
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_out_if(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_in_if(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_out_if_s(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_in_if_s(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_out_if(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_in_if(i_clk_if);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_out_if_s(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_in_if_s(i_clk_200);
|
||||
|
||||
equihash_bm_t equihash_mask, equihash_mask_s;
|
||||
logic equihash_mask_val, equihash_mask_val_s;
|
||||
|
@ -82,54 +80,18 @@ synchronizer #(.DAT_BITS ( 1 ), .NUM_CLKS ( 3 )) rst_300_sync (
|
|||
);
|
||||
always_ff @ (posedge i_clk_300) rst_300 <= i_rst_300 || usr_rst_300;
|
||||
|
||||
|
||||
// This block takes in the interface signals and interfaces with other blocks
|
||||
// This runs on the same clock as the interface but we might need to change data width
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BYTS(1)) rx_int_if (i_clk_if);
|
||||
width_change_cdc_fifo #(
|
||||
.IN_DAT_BYTS ( rx_if.DAT_BYTS ),
|
||||
.OUT_DAT_BYTS ( CORE_DAT_BYTS ),
|
||||
.CTL_BITS ( 8 ),
|
||||
.FIFO_ABITS ( 6 ),
|
||||
.USE_BRAM ( 1 ),
|
||||
.CDC_ASYNC ( "NO" )
|
||||
)
|
||||
cdc_fifo_rx (
|
||||
.i_clk_a ( i_clk_if ),
|
||||
.i_rst_a ( i_rst_if ),
|
||||
.i_clk_b ( i_clk_if ),
|
||||
.i_rst_b ( i_rst_if ),
|
||||
.i_axi_a ( rx_if ),
|
||||
.o_axi_b ( rx_int_if )
|
||||
);
|
||||
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BYTS(1)) tx_int_if (i_clk_if);
|
||||
width_change_cdc_fifo #(
|
||||
.IN_DAT_BYTS ( CORE_DAT_BYTS ),
|
||||
.OUT_DAT_BYTS ( rx_if.DAT_BYTS ),
|
||||
.CTL_BITS ( 8 ),
|
||||
.FIFO_ABITS ( 6 ),
|
||||
.USE_BRAM ( 1 ),
|
||||
.CDC_ASYNC ( "NO" )
|
||||
)
|
||||
cdc_fifo_tx (
|
||||
.i_clk_a ( i_clk_if ),
|
||||
.i_rst_a ( i_rst_if ),
|
||||
.i_clk_b ( i_clk_if ),
|
||||
.i_rst_b ( i_rst_if ),
|
||||
.i_axi_a ( tx_int_if ),
|
||||
.o_axi_b ( tx_if )
|
||||
);
|
||||
|
||||
control_top #(
|
||||
.DAT_BYTS ( CORE_DAT_BYTS )
|
||||
.DAT_BYTS ( DAT_BYTS )
|
||||
)
|
||||
control_top (
|
||||
.i_clk ( i_clk_if ),
|
||||
.i_rst ( i_rst_if ),
|
||||
.o_usr_rst ( usr_rst ),
|
||||
.rx_if ( rx_int_if ),
|
||||
.tx_if ( tx_int_if ),
|
||||
.rx_if ( rx_if ),
|
||||
.tx_if ( tx_if ),
|
||||
.o_equihash_if ( equihash_axi ),
|
||||
.i_equihash_mask ( equihash_mask ),
|
||||
.i_equihash_mask_val ( equihash_mask_val ),
|
||||
|
@ -177,7 +139,7 @@ cdc_fifo_equihash_tx (
|
|||
);
|
||||
|
||||
equihash_verif_top #(
|
||||
.DAT_BYTS( CORE_DAT_BYTS )
|
||||
.DAT_BYTS( DAT_BYTS )
|
||||
)
|
||||
equihash_verif_top (
|
||||
.i_clk ( i_clk_100 ),
|
||||
|
@ -225,12 +187,12 @@ cdc_fifo_secp256k1_tx (
|
|||
);
|
||||
|
||||
// We add pipelining so this block can be on a different SLR
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_out_if_s_r(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(CORE_DAT_BYTS), .CTL_BITS(CORE_CTL_BITS)) secp256k1_in_if_s_r(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_out_if_s_r(i_clk_200);
|
||||
if_axi_stream #(.DAT_BYTS(DAT_BYTS), .CTL_BITS(CTL_BITS)) secp256k1_in_if_s_r(i_clk_200);
|
||||
|
||||
pipeline_if #(
|
||||
.DAT_BYTS( CORE_DAT_BYTS ),
|
||||
.CTL_BITS( CORE_CTL_BITS ),
|
||||
.DAT_BYTS( DAT_BYTS ),
|
||||
.CTL_BITS( CTL_BITS ),
|
||||
.NUM_STAGES (2)
|
||||
)
|
||||
secp256k1_pipeline_if0 (
|
||||
|
@ -240,8 +202,8 @@ secp256k1_pipeline_if0 (
|
|||
);
|
||||
|
||||
pipeline_if #(
|
||||
.DAT_BYTS( CORE_DAT_BYTS ),
|
||||
.CTL_BITS( CORE_CTL_BITS ),
|
||||
.DAT_BYTS( DAT_BYTS ),
|
||||
.CTL_BITS( CTL_BITS ),
|
||||
.NUM_STAGES (2)
|
||||
)
|
||||
secp256k1_pipeline_if1 (
|
||||
|
|
Loading…
Reference in New Issue