From 8b28ffeb2ece93db3617d296dc6ff796f3150675 Mon Sep 17 00:00:00 2001 From: Jonathan Hargreaves <hargreaves@astron.nl> Date: Tue, 13 Oct 2015 13:23:21 +0000 Subject: [PATCH] add internal fpga voltage sensor to unb2_minimal --- .../quartus/qsys_unb2_minimal.qsys | 182 +++++++++++++++--- .../src/vhdl/mmm_unb2_minimal.vhd | 30 ++- .../src/vhdl/qsys_unb2_minimal_pkg.vhd | 21 +- .../unb2_minimal/src/vhdl/unb2_minimal.vhd | 18 +- 4 files changed, 206 insertions(+), 45 deletions(-) diff --git a/boards/uniboard2/designs/unb2_minimal/quartus/qsys_unb2_minimal.qsys b/boards/uniboard2/designs/unb2_minimal/quartus/qsys_unb2_minimal.qsys index 618c1a6c89..4421237bcd 100644 --- a/boards/uniboard2/designs/unb2_minimal/quartus/qsys_unb2_minimal.qsys +++ b/boards/uniboard2/designs/unb2_minimal/quartus/qsys_unb2_minimal.qsys @@ -125,6 +125,11 @@ value = "12"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element pio_pps.mem { @@ -141,6 +146,11 @@ value = "11"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element pio_system_info.mem { @@ -173,6 +183,11 @@ value = "16"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_dpmm_ctrl.mem { @@ -189,6 +204,11 @@ value = "17"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_dpmm_data.mem { @@ -205,6 +225,11 @@ value = "15"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_epcs.mem { @@ -214,7 +239,7 @@ type = "String"; } } - element reg_fpga_sens + element reg_fpga_temp_sens { datum _sortIndex { @@ -222,7 +247,7 @@ type = "int"; } } - element reg_fpga_sens.mem + element reg_fpga_temp_sens.mem { datum baseAddress { @@ -230,6 +255,27 @@ type = "String"; } } + element reg_fpga_voltage_sens + { + datum _sortIndex + { + value = "20"; + type = "int"; + } + datum sopceditor_expanded + { + value = "1"; + type = "boolean"; + } + } + element reg_fpga_voltage_sens.mem + { + datum baseAddress + { + value = "512"; + type = "String"; + } + } element reg_mmdp_ctrl { datum _sortIndex @@ -237,6 +283,11 @@ value = "18"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_mmdp_ctrl.mem { @@ -253,6 +304,11 @@ value = "19"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_mmdp_data.mem { @@ -269,6 +325,11 @@ value = "14"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_remu.mem { @@ -317,6 +378,11 @@ value = "13"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element reg_wdi.mem { @@ -338,6 +404,11 @@ value = "10"; type = "int"; } + datum sopceditor_expanded + { + value = "0"; + type = "boolean"; + } } element rom_system_info.mem { @@ -654,38 +725,73 @@ type="conduit" dir="end" /> <interface - name="reg_fpga_sens_address" - internal="reg_fpga_sens.address" + name="reg_fpga_temp_sens_address" + internal="reg_fpga_temp_sens.address" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_clk" + internal="reg_fpga_temp_sens.clk" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_read" + internal="reg_fpga_temp_sens.read" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_readdata" + internal="reg_fpga_temp_sens.readdata" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_reset" + internal="reg_fpga_temp_sens.reset" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_write" + internal="reg_fpga_temp_sens.write" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_temp_sens_writedata" + internal="reg_fpga_temp_sens.writedata" + type="conduit" + dir="end" /> + <interface + name="reg_fpga_voltage_sens_address" + internal="reg_fpga_voltage_sens.address" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_clk" - internal="reg_fpga_sens.clk" + name="reg_fpga_voltage_sens_clk" + internal="reg_fpga_voltage_sens.clk" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_read" - internal="reg_fpga_sens.read" + name="reg_fpga_voltage_sens_read" + internal="reg_fpga_voltage_sens.read" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_readdata" - internal="reg_fpga_sens.readdata" + name="reg_fpga_voltage_sens_readdata" + internal="reg_fpga_voltage_sens.readdata" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_reset" - internal="reg_fpga_sens.reset" + name="reg_fpga_voltage_sens_reset" + internal="reg_fpga_voltage_sens.reset" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_write" - internal="reg_fpga_sens.write" + name="reg_fpga_voltage_sens_write" + internal="reg_fpga_voltage_sens.write" type="conduit" dir="end" /> <interface - name="reg_fpga_sens_writedata" - internal="reg_fpga_sens.writedata" + name="reg_fpga_voltage_sens_writedata" + internal="reg_fpga_voltage_sens.writedata" type="conduit" dir="end" /> <interface @@ -949,7 +1055,7 @@ <parameter name="dataAddrWidth" value="18" /> <parameter name="dataMasterHighPerformanceAddrWidth" value="1" /> <parameter name="dataMasterHighPerformanceMapParam" value="" /> - <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='reg_unb_pmbus.mem' start='0xC0' end='0xE0' /><slave name='reg_fpga_sens.mem' start='0xE0' end='0x100' /><slave name='timer_0.s1' start='0x100' end='0x120' /><slave name='reg_epcs.mem' start='0x120' end='0x140' /><slave name='reg_remu.mem' start='0x140' end='0x160' /><slave name='reg_unb_sens.mem' start='0x160' end='0x180' /><slave name='pio_wdi.s1' start='0x180' end='0x190' /><slave name='reg_mmdp_data.mem' start='0x190' end='0x198' /><slave name='reg_mmdp_ctrl.mem' start='0x198' end='0x1A0' /><slave name='reg_dpmm_data.mem' start='0x1A0' end='0x1A8' /><slave name='reg_dpmm_ctrl.mem' start='0x1A8' end='0x1B0' /><slave name='pio_pps.mem' start='0x1B0' end='0x1B8' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x1B8' end='0x1C0' /><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.debug_mem_slave' 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='avs_eth_0.mms_reg' start='0x80' end='0xC0' /><slave name='reg_unb_pmbus.mem' start='0xC0' end='0xE0' /><slave name='reg_fpga_temp_sens.mem' start='0xE0' end='0x100' /><slave name='timer_0.s1' start='0x100' end='0x120' /><slave name='reg_epcs.mem' start='0x120' end='0x140' /><slave name='reg_remu.mem' start='0x140' end='0x160' /><slave name='reg_unb_sens.mem' start='0x160' end='0x180' /><slave name='pio_wdi.s1' start='0x180' end='0x190' /><slave name='reg_mmdp_data.mem' start='0x190' end='0x198' /><slave name='reg_mmdp_ctrl.mem' start='0x198' end='0x1A0' /><slave name='reg_dpmm_data.mem' start='0x1A0' end='0x1A8' /><slave name='reg_dpmm_ctrl.mem' start='0x1A8' end='0x1B0' /><slave name='pio_pps.mem' start='0x1B0' end='0x1B8' /><slave name='jtag_uart_0.avalon_jtag_slave' start='0x1B8' end='0x1C0' /><slave name='reg_fpga_voltage_sens.mem' start='0x200' end='0x240' /><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.debug_mem_slave' 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="data_master_high_performance_paddr_base" value="0" /> <parameter name="data_master_high_performance_paddr_size" value="0" /> <parameter name="data_master_paddr_base" value="0" /> @@ -1192,11 +1298,24 @@ <parameter name="g_adr_w" value="3" /> <parameter name="g_dat_w" value="32" /> </module> - <module name="reg_fpga_sens" kind="avs_common_mm" version="1.0" enabled="1"> + <module + name="reg_fpga_temp_sens" + kind="avs_common_mm" + version="1.0" + enabled="1"> <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> <parameter name="g_adr_w" value="3" /> <parameter name="g_dat_w" value="32" /> </module> + <module + name="reg_fpga_voltage_sens" + kind="avs_common_mm" + version="1.0" + enabled="1"> + <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> + <parameter name="g_adr_w" value="4" /> + <parameter name="g_dat_w" value="32" /> + </module> <module name="reg_mmdp_ctrl" kind="avs_common_mm" version="1.0" enabled="1"> <parameter name="AUTO_SYSTEM_CLOCK_RATE" value="50000000" /> <parameter name="g_adr_w" value="1" /> @@ -1365,7 +1484,7 @@ kind="avalon" version="15.0" start="cpu_0.data_master" - end="reg_fpga_sens.mem"> + end="reg_fpga_temp_sens.mem"> <parameter name="arbitrationPriority" value="1" /> <parameter name="baseAddress" value="0x00e0" /> <parameter name="defaultConnection" value="false" /> @@ -1379,6 +1498,15 @@ <parameter name="baseAddress" value="0x00c0" /> <parameter name="defaultConnection" value="false" /> </connection> + <connection + kind="avalon" + version="15.0" + start="cpu_0.data_master" + end="reg_fpga_voltage_sens.mem"> + <parameter name="arbitrationPriority" value="1" /> + <parameter name="baseAddress" value="0x0200" /> + <parameter name="defaultConnection" value="false" /> + </connection> <connection kind="avalon" version="15.0" @@ -1504,12 +1632,17 @@ kind="clock" version="15.0" start="clk_0.clk" - end="reg_fpga_sens.system" /> + end="reg_fpga_temp_sens.system" /> <connection kind="clock" version="15.0" start="clk_0.clk" end="reg_unb_pmbus.system" /> + <connection + kind="clock" + version="15.0" + start="clk_0.clk" + end="reg_fpga_voltage_sens.system" /> <connection kind="interrupt" version="15.0" @@ -1612,7 +1745,7 @@ kind="reset" version="15.0" start="clk_0.clk_reset" - end="reg_fpga_sens.system_reset" /> + end="reg_fpga_temp_sens.system_reset" /> <connection kind="reset" version="15.0" @@ -1707,12 +1840,17 @@ kind="reset" version="15.0" start="cpu_0.debug_reset_request" - end="reg_fpga_sens.system_reset" /> + end="reg_fpga_temp_sens.system_reset" /> <connection kind="reset" version="15.0" start="cpu_0.debug_reset_request" end="reg_unb_pmbus.system_reset" /> + <connection + kind="reset" + version="15.0" + start="cpu_0.debug_reset_request" + end="reg_fpga_voltage_sens.system_reset" /> <interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" /> <interconnectRequirement for="$system" name="qsys_mm.insertDefaultSlave" value="FALSE" /> <interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" /> diff --git a/boards/uniboard2/designs/unb2_minimal/src/vhdl/mmm_unb2_minimal.vhd b/boards/uniboard2/designs/unb2_minimal/src/vhdl/mmm_unb2_minimal.vhd index 6882c59261..5cf8c93148 100644 --- a/boards/uniboard2/designs/unb2_minimal/src/vhdl/mmm_unb2_minimal.vhd +++ b/boards/uniboard2/designs/unb2_minimal/src/vhdl/mmm_unb2_minimal.vhd @@ -57,8 +57,10 @@ ENTITY mmm_unb2_minimal IS reg_unb_sens_mosi : OUT t_mem_mosi; reg_unb_sens_miso : IN t_mem_miso; - reg_fpga_sens_mosi : OUT t_mem_mosi; - reg_fpga_sens_miso : IN t_mem_miso; + reg_fpga_temp_sens_mosi : OUT t_mem_mosi; + reg_fpga_temp_sens_miso : IN t_mem_miso; + reg_fpga_voltage_sens_mosi: OUT t_mem_mosi; + reg_fpga_voltage_sens_miso: IN t_mem_miso; reg_unb_pmbus_mosi : OUT t_mem_mosi; reg_unb_pmbus_miso : IN t_mem_miso; @@ -146,7 +148,7 @@ BEGIN PORT MAP(mm_rst, mm_clk, reg_unb_pmbus_mosi, reg_unb_pmbus_miso ); u_mm_file_reg_fpga_sens : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_FPGA_SENS") - PORT MAP(mm_rst, mm_clk, reg_fpga_sens_mosi, reg_fpga_sens_miso ); + PORT MAP(mm_rst, mm_clk, reg_fpga_temp_sens_mosi, reg_fpga_temp_sens_miso ); u_mm_file_reg_ppsh : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS") PORT MAP(mm_rst, mm_clk, reg_ppsh_mosi, reg_ppsh_miso ); @@ -214,13 +216,21 @@ BEGIN reg_unb_pmbus_read_export => reg_unb_pmbus_mosi.rd, reg_unb_pmbus_readdata_export => reg_unb_pmbus_miso.rddata(c_word_w-1 DOWNTO 0), - reg_fpga_sens_reset_export => OPEN, - reg_fpga_sens_clk_export => OPEN, - reg_fpga_sens_address_export => reg_fpga_sens_mosi.address(c_unb2_board_peripherals_mm_reg_default.reg_fpga_sens_adr_w-1 DOWNTO 0), - reg_fpga_sens_write_export => reg_fpga_sens_mosi.wr, - reg_fpga_sens_writedata_export => reg_fpga_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), - reg_fpga_sens_read_export => reg_fpga_sens_mosi.rd, - reg_fpga_sens_readdata_export => reg_fpga_sens_miso.rddata(c_word_w-1 DOWNTO 0), + reg_fpga_temp_sens_reset_export => OPEN, + reg_fpga_temp_sens_clk_export => OPEN, + reg_fpga_temp_sens_address_export => reg_fpga_temp_sens_mosi.address(c_unb2_board_peripherals_mm_reg_default.reg_fpga_temp_sens_adr_w-1 DOWNTO 0), + reg_fpga_temp_sens_write_export => reg_fpga_temp_sens_mosi.wr, + reg_fpga_temp_sens_writedata_export => reg_fpga_temp_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_fpga_temp_sens_read_export => reg_fpga_temp_sens_mosi.rd, + reg_fpga_temp_sens_readdata_export => reg_fpga_temp_sens_miso.rddata(c_word_w-1 DOWNTO 0), + + reg_fpga_voltage_sens_reset_export => OPEN, + reg_fpga_voltage_sens_clk_export => OPEN, + reg_fpga_voltage_sens_address_export => reg_fpga_voltage_sens_mosi.address(c_unb2_board_peripherals_mm_reg_default.reg_fpga_voltage_sens_adr_w-1 DOWNTO 0), + reg_fpga_voltage_sens_write_export => reg_fpga_voltage_sens_mosi.wr, + reg_fpga_voltage_sens_writedata_export => reg_fpga_voltage_sens_mosi.wrdata(c_word_w-1 DOWNTO 0), + reg_fpga_voltage_sens_read_export => reg_fpga_voltage_sens_mosi.rd, + reg_fpga_voltage_sens_readdata_export => reg_fpga_voltage_sens_miso.rddata(c_word_w-1 DOWNTO 0), rom_system_info_reset_export => OPEN, rom_system_info_clk_export => OPEN, diff --git a/boards/uniboard2/designs/unb2_minimal/src/vhdl/qsys_unb2_minimal_pkg.vhd b/boards/uniboard2/designs/unb2_minimal/src/vhdl/qsys_unb2_minimal_pkg.vhd index 2a72086f45..0c1cd8ba6d 100644 --- a/boards/uniboard2/designs/unb2_minimal/src/vhdl/qsys_unb2_minimal_pkg.vhd +++ b/boards/uniboard2/designs/unb2_minimal/src/vhdl/qsys_unb2_minimal_pkg.vhd @@ -129,13 +129,20 @@ PACKAGE qsys_unb2_minimal_pkg IS rom_system_info_reset_export : out std_logic; -- export rom_system_info_write_export : out std_logic; -- export rom_system_info_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_fpga_sens_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export - reg_fpga_sens_read_export : out std_logic; -- export - reg_fpga_sens_writedata_export : out std_logic_vector(31 downto 0); -- export - reg_fpga_sens_write_export : out std_logic; -- export - reg_fpga_sens_address_export : out std_logic_vector(2 downto 0); -- export - reg_fpga_sens_clk_export : out std_logic; -- export - reg_fpga_sens_reset_export : out std_logic; -- export + reg_fpga_temp_sens_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + reg_fpga_temp_sens_read_export : out std_logic; -- export + reg_fpga_temp_sens_writedata_export: out std_logic_vector(31 downto 0); -- export + reg_fpga_temp_sens_write_export : out std_logic; -- export + reg_fpga_temp_sens_address_export : out std_logic_vector(2 downto 0); -- export + reg_fpga_temp_sens_clk_export : out std_logic; -- export + reg_fpga_temp_sens_reset_export : out std_logic; -- export + reg_fpga_voltage_sens_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export + reg_fpga_voltage_sens_read_export : out std_logic; -- export + reg_fpga_voltage_sens_writedata_export : out std_logic_vector(31 downto 0); -- export + reg_fpga_voltage_sens_write_export : out std_logic; -- export + reg_fpga_voltage_sens_address_export : out std_logic_vector(3 downto 0); -- export + reg_fpga_voltage_sens_clk_export : out std_logic; -- export + reg_fpga_voltage_sens_reset_export : out std_logic; -- export reg_unb_pmbus_readdata_export : in std_logic_vector(31 downto 0) := (others => 'X'); -- export reg_unb_pmbus_read_export : out std_logic; -- export reg_unb_pmbus_writedata_export : out std_logic_vector(31 downto 0); -- export diff --git a/boards/uniboard2/designs/unb2_minimal/src/vhdl/unb2_minimal.vhd b/boards/uniboard2/designs/unb2_minimal/src/vhdl/unb2_minimal.vhd index 28a3efcb29..3cbebfeac2 100644 --- a/boards/uniboard2/designs/unb2_minimal/src/vhdl/unb2_minimal.vhd +++ b/boards/uniboard2/designs/unb2_minimal/src/vhdl/unb2_minimal.vhd @@ -111,8 +111,10 @@ ARCHITECTURE str OF unb2_minimal IS SIGNAL reg_unb_sens_miso : t_mem_miso; -- fpga sensors - SIGNAL reg_fpga_sens_mosi : t_mem_mosi; - SIGNAL reg_fpga_sens_miso : t_mem_miso; + SIGNAL reg_fpga_temp_sens_mosi : t_mem_mosi; + SIGNAL reg_fpga_temp_sens_miso : t_mem_miso; + SIGNAL reg_fpga_voltage_sens_mosi : t_mem_mosi; + SIGNAL reg_fpga_voltage_sens_miso : t_mem_miso; -- pm bus SIGNAL reg_unb_pmbus_mosi : t_mem_mosi; @@ -226,8 +228,10 @@ BEGIN reg_unb_sens_mosi => reg_unb_sens_mosi, reg_unb_sens_miso => reg_unb_sens_miso, - reg_fpga_sens_mosi => reg_fpga_sens_mosi, - reg_fpga_sens_miso => reg_fpga_sens_miso, + reg_fpga_temp_sens_mosi => reg_fpga_temp_sens_mosi, + reg_fpga_temp_sens_miso => reg_fpga_temp_sens_miso, + reg_fpga_voltage_sens_mosi => reg_fpga_voltage_sens_mosi, + reg_fpga_voltage_sens_miso => reg_fpga_voltage_sens_miso, reg_unb_pmbus_mosi => reg_unb_pmbus_mosi, reg_unb_pmbus_miso => reg_unb_pmbus_miso, @@ -301,8 +305,10 @@ BEGIN reg_unb_sens_mosi => reg_unb_sens_mosi, reg_unb_sens_miso => reg_unb_sens_miso, - reg_fpga_sens_mosi => reg_fpga_sens_mosi, - reg_fpga_sens_miso => reg_fpga_sens_miso, + reg_fpga_temp_sens_mosi => reg_fpga_temp_sens_mosi, + reg_fpga_temp_sens_miso => reg_fpga_temp_sens_miso, + reg_fpga_voltage_sens_mosi => reg_fpga_voltage_sens_mosi, + reg_fpga_voltage_sens_miso => reg_fpga_voltage_sens_miso, reg_unb_pmbus_mosi => reg_unb_pmbus_mosi, reg_unb_pmbus_miso => reg_unb_pmbus_miso, -- GitLab