diff --git a/boards/uniboard2c/designs/unb2c_minimal/unb2c_minimal.fpga.yaml b/boards/uniboard2c/designs/unb2c_minimal/unb2c_minimal.fpga.yaml index caedb38ba66502d89a659c16f19ed7d656e09eb1..87f69df6ba591712d64194f2e196b3f803b29eec 100644 --- a/boards/uniboard2c/designs/unb2c_minimal/unb2c_minimal.fpga.yaml +++ b/boards/uniboard2c/designs/unb2c_minimal/unb2c_minimal.fpga.yaml @@ -4,44 +4,56 @@ schema_type : fpga hdl_library_name: unb2c_minimal fpga_name : unb2c_minimal -fpga_description: "unb2c_minimal system" +fpga_description: "FPGA design unb2c_minimal" peripherals: - - peripheral_name: unb2c_board/unb2c - slave_port_names: - - rom_system_info - - pio_system_info - - pio_wdi - - reg_wdi - - reg_fpga_temp_sens - - reg_fpga_voltage_sens - - ram_scrap - parameter_overrides: - - { name : g_sim, value: FALSE } - - { name : g_clk_freq, value: 125E6 } - - { name : g_temp_high, value: 85 } - - lock_base_address: 0x0 - lock_base_address: 0x4000 - - - peripheral_name: eth/eth1g - slave_port_names: - - avs_eth_0_tse - - avs_eth_0_reg - - avs_eth_0_ram + ############################################################################# + # Factory / minimal (from ctrl_unb2c_board.vhd) + ############################################################################# + - peripheral_name: unb2c_board/system_info + lock_base_address: 0x10000 + mm_port_names: + - ROM_SYSTEM_INFO + - PIO_SYSTEM_INFO + + - peripheral_name: unb2c_board/wdi + mm_port_names: + - REG_WDI + + - peripheral_name: unb2c_board/unb2_fpga_sens + mm_port_names: + - REG_FPGA_TEMP_SENS + - REG_FPGA_VOLTAGE_SENS + + - peripheral_name: unb2c_board/ram_scrap + mm_port_names: + - RAM_SCRAP + + - peripheral_name: eth/eth + mm_port_names: + - AVS_ETH_0_TSE + - AVS_ETH_0_REG + - AVS_ETH_0_RAM + - peripheral_name: ppsh/ppsh - slave_port_names: - - pio_pps + mm_port_names: + - PIO_PPS + - peripheral_name: epcs/epcs - slave_port_names: - - reg_epcs - - reg_dpmm_ctrl - - reg_dpmm_data - - reg_mmdp_ctrl - - reg_mmdp_data - parameter_overrides: - - { name : g_sim_flash_model, value: FALSE } + mm_port_names: + - REG_EPCS + + - peripheral_name: dp/dpmm + mm_port_names: + - REG_DPMM_CTRL + - REG_DPMM_DATA + + - peripheral_name: dp/mmdp + mm_port_names: + - REG_MMDP_CTRL + - REG_MMDP_DATA + - peripheral_name: remu/remu - slave_port_names: - - reg_remu + mm_port_names: + - REG_REMU diff --git a/boards/uniboard2c/libraries/unb2c_board/unb2c_board.peripheral.yaml b/boards/uniboard2c/libraries/unb2c_board/unb2c_board.peripheral.yaml index 0f695bc58ab85eac2448d2362327a532e26f5365..067556ecdeea650ee7e6283d1fba4b61136e8df0 100644 --- a/boards/uniboard2c/libraries/unb2c_board/unb2c_board.peripheral.yaml +++ b/boards/uniboard2c/libraries/unb2c_board/unb2c_board.peripheral.yaml @@ -1,101 +1,178 @@ ---- schema_name: args schema_version: 1.0 schema_type: peripheral -hdl_library_name : unb2c_board -hdl_library_description: " This is the description for the unb2c_board package " - -# <peripheral_group>_<peripheral_name>_<slave_name>_<slave_type> +hdl_library_name: unb2c_board # ctrl_unb2c_board.vhd +hdl_library_description: "Peripherals in unb2c_board." peripherals: - - - peripheral_name: unb2c - parameters: - - { name: g_sim, value: FALSE } - - { name: g_clk_freq, value: c_unb2c_board_mm_clk_freq_125M } - - { name: g_temp_high, value: 85 } - - slave_ports: - # rom_system_info - - slave_name : rom_system - slave_type : REG + - peripheral_name: ram_scrap # pi_ram_scrap.py + peripheral_description: "" + mm_ports: + # MM port for common_ram_r_w.vhd + - mm_port_name: RAM_SCRAP + mm_port_type: RAM + mm_port_description: "One memory mapped block RAM for MM access test purposes." fields: - - - field_name : info - access_mode : RO + - - field_name: rw_data + field_description: "Void data" + number_of_fields: 512 address_offset: 0x0 - number_of_fields: 8192 - field_description: | - "address place for rom_system_info" - slave_description: " rom_info " - - # reg_system_info - - slave_name : system - slave_type : REG + access_mode: RW + + - peripheral_name: system_info # pi_system_info.py + peripheral_description: "" + mm_ports: + # MM port for mms_unb2c_board_system_info.vhd / common_rom.vhd + - mm_port_name: ROM_SYSTEM_INFO # for c_rom_version = 1 in ctrl_unb2c_board.vhd + #- mm_port_name: ROM_SYSTEM_INFO_V2 # for c_rom_version = 2 in ctrl_unb2c_board.vhd + mm_port_type: RAM + mm_port_description: "Memory that stores the MM map system info of the mmap file." fields: - - - field_name : info - access_mode : RO + - - field_name: ro_data + field_description: "FPGA info memory map data" + number_of_fields: 32768 # c_rom_addr_w in mms_unb2c_board_system_info address_offset: 0x0 - number_of_fields: 32 - field_description: | - "address place for reg_system_info" - slave_description: " reg_info " + mm_width: 32 + user_width: 8 + radix: char8 + access_mode: RO - # actual hdl name: unb2c_board_wdi_reg - - slave_name : ctrl - slave_type : REG + # MM port for mms_unb2c_board_system_info.vhd / unb2c_board_system_info_reg.vhd + - mm_port_name: PIO_SYSTEM_INFO + mm_port_type: REG + mm_port_description: "FPGA design name, design note, version and location index info." fields: - - - field_name : nios_reset - width : 32 - access_mode : WO - address_offset : 0x0 - number_of_fields: 4 - field_description: " Reset done by nios " - - slave_description: "Reset register, for nios " + # All registers in one array + #- - field_name: info + # field_description: "FPGA info register, see pi_system_info.py for field details." + # access_mode: RO + # address_offset: 0x0 + # number_of_fields: 32 - # actual hdl name: unb2c_board_wdi_reg - - slave_name : wdi - slave_type : REG + # Each field specified + - - field_name: info + field_description: "Info" + address_offset: 0x0 + bit_offset: 0 + mm_width: 32 + access_mode: RO + - "info": # field_group + - field_name: gn_index + field_description: "Global node index, unb2 FPGA id = gn_index % 4, unb2 backplane id = gn_index // 4" + address_offset: 0x0 + bit_offset: 0 + mm_width: 8 + access_mode: RO + - field_name: hw_version + field_description: "UniBoard2 hardware (HW) version." + address_offset: 0x0 + bit_offset: 8 + mm_width: 2 + access_mode: RO + - field_name: cs_sim + field_description: "0 when running on HW, 1 when running in simulation." + address_offset: 0x0 + bit_offset: 10 + mm_width: 1 + access_mode: RO + - field_name: fw_version_major + field_description: "FPGA Firmware (FW) version major number, not used use version stamp instead." + address_offset: 0x0 + bit_offset: 16 + mm_width: 4 + access_mode: RO + - field_name: fw_version_minor + field_description: "FPGA Firmware (FW) version minor number, not used use version stamp instead." + address_offset: 0x0 + bit_offset: 20 + mm_width: 4 + access_mode: RO + - field_name: rom_version + field_description: "Version of the mmap schema in ROM_SYSTEM_INFO." + address_offset: 0x0 + bit_offset: 24 + mm_width: 3 + access_mode: RO + - field_name: technology + field_description: "FPGA technology" + address_offset: 0x0 + bit_offset: 27 + mm_width: 5 + access_mode: RO + - - field_name: use_phy + field_description: "PHY interfaces that are active in the FPGA, not used." + address_offset: 0x4 + mm_width: 8 + access_mode: RO + - - field_name: design_name + field_description: "FPGA FW design name string." + number_of_fields: 52 + address_offset: 0x8 + mm_width: 32 + user_width: 8 + radix: char8 + access_mode: RO + - - field_name: stamp_date + field_description: "FPGA FW compile date string." + access_mode: RO + address_offset: 0x3C + number_of_fields: 1 + - - field_name: stamp_time + field_description: "FPGA FW compile time string." + number_of_fields: 1 + address_offset: 0x40 + access_mode: RO + - - field_name: stamp_commit + field_description: "FPGA FW commit hash string." + number_of_fields: 3 + address_offset: 0x44 + access_mode: RO + - - field_name: design_note + field_description: "FPGA FW design note string." + number_of_fields: 52 + address_offset: 0x50 + mm_width: 32 + user_width: 8 + radix: char8 + access_mode: RO + + - peripheral_name: wdi # pi_wdi.py + peripheral_description: "" + mm_ports: + # MM port for unb2c_board_wdi_reg.vhd + - mm_port_name: REG_WDI + mm_port_type: REG + mm_port_description: "Reset register, if the right value is provided the factory image will be reloaded in the FPGA." fields: - - - field_name : reset_word - access_mode : WO + - - field_name: wdi_override + field_description: "Write value 0xB007FAC7 = 'Boot factory' to disable the watchdog interrupt (WDI), to cause an FPGA image reload." address_offset: 0x0 - field_description: " Only the value 0xB007FAC7 'Boot factory' will result in a reset " - - slave_description: "Reset register, if the right value is provided the factory image will be reloaded " + access_mode: WO - - slave_name : fpga_temp - slave_type : REG + - peripheral_name: unb2_fpga_sens + peripheral_description: "" + mm_ports: + # MM ports for mms_unb2c_fpga_sens.vhd / unb2c_fpga_sens_reg.vhd + - mm_port_name: REG_FPGA_TEMP_SENS # pi_unb_fpga_sens.py + mm_port_type: REG + mm_port_description: | + "FPGA temperature = (AxC)/1024 - B (where A=708; B=273; C=adc value), see page 10 in + https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_alttemp_sense.pdf" fields: - - - field_name : temp - width : 32 - access_mode : RO - address_offset: 0x00 + - - field_name: temp + field_description: "Raw data" number_of_fields: 1 - field_description: "" - slave_description: " " - - slave_name : fpga_voltage - slave_type : REG - fields: - - - field_name : voltage - width : 32 - access_mode : RO - address_offset: 0x00 - number_of_fields: 6 - field_description: "" - slave_description: " " - - - slave_name : scrap_ram - slave_type : RAM + address_offset: 0x0 + access_mode: RO + + - mm_port_name: REG_FPGA_VOLTAGE_SENS # pi_unb_fpga_voltagesens.py + mm_port_type: REG + mm_port_description: "Not used, FPGA voltages are monitored via DC-DC converter power supply volages" fields: - - - field_name: data - width : 32 - access_mode: RW - address_offset: 0x00 - number_of_fields: 128 - field_description: " " - slave_description: " " + - - field_name: voltages + field_description: "Not used" + number_of_fields: 6 + address_offset: 0x0 + access_mode: RO - peripheral_description: | - ""