From eaf794a41c161df2cd634c0fea02dfd21e4c6d77 Mon Sep 17 00:00:00 2001
From: Jonathan Hargreaves <hargreaves@astron.nl>
Date: Tue, 17 Nov 2015 12:37:55 +0000
Subject: [PATCH] UniBoard2 i2c sens and pmbus packages: fix bugs found during
 initial testbench simulation

---
 .../src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd | 76 ++++++++++++++----
 .../src/vhdl/i2c_commander_unb2_sens_pkg.vhd  | 80 +++++++++++++++----
 .../io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd      | 52 ++++++------
 3 files changed, 153 insertions(+), 55 deletions(-)

diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd
index 9464b96d8b..8148fa8e1e 100644
--- a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_pmbus_pkg.vhd
@@ -55,12 +55,36 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS
   CONSTANT k_expected_mask_1      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
   CONSTANT k_expected_mask_2      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
   CONSTANT k_expected_mask_3      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
-    
-  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0,
-                                                          k_expected_mask_1,
-                                                          k_expected_mask_2,
-                                                          k_expected_mask_3);
-                                                                                       
+  CONSTANT k_expected_mask_4      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_5      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_6      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_7      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_8      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_9      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_10     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_11     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_12     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_13     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_14     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_15     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+
+  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_expected_mask_0,
+                                                                                       k_expected_mask_1,
+                                                                                       k_expected_mask_2,
+                                                                                       k_expected_mask_3,
+                                                                                       k_expected_mask_4,
+                                                                                       k_expected_mask_5,
+                                                                                       k_expected_mask_6,
+                                                                                       k_expected_mask_7,
+                                                                                       k_expected_mask_8,
+                                                                                       k_expected_mask_9,
+                                                                                       k_expected_mask_10,
+                                                                                       k_expected_mask_11,
+                                                                                       k_expected_mask_12,
+                                                                                       k_expected_mask_13,
+                                                                                       k_expected_mask_14,
+                                                                                       k_expected_mask_15);
+
   -- Define the corresponding expected nof read data
   CONSTANT k_nof_result_data_0    : NATURAL := c_i2c_unb2_pmbus_nof_result_data_read_all;
   CONSTANT k_nof_result_data_1    : NATURAL := c_i2c_cmdr_nof_result_data_none;
@@ -77,11 +101,35 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS
   CONSTANT k_protocol_ofs_1  : NATURAL := k_protocol_list_0'LENGTH  + k_protocol_ofs_0;
   CONSTANT k_protocol_ofs_2  : NATURAL := k_protocol_list_1'LENGTH  + k_protocol_ofs_1;
   CONSTANT k_protocol_ofs_3  : NATURAL := k_protocol_list_2'LENGTH  + k_protocol_ofs_2;
-  
-  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0,
+  CONSTANT k_protocol_ofs_4  : NATURAL := 0 + k_protocol_ofs_3;
+  CONSTANT k_protocol_ofs_5  : NATURAL := 0 + k_protocol_ofs_4;
+  CONSTANT k_protocol_ofs_6  : NATURAL := 0 + k_protocol_ofs_5;
+  CONSTANT k_protocol_ofs_7  : NATURAL := 0 + k_protocol_ofs_6;
+  CONSTANT k_protocol_ofs_8  : NATURAL := 0 + k_protocol_ofs_7;
+  CONSTANT k_protocol_ofs_9  : NATURAL := 0 + k_protocol_ofs_8;
+  CONSTANT k_protocol_ofs_10 : NATURAL := 0 + k_protocol_ofs_9;
+  CONSTANT k_protocol_ofs_11 : NATURAL := 0 + k_protocol_ofs_10;
+  CONSTANT k_protocol_ofs_12 : NATURAL := 0 + k_protocol_ofs_11;
+  CONSTANT k_protocol_ofs_13 : NATURAL := 0 + k_protocol_ofs_12;
+  CONSTANT k_protocol_ofs_14 : NATURAL := 0 + k_protocol_ofs_13;
+  CONSTANT k_protocol_ofs_15 : NATURAL := 0 + k_protocol_ofs_14;
+
+  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_protocol_ofs_0,
                                                                                        k_protocol_ofs_1,
                                                                                        k_protocol_ofs_2,
-                                                                                       k_protocol_ofs_3);
+                                                                                       k_protocol_ofs_3,
+                                                                                       k_protocol_ofs_4,
+                                                                                       k_protocol_ofs_5,
+                                                                                       k_protocol_ofs_6,
+                                                                                       k_protocol_ofs_7,
+                                                                                       k_protocol_ofs_8,
+                                                                                       k_protocol_ofs_9,
+                                                                                       k_protocol_ofs_10,
+                                                                                       k_protocol_ofs_11,
+                                                                                       k_protocol_ofs_12,
+                                                                                       k_protocol_ofs_13,
+                                                                                       k_protocol_ofs_14,
+                                                                                       k_protocol_ofs_15);
   
   -- RAM sizes
   CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz;
@@ -91,7 +139,7 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS
   
   -- Commander settings
   CONSTANT k_nof_protocols        : NATURAL := 2;  -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols.
-  CONSTANT k_nof_result_data_max  : NATURAL := 4;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
+  CONSTANT k_nof_result_data_max  : NATURAL := 32;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
   CONSTANT k_result_cnt_w         : NATURAL := k_result_adr_w;
   
   
@@ -99,16 +147,16 @@ PACKAGE i2c_commander_unb2_pmbus_pkg IS
   -- Global constants (with prefix 'c_i2c_cmdr_unbh_')
   ------------------------------------------------------------------------------
   
-  CONSTANT c_i2c_cmdr_unbh_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
-  CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
+  CONSTANT c_i2c_cmdr_unb2_pmbus_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
+  CONSTANT c_i2c_cmdr_unb2_pmbus_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
   
-  CONSTANT c_i2c_cmdr_unbh_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
+  CONSTANT c_i2c_cmdr_unb2_pmbus_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
                                                                 k_protocol_ram_adr_w,
                                                                 k_protocol_ram_nof_dat,
                                                                 k_result_adr_w,
                                                                 k_result_nof_dat);
   
-  CONSTANT c_i2c_cmdr_unbh_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
+  CONSTANT c_i2c_cmdr_unb2_pmbus_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
                                                                             k_protocol_ofs_arr,
                                                                             k_expected_mask_arr,
                                                                             k_result_cnt_w,
diff --git a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd
index a8dad33acc..e0b758289e 100644
--- a/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_commander_unb2_sens_pkg.vhd
@@ -55,11 +55,36 @@ PACKAGE i2c_commander_unb2_sens_pkg IS
   CONSTANT k_expected_mask_1      : STD_LOGIC_VECTOR := c_i2c_unb2_sens_max1617_expected_mask_read_temp;
   CONSTANT k_expected_mask_2      : STD_LOGIC_VECTOR := c_i2c_unb2_sens_expected_mask_read_all;
   CONSTANT k_expected_mask_3      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
-    
-  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_expected_mask_0,
-                                                          k_expected_mask_1,
-                                                          k_expected_mask_2,
-                                                          k_expected_mask_3);
+  CONSTANT k_expected_mask_4      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_5      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_6      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_7      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_8      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_9      : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_10     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_11     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_12     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_13     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_14     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+  CONSTANT k_expected_mask_15     : STD_LOGIC_VECTOR := c_i2c_cmdr_expected_mask_end;
+
+  CONSTANT k_expected_mask_arr : t_slv_32_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_expected_mask_0,
+                                                                                       k_expected_mask_1,
+                                                                                       k_expected_mask_2,
+                                                                                       k_expected_mask_3,
+                                                                                       k_expected_mask_4,
+                                                                                       k_expected_mask_5,
+                                                                                       k_expected_mask_6,
+                                                                                       k_expected_mask_7,
+                                                                                       k_expected_mask_8,
+                                                                                       k_expected_mask_9,
+                                                                                       k_expected_mask_10,
+                                                                                       k_expected_mask_11,
+                                                                                       k_expected_mask_12,
+                                                                                       k_expected_mask_13,
+                                                                                       k_expected_mask_14,
+                                                                                       k_expected_mask_15);
+
                                                                                        
   -- Define the corresponding expected nof read data
   CONSTANT k_nof_result_data_0    : NATURAL := c_i2c_unb2_sens_max1617_nof_result_data_read_config;
@@ -77,12 +102,37 @@ PACKAGE i2c_commander_unb2_sens_pkg IS
   CONSTANT k_protocol_ofs_1  : NATURAL := k_protocol_list_0'LENGTH  + k_protocol_ofs_0;
   CONSTANT k_protocol_ofs_2  : NATURAL := k_protocol_list_1'LENGTH  + k_protocol_ofs_1;
   CONSTANT k_protocol_ofs_3  : NATURAL := k_protocol_list_2'LENGTH  + k_protocol_ofs_2;
-  
-  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_unb2_nof_protocol_lists-1) := (k_protocol_ofs_0,
+  CONSTANT k_protocol_ofs_4  : NATURAL := 0 + k_protocol_ofs_3;
+  CONSTANT k_protocol_ofs_5  : NATURAL := 0 + k_protocol_ofs_4;
+  CONSTANT k_protocol_ofs_6  : NATURAL := 0 + k_protocol_ofs_5;
+  CONSTANT k_protocol_ofs_7  : NATURAL := 0 + k_protocol_ofs_6;
+  CONSTANT k_protocol_ofs_8  : NATURAL := 0 + k_protocol_ofs_7;
+  CONSTANT k_protocol_ofs_9  : NATURAL := 0 + k_protocol_ofs_8;
+  CONSTANT k_protocol_ofs_10 : NATURAL := 0 + k_protocol_ofs_9;
+  CONSTANT k_protocol_ofs_11 : NATURAL := 0 + k_protocol_ofs_10;
+  CONSTANT k_protocol_ofs_12 : NATURAL := 0 + k_protocol_ofs_11;
+  CONSTANT k_protocol_ofs_13 : NATURAL := 0 + k_protocol_ofs_12;
+  CONSTANT k_protocol_ofs_14 : NATURAL := 0 + k_protocol_ofs_13;
+  CONSTANT k_protocol_ofs_15 : NATURAL := 0 + k_protocol_ofs_14;
+
+  CONSTANT k_protocol_ofs_arr : t_natural_arr(0 TO c_i2c_cmdr_max_nof_protocols-1) := (k_protocol_ofs_0,
                                                                                        k_protocol_ofs_1,
                                                                                        k_protocol_ofs_2,
-                                                                                       k_protocol_ofs_3);
-  
+                                                                                       k_protocol_ofs_3,
+                                                                                       k_protocol_ofs_4,
+                                                                                       k_protocol_ofs_5,
+                                                                                       k_protocol_ofs_6,
+                                                                                       k_protocol_ofs_7,
+                                                                                       k_protocol_ofs_8,
+                                                                                       k_protocol_ofs_9,
+                                                                                       k_protocol_ofs_10,
+                                                                                       k_protocol_ofs_11,
+                                                                                       k_protocol_ofs_12,
+                                                                                       k_protocol_ofs_13,
+                                                                                       k_protocol_ofs_14,
+                                                                                       k_protocol_ofs_15);
+
+
   -- RAM sizes
   CONSTANT k_protocol_ram_nof_dat : NATURAL := ceil_div(k_protocol_ram_init'LENGTH, c_i2c_cmdr_mem_block_sz) * c_i2c_cmdr_mem_block_sz;
   CONSTANT k_protocol_ram_adr_w   : NATURAL := ceil_log2(k_protocol_ram_nof_dat);  
@@ -90,8 +140,8 @@ PACKAGE i2c_commander_unb2_sens_pkg IS
   CONSTANT k_result_nof_dat       : NATURAL := 2**k_result_adr_w;
   
   -- Commander settings
-  CONSTANT k_nof_protocols        : NATURAL := 2;  -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols.
-  CONSTANT k_nof_result_data_max  : NATURAL := 4;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
+  CONSTANT k_nof_protocols        : NATURAL := 3;  -- Must be >= actually used nof protocol lists in k_protocol_ram_init and <= c_i2c_cmdr_max_nof_protocols=16 protocols.
+  CONSTANT k_nof_result_data_max  : NATURAL := 32;  -- Must be >= the maximum nof read bytes in any protocol list in k_protocol_ram_init
   CONSTANT k_result_cnt_w         : NATURAL := k_result_adr_w;
   
   
@@ -99,16 +149,16 @@ PACKAGE i2c_commander_unb2_sens_pkg IS
   -- Global constants (with prefix 'c_i2c_cmdr_unbh_')
   ------------------------------------------------------------------------------
   
-  CONSTANT c_i2c_cmdr_unbh_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
-  CONSTANT c_i2c_cmdr_unbh_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
+  CONSTANT c_i2c_cmdr_unb2_sens_protocol_ram_init   : t_nat_natural_arr := k_protocol_ram_init;
+  CONSTANT c_i2c_cmdr_unb2_sens_nof_result_data_arr : t_nat_natural_arr := k_nof_result_data_arr;
   
-  CONSTANT c_i2c_cmdr_unbh_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
+  CONSTANT c_i2c_cmdr_unb2_sens_i2c_mm              : t_c_i2c_mm := (c_i2c_control_adr_w,
                                                                 k_protocol_ram_adr_w,
                                                                 k_protocol_ram_nof_dat,
                                                                 k_result_adr_w,
                                                                 k_result_nof_dat);
   
-  CONSTANT c_i2c_cmdr_unbh_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
+  CONSTANT c_i2c_cmdr_unb2_sens_protocol_commander  : t_c_i2c_cmdr_commander := (k_nof_protocols,
                                                                             k_protocol_ofs_arr,
                                                                             k_expected_mask_arr,
                                                                             k_result_cnt_w,
diff --git a/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd
index 1603ccdf5e..8af25c6069 100644
--- a/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_dev_unb2_pkg.vhd
@@ -34,37 +34,37 @@ PACKAGE i2c_dev_unb2_pkg IS
 
   -- I2C slave addresses of the devices on the I2C sens bus on UniBoard2
   CONSTANT I2C_UNB2_SENS_TEMP_MAX1617_ADR     : NATURAL := MAX1617_ADR_MID_LOW;   -- temperature sensor, slave address is 0x29
-  CONSTANT I2C_UNB2_SENS_DCDC_BMR456_ADR      : NATURAL := X"2C";                 -- dc/dc converter, slave address is 0x2c
-  CONSTANT I2C_UNB2_SENS_PIM_PIM4328PD_ADR    : NATURAL := X"2b";                 -- power input module, slave address is 0x2b
-  CONSTANT I2C_UNB2_SENS_1V2_BMR461_ADR       : NATURAL := X"0f";                 -- 1.2V power supply, slave address is 0x0f
-  CONSTANT I2C_UNB2_SENS_3V3_BMR461_ADR       : NATURAL := X"0e";                 -- 3.3V power supply, slave address is 0x0e
-  CONSTANT I2C_UNB2_SENS_CLK_BMR461_ADR       : NATURAL := X"0d";                 -- clock power supply, slave address is 0x0d
-  CONSTANT I2C_UNB2_SENS_QSFP0_BMR464_ADR     : NATURAL := X"02";                 -- qsfp0 power supply, slave address is 0x02
-  CONSTANT I2C_UNB2_SENS_QSFP1_BMR464_ADR     : NATURAL := X"01";                 -- qsfp1 power supply, slave address is 0x01
-  CONSTANT I2C_UNB2_SENS_EEPROM_CAT24C02_ADR  : NATURAL := X"a0";                 -- eeprom , slave address is 0xa0
-  CONSTANT I2C_UNB2_SENS_TEMP_TMP451_ADR      : NATURAL := X"ac";                 -- temperature sensor, slave address is 0x4c
+  CONSTANT I2C_UNB2_SENS_DCDC_BMR456_ADR      : NATURAL := 16#2C#;                 -- dc/dc converter, slave address is 0x2c
+  CONSTANT I2C_UNB2_SENS_PIM_PIM4328PD_ADR    : NATURAL := 16#2b#;                 -- power input module, slave address is 0x2b
+  CONSTANT I2C_UNB2_SENS_1V2_BMR461_ADR       : NATURAL := 16#0f#;                 -- 1.2V power supply, slave address is 0x0f
+  CONSTANT I2C_UNB2_SENS_3V3_BMR461_ADR       : NATURAL := 16#0e#;                 -- 3.3V power supply, slave address is 0x0e
+  CONSTANT I2C_UNB2_SENS_CLK_BMR461_ADR       : NATURAL := 16#0d#;                 -- clock power supply, slave address is 0x0d
+  CONSTANT I2C_UNB2_SENS_QSFP0_BMR464_ADR     : NATURAL := 16#02#;                 -- qsfp0 power supply, slave address is 0x02
+  CONSTANT I2C_UNB2_SENS_QSFP1_BMR464_ADR     : NATURAL := 16#01#;                 -- qsfp1 power supply, slave address is 0x01
+  CONSTANT I2C_UNB2_SENS_EEPROM_CAT24C02_ADR  : NATURAL := 16#a0#;                 -- eeprom , slave address is 0xa0
+  CONSTANT I2C_UNB2_SENS_TEMP_TMP451_ADR      : NATURAL := 16#ac#;                 -- temperature sensor, slave address is 0x4c
   
   -- I2C slave addresses of the devices on the I2C pm bus on UniBoard2
-  CONSTANT I2C_UNB2_PMB_CORE_BMR464_ADR       : NATURAL := X"01";                 -- core supply, slave address is 0x01
-  CONSTANT I2C_UNB2_PMB_VCCRAM_BMR461_ADR     : NATURAL := X"0d";                 -- vcc ram supply, slave address is 0x0d
-  CONSTANT I2C_UNB2_PMB_TCVR0_BMR461_ADR      : NATURAL := X"0e";                 -- transceiver0 supply, slave address is 0x0e
-  CONSTANT I2C_UNB2_PMB_TCVR1_BMR461_ADR      : NATURAL := X"0f";                 -- transceiver1 supply, slave address is 0x0f
-  CONSTANT I2C_UNB2_PMB_CTRL_BMR461_ADR       : NATURAL := X"10";                 -- control supply, slave address is 0x10
-  CONSTANT I2C_UNB2_PMB_FPGAIO_BMR461_ADR     : NATURAL := X"11";                 -- fpga io supply, slave address is 0x11
+  CONSTANT I2C_UNB2_PMB_CORE_BMR464_ADR       : NATURAL := 16#01#;                 -- core supply, slave address is 0x01
+  CONSTANT I2C_UNB2_PMB_VCCRAM_BMR461_ADR     : NATURAL := 16#0d#;                 -- vcc ram supply, slave address is 0x0d
+  CONSTANT I2C_UNB2_PMB_TCVR0_BMR461_ADR      : NATURAL := 16#0e#;                 -- transceiver0 supply, slave address is 0x0e
+  CONSTANT I2C_UNB2_PMB_TCVR1_BMR461_ADR      : NATURAL := 16#0f#;                 -- transceiver1 supply, slave address is 0x0f
+  CONSTANT I2C_UNB2_PMB_CTRL_BMR461_ADR       : NATURAL := 16#10#;                 -- control supply, slave address is 0x10
+  CONSTANT I2C_UNB2_PMB_FPGAIO_BMR461_ADR     : NATURAL := 16#11#;                 -- fpga io supply, slave address is 0x11
 
   -- I2C slave addresses of the devices on the I2C ddr4 memory bus on UniBoard2
-  CONSTANT I2C_UNB2_MB_I_DDR4_ADR             : NATURAL := X"18";                 -- ddr4 module I, slave address is 0x18
-  CONSTANT I2C_UNB2_MB_II_DDR4_ADR            : NATURAL := X"19";                 -- ddr4 module II, slave address is 0x19
+  CONSTANT I2C_UNB2_MB_I_DDR4_ADR             : NATURAL := 16#18#;                 -- ddr4 module I, slave address is 0x18
+  CONSTANT I2C_UNB2_MB_II_DDR4_ADR            : NATURAL := 16#19#;                 -- ddr4 module II, slave address is 0x19
 
   CONSTANT c_i2c_unb_temp_high     : NATURAL := 85;
   
   -- commands
   -- these can later go into device specific packages
-  CONSTANT PMBUS_REG_READ_VIN                : NATURAL := X"88";                 -- common to all PMB devices
-  CONSTANT PMBUS_REG_READ_VCAP               : NATURAL := X"8a";                 -- used in the PIM4328PD
-  CONSTANT PMBUS_REG_READ_VOUT               : NATURAL := X"8b";                 -- common to all PMB devices
-  CONSTANT PMBUS_REG_READ_IOUT               : NATURAL := X"8c";                 -- common to all PMB devices
-  CONSTANT PMBUS_REG_READ_TEmP               : NATURAL := X"8d";                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_VIN                : NATURAL := 16#88#;                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_VCAP               : NATURAL := 16#8a#;                 -- used in the PIM4328PD
+  CONSTANT PMBUS_REG_READ_VOUT               : NATURAL := 16#8b#;                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_IOUT               : NATURAL := 16#8c#;                 -- common to all PMB devices
+  CONSTANT PMBUS_REG_READ_TEmP               : NATURAL := 16#8d#;                 -- common to all PMB devices
 
   CONSTANT c_i2c_unb2_nof_protocol_lists     : NATURAL := 4;                     -- for now we allow four protocol lists for each i2c interface
 
@@ -136,13 +136,13 @@ PACKAGE i2c_dev_unb2_pkg IS
     SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR0_BMR461_ADR, PMBUS_REG_READ_TEMP, 
     SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_VOUT, 
     SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_IOUT, 
-    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS1_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_TCVR1_BMR461_ADR, PMBUS_REG_READ_TEMP, 
     SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_VOUT, 
     SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_IOUT, 
     SMBUS_READ_BYTE , I2C_UNB2_PMB_CTRL_BMR461_ADR, PMBUS_REG_READ_TEMP, 
-    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_VOUT, 
-    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_IOUT, 
-    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGIO_BMR461_ADR, PMBUS_REG_READ_TEMP, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_VOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_IOUT, 
+    SMBUS_READ_BYTE , I2C_UNB2_PMB_FPGAIO_BMR461_ADR, PMBUS_REG_READ_TEMP, 
     SMBUS_C_END
   );
 
-- 
GitLab