diff --git a/applications/rfidb/designs/rfidb/hdllib.cfg b/applications/rfidb/designs/rfidb/hdllib.cfg index 5260db9306afdfd826a34de78fccbeb114232865..f930af93a2207bd46be7cbb4b5b10590c884c7a3 100644 --- a/applications/rfidb/designs/rfidb/hdllib.cfg +++ b/applications/rfidb/designs/rfidb/hdllib.cfg @@ -1,11 +1,18 @@ hdl_lib_name = unb1_rfidb hdl_library_clause_name = unb1_rfidb_lib -hdl_lib_uses_synth = unb1_board detector +hdl_lib_uses_synth = common dp unb1_board eth detector tech_tse hdl_lib_uses_sim = hdl_lib_technology = ip_stratixiv +synth_top_level_entity = + +quartus_copy_files = + quartus/qsys_unb1_rfidb.qsys . + quartus/stp32.stp + synth_files = + src/vhdl/stp32.vhd src/vhdl/qsys_unb1_rfidb_pkg.vhd src/vhdl/mmm_unb1_rfidb.vhd src/vhdl/unb1_rfidb.vhd @@ -13,11 +20,6 @@ synth_files = test_bench_files = tb/vhdl/tb_unb1_rfidb.vhd -synth_top_level_entity = - -quartus_copy_files = - quartus/qsys_unb1_rfidb.qsys . - quartus_qsf_files = $RADIOHDL/boards/uniboard1/libraries/unb1_board/quartus/unb1_board.qsf @@ -30,4 +32,5 @@ quartus_tcl_files = quartus_vhdl_files = quartus_qip_files = + src/vhdl/stp32.qip $HDL_BUILD_DIR/unb1/quartus/unb1_rfidb/qsys_unb1_rfidb/synthesis/qsys_unb1_rfidb.qip diff --git a/applications/rfidb/designs/rfidb/quartus/qsys_unb1_rfidb.qsys b/applications/rfidb/designs/rfidb/quartus/qsys_unb1_rfidb.qsys index 6939fb9f05378e2cd993a0cd2dcd62c290bfd4cc..749b59a90b67ea6c5cc58aa1af3439703de64230 100644 --- a/applications/rfidb/designs/rfidb/quartus/qsys_unb1_rfidb.qsys +++ b/applications/rfidb/designs/rfidb/quartus/qsys_unb1_rfidb.qsys @@ -12,6 +12,22 @@ element $${FILENAME} { } + element Beam0_dp_offload_rx_reg_hdr_dat + { + datum _sortIndex + { + value = "22"; + type = "int"; + } + } + element Beam0_eth + { + datum _sortIndex + { + value = "21"; + type = "int"; + } + } element altpll_0 { datum _sortIndex @@ -24,7 +40,7 @@ { datum baseAddress { - value = "352"; + value = "800"; type = "long"; } } @@ -36,6 +52,14 @@ type = "int"; } } + element altpll_0.c0 + { + datum _clockDomain + { + value = "mm_clk"; + type = "String"; + } + } element c0 { datum _sortIndex @@ -44,27 +68,27 @@ type = "int"; } } - element altpll_0.c0 + element altpll_0.c1 { datum _clockDomain { - value = "mm_clk"; + value = "epcs_clk"; type = "String"; } } - element altpll_0.c1 + element altpll_0.c2 { datum _clockDomain { - value = "epcs_clk"; + value = "tse_clk"; type = "String"; } } - element altpll_0.c2 + element altpll_0.c3 { datum _clockDomain { - value = "tse_clk"; + value = "cal_rec_clk"; type = "String"; } } @@ -84,6 +108,14 @@ type = "int"; } } + element cpu_0.data_master + { + datum _tags + { + value = ""; + type = "String"; + } + } element cpu_0.jtag_debug_module { datum baseAddress @@ -105,35 +137,37 @@ type = "String"; } } - element reg_remu.mem + element pio_pps.mem { datum baseAddress { - value = "256"; + value = "808"; type = "long"; } } - element reg_mmdp_data.mem + element pio_system_info.mem { - datum baseAddress + datum _lockedAddress { - value = "392"; - type = "long"; + value = "1"; + type = "boolean"; } - } - element reg_dpmm_data.mem - { datum baseAddress { - value = "376"; + value = "0"; type = "long"; } } - element reg_dpmm_ctrl.mem + element rom_system_info.mem { + datum _lockedAddress + { + value = "1"; + type = "boolean"; + } datum baseAddress { - value = "368"; + value = "4096"; type = "long"; } } @@ -141,23 +175,23 @@ { datum baseAddress { - value = "288"; + value = "736"; type = "long"; } } - element pio_pps.mem + element Beam0_dp_offload_rx_reg_hdr_dat.mem { datum baseAddress { - value = "360"; + value = "256"; type = "long"; } } - element reg_mmdp_ctrl.mem + element reg_mmdp_data.mem { datum baseAddress { - value = "384"; + value = "840"; type = "long"; } } @@ -174,16 +208,19 @@ type = "long"; } } - element rom_system_info.mem + element reg_remu.mem { - datum _lockedAddress + datum baseAddress { - value = "1"; - type = "boolean"; + value = "704"; + type = "long"; } + } + element reg_dpmm_ctrl.mem + { datum baseAddress { - value = "4096"; + value = "816"; type = "long"; } } @@ -191,20 +228,31 @@ { datum baseAddress { - value = "224"; + value = "672"; type = "long"; } } - element pio_system_info.mem + element reg_common.mem { - datum _lockedAddress + datum baseAddress { - value = "1"; - type = "boolean"; + value = "128"; + type = "long"; } + } + element reg_mmdp_ctrl.mem + { datum baseAddress { - value = "0"; + value = "832"; + type = "long"; + } + } + element reg_dpmm_data.mem + { + datum baseAddress + { + value = "824"; type = "long"; } } @@ -216,11 +264,27 @@ type = "long"; } } + element Beam0_eth.mms_ram + { + datum baseAddress + { + value = "24576"; + type = "long"; + } + } + element Beam0_eth.mms_reg + { + datum baseAddress + { + value = "576"; + type = "long"; + } + } element avs_eth_0.mms_reg { datum baseAddress { - value = "128"; + value = "512"; type = "long"; } } @@ -232,6 +296,14 @@ type = "long"; } } + element Beam0_eth.mms_tse + { + datum baseAddress + { + value = "20480"; + type = "long"; + } + } element onchip_memory2_0 { datum _sortIndex @@ -283,10 +355,18 @@ } datum baseAddress { - value = "320"; + value = "768"; type = "long"; } } + element reg_common + { + datum _sortIndex + { + value = "20"; + type = "int"; + } + } element reg_dpmm_ctrl { datum _sortIndex @@ -363,15 +443,7 @@ { datum baseAddress { - value = "192"; - type = "long"; - } - } - element pio_wdi.s1 - { - datum baseAddress - { - value = "336"; + value = "640"; type = "long"; } } @@ -388,6 +460,14 @@ type = "long"; } } + element pio_wdi.s1 + { + datum baseAddress + { + value = "784"; + type = "long"; + } + } element timer_0 { datum _sortIndex @@ -408,10 +488,10 @@ <parameter name="globalResetBus" value="false" /> <parameter name="hdlLanguage" value="VHDL" /> <parameter name="maxAdditionalLatency" value="0" /> - <parameter name="projectName" value="" /> + <parameter name="projectName" value="unb1_rfidb.qpf" /> <parameter name="sopcBorderPoints" value="false" /> <parameter name="systemHash" value="1" /> - <parameter name="timeStamp" value="1441611640370" /> + <parameter name="timeStamp" value="1444585069452" /> <parameter name="useTestBenchNamingPattern" value="false" /> <instanceScript></instanceScript> <interface @@ -1256,13 +1336,6 @@ name="coe_ram_writedata_export_from_the_avs_eth_0" internal="coe_ram_writedata_export" /> </interface> - <interface - name="altpll_0_c3_conduit" - internal="altpll_0.c3_conduit" - type="conduit" - dir="end"> - <port name="c3_from_the_altpll_0" internal="c3" /> - </interface> <interface name="reg_remu_read" internal="reg_remu.read" @@ -1270,6 +1343,174 @@ dir="end"> <port name="coe_read_export_from_the_reg_remu" internal="coe_read_export" /> </interface> + <interface + name="reg_common_reset" + internal="reg_common.reset" + type="conduit" + dir="end" /> + <interface + name="reg_common_clk" + internal="reg_common.clk" + type="conduit" + dir="end" /> + <interface + name="reg_common_address" + internal="reg_common.address" + type="conduit" + dir="end" /> + <interface + name="reg_common_write" + internal="reg_common.write" + type="conduit" + dir="end" /> + <interface + name="reg_common_writedata" + internal="reg_common.writedata" + type="conduit" + dir="end" /> + <interface + name="reg_common_read" + internal="reg_common.read" + type="conduit" + dir="end" /> + <interface + name="reg_common_readdata" + internal="reg_common.readdata" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_reset" + internal="Beam0_dp_offload_rx_reg_hdr_dat.reset" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_clk" + internal="Beam0_dp_offload_rx_reg_hdr_dat.clk" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_address" + internal="Beam0_dp_offload_rx_reg_hdr_dat.address" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_write" + internal="Beam0_dp_offload_rx_reg_hdr_dat.write" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_writedata" + internal="Beam0_dp_offload_rx_reg_hdr_dat.writedata" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_read" + internal="Beam0_dp_offload_rx_reg_hdr_dat.read" + type="conduit" + dir="end" /> + <interface + name="beam0_dp_offload_rx_reg_hdr_dat_readdata" + internal="Beam0_dp_offload_rx_reg_hdr_dat.readdata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_address" + internal="Beam0_eth.tse_address" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_write" + internal="Beam0_eth.tse_write" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_read" + internal="Beam0_eth.tse_read" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_writedata" + internal="Beam0_eth.tse_writedata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_readdata" + internal="Beam0_eth.tse_readdata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_tse_waitrequest" + internal="Beam0_eth.tse_waitrequest" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reg_address" + internal="Beam0_eth.reg_address" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reg_write" + internal="Beam0_eth.reg_write" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reg_read" + internal="Beam0_eth.reg_read" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reg_readdata" + internal="Beam0_eth.reg_readdata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_ram_address" + internal="Beam0_eth.ram_address" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_ram_write" + internal="Beam0_eth.ram_write" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_ram_read" + internal="Beam0_eth.ram_read" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_ram_writedata" + internal="Beam0_eth.ram_writedata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_ram_readdata" + internal="Beam0_eth.ram_readdata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_irq" + internal="Beam0_eth.irq" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reg_writedata" + internal="Beam0_eth.reg_writedata" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_reset" + internal="Beam0_eth.reset" + type="conduit" + dir="end" /> + <interface + name="beam0_eth_clk" + internal="Beam0_eth.clk" + type="conduit" + dir="end" /> + <interface name="altpll_0_c3" internal="altpll_0.c3" type="clock" dir="start"> + <port name="cal_rec_clk" internal="c3" /> + </interface> <module kind="clock_source" version="11.1" enabled="1" name="clk_0"> <parameter name="clockFrequency" value="25000000" /> <parameter name="clockFrequencyKnown" value="true" /> @@ -1282,7 +1523,7 @@ enabled="1" name="onchip_memory2_0"> <parameter name="allowInSystemMemoryContentEditor" value="false" /> - <parameter name="autoInitializationFileName">$${FILENAME}_onchip_memory2_0</parameter> + <parameter name="autoInitializationFileName">qsys_unb1_rfidb_onchip_memory2_0</parameter> <parameter name="blockType" value="M144K" /> <parameter name="dataWidth" value="32" /> <parameter name="deviceFamily" value="Stratix IV" /> @@ -1427,7 +1668,7 @@ q]]></parameter> <parameter name="PORT_clk0" value="PORT_USED" /> <parameter name="PORT_clk1" value="PORT_USED" /> <parameter name="PORT_clk2" value="PORT_USED" /> - <parameter name="PORT_clk3" value="PORT_UNUSED" /> + <parameter name="PORT_clk3" value="PORT_USED" /> <parameter name="PORT_clk4" value="PORT_UNUSED" /> <parameter name="PORT_clk5" value="PORT_UNUSED" /> <parameter name="PORT_clk6" value="PORT_UNUSED" /> @@ -1476,7 +1717,7 @@ q]]></parameter> <parameter name="USING_FBMIMICBIDIR_PORT" value="OFF" /> <parameter name="SCAN_CHAIN_MIF_FILE" value="" /> <parameter name="AVALON_USE_SEPARATE_SYSCLK" value="NO" /> - <parameter name="HIDDEN_CONSTANTS">CT#CLK2_DIVIDE_BY 1 CT#PORT_clk9 PORT_UNUSED CT#PORT_clk8 PORT_UNUSED CT#PORT_clk7 PORT_UNUSED CT#PORT_clk6 PORT_UNUSED CT#PORT_clk5 PORT_UNUSED CT#PORT_clk4 PORT_UNUSED CT#PORT_clk3 PORT_UNUSED CT#PORT_clk2 PORT_USED CT#PORT_clk1 PORT_USED CT#PORT_clk0 PORT_USED CT#CLK0_MULTIPLY_BY 2 CT#PORT_SCANWRITE PORT_UNUSED CT#PORT_SCANACLR PORT_UNUSED CT#PORT_PFDENA PORT_UNUSED CT#CLK3_DUTY_CYCLE 50 CT#CLK3_DIVIDE_BY 5 CT#PORT_PLLENA PORT_UNUSED CT#PORT_SCANDATA PORT_UNUSED CT#CLK3_PHASE_SHIFT 0 CT#PORT_SCANCLKENA PORT_UNUSED CT#WIDTH_CLOCK 10 CT#PORT_SCANDATAOUT PORT_UNUSED CT#LPM_TYPE altpll CT#PLL_TYPE AUTO CT#CLK0_PHASE_SHIFT 0 CT#CLK1_DUTY_CYCLE 50 CT#PORT_PHASEDONE PORT_UNUSED CT#OPERATION_MODE NORMAL CT#PORT_CONFIGUPDATE PORT_UNUSED CT#CLK1_MULTIPLY_BY 4 CT#COMPENSATE_CLOCK CLK0 CT#PORT_CLKSWITCH PORT_UNUSED CT#INCLK0_INPUT_FREQUENCY 40000 CT#PORT_SCANDONE PORT_UNUSED CT#PORT_CLKLOSS PORT_UNUSED CT#PORT_INCLK1 PORT_UNUSED CT#AVALON_USE_SEPARATE_SYSCLK NO CT#PORT_INCLK0 PORT_USED CT#PORT_clkena5 PORT_UNUSED CT#PORT_clkena4 PORT_UNUSED CT#PORT_clkena3 PORT_UNUSED CT#PORT_clkena2 PORT_UNUSED CT#PORT_clkena1 PORT_UNUSED CT#PORT_FBOUT PORT_UNUSED CT#PORT_clkena0 PORT_UNUSED CT#CLK1_PHASE_SHIFT 0 CT#PORT_ARESET PORT_UNUSED CT#BANDWIDTH_TYPE AUTO CT#CLK2_MULTIPLY_BY 5 CT#INTENDED_DEVICE_FAMILY {Stratix IV} CT#PORT_SCANREAD PORT_UNUSED CT#CLK2_DUTY_CYCLE 50 CT#PORT_PHASESTEP PORT_UNUSED CT#PORT_SCANCLK PORT_UNUSED CT#PORT_CLKBAD1 PORT_UNUSED CT#PORT_CLKBAD0 PORT_UNUSED CT#PORT_FBIN PORT_UNUSED CT#PORT_PHASEUPDOWN PORT_UNUSED CT#PORT_PHASECOUNTERSELECT PORT_UNUSED CT#PORT_ACTIVECLOCK PORT_UNUSED CT#CLK2_PHASE_SHIFT 0 CT#CLK0_DUTY_CYCLE 50 CT#CLK0_DIVIDE_BY 1 CT#CLK1_DIVIDE_BY 5 CT#CLK3_MULTIPLY_BY 8 CT#USING_FBMIMICBIDIR_PORT OFF CT#PORT_LOCKED PORT_USED</parameter> + <parameter name="HIDDEN_CONSTANTS">CT#CLK2_DIVIDE_BY 1 CT#PORT_clk9 PORT_UNUSED CT#PORT_clk8 PORT_UNUSED CT#PORT_clk7 PORT_UNUSED CT#PORT_clk6 PORT_UNUSED CT#PORT_clk5 PORT_UNUSED CT#PORT_clk4 PORT_UNUSED CT#PORT_clk3 PORT_USED CT#PORT_clk2 PORT_USED CT#PORT_clk1 PORT_USED CT#PORT_clk0 PORT_USED CT#CLK0_MULTIPLY_BY 2 CT#PORT_SCANWRITE PORT_UNUSED CT#PORT_SCANACLR PORT_UNUSED CT#PORT_PFDENA PORT_UNUSED CT#CLK3_DUTY_CYCLE 50 CT#CLK3_DIVIDE_BY 5 CT#PORT_PLLENA PORT_UNUSED CT#PORT_SCANDATA PORT_UNUSED CT#CLK3_PHASE_SHIFT 0 CT#PORT_SCANCLKENA PORT_UNUSED CT#WIDTH_CLOCK 10 CT#PORT_SCANDATAOUT PORT_UNUSED CT#LPM_TYPE altpll CT#PLL_TYPE AUTO CT#CLK0_PHASE_SHIFT 0 CT#CLK1_DUTY_CYCLE 50 CT#PORT_PHASEDONE PORT_UNUSED CT#OPERATION_MODE NORMAL CT#PORT_CONFIGUPDATE PORT_UNUSED CT#CLK1_MULTIPLY_BY 4 CT#COMPENSATE_CLOCK CLK0 CT#PORT_CLKSWITCH PORT_UNUSED CT#INCLK0_INPUT_FREQUENCY 40000 CT#PORT_SCANDONE PORT_UNUSED CT#PORT_CLKLOSS PORT_UNUSED CT#PORT_INCLK1 PORT_UNUSED CT#AVALON_USE_SEPARATE_SYSCLK NO CT#PORT_INCLK0 PORT_USED CT#PORT_clkena5 PORT_UNUSED CT#PORT_clkena4 PORT_UNUSED CT#PORT_clkena3 PORT_UNUSED CT#PORT_clkena2 PORT_UNUSED CT#PORT_clkena1 PORT_UNUSED CT#PORT_FBOUT PORT_UNUSED CT#PORT_clkena0 PORT_UNUSED CT#CLK1_PHASE_SHIFT 0 CT#PORT_ARESET PORT_UNUSED CT#BANDWIDTH_TYPE AUTO CT#CLK2_MULTIPLY_BY 5 CT#INTENDED_DEVICE_FAMILY {Stratix IV} CT#PORT_SCANREAD PORT_UNUSED CT#CLK2_DUTY_CYCLE 50 CT#PORT_PHASESTEP PORT_UNUSED CT#PORT_SCANCLK PORT_UNUSED CT#PORT_CLKBAD1 PORT_UNUSED CT#PORT_CLKBAD0 PORT_UNUSED CT#PORT_FBIN PORT_UNUSED CT#PORT_PHASEUPDOWN PORT_UNUSED CT#PORT_PHASECOUNTERSELECT PORT_UNUSED CT#PORT_ACTIVECLOCK PORT_UNUSED CT#CLK2_PHASE_SHIFT 0 CT#CLK0_DUTY_CYCLE 50 CT#CLK0_DIVIDE_BY 1 CT#CLK1_DIVIDE_BY 5 CT#CLK3_MULTIPLY_BY 8 CT#USING_FBMIMICBIDIR_PORT OFF CT#PORT_LOCKED PORT_USED</parameter> <parameter name="HIDDEN_PRIVATES">PT#GLOCKED_FEATURE_ENABLED 0 PT#SPREAD_FEATURE_ENABLED 0 PT#BANDWIDTH_FREQ_UNIT MHz PT#CUR_DEDICATED_CLK c0 PT#INCLK0_FREQ_EDIT 25.000 PT#BANDWIDTH_PRESET Low PT#PLL_LVDS_PLL_CHECK 0 PT#BANDWIDTH_USE_PRESET 0 PT#AVALON_USE_SEPARATE_SYSCLK NO PT#OUTPUT_FREQ_UNIT3 MHz PT#PLL_ENHPLL_CHECK 0 PT#OUTPUT_FREQ_UNIT2 MHz PT#OUTPUT_FREQ_UNIT1 MHz PT#OUTPUT_FREQ_UNIT0 MHz PT#PHASE_RECONFIG_FEATURE_ENABLED 1 PT#CREATE_CLKBAD_CHECK 0 PT#CLKSWITCH_CHECK 0 PT#INCLK1_FREQ_EDIT 100.000 PT#NORMAL_MODE_RADIO 1 PT#SRC_SYNCH_COMP_RADIO 0 PT#PLL_ARESET_CHECK 0 PT#LONG_SCAN_RADIO 1 PT#SCAN_FEATURE_ENABLED 1 PT#USE_CLK3 1 PT#USE_CLK2 1 PT#PHASE_RECONFIG_INPUTS_CHECK 0 PT#USE_CLK1 1 PT#USE_CLK0 1 PT#PRIMARY_CLK_COMBO inclk0 PT#BANDWIDTH 1.000 PT#GLOCKED_COUNTER_EDIT_CHANGED 1 PT#PLL_FASTPLL_CHECK 0 PT#SPREAD_FREQ_UNIT KHz PT#LVDS_PHASE_SHIFT_UNIT3 deg PT#PLL_AUTOPLL_CHECK 1 PT#LVDS_PHASE_SHIFT_UNIT2 deg PT#OUTPUT_FREQ_MODE3 1 PT#LVDS_PHASE_SHIFT_UNIT1 deg PT#OUTPUT_FREQ_MODE2 1 PT#LVDS_PHASE_SHIFT_UNIT0 deg PT#OUTPUT_FREQ_MODE1 1 PT#SWITCHOVER_FEATURE_ENABLED 0 PT#MIG_DEVICE_SPEED_GRADE Any PT#OUTPUT_FREQ_MODE0 1 PT#BANDWIDTH_FEATURE_ENABLED 1 PT#INCLK0_FREQ_UNIT_COMBO MHz PT#ZERO_DELAY_RADIO 0 PT#OUTPUT_FREQ3 40.00000000 PT#OUTPUT_FREQ2 125.00000000 PT#OUTPUT_FREQ1 20.00000000 PT#OUTPUT_FREQ0 50.00000000 PT#SHORT_SCAN_RADIO 0 PT#LVDS_MODE_DATA_RATE_DIRTY 0 PT#CUR_FBIN_CLK c0 PT#PLL_ADVANCED_PARAM_CHECK 0 PT#CLKBAD_SWITCHOVER_CHECK 0 PT#PHASE_SHIFT_STEP_ENABLED_CHECK 0 PT#DEVICE_SPEED_GRADE Any PT#PLL_FBMIMIC_CHECK 0 PT#LVDS_MODE_DATA_RATE {Not Available} PT#LOCKED_OUTPUT_CHECK 1 PT#SPREAD_PERCENT 0.500 PT#PHASE_SHIFT3 0.00000000 PT#PHASE_SHIFT2 0.00000000 PT#DIV_FACTOR3 1 PT#PHASE_SHIFT1 0.00000000 PT#DIV_FACTOR2 1 PT#PHASE_SHIFT0 0.00000000 PT#DIV_FACTOR1 1 PT#DIV_FACTOR0 1 PT#CNX_NO_COMPENSATE_RADIO 0 PT#CREATE_INCLK1_CHECK 0 PT#GLOCK_COUNTER_EDIT 1048575 PT#INCLK1_FREQ_UNIT_COMBO MHz PT#EFF_OUTPUT_FREQ_VALUE3 40.000000 PT#EFF_OUTPUT_FREQ_VALUE2 125.000000 PT#EFF_OUTPUT_FREQ_VALUE1 20.000000 PT#EFF_OUTPUT_FREQ_VALUE0 50.000000 PT#SPREAD_FREQ 50.000 PT#USE_MIL_SPEED_GRADE 0 PT#EXPLICIT_SWITCHOVER_COUNTER 0 PT#STICKY_CLK3 1 PT#STICKY_CLK2 1 PT#STICKY_CLK1 1 PT#STICKY_CLK0 1 PT#EXT_FEEDBACK_RADIO 0 PT#SWITCHOVER_COUNT_EDIT 1 PT#SELF_RESET_LOCK_LOSS 0 PT#PLL_PFDENA_CHECK 0 PT#INT_FEEDBACK__MODE_RADIO 1 PT#INCLK1_FREQ_EDIT_CHANGED 1 PT#SYNTH_WRAPPER_GEN_POSTFIX 0 PT#CLKLOSS_CHECK 0 PT#PHASE_SHIFT_UNIT3 deg PT#PHASE_SHIFT_UNIT2 deg PT#PHASE_SHIFT_UNIT1 deg PT#PHASE_SHIFT_UNIT0 deg PT#BANDWIDTH_USE_AUTO 1 PT#HAS_MANUAL_SWITCHOVER 1 PT#MULT_FACTOR3 1 PT#MULT_FACTOR2 1 PT#MULT_FACTOR1 1 PT#MULT_FACTOR0 1 PT#SPREAD_USE 0 PT#GLOCKED_MODE_CHECK 0 PT#DUTY_CYCLE3 50.00000000 PT#DUTY_CYCLE2 50.00000000 PT#SACN_INPUTS_CHECK 0 PT#DUTY_CYCLE1 50.00000000 PT#INTENDED_DEVICE_FAMILY {Stratix IV} PT#DUTY_CYCLE0 50.00000000 PT#PLL_TARGET_HARCOPY_CHECK 0 PT#INCLK1_FREQ_UNIT_CHANGED 1 PT#RECONFIG_FILE ALTPLL1256297171721465.mif PT#ACTIVECLK_CHECK 0</parameter> <parameter name="HIDDEN_USED_PORTS">UP#locked used UP#c3 used UP#c2 used UP#c1 used UP#c0 used UP#areset used UP#inclk0 used</parameter> <parameter name="HIDDEN_IS_NUMERIC">IN#WIDTH_CLOCK 1 IN#CLK0_DUTY_CYCLE 1 IN#CLK2_DIVIDE_BY 1 IN#PLL_TARGET_HARCOPY_CHECK 1 IN#CLK3_DIVIDE_BY 1 IN#CLK1_MULTIPLY_BY 1 IN#CLK3_DUTY_CYCLE 1 IN#SWITCHOVER_COUNT_EDIT 1 IN#INCLK0_INPUT_FREQUENCY 1 IN#PLL_LVDS_PLL_CHECK 1 IN#PLL_AUTOPLL_CHECK 1 IN#PLL_FASTPLL_CHECK 1 IN#CLK1_DUTY_CYCLE 1 IN#PLL_ENHPLL_CHECK 1 IN#CLK2_MULTIPLY_BY 1 IN#DIV_FACTOR3 1 IN#DIV_FACTOR2 1 IN#DIV_FACTOR1 1 IN#DIV_FACTOR0 1 IN#LVDS_MODE_DATA_RATE_DIRTY 1 IN#GLOCK_COUNTER_EDIT 1 IN#CLK2_DUTY_CYCLE 1 IN#CLK0_DIVIDE_BY 1 IN#CLK3_MULTIPLY_BY 1 IN#MULT_FACTOR3 1 IN#MULT_FACTOR2 1 IN#MULT_FACTOR1 1 IN#MULT_FACTOR0 1 IN#CLK0_MULTIPLY_BY 1 IN#USE_MIL_SPEED_GRADE 1 IN#CLK1_DIVIDE_BY 1</parameter> @@ -1659,7 +1900,7 @@ q]]></parameter> <parameter name="tightlyCoupledInstructionMaster2AddrWidth" value="1" /> <parameter name="tightlyCoupledInstructionMaster3AddrWidth" value="1" /> <parameter name="instSlaveMapParam"><![CDATA[<address-map><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /></address-map>]]></parameter> - <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='avs_eth_0.mms_reg' start='0x80' end='0xC0' /><slave name='timer_0.s1' start='0xC0' end='0xE0' /><slave name='reg_unb_sens.mem' start='0xE0' end='0x100' /><slave name='reg_remu.mem' start='0x100' end='0x120' /><slave name='reg_epcs.mem' start='0x120' end='0x140' /><slave name='altpll_0.pll_slave' start='0x140' end='0x150' /><slave name='pio_wdi.s1' start='0x150' end='0x160' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x160' end='0x168' /><slave name='pio_pps.mem' start='0x168' end='0x170' /><slave name='reg_dpmm_ctrl.mem' start='0x170' end='0x178' /><slave name='reg_dpmm_data.mem' start='0x178' end='0x180' /><slave name='reg_mmdp_ctrl.mem' start='0x180' end='0x188' /><slave name='reg_mmdp_data.mem' start='0x188' end='0x190' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='avs_eth_0.mms_tse' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='avs_eth_0.mms_ram' start='0x4000' end='0x5000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /></address-map>]]></parameter> + <parameter name="dataSlaveMapParam"><![CDATA[<address-map><slave name='pio_system_info.mem' start='0x0' end='0x80' /><slave name='reg_common.mem' start='0x80' end='0x100' /><slave name='Beam0_dp_offload_rx_reg_hdr_dat.mem' start='0x100' end='0x200' /><slave name='avs_eth_0.mms_reg' start='0x200' end='0x240' /><slave name='Beam0_eth.mms_reg' start='0x240' end='0x280' /><slave name='timer_0.s1' start='0x280' end='0x2A0' /><slave name='reg_unb_sens.mem' start='0x2A0' end='0x2C0' /><slave name='reg_remu.mem' start='0x2C0' end='0x2E0' /><slave name='reg_epcs.mem' start='0x2E0' end='0x300' /><slave name='altpll_0.pll_slave' start='0x300' end='0x310' /><slave name='pio_wdi.s1' start='0x310' end='0x320' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x320' end='0x328' /><slave name='pio_pps.mem' start='0x328' end='0x330' /><slave name='reg_dpmm_ctrl.mem' start='0x330' end='0x338' /><slave name='reg_dpmm_data.mem' start='0x338' end='0x340' /><slave name='reg_mmdp_ctrl.mem' start='0x340' end='0x348' /><slave name='reg_mmdp_data.mem' start='0x348' end='0x350' /><slave name='rom_system_info.mem' start='0x1000' end='0x2000' /><slave name='avs_eth_0.mms_tse' start='0x2000' end='0x3000' /><slave name='reg_wdi.mem' start='0x3000' end='0x3008' /><slave name='cpu_0.jtag_debug_module' start='0x3800' end='0x4000' /><slave name='avs_eth_0.mms_ram' start='0x4000' end='0x5000' /><slave name='Beam0_eth.mms_tse' start='0x5000' end='0x6000' /><slave name='Beam0_eth.mms_ram' start='0x6000' end='0x7000' /><slave name='onchip_memory2_0.s1' start='0x20000' end='0x40000' /></address-map>]]></parameter> <parameter name="clockFrequency" value="50000000" /> <parameter name="deviceFamilyName" value="Stratix IV" /> <parameter name="internalIrqMaskSystemInfo" value="7" /> @@ -1679,6 +1920,23 @@ q]]></parameter> <parameter name="EXPLICIT_CLOCK_RATE" value="0" /> <parameter name="NUM_CLOCK_OUTPUTS" value="1" /> </module> + <module kind="avs_common_mm" version="1.0" enabled="1" name="reg_common"> + <parameter name="g_adr_w" value="5" /> + <parameter name="g_dat_w" value="32" /> + <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> + </module> + <module kind="avs2_eth_coe" version="1.0" enabled="1" name="Beam0_eth"> + <parameter name="AUTO_MM_CLOCK_RATE" value="50000000" /> + </module> + <module + kind="avs_common_mm" + version="1.0" + enabled="1" + name="Beam0_dp_offload_rx_reg_hdr_dat"> + <parameter name="g_adr_w" value="6" /> + <parameter name="g_dat_w" value="32" /> + <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> + </module> <connection kind="avalon" version="11.1" @@ -1717,7 +1975,7 @@ q]]></parameter> start="cpu_0.data_master" end="jtag_uart_0.avalon_jtag_slave"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0160" /> + <parameter name="baseAddress" value="0x0320" /> </connection> <connection kind="interrupt" @@ -1732,7 +1990,7 @@ q]]></parameter> start="cpu_0.data_master" end="altpll_0.pll_slave"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0140" /> + <parameter name="baseAddress" value="0x0300" /> </connection> <connection kind="clock" version="11.1" start="altpll_0.c0" end="cpu_0.clk" /> <connection @@ -1753,7 +2011,7 @@ q]]></parameter> start="cpu_0.data_master" end="pio_wdi.s1"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0150" /> + <parameter name="baseAddress" value="0x0310" /> </connection> <connection kind="clock" version="11.1" start="altpll_0.c0" end="timer_0.clk" /> <connection @@ -1762,7 +2020,7 @@ q]]></parameter> start="cpu_0.data_master" end="timer_0.s1"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x00c0" /> + <parameter name="baseAddress" value="0x0280" /> </connection> <connection kind="interrupt" version="11.1" start="cpu_0.d_irq" end="timer_0.irq"> <parameter name="irqNumber" value="1" /> @@ -1778,7 +2036,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_unb_sens.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x00e0" /> + <parameter name="baseAddress" value="0x02a0" /> </connection> <connection kind="clock" @@ -1813,7 +2071,7 @@ q]]></parameter> start="cpu_0.data_master" end="pio_pps.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0168" /> + <parameter name="baseAddress" value="0x0328" /> </connection> <connection kind="clock" version="11.1" start="altpll_0.c0" end="reg_wdi.system" /> <connection @@ -1839,7 +2097,7 @@ q]]></parameter> start="cpu_0.data_master" end="avs_eth_0.mms_reg"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0080" /> + <parameter name="baseAddress" value="0x0200" /> </connection> <connection kind="avalon" @@ -1863,7 +2121,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_remu.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0100" /> + <parameter name="baseAddress" value="0x02c0" /> </connection> <connection kind="clock" version="11.1" start="altpll_0.c0" end="reg_epcs.system" /> <connection @@ -1872,7 +2130,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_epcs.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0120" /> + <parameter name="baseAddress" value="0x02e0" /> </connection> <connection kind="clock" @@ -1885,7 +2143,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_dpmm_ctrl.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0170" /> + <parameter name="baseAddress" value="0x0330" /> </connection> <connection kind="clock" @@ -1898,7 +2156,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_dpmm_data.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0178" /> + <parameter name="baseAddress" value="0x0338" /> </connection> <connection kind="clock" @@ -1911,7 +2169,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_mmdp_ctrl.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0180" /> + <parameter name="baseAddress" value="0x0340" /> </connection> <connection kind="clock" @@ -1924,7 +2182,7 @@ q]]></parameter> start="cpu_0.data_master" end="reg_mmdp_data.mem"> <parameter name="arbitrationPriority" value="1" /> - <parameter name="baseAddress" value="0x0188" /> + <parameter name="baseAddress" value="0x0348" /> </connection> <connection kind="reset" @@ -2107,4 +2365,70 @@ q]]></parameter> start="cpu_0.jtag_debug_module_reset" end="cpu_0.reset_n" /> <connection kind="clock" version="11.1" start="altpll_0.c0" end="c0.in_clk" /> + <connection + kind="clock" + version="11.1" + start="altpll_0.c0" + end="reg_common.system" /> + <connection + kind="reset" + version="11.1" + start="clk_0.clk_reset" + end="reg_common.system_reset" /> + <connection + kind="avalon" + version="11.1" + start="cpu_0.data_master" + end="reg_common.mem"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x0080" /> + </connection> + <connection kind="clock" version="11.1" start="altpll_0.c0" end="Beam0_eth.mm" /> + <connection + kind="reset" + version="11.1" + start="clk_0.clk_reset" + end="Beam0_eth.mm_reset" /> + <connection + kind="avalon" + version="11.1" + start="cpu_0.data_master" + end="Beam0_eth.mms_tse"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x5000" /> + </connection> + <connection + kind="avalon" + version="11.1" + start="cpu_0.data_master" + end="Beam0_eth.mms_reg"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x0240" /> + </connection> + <connection + kind="avalon" + version="11.1" + start="cpu_0.data_master" + end="Beam0_eth.mms_ram"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x6000" /> + </connection> + <connection + kind="reset" + version="11.1" + start="clk_0.clk_reset" + end="Beam0_dp_offload_rx_reg_hdr_dat.system_reset" /> + <connection + kind="clock" + version="11.1" + start="altpll_0.c0" + end="Beam0_dp_offload_rx_reg_hdr_dat.system" /> + <connection + kind="avalon" + version="11.1" + start="cpu_0.data_master" + end="Beam0_dp_offload_rx_reg_hdr_dat.mem"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x0100" /> + </connection> </system> diff --git a/applications/rfidb/designs/rfidb/src/vhdl/mmm_unb1_rfidb.vhd b/applications/rfidb/designs/rfidb/src/vhdl/mmm_unb1_rfidb.vhd index 8bc6ce0cc786a73ea5c22f362d67c58df3a78946..68dab06f2ee13f797e39a9aa5c993eb2ebd259a3 100644 --- a/applications/rfidb/designs/rfidb/src/vhdl/mmm_unb1_rfidb.vhd +++ b/applications/rfidb/designs/rfidb/src/vhdl/mmm_unb1_rfidb.vhd @@ -24,6 +24,7 @@ USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; +USE common_lib.common_field_pkg.ALL; USE unb1_board_lib.unb1_board_pkg.ALL; USE unb1_board_lib.unb1_board_peripherals_pkg.ALL; USE mm_lib.mm_file_pkg.ALL; @@ -33,10 +34,11 @@ USE work.qsys_unb1_rfidb_pkg.ALL; ENTITY mmm_unb1_rfidb IS GENERIC ( - g_sim : BOOLEAN := FALSE; --FALSE: use SOPC; TRUE: use mm_file I/O - g_sim_unb_nr : NATURAL := 0; - g_sim_node_nr : NATURAL := 0; - g_use_qsys : BOOLEAN := FALSE + g_sim : BOOLEAN := FALSE; --FALSE: use SOPC; TRUE: use mm_file I/O + g_sim_unb_nr : NATURAL := 0; + g_sim_node_nr : NATURAL := 0; + g_use_qsys : BOOLEAN := FALSE; + g_hdr_field_arr : t_common_field_arr ); PORT ( xo_clk : IN STD_LOGIC; @@ -48,6 +50,7 @@ ENTITY mmm_unb1_rfidb IS mm_locked : OUT STD_LOGIC; epcs_clk : OUT STD_LOGIC; + cal_rec_clk : OUT STD_LOGIC; pout_wdi : OUT STD_LOGIC; @@ -97,20 +100,59 @@ ENTITY mmm_unb1_rfidb IS -- Remote Update reg_remu_mosi : OUT t_mem_mosi; - reg_remu_miso : IN t_mem_miso + reg_remu_miso : IN t_mem_miso; + + -- BEAM0_eth + Beam0_eth_tse_mosi : OUT t_mem_mosi; + Beam0_eth_tse_miso : IN t_mem_miso; + Beam0_eth_reg_mosi : OUT t_mem_mosi; + Beam0_eth_reg_miso : IN t_mem_miso; + Beam0_eth_reg_interrupt : IN STD_LOGIC; + Beam0_eth_ram_mosi : OUT t_mem_mosi; + Beam0_eth_ram_miso : IN t_mem_miso; + + -- BEAM0_offload + Beam0_dp_offload_rx_reg_hdr_dat_mosi : OUT t_mem_mosi; + Beam0_dp_offload_rx_reg_hdr_dat_miso : IN t_mem_miso + ); END mmm_unb1_rfidb; ARCHITECTURE str OF mmm_unb1_rfidb IS - CONSTANT c_mm_clk_period : TIME := 8 ns; -- 125 MHz - CONSTANT c_epcs_clk_period : TIME := 50 ns; -- 20 MHz + CONSTANT c_mm_clk_period : TIME := 8 ns; -- 125 MHz + CONSTANT c_eth_clk_period : TIME := 8 ns; + CONSTANT c_cal_rec_clk_period : TIME := 25 ns; + CONSTANT c_epcs_clk_period : TIME := 50 ns; -- 20 MHz CONSTANT c_sim_node_type : STRING(1 TO 2):= sel_a_b(g_sim_node_nr<4, "FN", "BN"); CONSTANT c_sim_node_nr : NATURAL := sel_a_b(c_sim_node_type="BN", g_sim_node_nr-4, g_sim_node_nr); - SIGNAL i_mm_clk : STD_LOGIC := '1'; - SIGNAL i_epcs_clk : STD_LOGIC := '1'; + SIGNAL i_mm_clk : STD_LOGIC := '1'; + SIGNAL i_eth1g_tse_clk : STD_LOGIC := '1'; + SIGNAL i_cal_rec_clk : STD_LOGIC := '1'; + SIGNAL i_epcs_clk : STD_LOGIC := '1'; + + + -- dp_offload + CONSTANT c_beam_nof_streams : NATURAL := 1; + CONSTANT c_RFI_DB_nof_streams : NATURAL := 1; + + CONSTANT c_reg_dp_offload_tx_adr_w : NATURAL := 1; -- Dev note: add to c_unb1_board_peripherals_mm_reg_default + CONSTANT c_reg_dp_offload_tx_multi_adr_w : NATURAL := ceil_log2(c_RFI_DB_nof_streams* pow2(c_reg_dp_offload_tx_adr_w)); + + CONSTANT c_reg_dp_offload_tx_hdr_dat_nof_words : NATURAL := field_nof_words(g_hdr_field_arr, c_word_w); + CONSTANT c_reg_dp_offload_tx_hdr_dat_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_tx_hdr_dat_nof_words); + CONSTANT c_reg_dp_offload_tx_hdr_dat_multi_adr_w : NATURAL := ceil_log2(c_RFI_DB_nof_streams* pow2(c_reg_dp_offload_tx_hdr_dat_adr_w)); + + CONSTANT c_reg_dp_offload_tx_hdr_ovr_nof_words : NATURAL := g_hdr_field_arr'LENGTH; + CONSTANT c_reg_dp_offload_tx_hdr_ovr_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_tx_hdr_ovr_nof_words); + CONSTANT c_reg_dp_offload_tx_hdr_ovr_multi_adr_w : NATURAL := ceil_log2(c_RFI_DB_nof_streams* pow2(c_reg_dp_offload_tx_hdr_ovr_adr_w)); + + CONSTANT c_reg_dp_offload_rx_hdr_dat_nof_words : NATURAL := field_nof_words(g_hdr_field_arr, c_word_w); + CONSTANT c_reg_dp_offload_rx_hdr_dat_adr_w : NATURAL := ceil_log2(c_reg_dp_offload_rx_hdr_dat_nof_words); + CONSTANT c_reg_dp_offload_rx_hdr_dat_multi_adr_w : NATURAL := ceil_log2(c_beam_nof_streams* pow2(c_reg_dp_offload_rx_hdr_dat_adr_w)); + ---------------------------------------------------------------------------- -- mm_file component @@ -134,6 +176,8 @@ BEGIN mm_clk <= i_mm_clk; epcs_clk <= i_epcs_clk; + eth1g_tse_clk <= i_eth1g_tse_clk; + cal_rec_clk <= i_cal_rec_clk; ---------------------------------------------------------------------------- @@ -141,6 +185,8 @@ BEGIN ---------------------------------------------------------------------------- gen_mm_file_io : IF g_sim = TRUE GENERATE + i_cal_rec_clk <= NOT i_cal_rec_clk AFTER c_cal_rec_clk_period/2; + i_eth1g_tse_clk <= NOT i_eth1g_tse_clk AFTER c_eth_clk_period/2; i_mm_clk <= NOT i_mm_clk AFTER c_mm_clk_period/2; mm_locked <= '0', '1' AFTER c_mm_clk_period*5; i_epcs_clk <= NOT i_epcs_clk AFTER c_epcs_clk_period/2; @@ -181,8 +227,9 @@ BEGIN clk_0 => xo_clk, reset_n => xo_rst_n, mm_clk => i_mm_clk, - tse_clk => eth1g_tse_clk, + tse_clk => i_eth1g_tse_clk, epcs_clk => i_epcs_clk, + cal_rec_clk => i_cal_rec_clk, -- the_altpll_0 locked_from_the_altpll_0 => mm_locked, @@ -311,7 +358,36 @@ BEGIN coe_read_export_from_the_reg_wdi => reg_wdi_mosi.rd, coe_readdata_export_to_the_reg_wdi => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0), coe_write_export_from_the_reg_wdi => reg_wdi_mosi.wr, - coe_writedata_export_from_the_reg_wdi => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0) + coe_writedata_export_from_the_reg_wdi => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0), + + -- BEAM0_eth + beam0_eth_tse_address_export => BEAM0_eth_tse_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_tse_adr_w-1 DOWNTO 0), + beam0_eth_tse_write_export => BEAM0_eth_tse_mosi.wr, + beam0_eth_tse_writedata_export => BEAM0_eth_tse_mosi.wrdata(c_word_w-1 DOWNTO 0), + beam0_eth_tse_read_export => BEAM0_eth_tse_mosi.rd, + beam0_eth_tse_readdata_export => BEAM0_eth_tse_miso.rddata(c_word_w-1 DOWNTO 0), + beam0_eth_tse_waitrequest_export => BEAM0_eth_tse_miso.waitrequest, + beam0_eth_reg_address_export => BEAM0_eth_reg_mosi.address(c_unb1_board_peripherals_mm_reg_default.reg_eth_adr_w-1 DOWNTO 0), + beam0_eth_reg_write_export => BEAM0_eth_reg_mosi.wr, + beam0_eth_reg_writedata_export => BEAM0_eth_reg_mosi.wrdata(c_word_w-1 DOWNTO 0), + beam0_eth_reg_read_export => BEAM0_eth_reg_mosi.rd, + beam0_eth_reg_readdata_export => BEAM0_eth_reg_miso.rddata(c_word_w-1 DOWNTO 0), + beam0_eth_ram_address_export => BEAM0_eth_ram_mosi.address(c_unb1_board_peripherals_mm_reg_default.ram_eth_adr_w-1 DOWNTO 0), + beam0_eth_ram_write_export => BEAM0_eth_ram_mosi.wr, + beam0_eth_ram_writedata_export => BEAM0_eth_ram_mosi.wrdata(c_word_w-1 DOWNTO 0), + beam0_eth_ram_read_export => BEAM0_eth_ram_mosi.rd, + beam0_eth_ram_readdata_export => BEAM0_eth_ram_miso.rddata(c_word_w-1 DOWNTO 0), + beam0_eth_irq_export => open, + + Beam0_dp_offload_rx_reg_hdr_dat_reset_export => open, + Beam0_dp_offload_rx_reg_hdr_dat_clk_export => open, + Beam0_dp_offload_rx_reg_hdr_dat_address_export => Beam0_dp_offload_rx_reg_hdr_dat_mosi.address(c_reg_dp_offload_rx_hdr_dat_multi_adr_w-1 DOWNTO 0), + Beam0_dp_offload_rx_reg_hdr_dat_write_export => Beam0_dp_offload_rx_reg_hdr_dat_mosi.wr, + Beam0_dp_offload_rx_reg_hdr_dat_writedata_export => Beam0_dp_offload_rx_reg_hdr_dat_mosi.wrdata(c_word_w-1 DOWNTO 0), + Beam0_dp_offload_rx_reg_hdr_dat_read_export => Beam0_dp_offload_rx_reg_hdr_dat_mosi.rd, + Beam0_dp_offload_rx_reg_hdr_dat_readdata_export => Beam0_dp_offload_rx_reg_hdr_dat_miso.rddata(c_word_w-1 DOWNTO 0) + + ); END GENERATE; diff --git a/applications/rfidb/designs/rfidb/src/vhdl/qsys_unb1_rfidb_pkg.vhd b/applications/rfidb/designs/rfidb/src/vhdl/qsys_unb1_rfidb_pkg.vhd index eeecddd91da982a022dfb865e7263464047a44f7..1df6b557fd8289b3d4aeaecc9ea6211aa6b365ee 100644 --- a/applications/rfidb/designs/rfidb/src/vhdl/qsys_unb1_rfidb_pkg.vhd +++ b/applications/rfidb/designs/rfidb/src/vhdl/qsys_unb1_rfidb_pkg.vhd @@ -27,120 +27,147 @@ PACKAGE qsys_unb1_rfidb_pkg IS ----------------------------------------------------------------------------- -- this component declaration is copy-pasted from Quartus v11.1 QSYS builder ----------------------------------------------------------------------------- - - COMPONENT qsys_unb1_rfidb is - - + component qsys_unb1_rfidb is port ( - coe_ram_write_export_from_the_avs_eth_0 : out std_logic; -- export - coe_reg_read_export_from_the_avs_eth_0 : out std_logic; -- export - coe_readdata_export_to_the_reg_mmdp_ctrl : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - mm_clk : out std_logic; -- clk - coe_address_export_from_the_pio_system_info : out std_logic_vector(4 downto 0); -- export - coe_address_export_from_the_pio_pps : out std_logic;--_vector(0 downto 0); -- export - coe_reset_export_from_the_pio_pps : out std_logic; -- export - coe_readdata_export_to_the_reg_epcs : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_readdata_export_to_the_pio_pps : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_writedata_export_from_the_pio_system_info : out std_logic_vector(31 downto 0); -- export - coe_reset_export_from_the_reg_unb_sens : out std_logic; -- export - coe_tse_write_export_from_the_avs_eth_0 : out std_logic; -- export - coe_reset_export_from_the_reg_wdi : out std_logic; -- export - coe_readdata_export_to_the_reg_dpmm_data : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_writedata_export_from_the_reg_mmdp_ctrl : out std_logic_vector(31 downto 0); -- export - coe_address_export_from_the_reg_dpmm_ctrl : out std_logic;--_vector(0 downto 0); -- export - coe_clk_export_from_the_rom_system_info : out std_logic; -- export - coe_reset_export_from_the_reg_remu : out std_logic; -- export - coe_read_export_from_the_reg_unb_sens : out std_logic; -- export - coe_write_export_from_the_reg_unb_sens : out std_logic; -- export - coe_clk_export_from_the_reg_dpmm_data : out std_logic; -- export - coe_clk_export_from_the_reg_unb_sens : out std_logic; -- export - coe_reg_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export - coe_readdata_export_to_the_reg_dpmm_ctrl : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_read_export_from_the_reg_wdi : out std_logic; -- export - coe_reset_export_from_the_reg_mmdp_data : out std_logic; -- export - coe_reg_write_export_from_the_avs_eth_0 : out std_logic; -- export - coe_writedata_export_from_the_reg_mmdp_data : out std_logic_vector(31 downto 0); -- export - coe_read_export_from_the_reg_epcs : out std_logic; -- export - coe_readdata_export_to_the_reg_remu : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_readdata_export_to_the_reg_unb_sens : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_ram_address_export_from_the_avs_eth_0 : out std_logic_vector(9 downto 0); -- export - coe_clk_export_from_the_pio_pps : out std_logic; -- export - coe_readdata_export_to_the_pio_system_info : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_writedata_export_from_the_rom_system_info : out std_logic_vector(31 downto 0); -- export - coe_address_export_from_the_reg_dpmm_data : out std_logic;--_vector(0 downto 0); -- export - coe_write_export_from_the_reg_mmdp_ctrl : out std_logic; -- export - coe_address_export_from_the_reg_wdi : out std_logic;--_vector(0 downto 0); -- export - coe_reset_export_from_the_avs_eth_0 : out std_logic; -- export - coe_write_export_from_the_pio_system_info : out std_logic; -- export - coe_tse_address_export_from_the_avs_eth_0 : out std_logic_vector(9 downto 0); -- export - coe_write_export_from_the_pio_pps : out std_logic; -- export - coe_write_export_from_the_rom_system_info : out std_logic; -- export - coe_irq_export_to_the_avs_eth_0 : in std_logic := 'X'; -- export - coe_reset_export_from_the_reg_epcs : out std_logic; -- export - coe_read_export_from_the_rom_system_info : out std_logic; -- export - phasedone_from_the_altpll_0 : out std_logic; -- export - reset_n : in std_logic := 'X'; -- reset_n - coe_tse_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export - coe_clk_export_from_the_reg_mmdp_ctrl : out std_logic; -- export - coe_tse_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_ram_read_export_from_the_avs_eth_0 : out std_logic; -- export - clk_0 : in std_logic := 'X'; -- clk - coe_read_export_from_the_reg_dpmm_ctrl : out std_logic; -- export - coe_writedata_export_from_the_reg_remu : out std_logic_vector(31 downto 0); -- export - coe_write_export_from_the_reg_dpmm_data : out std_logic; -- export - coe_writedata_export_from_the_reg_unb_sens : out std_logic_vector(31 downto 0); -- export - tse_clk : out std_logic; -- clk - epcs_clk : out std_logic; -- clk - coe_reg_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_reset_export_from_the_reg_dpmm_ctrl : out std_logic; -- export - coe_tse_read_export_from_the_avs_eth_0 : out std_logic; -- export - coe_writedata_export_from_the_reg_dpmm_data : out std_logic_vector(31 downto 0); -- export - coe_writedata_export_from_the_reg_wdi : out std_logic_vector(31 downto 0); -- export - coe_reset_export_from_the_pio_system_info : out std_logic; -- export - coe_read_export_from_the_pio_system_info : out std_logic; -- export - coe_clk_export_from_the_reg_mmdp_data : out std_logic; -- export - coe_clk_export_from_the_reg_wdi : out std_logic; -- export - coe_ram_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_write_export_from_the_reg_remu : out std_logic; -- export - coe_clk_export_from_the_reg_epcs : out std_logic; -- export - coe_read_export_from_the_reg_mmdp_data : out std_logic; -- export - coe_writedata_export_from_the_reg_epcs : out std_logic_vector(31 downto 0); -- export - out_port_from_the_pio_wdi : out std_logic; -- export - coe_reset_export_from_the_reg_dpmm_data : out std_logic; -- export - coe_clk_export_from_the_reg_remu : out std_logic; -- export - coe_read_export_from_the_reg_mmdp_ctrl : out std_logic; -- export - coe_clk_export_from_the_avs_eth_0 : out std_logic; -- export - coe_address_export_from_the_reg_mmdp_ctrl : out std_logic;--_vector(0 downto 0); -- export - coe_write_export_from_the_reg_epcs : out std_logic; -- export - coe_readdata_export_to_the_rom_system_info : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_reset_export_from_the_reg_mmdp_ctrl : out std_logic; -- export - coe_readdata_export_to_the_reg_mmdp_data : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_write_export_from_the_reg_wdi : out std_logic; -- export - coe_readdata_export_to_the_reg_wdi : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - coe_read_export_from_the_pio_pps : out std_logic; -- export - coe_clk_export_from_the_pio_system_info : out std_logic; -- export - coe_writedata_export_from_the_pio_pps : out std_logic_vector(31 downto 0); -- export - coe_address_export_from_the_reg_epcs : out std_logic_vector(2 downto 0); -- export - coe_read_export_from_the_reg_dpmm_data : out std_logic; -- export - coe_reset_export_from_the_rom_system_info : out std_logic; -- export - coe_tse_waitrequest_export_to_the_avs_eth_0 : in std_logic := 'X'; -- export - coe_writedata_export_from_the_reg_dpmm_ctrl : out std_logic_vector(31 downto 0); -- export - coe_address_export_from_the_reg_mmdp_data : out std_logic;--_vector(0 downto 0); -- export - coe_address_export_from_the_reg_unb_sens : out std_logic_vector(2 downto 0); -- export - coe_clk_export_from_the_reg_dpmm_ctrl : out std_logic; -- export - coe_reg_address_export_from_the_avs_eth_0 : out std_logic_vector(3 downto 0); -- export - coe_address_export_from_the_rom_system_info : out std_logic_vector(9 downto 0); -- export - coe_write_export_from_the_reg_mmdp_data : out std_logic; -- export - coe_address_export_from_the_reg_remu : out std_logic_vector(2 downto 0); -- export - areset_to_the_altpll_0 : in std_logic := 'X'; -- export - locked_from_the_altpll_0 : out std_logic; -- export - coe_write_export_from_the_reg_dpmm_ctrl : out std_logic; -- export - coe_ram_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export - c3_from_the_altpll_0 : out std_logic; -- export - coe_read_export_from_the_reg_remu : out std_logic -- export - ); - - END COMPONENT qsys_unb1_rfidb; + coe_ram_write_export_from_the_avs_eth_0 : out std_logic; -- export + coe_reg_read_export_from_the_avs_eth_0 : out std_logic; -- export + coe_readdata_export_to_the_reg_mmdp_ctrl : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + mm_clk : out std_logic; -- clk + coe_address_export_from_the_pio_system_info : out std_logic_vector(4 downto 0); -- export + coe_address_export_from_the_pio_pps : out std_logic;--_vector(0 downto 0); -- export + coe_reset_export_from_the_pio_pps : out std_logic; -- export + coe_readdata_export_to_the_reg_epcs : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_readdata_export_to_the_pio_pps : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_writedata_export_from_the_pio_system_info : out std_logic_vector(31 downto 0); -- export + coe_reset_export_from_the_reg_unb_sens : out std_logic; -- export + coe_tse_write_export_from_the_avs_eth_0 : out std_logic; -- export + coe_reset_export_from_the_reg_wdi : out std_logic; -- export + coe_readdata_export_to_the_reg_dpmm_data : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_writedata_export_from_the_reg_mmdp_ctrl : out std_logic_vector(31 downto 0); -- export + coe_address_export_from_the_reg_dpmm_ctrl : out std_logic;--_vector(0 downto 0); -- export + coe_clk_export_from_the_rom_system_info : out std_logic; -- export + coe_reset_export_from_the_reg_remu : out std_logic; -- export + coe_read_export_from_the_reg_unb_sens : out std_logic; -- export + coe_write_export_from_the_reg_unb_sens : out std_logic; -- export + coe_clk_export_from_the_reg_dpmm_data : out std_logic; -- export + coe_clk_export_from_the_reg_unb_sens : out std_logic; -- export + coe_reg_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export + coe_readdata_export_to_the_reg_dpmm_ctrl : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_read_export_from_the_reg_wdi : out std_logic; -- export + coe_reset_export_from_the_reg_mmdp_data : out std_logic; -- export + coe_reg_write_export_from_the_avs_eth_0 : out std_logic; -- export + coe_writedata_export_from_the_reg_mmdp_data : out std_logic_vector(31 downto 0); -- export + coe_read_export_from_the_reg_epcs : out std_logic; -- export + coe_readdata_export_to_the_reg_remu : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_readdata_export_to_the_reg_unb_sens : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_ram_address_export_from_the_avs_eth_0 : out std_logic_vector(9 downto 0); -- export + coe_clk_export_from_the_pio_pps : out std_logic; -- export + coe_readdata_export_to_the_pio_system_info : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_writedata_export_from_the_rom_system_info : out std_logic_vector(31 downto 0); -- export + coe_address_export_from_the_reg_dpmm_data : out std_logic;--_vector(0 downto 0); -- export + coe_write_export_from_the_reg_mmdp_ctrl : out std_logic; -- export + coe_address_export_from_the_reg_wdi : out std_logic;--_vector(0 downto 0); -- export + coe_reset_export_from_the_avs_eth_0 : out std_logic; -- export + coe_write_export_from_the_pio_system_info : out std_logic; -- export + coe_tse_address_export_from_the_avs_eth_0 : out std_logic_vector(9 downto 0); -- export + coe_write_export_from_the_pio_pps : out std_logic; -- export + coe_write_export_from_the_rom_system_info : out std_logic; -- export + coe_irq_export_to_the_avs_eth_0 : in std_logic := 'X'; -- export + coe_reset_export_from_the_reg_epcs : out std_logic; -- export + coe_read_export_from_the_rom_system_info : out std_logic; -- export + phasedone_from_the_altpll_0 : out std_logic; -- export + reset_n : in std_logic := 'X'; -- reset_n + coe_tse_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export + coe_clk_export_from_the_reg_mmdp_ctrl : out std_logic; -- export + coe_tse_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_ram_read_export_from_the_avs_eth_0 : out std_logic; -- export + clk_0 : in std_logic := 'X'; -- clk + coe_read_export_from_the_reg_dpmm_ctrl : out std_logic; -- export + coe_writedata_export_from_the_reg_remu : out std_logic_vector(31 downto 0); -- export + coe_write_export_from_the_reg_dpmm_data : out std_logic; -- export + coe_writedata_export_from_the_reg_unb_sens : out std_logic_vector(31 downto 0); -- export + tse_clk : out std_logic; -- clk + epcs_clk : out std_logic; -- clk + coe_reg_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_reset_export_from_the_reg_dpmm_ctrl : out std_logic; -- export + coe_tse_read_export_from_the_avs_eth_0 : out std_logic; -- export + coe_writedata_export_from_the_reg_dpmm_data : out std_logic_vector(31 downto 0); -- export + coe_writedata_export_from_the_reg_wdi : out std_logic_vector(31 downto 0); -- export + coe_reset_export_from_the_pio_system_info : out std_logic; -- export + coe_read_export_from_the_pio_system_info : out std_logic; -- export + coe_clk_export_from_the_reg_mmdp_data : out std_logic; -- export + coe_clk_export_from_the_reg_wdi : out std_logic; -- export + coe_ram_readdata_export_to_the_avs_eth_0 : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_write_export_from_the_reg_remu : out std_logic; -- export + coe_clk_export_from_the_reg_epcs : out std_logic; -- export + coe_read_export_from_the_reg_mmdp_data : out std_logic; -- export + coe_writedata_export_from_the_reg_epcs : out std_logic_vector(31 downto 0); -- export + out_port_from_the_pio_wdi : out std_logic; -- export + coe_reset_export_from_the_reg_dpmm_data : out std_logic; -- export + coe_clk_export_from_the_reg_remu : out std_logic; -- export + coe_read_export_from_the_reg_mmdp_ctrl : out std_logic; -- export + coe_clk_export_from_the_avs_eth_0 : out std_logic; -- export + coe_address_export_from_the_reg_mmdp_ctrl : out std_logic;--_vector(0 downto 0); -- export + coe_write_export_from_the_reg_epcs : out std_logic; -- export + coe_readdata_export_to_the_rom_system_info : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_reset_export_from_the_reg_mmdp_ctrl : out std_logic; -- export + coe_readdata_export_to_the_reg_mmdp_data : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_write_export_from_the_reg_wdi : out std_logic; -- export + coe_readdata_export_to_the_reg_wdi : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + coe_read_export_from_the_pio_pps : out std_logic; -- export + coe_clk_export_from_the_pio_system_info : out std_logic; -- export + coe_writedata_export_from_the_pio_pps : out std_logic_vector(31 downto 0); -- export + coe_address_export_from_the_reg_epcs : out std_logic_vector(2 downto 0); -- export + coe_read_export_from_the_reg_dpmm_data : out std_logic; -- export + coe_reset_export_from_the_rom_system_info : out std_logic; -- export + coe_tse_waitrequest_export_to_the_avs_eth_0 : in std_logic := 'X'; -- export + coe_writedata_export_from_the_reg_dpmm_ctrl : out std_logic_vector(31 downto 0); -- export + coe_address_export_from_the_reg_mmdp_data : out std_logic;--_vector(0 downto 0); -- export + coe_address_export_from_the_reg_unb_sens : out std_logic_vector(2 downto 0); -- export + coe_clk_export_from_the_reg_dpmm_ctrl : out std_logic; -- export + coe_reg_address_export_from_the_avs_eth_0 : out std_logic_vector(3 downto 0); -- export + coe_address_export_from_the_rom_system_info : out std_logic_vector(9 downto 0); -- export + coe_write_export_from_the_reg_mmdp_data : out std_logic; -- export + coe_address_export_from_the_reg_remu : out std_logic_vector(2 downto 0); -- export + areset_to_the_altpll_0 : in std_logic := 'X'; -- export + locked_from_the_altpll_0 : out std_logic; -- export + coe_write_export_from_the_reg_dpmm_ctrl : out std_logic; -- export + coe_ram_writedata_export_from_the_avs_eth_0 : out std_logic_vector(31 downto 0); -- export + coe_read_export_from_the_reg_remu : out std_logic; -- export + reg_common_reset_export : out std_logic; -- export + reg_common_clk_export : out std_logic; -- export + reg_common_address_export : out std_logic_vector(4 downto 0); -- export + reg_common_write_export : out std_logic; -- export + reg_common_writedata_export : out std_logic_vector(31 downto 0); -- export + reg_common_read_export : out std_logic; -- export + reg_common_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + beam0_dp_offload_rx_reg_hdr_dat_reset_export : out std_logic; -- export + beam0_dp_offload_rx_reg_hdr_dat_clk_export : out std_logic; -- export + beam0_dp_offload_rx_reg_hdr_dat_address_export : out std_logic_vector(5 downto 0); -- export + beam0_dp_offload_rx_reg_hdr_dat_write_export : out std_logic; -- export + beam0_dp_offload_rx_reg_hdr_dat_writedata_export : out std_logic_vector(31 downto 0); -- export + beam0_dp_offload_rx_reg_hdr_dat_read_export : out std_logic; -- export + beam0_dp_offload_rx_reg_hdr_dat_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + beam0_eth_tse_address_export : out std_logic_vector(9 downto 0); -- export + beam0_eth_tse_write_export : out std_logic; -- export + beam0_eth_tse_read_export : out std_logic; -- export + beam0_eth_tse_writedata_export : out std_logic_vector(31 downto 0); -- export + beam0_eth_tse_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + beam0_eth_tse_waitrequest_export : in std_logic := 'X'; -- export + beam0_eth_reg_address_export : out std_logic_vector(3 downto 0); -- export + beam0_eth_reg_write_export : out std_logic; -- export + beam0_eth_reg_read_export : out std_logic; -- export + beam0_eth_reg_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + beam0_eth_ram_address_export : out std_logic_vector(9 downto 0); -- export + beam0_eth_ram_write_export : out std_logic; -- export + beam0_eth_ram_read_export : out std_logic; -- export + beam0_eth_ram_writedata_export : out std_logic_vector(31 downto 0); -- export + beam0_eth_ram_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + beam0_eth_irq_export : in std_logic := 'X'; -- export + beam0_eth_reg_writedata_export : out std_logic_vector(31 downto 0); -- export + cal_rec_clk : out std_logic -- clk + ); + end component qsys_unb1_rfidb; END qsys_unb1_rfidb_pkg; diff --git a/applications/rfidb/designs/rfidb/src/vhdl/unb1_rfidb.vhd b/applications/rfidb/designs/rfidb/src/vhdl/unb1_rfidb.vhd index ec71adce16fa65d15da364f810f62b6bba9000cc..aaa6cdda9dc8f36abfedbee9e60c6a5989e58f1a 100644 --- a/applications/rfidb/designs/rfidb/src/vhdl/unb1_rfidb.vhd +++ b/applications/rfidb/designs/rfidb/src/vhdl/unb1_rfidb.vhd @@ -20,12 +20,17 @@ -- ------------------------------------------------------------------------------- -LIBRARY IEEE, common_lib, unb1_board_lib; +LIBRARY IEEE, common_lib, unb1_board_lib, dp_lib, eth_lib, tech_tse_lib; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.NUMERIC_STD.ALL; USE common_lib.common_pkg.ALL; USE common_lib.common_mem_pkg.ALL; +USE common_lib.common_field_pkg.ALL; USE unb1_board_lib.unb1_board_pkg.ALL; +USE dp_lib.dp_stream_pkg.ALL; +USE tech_tse_lib.tech_tse_pkg.ALL; +USE eth_lib.eth_pkg.ALL; + ENTITY unb1_rfidb IS GENERIC ( @@ -36,7 +41,8 @@ ENTITY unb1_rfidb IS g_sim_node_nr : NATURAL := 0; g_stamp_date : NATURAL := 0; -- Date (YYYYMMDD) -- set by QSF g_stamp_time : NATURAL := 0; -- Time (HHMMSS) -- set by QSF - g_stamp_svn : NATURAL := 0 -- SVN revision -- set by QSF + g_stamp_svn : NATURAL := 0; -- SVN revision -- set by QSF + g_SFP_number : natural := 1 ); PORT ( -- GENERAL @@ -58,7 +64,18 @@ ENTITY unb1_rfidb IS -- 1GbE Control Interface ETH_clk : IN STD_LOGIC; ETH_SGIN : IN STD_LOGIC; - ETH_SGOUT : OUT STD_LOGIC + ETH_SGOUT : OUT STD_LOGIC; + + -- OCB Interface + BN_SFP_RX : in STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_TX : out STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_RXLOS : in STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_TXFAULT : in STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_TXDISABL : out STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_PRS : in STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_SCL : out STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0); + BN_SFP_SDA : inout STD_LOGIC_VECTOR(g_SFP_number-1 DOWNTO 0) + ); END unb1_rfidb; @@ -84,10 +101,11 @@ ARCHITECTURE str OF unb1_rfidb IS SIGNAL mm_locked : STD_LOGIC; SIGNAL mm_rst : STD_LOGIC; - SIGNAL st_rst : STD_LOGIC; - SIGNAL st_clk : STD_LOGIC; + SIGNAL dp_rst : STD_LOGIC; + SIGNAL dp_clk : STD_LOGIC; SIGNAL epcs_clk : STD_LOGIC; + SIGNAL cal_rec_clk : STD_LOGIC; -- PIOs SIGNAL pout_wdi : STD_LOGIC; @@ -141,6 +159,83 @@ ARCHITECTURE str OF unb1_rfidb IS SIGNAL reg_remu_mosi : t_mem_mosi; SIGNAL reg_remu_miso : t_mem_miso; + -- REG_COMMON + SIGNAL reg_common_mosi : t_mem_mosi; + SIGNAL reg_common_miso : t_mem_miso; + SIGNAL cnt_valid_udp_frm : STD_LOGIC_VECTOR(c_mem_reg.dat_w*c_mem_reg.nof_dat-1 DOWNTO 0); + SIGNAL ctrl_udp_loopback : STD_LOGIC_VECTOR(c_mem_reg.dat_w*c_mem_reg.nof_dat-1 DOWNTO 0); + + + -- dp_offload + CONSTANT c_nof_hdr_fields : NATURAL := 4+12+4+9; -- Total header bits = 512 + CONSTANT c_hdr_field_arr : t_common_field_arr(c_nof_hdr_fields-1 DOWNTO 0) := ( ( field_name_pad("eth_word_align" ), " ", 16, field_default(0) ), + ( field_name_pad("eth_dst_mac" ), " ", 48, field_default(x"002286080000") ), + ( field_name_pad("eth_src_mac" ), " ", 48, field_default(0) ), + ( field_name_pad("eth_type" ), " ", 16, field_default(x"0800") ), + ( field_name_pad("ip_version" ), " ", 4, field_default(4) ), + ( field_name_pad("ip_header_length" ), " ", 4, field_default(5) ), + ( field_name_pad("ip_services" ), " ", 8, field_default(0) ), + ( field_name_pad("ip_total_length" ), " ", 16, field_default(128) ), + ( field_name_pad("ip_identification" ), " ", 16, field_default(0) ), + ( field_name_pad("ip_flags" ), " ", 3, field_default(2) ), + ( field_name_pad("ip_fragment_offset" ), " ", 13, field_default(0) ), + ( field_name_pad("ip_time_to_live" ), " ", 8, field_default(127) ), + ( field_name_pad("ip_protocol" ), " ", 8, field_default(17) ), + ( field_name_pad("ip_header_checksum" ), " ", 16, field_default(0) ), + ( field_name_pad("ip_src_addr" ), " ", 32, field_default(0) ), + ( field_name_pad("ip_dst_addr" ), " ", 32, field_default(0) ), + ( field_name_pad("udp_src_port" ), " ", 16, field_default(4000) ), + ( field_name_pad("udp_dst_port" ), " ", 16, field_default(4000) ), + ( field_name_pad("udp_total_length" ), " ", 16, field_default(108) ), + ( field_name_pad("udp_checksum" ), " ", 16, field_default(0) ), + ( field_name_pad("usr_sync" ), " ", 1, field_default(0) ), + ( field_name_pad("usr_bsn" ), " ", 60, field_default(0) ), + ( field_name_pad("usr_hdr_field_0" ), " ", 7, field_default(0) ), + ( field_name_pad("usr_hdr_field_1" ), " ", 9, field_default(0) ), + ( field_name_pad("usr_hdr_field_2" ), " ", 10, field_default(0) ), + ( field_name_pad("usr_hdr_field_3" ), " ", 33, field_default(0) ), + ( field_name_pad("usr_hdr_field_4" ), " ", 5, field_default(0) ), + ( field_name_pad("usr_hdr_field_5" ), " ", 8, field_default(0) ), + ( field_name_pad("usr_hdr_field_6" ), " ", 27, field_default(0) ) ); + + CONSTANT c_hdr_field_ovr_init : STD_LOGIC_VECTOR(c_nof_hdr_fields-1 DOWNTO 0) := "1101"&"111111111100"&"1111"&"001111111"; + + + -- BEAM_0 eth + CONSTANT c_beam_nof_streams : NATURAL := 1; + CONSTANT c_data_w : NATURAL := c_tech_tse_data_w; + SIGNAL Beam0_udp_rx_siso_arr : t_dp_sosi_arr(c_eth_nof_udp_ports-1 DOWNTO 0); + SIGNAL Beam0_udp_rx_sosi_arr : t_dp_siso_arr(c_eth_nof_udp_ports-1 DOWNTO 0); + SIGNAL Beam0_eth_mm_rst : STD_LOGIC; + SIGNAL Beam0_eth_tse_mosi : t_mem_mosi; + SIGNAL Beam0_eth_tse_miso : t_mem_miso; + SIGNAL Beam0_eth_reg_mosi : t_mem_mosi; + SIGNAL Beam0_eth_reg_miso : t_mem_miso; + SIGNAL Beam0_eth_reg_interrupt : STD_LOGIC; + SIGNAL Beam0_eth_ram_mosi : t_mem_mosi; + SIGNAL Beam0_eth_ram_miso : t_mem_miso; + + -- BEAM_0 udp_offload + CONSTANT c_st_eth : BOOLEAN := TRUE; -- TRUE forwards the UDP stream to the 1GbE module, FALSE loops back the node function + -- source to its sink to bypass the 1GbE, but still performs packetizing and deframing. + SIGNAL Beam0_dp_offload_rx_reg_hdr_dat_mosi : t_mem_mosi; + SIGNAL Beam0_dp_offload_rx_reg_hdr_dat_miso : t_mem_miso; + + SIGNAL Beam0_buf_rx_siso_arr : t_dp_siso_arr(c_beam_nof_streams-1 DOWNTO 0); + SIGNAL Beam0_buf_rx_sosi_arr : t_dp_sosi_arr(c_beam_nof_streams-1 DOWNTO 0); + + SIGNAL Beam0_hdr_fields_out_arr : t_slv_1024_arr(c_beam_nof_streams-1 DOWNTO 0); + + SIGNAL Beam0_rx_siso : t_dp_siso; + SIGNAL Beam0_rx_sosi : t_dp_sosi; + + + + + -- Signal Tap + SIGNAL acq_data_in : STD_LOGIC_VECTOR(31 DOWNTO 0); + SIGNAL acq_trigger_in : STD_LOGIC_VECTOR( 3 DOWNTO 0); + BEGIN ----------------------------------------------------------------------------- @@ -173,11 +268,11 @@ BEGIN epcs_clk => epcs_clk, - dp_rst => st_rst, - dp_clk => st_clk, + dp_rst => dp_rst, + dp_clk => dp_clk, dp_pps => OPEN, - dp_rst_in => st_rst, - dp_clk_in => st_clk, + dp_rst_in => dp_rst, + dp_clk_in => dp_clk, -- Toggle WDI pout_wdi => pout_wdi, @@ -260,7 +355,8 @@ BEGIN g_sim => g_sim, g_sim_unb_nr => g_sim_unb_nr, g_sim_node_nr => g_sim_node_nr, - g_use_qsys => c_use_qsys + g_use_qsys => c_use_qsys, + g_hdr_field_arr => c_hdr_field_arr ) PORT MAP( xo_clk => xo_clk, @@ -272,6 +368,7 @@ BEGIN mm_locked => mm_locked, epcs_clk => epcs_clk, + cal_rec_clk => cal_rec_clk, -- PIOs pout_wdi => pout_wdi, @@ -323,7 +420,21 @@ BEGIN -- Remote Update reg_remu_mosi => reg_remu_mosi, - reg_remu_miso => reg_remu_miso + reg_remu_miso => reg_remu_miso, + + -- Beam0 1GbE interface + Beam0_eth_tse_mosi => Beam0_eth_tse_mosi , + Beam0_eth_tse_miso => Beam0_eth_tse_miso , + Beam0_eth_reg_mosi => Beam0_eth_reg_mosi , + Beam0_eth_reg_miso => Beam0_eth_reg_miso , + Beam0_eth_reg_interrupt => Beam0_eth_reg_interrupt, + Beam0_eth_ram_mosi => Beam0_eth_ram_mosi , + Beam0_eth_ram_miso => Beam0_eth_ram_miso , + + Beam0_dp_offload_rx_reg_hdr_dat_mosi => Beam0_dp_offload_rx_reg_hdr_dat_mosi, + Beam0_dp_offload_rx_reg_hdr_dat_miso => Beam0_dp_offload_rx_reg_hdr_dat_miso + + ); ----------------------------------------------------------------------------- @@ -331,5 +442,158 @@ BEGIN ----------------------------------------------------------------------------- -- Insert node_[design_name] here + u_mms_common_reg : ENTITY common_lib.mms_common_reg + GENERIC MAP ( + -- TYPE t_c_mem IS RECORD + -- latency : NATURAL; -- read latency + -- adr_w : NATURAL; + -- dat_w : NATURAL; + -- nof_dat : NATURAL; -- optional, nof dat words <= 2**adr_w + -- init_sl : STD_LOGIC; -- optional, init all dat words to std_logic '0', '1' or 'X' + g_mm_reg => c_mem_reg --(1, 1, 32, 1, 'X') + ) + PORT MAP( + -- Clocks and reset + mm_rst => mm_rst, + mm_clk => mm_clk, + st_rst => dp_rst, + st_clk => dp_clk, + + -- MM bus access in memory-mapped clock domain + reg_mosi => reg_common_mosi, + reg_miso => reg_common_miso, + + -- MM register IO in ST clock domain + -- 1) Connect out_reg to in_reg for write and readback register. + -- 2) Do not connect out_reg to in_reg for seperate write only register and read only register at the same address. + -- 3) Leave out_reg OPEN for read only register. + in_reg => cnt_valid_udp_frm, + out_reg => ctrl_udp_loopback + ); + + + cnt_valid: PROCESS(dp_rst,dp_clk) + BEGIN + IF dp_rst = '1' THEN + cnt_valid_udp_frm <= (others => '0'); + ELSIF rising_edge(dp_clk) THEN + FOR i in Beam0_udp_rx_siso_arr'RANGE LOOP + IF Beam0_udp_rx_siso_arr(i).valid = '1' THEN + cnt_valid_udp_frm <= std_logic_vector(unsigned(cnt_valid_udp_frm) + 1); + END IF; + END LOOP; + END IF; + END PROCESS; + + + u_Beam0_eth : ENTITY eth_lib.eth + GENERIC MAP( + g_init_ip_address => X"0a0a010a", + g_cross_clock_domain => TRUE, -- use FALSE when mm_clk and dp_clk are the same, else use TRUE to cross the clock domain + g_ETH_PHY => "XCVR", -- "LVDS" (default): uses LVDS IOs for ctrl_unb_common, "XCVR": uses tranceiver PHY + g_ihl20 => TRUE + ) + PORT MAP( + mm_rst => mm_rst, + mm_clk => mm_clk, + eth_clk => eth1g_tse_clk, -- 125 MHz from xo_clk PLL in SOPC system + st_rst => dp_rst, + st_clk => dp_clk, + + cal_rec_clk => cal_rec_clk, + + -- UDP interface + udp_tx_snk_in_arr => (others => c_dp_sosi_rst), + udp_tx_snk_out_arr => OPEN, + udp_rx_src_in_arr => Beam0_udp_rx_sosi_arr, + udp_rx_src_out_arr => Beam0_udp_rx_siso_arr, + + -- Memory Mapped Slaves + tse_sla_in => Beam0_eth_tse_mosi, -- ETH TSE MAC registers + tse_sla_out => Beam0_eth_tse_miso, + reg_sla_in => Beam0_eth_reg_mosi, -- ETH control and status registers + reg_sla_out => Beam0_eth_reg_miso, + reg_sla_interrupt => OPEN, + ram_sla_in => Beam0_eth_ram_mosi, + ram_sla_out => Beam0_eth_ram_miso, + + -- PHY interface + eth_txp => BN_SFP_TX(0), + eth_rxp => BN_SFP_RX(0), + + -- LED interface + tse_led => OPEN + ); + + Beam0_eth_reg_interrupt <= '0'; + + + + + u_Beam0_dp_offload_rx : ENTITY dp_lib.dp_offload_rx + GENERIC MAP ( + g_nof_streams => c_beam_nof_streams, + g_data_w => c_data_w, + g_hdr_field_arr => c_hdr_field_arr, + g_remove_crc => TRUE, + g_crc_nof_words => 1 + ) + PORT MAP ( + mm_rst => mm_rst, + mm_clk => mm_clk, + + dp_rst => dp_rst, + dp_clk => dp_clk, + + reg_hdr_dat_mosi => Beam0_dp_offload_rx_reg_hdr_dat_mosi, + reg_hdr_dat_miso => Beam0_dp_offload_rx_reg_hdr_dat_miso, + + snk_in_arr => Beam0_udp_rx_siso_arr(0 downto 0), + snk_out_arr => Beam0_udp_rx_sosi_arr(0 downto 0), + + src_out_arr => Beam0_buf_rx_sosi_arr, + src_in_arr => Beam0_buf_rx_siso_arr, + + hdr_fields_out_arr => Beam0_hdr_fields_out_arr + ); + + + Beam0_buf_rx_siso_arr(0) <= Beam0_rx_siso; + + Beam0_rx_sosi.sync <= sl(Beam0_hdr_fields_out_arr(0)(field_hi(c_hdr_field_arr, "usr_sync") DOWNTO field_lo(c_hdr_field_arr, "usr_sync" ))); + Beam0_rx_sosi.bsn <= RESIZE_UVEC(Beam0_hdr_fields_out_arr(0)(field_hi(c_hdr_field_arr, "usr_bsn" ) DOWNTO field_lo(c_hdr_field_arr, "usr_bsn" )), c_dp_stream_bsn_w); + Beam0_rx_sosi.data <= Beam0_buf_rx_sosi_arr(0).data; + Beam0_rx_sosi.valid <= Beam0_buf_rx_sosi_arr(0).valid; + Beam0_rx_sosi.sop <= Beam0_buf_rx_sosi_arr(0).sop; + Beam0_rx_sosi.eop <= Beam0_buf_rx_sosi_arr(0).eop; + Beam0_rx_sosi.err <= Beam0_buf_rx_sosi_arr(0).err; + + + + + u_stp_Beam0 : ENTITY work.stp32 + PORT MAP ( + acq_clk => dp_clk, + acq_data_in => acq_data_in, + acq_trigger_in => acq_trigger_in + ); + + acq_data_in <= Beam0_rx_sosi.valid & + Beam0_rx_sosi.sop & + Beam0_rx_sosi.eop & + Beam0_rx_sosi.err(0) & + Beam0_rx_sosi.data(31 downto 0) ; + + acq_trigger_in <= Beam0_rx_sosi.valid & + Beam0_rx_sosi.sop & + Beam0_rx_sosi.eop & + Beam0_rx_sosi.err(0) ; + + + BN_SFP_TXDISABL <= (others => '0'); + BN_SFP_SCL <= (others => 'Z'); + BN_SFP_SDA <= (others => 'Z'); + + END str; diff --git a/applications/rfidb/designs/rfidb/tb/python/tc_unb1_rfidb.py b/applications/rfidb/designs/rfidb/tb/python/tc_unb1_rfidb.py index 65dc78af51f113a586fc434c44b4a218796b1507..f188a3cdbf087c4376898c08516b5f38b80028df 100644 --- a/applications/rfidb/designs/rfidb/tb/python/tc_unb1_rfidb.py +++ b/applications/rfidb/designs/rfidb/tb/python/tc_unb1_rfidb.py @@ -51,11 +51,14 @@ import pi_wdi import pi_epcs import pi_remu import pi_eth +import pi_eth_OCB +import pi_common_reg import pi_debug_wave from tools import * from common import * from pi_common import * +from eth import * def test_info(tc,io,cmd): @@ -121,6 +124,8 @@ def test_sensors(tc,io,cmd): def test_ppsh(tc,io,cmd): tc.set_section_id('Read PPSH capture count - ') + tc.append_log(1, '>>> NO PPS CONNECTED ON UNB1_RFIDB') + sys.exit(tc.get_result()) tc.append_log(3, '>>>') tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) tc.append_log(3, '>>>') @@ -147,6 +152,9 @@ def test_wdi(tc,io,cmd): def test_remu(tc,io,cmd): tc.set_section_id('REMU start image in bank 1 - ') + tc.append_log(1, '>>> NOT TESTED IN UNB1_RFIDB') + sys.exit(tc.get_result()) + tc.append_log(3, '>>>') tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) tc.append_log(3, '>>>') @@ -170,20 +178,103 @@ def test_remu(tc,io,cmd): def test_eth(tc,io,cmd): - tc.set_section_id('ETH status - ') + tc.set_section_id('ETH RAM buffer - ') tc.append_log(3, '>>>') tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) tc.append_log(3, '>>>') eth = pi_eth.PiEth(tc, io) - hdr=eth.read_hdr(0) +# eth = pi_eth_OCB.PiEthOCB(tc, io, basename='AVS_ETH_0') +# eth.ETH_read_setup() +# eth.PCS_read_setup() +# eth.MAC_read_setup() + hdr = eth.read_hdr(0) eth.disassemble_hdr(hdr) tc.append_log(3, '') +def conf_eth_BeamA(tc,io,cmd): + tc.set_section_id('BeamA configuration - ') + tc.append_log(3, '>>>') + tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) + tc.append_log(3, '>>>') + + eth = pi_eth_OCB.PiEthOCB(tc, io, basename='BEAM0_ETH') + eth.ETH_config(IP_ADDR=0x0A0B0050, MAC_ADDR=CommonBytes(0x01230A0B0150, c_eth_mac_addr_len), Demux=(4346,)) +# eth.ETH_config(IP_ADDR=0x0A0A0050, MAC_ADDR=CommonBytes(0x01230A0A0150, c_eth_mac_addr_len), Demux=(4346,)) + eth.PCS_config() + eth.MAC_config(MAC_ADDR=CommonBytes(0x01230A0B0150, c_eth_mac_addr_len), promisc=True) + + tc.append_log(3, '') + + + +def test_eth_BeamA(tc,io,cmd): + tc.set_section_id('BeamB ETH status - ') + tc.append_log(3, '>>>') + tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) + tc.append_log(3, '>>>') + + eth = pi_eth_OCB.PiEthOCB(tc, io, basename='BEAM0_ETH') + eth.ETH_read_setup() + eth.PCS_read_setup() + eth.MAC_read_setup() + tc.append_log(3, '') + tc.set_section_id('BeamB RAM buffer - ') + hdr = eth.read_hdr(0) + eth.disassemble_hdr(hdr) + tc.append_log(3, '') + + + +def conf_eth_BeamB(tc,io,cmd): + tc.set_section_id('BeamB configuration - ') + tc.append_log(3, '>>>') + tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) + tc.append_log(3, '>>>') + + eth = pi_eth_OCB.PiEthOCB(tc, io, basename='BEAM1_ETH') + eth.ETH_config(IP_ADDR=0x0A0B0050, MAC_ADDR=CommonBytes(0x01230A0B0150, c_eth_mac_addr_len), Demux=(4346,)) + eth.PCS_config() + eth.MAC_config(MAC_ADDR=CommonBytes(0x01230A0B0150, c_eth_mac_addr_len), promisc=True) + + tc.append_log(3, '') + + + +def test_eth_BeamB(tc,io,cmd): + tc.set_section_id('BeamB status - ') + tc.append_log(3, '>>>') + tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) + tc.append_log(3, '>>>') + + eth = pi_eth_OCB.PiEthOCB(tc, io, basename='BEAM1_ETH') + hdr = eth.read_hdr(0) + eth.disassemble_hdr(hdr) + tc.append_log(3, '') + eth.ETH_read_setup() + eth.PCS_read_setup() + eth.MAC_read_setup() + tc.append_log(3, '') + + + +def read_reg(tc,io,cmd): + tc.set_section_id('COMMON_REG cnt_valid_udp_frm - ') + tc.append_log(3, '>>>') + tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) + tc.append_log(3, '>>>') + reg = pi_common_reg.PiCommonReg(tc, io, regSize=1) + reg.read_reg(radix='dec') + + + def test_flash(tc,io,cmd): tc.set_section_id('Flash write to bank 1 - ') + tc.append_log(1, '>>> NOT TESTED IN UNB1_RFIDB') + sys.exit(tc.get_result()) + tc.append_log(3, '>>>') tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) tc.append_log(3, '>>>') @@ -210,6 +301,9 @@ def set_led(tc,dw,led,text): def test_leds(tc,io,cmd): tc.set_section_id('LED test - ') + tc.append_log(1, '>>> NOT TESTED IN UNB1_RFIDB') + sys.exit(tc.get_result()) + tc.append_log(3, '>>>') tc.append_log(1, '>>> %s' % help_text(tc,io,cmd)) tc.append_log(3, '>>>') @@ -246,6 +340,11 @@ Cmd['SENSORS'] = (test_sensors, 'using pi_unb_sens to readout sensors (access RE Cmd['LED'] = (test_leds, 'using pi_debug_wave to set LEDs (access PIO_DEBUG_WAVE)','') Cmd['PPSH'] = (test_ppsh, 'using pi_ppsh to read PPSH capture count (access PIO_PPS)','') Cmd['ETH'] = (test_eth, 'using pi_eth to read eth status','') +Cmd['CFG_BA'] = (conf_eth_BeamA, 'using pi_eth_OCB to configure BeamA','') +Cmd['CFG_BB'] = (conf_eth_BeamB, 'using pi_eth_OCB to configure BeamB','') +Cmd['TST_BA'] = (test_eth_BeamA, 'using pi_eth_OCB to read BeamA status','') +Cmd['TST_BB'] = (test_eth_BeamB, 'using pi_eth_OCB to read BeamB status','') +Cmd['RD_REG'] = (read_reg, 'using pi_common_reg to read cnt_valid_udp_frm','') Cmd['REMU'] = (test_remu, 'using pi_remu to load user image (access REG_REMU)','') Cmd['WDI'] = (test_wdi, 'using pi_wdi to reset to image in bank 0 (access REG_WDI)','') Cmd['sleep1'] = (sleep, 'Sleep 1 second','') diff --git a/applications/rfidb/designs/rfidb/tb/vhdl/tb_unb1_rfidb.vhd b/applications/rfidb/designs/rfidb/tb/vhdl/tb_unb1_rfidb.vhd index c3646a28eb04e4efb1a973475e5cd02c54a22d49..83a1573f12c77dd085bb5d1095d5c31021d68ecf 100644 --- a/applications/rfidb/designs/rfidb/tb/vhdl/tb_unb1_rfidb.vhd +++ b/applications/rfidb/designs/rfidb/tb/vhdl/tb_unb1_rfidb.vhd @@ -105,6 +105,16 @@ ARCHITECTURE tb OF tb_unb1_rfidb IS CONSTANT c_uniboard_supply : REAL := 48.0; -- = assume 48.0 V on UniBoard CONSTANT c_uniboard_adin : REAL := -1.0; -- = NC on UniBoard + CONSTANT c_SFP_number : natural := 1; + SIGNAL BN_SFP_RX : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0) := (others => '0'); + SIGNAL BN_SFP_TX : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0); + SIGNAL BN_SFP_RXLOS : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0) := (others => '0'); + SIGNAL BN_SFP_TXFAULT : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0) := (others => '0'); + SIGNAL BN_SFP_TXDISABL : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0); + SIGNAL BN_SFP_PRS : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0) := (others => '0'); + SIGNAL BN_SFP_SCL : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0); + SIGNAL BN_SFP_SDA : STD_LOGIC_VECTOR(c_SFP_number-1 DOWNTO 0) := (others => '0'); + BEGIN ---------------------------------------------------------------------------- @@ -137,7 +147,8 @@ BEGIN g_sim => c_sim, g_sim_unb_nr => c_unb_nr, g_sim_node_nr => c_node_nr, - g_design_name => g_design_name + g_design_name => g_design_name, + g_SFP_number => c_SFP_number ) PORT MAP ( -- GENERAL @@ -158,7 +169,17 @@ BEGIN -- 1GbE Control Interface ETH_clk => eth_clk, ETH_SGIN => eth_rxp, - ETH_SGOUT => eth_txp + ETH_SGOUT => eth_txp, + + -- OCB Interface + BN_SFP_RX => BN_SFP_RX , + BN_SFP_TX => BN_SFP_TX , + BN_SFP_RXLOS => BN_SFP_RXLOS , + BN_SFP_TXFAULT => BN_SFP_TXFAULT , + BN_SFP_TXDISABL => BN_SFP_TXDISABL , + BN_SFP_PRS => BN_SFP_PRS , + BN_SFP_SCL => BN_SFP_SCL , + BN_SFP_SDA => BN_SFP_SDA ); ------------------------------------------------------------------------------