Compiling, intermediate version with Part 1 changes for MBSr2, not tested
This commit is contained in:
parent
49a8fd7224
commit
5cc12bdf6d
|
|
@ -0,0 +1,105 @@
|
||||||
|
library ieee;
|
||||||
|
use ieee.std_logic_1164.all;
|
||||||
|
--use ieee.numeric_std.all;
|
||||||
|
------------------------------------------------------------
|
||||||
|
entity odio_repeater is
|
||||||
|
generic (
|
||||||
|
WAIT_CYCLES : integer := 3
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
clk : in std_logic;
|
||||||
|
rstn : in std_logic;
|
||||||
|
signal_n1 : inout std_logic;
|
||||||
|
signal_n2 : inout std_logic
|
||||||
|
);
|
||||||
|
end entity odio_repeater;
|
||||||
|
------------------------------------------------------------
|
||||||
|
architecture arch of odio_repeater is
|
||||||
|
|
||||||
|
component debounce is
|
||||||
|
generic (
|
||||||
|
WAIT_CYCLES : integer := 5
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
signal_in : in std_logic;
|
||||||
|
signal_out : out std_logic;
|
||||||
|
clk : in std_logic
|
||||||
|
);
|
||||||
|
end component;
|
||||||
|
|
||||||
|
type state_t is (idle, n1_to_n2, n2_to_n1);
|
||||||
|
signal state : state_t := idle;
|
||||||
|
|
||||||
|
signal s_n1_i_raw, s_n1_i, s_n1_o, s_n1_prev : std_logic;
|
||||||
|
signal s_n2_i_raw, s_n2_i, s_n2_o, s_n2_prev : std_logic;
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
-- Tri-state IO handling
|
||||||
|
s_n1_i_raw <= signal_n1;
|
||||||
|
s_n2_i_raw <= signal_n2;
|
||||||
|
signal_n1 <= '0' when s_n1_o = '0' else 'Z';
|
||||||
|
signal_n2 <= '0' when s_n2_o = '0' else 'Z';
|
||||||
|
|
||||||
|
-- Debounce input lines
|
||||||
|
n1_debounce : debounce
|
||||||
|
generic map (
|
||||||
|
WAIT_CYCLES => WAIT_CYCLES
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
clk => clk,
|
||||||
|
signal_in => s_n1_i_raw,
|
||||||
|
signal_out => s_n1_i
|
||||||
|
);
|
||||||
|
|
||||||
|
n2_debounce : debounce
|
||||||
|
generic map (
|
||||||
|
WAIT_CYCLES => WAIT_CYCLES
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
clk => clk,
|
||||||
|
signal_in => s_n2_i_raw,
|
||||||
|
signal_out => s_n2_i
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Main open-drain IO repeater process
|
||||||
|
rptr_proc: process(clk, rstn, s_n1_i, s_n2_i) is
|
||||||
|
begin
|
||||||
|
if rstn = '0' then
|
||||||
|
s_n1_o <= '1';
|
||||||
|
s_n2_o <= '1';
|
||||||
|
s_n1_prev <= s_n1_i;
|
||||||
|
s_n2_prev <= s_n2_i;
|
||||||
|
state <= idle;
|
||||||
|
|
||||||
|
elsif (rising_edge(clk)) then
|
||||||
|
s_n1_prev <= s_n1_i;
|
||||||
|
s_n2_prev <= s_n2_i;
|
||||||
|
|
||||||
|
case state is
|
||||||
|
when idle =>
|
||||||
|
if (s_n1_prev = '1' and s_n1_i = '0') then
|
||||||
|
s_n2_o <= '0';
|
||||||
|
state <= n1_to_n2;
|
||||||
|
elsif (s_n2_prev = '1' and s_n2_i = '0') then
|
||||||
|
s_n1_o <= '0';
|
||||||
|
state <= n2_to_n1;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
when n1_to_n2 =>
|
||||||
|
if (s_n1_prev = '0' and s_n1_i = '1') then
|
||||||
|
s_n2_o <= '1';
|
||||||
|
state <= idle;
|
||||||
|
end if;
|
||||||
|
|
||||||
|
when n2_to_n1 =>
|
||||||
|
if (s_n2_prev = '0' and s_n2_i = '1') then
|
||||||
|
s_n1_o <= '1';
|
||||||
|
state <= idle;
|
||||||
|
end if;
|
||||||
|
end case;
|
||||||
|
|
||||||
|
end if;
|
||||||
|
end process;
|
||||||
|
|
||||||
|
end architecture arch;
|
||||||
|
|
@ -21,4 +21,16 @@ package sim_switcher_pkg is
|
||||||
);
|
);
|
||||||
end component i2c_slave;
|
end component i2c_slave;
|
||||||
|
|
||||||
|
component odio_repeater is
|
||||||
|
generic (
|
||||||
|
WAIT_CYCLES : integer := 3
|
||||||
|
);
|
||||||
|
port (
|
||||||
|
clk : in std_logic;
|
||||||
|
rstn : in std_logic;
|
||||||
|
signal_n1 : inout std_logic;
|
||||||
|
signal_n2 : inout std_logic
|
||||||
|
);
|
||||||
|
end component odio_repeater;
|
||||||
|
|
||||||
end package sim_switcher_pkg;
|
end package sim_switcher_pkg;
|
||||||
|
|
@ -35,7 +35,7 @@ entity sim_switcher_top is
|
||||||
i2c_sda_io : inout std_logic;
|
i2c_sda_io : inout std_logic;
|
||||||
|
|
||||||
-- SIM board CONF bits
|
-- SIM board CONF bits
|
||||||
sim_board_conf_i :in std_logic_vector(2 downto 0);
|
sb_conf_i : in std_logic_vector(2 downto 0);
|
||||||
|
|
||||||
-- SIM signals
|
-- SIM signals
|
||||||
sim_detect_i : in std_logic_vector(7 downto 0);
|
sim_detect_i : in std_logic_vector(7 downto 0);
|
||||||
|
|
@ -44,16 +44,47 @@ entity sim_switcher_top is
|
||||||
sim_clk_o : out std_logic_vector(7 downto 0);
|
sim_clk_o : out std_logic_vector(7 downto 0);
|
||||||
sim_data_io : inout std_logic_vector(7 downto 0);
|
sim_data_io : inout std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
-- Virtual SIM signals
|
-- Virtual SIM data IO signals
|
||||||
vsim_data_io : inout std_logic_vector(3 downto 0);
|
vsim_data_io : inout std_logic_vector(3 downto 0);
|
||||||
|
|
||||||
-- Modem signals
|
-- Modem signals for SIM cards
|
||||||
mod_detect_o : out std_logic_vector(3 downto 0);
|
mod_detect_o : out std_logic_vector(3 downto 0);
|
||||||
mod_wake_host_i : in std_logic_vector(3 downto 0);
|
mod_wake_host_i : in std_logic_vector(3 downto 0);
|
||||||
mod_pwron_i : in std_logic_vector(7 downto 0);
|
mod_simpwr_i : in std_logic_vector(7 downto 0);
|
||||||
mod_rst_i : in std_logic_vector(7 downto 0);
|
mod_simrst_i : in std_logic_vector(7 downto 0);
|
||||||
mod_clk_i : in std_logic_vector(7 downto 0);
|
mod_clk_i : in std_logic_vector(7 downto 0);
|
||||||
mod_data_io : inout std_logic_vector(7 downto 0)
|
mod_data_io : inout std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
|
-- Modem LEDs
|
||||||
|
mod_led_o : out std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
|
-- Modem manage signals
|
||||||
|
mod_pwr_o : out std_logic_vector(7 downto 0); -- Modem power on signals
|
||||||
|
mod_rstn_o : out std_logic_vector(7 downto 5); -- PCIe reset signal
|
||||||
|
mod_pciehstwake_i : in std_logic_vector(7 downto 5); -- PCIe wake host signal
|
||||||
|
|
||||||
|
-- Expansion card GPIO signals
|
||||||
|
exp_card_io : inout std_logic_vector(5 downto 0);
|
||||||
|
|
||||||
|
-- FAN power on signals
|
||||||
|
fan_o : out std_logic_vector(1 downto 0);
|
||||||
|
|
||||||
|
-- I2C slave interface FPGA-MCU (BitBang by MCU)
|
||||||
|
i2c_mcuscl_io : inout std_logic;
|
||||||
|
i2c_mcusda_io : inout std_logic;
|
||||||
|
|
||||||
|
-- POE IN add-in card
|
||||||
|
poe_in_vpres : in std_logic; -- Voltage present at card power output
|
||||||
|
poe_in_enn : out std_logic; -- PD enable signal (active low)
|
||||||
|
poe_in_t2p : in std_logic_vector(1 downto 0); -- PSE connected signal
|
||||||
|
|
||||||
|
-- POE OUT add-in card signals
|
||||||
|
pse_rst : out std_logic; -- PSE reset
|
||||||
|
pse_vpwr_enn : out std_logic; -- PSE enable (active low)
|
||||||
|
pse_i2c_scl_io : inout std_logic; -- PSE I2C SCL signal
|
||||||
|
pse_i2c_sda_io : inout std_logic; -- PSE I2C SDA signal
|
||||||
|
pse_intn : in std_logic; -- PSE interrupt (active low)
|
||||||
|
pse_vpwr_pg : in std_logic -- PSE power good signal
|
||||||
);
|
);
|
||||||
end entity sim_switcher_top;
|
end entity sim_switcher_top;
|
||||||
|
|
||||||
|
|
@ -74,6 +105,7 @@ architecture rtl of sim_switcher_top is
|
||||||
constant CPU_RST_DURATION : natural := 100_000_000; -- 25_000_000 = 1sec
|
constant CPU_RST_DURATION : natural := 100_000_000; -- 25_000_000 = 1sec
|
||||||
constant PON_RST_DURATION : natural := 10; -- 25_000_000 = 1sec
|
constant PON_RST_DURATION : natural := 10; -- 25_000_000 = 1sec
|
||||||
constant PON_CPU_DELAY_DURATION : natural := 75_000_000; -- 25_000_000 = 1sec
|
constant PON_CPU_DELAY_DURATION : natural := 75_000_000; -- 25_000_000 = 1sec
|
||||||
|
constant SB_CONF_UPDATE_INTERVAL : natural := 25_000_000; -- 25_000_000 = 1sec
|
||||||
|
|
||||||
constant DEBOUNCING_WAIT_CYCLES : natural := 3; -- Number of debouncing wait cycles
|
constant DEBOUNCING_WAIT_CYCLES : natural := 3; -- Number of debouncing wait cycles
|
||||||
|
|
||||||
|
|
@ -120,6 +152,36 @@ architecture rtl of sim_switcher_top is
|
||||||
-- SIM switch IRQs for repeater state machine reset upon SIM change
|
-- SIM switch IRQs for repeater state machine reset upon SIM change
|
||||||
signal reg_sim_change_irq : std_logic_vector(15 downto 0) := (others => '0');
|
signal reg_sim_change_irq : std_logic_vector(15 downto 0) := (others => '0');
|
||||||
|
|
||||||
|
-- Modem LED register
|
||||||
|
signal reg_mod_led : std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
|
-- Modem power register
|
||||||
|
signal reg_mod_pwr : std_logic_vector(7 downto 0);
|
||||||
|
|
||||||
|
-- PCI-e signals
|
||||||
|
signal reg_pcie_rstn : std_logic_vector(7 downto 5);
|
||||||
|
signal reg_pcie_waken : std_logic_vector(7 downto 5);
|
||||||
|
|
||||||
|
-- M.2 modem wake host register
|
||||||
|
signal reg_mod_hstwake : std_logic_vector(3 downto 0);
|
||||||
|
|
||||||
|
-- FAN control register
|
||||||
|
signal reg_fan_ctl : std_logic_vector(1 downto 0);
|
||||||
|
|
||||||
|
-- PSE registers
|
||||||
|
signal reg_pse_status : std_logic_vector(1 downto 0);
|
||||||
|
signal reg_pse_ctl : std_logic_vector(1 downto 0);
|
||||||
|
|
||||||
|
-- POE PD registers
|
||||||
|
signal reg_poepd_status : std_logic_vector(2 downto 0);
|
||||||
|
signal reg_poepd_ctl : std_logic;
|
||||||
|
|
||||||
|
-- Expansion card IO tri-state control
|
||||||
|
signal reg_expio_line : std_logic_vector(5 downto 0);
|
||||||
|
signal reg_expio_output : std_logic_vector(5 downto 0);
|
||||||
|
signal s_exp_card_i : std_logic_vector(5 downto 0);
|
||||||
|
signal s_dbexp_card_i : std_logic_vector(5 downto 0);
|
||||||
|
|
||||||
-- State machine signals and types
|
-- State machine signals and types
|
||||||
type state_t is (idle, mod_to_sim, sim_to_mod);
|
type state_t is (idle, mod_to_sim, sim_to_mod);
|
||||||
type arr_state_t is array (natural range <>) of state_t;
|
type arr_state_t is array (natural range <>) of state_t;
|
||||||
|
|
@ -136,19 +198,70 @@ begin
|
||||||
reg_sim_det(7 downto 0) <= sim_detect_i;
|
reg_sim_det(7 downto 0) <= sim_detect_i;
|
||||||
reg_sim_det(15 downto 8) <= (others => '0');
|
reg_sim_det(15 downto 8) <= (others => '0');
|
||||||
|
|
||||||
-- reg_sim_modemnum <= (
|
|
||||||
-- 0 => 7,
|
|
||||||
-- 1 => 6,
|
|
||||||
-- 2 => 5,
|
|
||||||
-- 3 => 4,
|
|
||||||
-- 4 => 3,
|
|
||||||
-- 5 => 2,
|
|
||||||
-- 6 => 1,
|
|
||||||
-- 7 => 0
|
|
||||||
-- );
|
|
||||||
|
|
||||||
--reg_sim_change_irq <= (others => '0');
|
--reg_sim_change_irq <= (others => '0');
|
||||||
|
|
||||||
|
mod_led_o <= reg_mod_led;
|
||||||
|
mod_pwr_o <= reg_mod_pwr;
|
||||||
|
|
||||||
|
mod_rstn_o <= reg_pcie_rstn;
|
||||||
|
reg_pcie_waken <= mod_pciehstwake_i;
|
||||||
|
|
||||||
|
reg_mod_hstwake <= mod_wake_host_i;
|
||||||
|
|
||||||
|
fan_o <= reg_fan_ctl;
|
||||||
|
|
||||||
|
-- PSE init
|
||||||
|
pse_rst <= reg_pse_ctl(0);
|
||||||
|
pse_vpwr_enn <= reg_pse_ctl(1);
|
||||||
|
reg_pse_status <= pse_intn&pse_vpwr_pg;
|
||||||
|
|
||||||
|
-- Connect PSE I2C bus to main I2C bus
|
||||||
|
pse_scl_rptr: odio_repeater
|
||||||
|
generic map (
|
||||||
|
WAIT_CYCLES => DEBOUNCING_WAIT_CYCLES
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
clk => clk25_i,
|
||||||
|
rstn => s_rstn_i,
|
||||||
|
signal_n1 => i2c_scl_io,
|
||||||
|
signal_n2 => pse_i2c_scl_io
|
||||||
|
);
|
||||||
|
|
||||||
|
pse_sda_rptr: odio_repeater
|
||||||
|
generic map (
|
||||||
|
WAIT_CYCLES => DEBOUNCING_WAIT_CYCLES
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
clk => clk25_i,
|
||||||
|
rstn => s_rstn_i,
|
||||||
|
signal_n1 => i2c_sda_io,
|
||||||
|
signal_n2 => pse_i2c_sda_io
|
||||||
|
);
|
||||||
|
|
||||||
|
-- POE PD init
|
||||||
|
reg_poepd_status <= poe_in_vpres&poe_in_t2p;
|
||||||
|
poe_in_enn <= reg_poepd_ctl;
|
||||||
|
|
||||||
|
-- Expansion card IO control
|
||||||
|
gen_expio_dbnc: for i in 0 to 5 generate
|
||||||
|
|
||||||
|
s_exp_card_i(i) <= exp_card_io(i);
|
||||||
|
exp_card_io(i) <= '0' when reg_expio_output(i) = '0' else 'Z';
|
||||||
|
reg_expio_line(i) <= s_dbexp_card_i(i);
|
||||||
|
|
||||||
|
expio_debounce : debounce
|
||||||
|
generic map (
|
||||||
|
WAIT_CYCLES => DEBOUNCING_WAIT_CYCLES
|
||||||
|
)
|
||||||
|
port map (
|
||||||
|
clk => clk25_i,
|
||||||
|
signal_in => s_exp_card_i(i),
|
||||||
|
signal_out => s_dbexp_card_i(i)
|
||||||
|
);
|
||||||
|
end generate gen_expio_dbnc;
|
||||||
|
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
----------------------------------
|
----------------------------------
|
||||||
-- Power-On FPGA IP-cores reset --
|
-- Power-On FPGA IP-cores reset --
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
@ -247,10 +360,19 @@ begin
|
||||||
---------------------------
|
---------------------------
|
||||||
-- SIM board CONF update --
|
-- SIM board CONF update --
|
||||||
---------------------------
|
---------------------------
|
||||||
simb_conf_upd_proc: process(clk25_i) is
|
sb_conf_upd_proc: process(clk25_i, s_rstn_i, sb_conf_i) is
|
||||||
|
variable wait_cnt : natural := 0;
|
||||||
begin
|
begin
|
||||||
if (rising_edge(clk25_i)) then
|
if s_rstn_i = '0' then
|
||||||
reg_sim_board_conf <= sim_board_conf_i;
|
wait_cnt := 0;
|
||||||
|
reg_sim_board_conf <= sb_conf_i;
|
||||||
|
elsif (rising_edge(clk25_i)) then
|
||||||
|
if (wait_cnt > SB_CONF_UPDATE_INTERVAL) then
|
||||||
|
wait_cnt := 0;
|
||||||
|
reg_sim_board_conf <= sb_conf_i;
|
||||||
|
else
|
||||||
|
wait_cnt := wait_cnt + 1;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
|
|
@ -295,8 +417,15 @@ begin
|
||||||
reg_sim_change_irq <= (others => '0');
|
reg_sim_change_irq <= (others => '0');
|
||||||
|
|
||||||
-- Turn on all SIM cards
|
-- Turn on all SIM cards
|
||||||
reg_sim_pwr(7 downto 0) <= (others => '1');
|
reg_sim_pwr(7 downto 0) <= (others => '1'); -- Real SIMs power is on
|
||||||
reg_sim_pwr(15 downto 8) <= (others => '0');
|
reg_sim_pwr(15 downto 8) <= (others => '0'); -- Virtual SIMs power is "off"
|
||||||
|
reg_mod_led <= (others => '0'); -- Modem LEDs are not lit
|
||||||
|
reg_mod_pwr <= (others => '0'); -- Modem power is off
|
||||||
|
reg_pcie_rstn <= (others => '1'); -- PCIe RSTn is not active
|
||||||
|
reg_fan_ctl <= (others => '0'); -- FANs are off
|
||||||
|
reg_pse_ctl <= (others => '0'); -- POE out is on
|
||||||
|
reg_poepd_ctl <= '0'; -- POE PD enabled
|
||||||
|
reg_expio_output <= (others => '1'); -- All Expansion card IOs in HighZ at start
|
||||||
|
|
||||||
elsif (rising_edge(clk25_i)) then
|
elsif (rising_edge(clk25_i)) then
|
||||||
case i2c_slv_state is
|
case i2c_slv_state is
|
||||||
|
|
@ -320,6 +449,54 @@ begin
|
||||||
i2c_data_to_master <= "00000" & reg_sim_board_conf;
|
i2c_data_to_master <= "00000" & reg_sim_board_conf;
|
||||||
i2c_slv_state <= wait_while_sent;
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"13" => -- Read FAN control regiser
|
||||||
|
i2c_data_to_master <= "000000" & reg_fan_ctl;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"14" => -- Read POE OUT status register
|
||||||
|
i2c_data_to_master <= "000000" & reg_pse_status;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"15" => -- Read POE OUT control register
|
||||||
|
i2c_data_to_master <= "000000" & reg_pse_ctl;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"16" => -- Read POE IN status register
|
||||||
|
i2c_data_to_master <= "00000" & reg_poepd_status;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"17" => -- Read POE IN control register
|
||||||
|
i2c_data_to_master <= "0000000" & reg_poepd_ctl;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"18" => -- Read Expansion card IO lines
|
||||||
|
i2c_data_to_master <= "00" & reg_expio_line;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"19" => -- Read Expansion card output register
|
||||||
|
i2c_data_to_master <= "00" & reg_expio_output;
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"05" => -- Read M.2 modem wake host register
|
||||||
|
i2c_data_to_master <= "0000"®_mod_hstwake(3 downto 0);
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"06" => -- Read modem LED register
|
||||||
|
i2c_data_to_master <= reg_mod_led(7 downto 0);
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"07" => -- Read modem power register
|
||||||
|
i2c_data_to_master <= reg_mod_pwr(7 downto 0);
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"08" => -- Read PCIe RSTn register
|
||||||
|
i2c_data_to_master <= reg_pcie_rstn(7 downto 5)&"00000";
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"09" => -- Read PCIe WAKEn register
|
||||||
|
i2c_data_to_master <= reg_pcie_waken(7 downto 5)&"00000";
|
||||||
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
when x"0A" => -- Read SIMs detect register (LSB)
|
when x"0A" => -- Read SIMs detect register (LSB)
|
||||||
i2c_data_to_master <= reg_sim_det(7 downto 0);
|
i2c_data_to_master <= reg_sim_det(7 downto 0);
|
||||||
i2c_slv_state <= wait_while_sent;
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
@ -358,11 +535,30 @@ begin
|
||||||
i2c_data_to_master <= "0000" & std_logic_vector(to_unsigned(reg_sim_modemnum(7),4));
|
i2c_data_to_master <= "0000" & std_logic_vector(to_unsigned(reg_sim_modemnum(7),4));
|
||||||
i2c_slv_state <= wait_while_sent;
|
i2c_slv_state <= wait_while_sent;
|
||||||
|
|
||||||
|
when x"86" => -- Write modem LED register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
when x"87" => -- Write modem power register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
when x"88" => -- Write PCIe RSTn register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
when x"8C" => -- Write SIMs power register (LSB)
|
when x"8C" => -- Write SIMs power register (LSB)
|
||||||
i2c_slv_state <= receive_byte;
|
i2c_slv_state <= receive_byte;
|
||||||
-- when x"8D" => -- Write SIMs power register (MSB)
|
-- when x"8D" => -- Write SIMs power register (MSB)
|
||||||
-- i2c_slv_state <= receive_byte;
|
-- i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
|
when x"93" => -- Write FAN control regiser
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
|
when x"95" => -- Write POE OUT control register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
|
when x"97" => -- Write POE IN control register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
|
when x"99" => -- Write Expansion card output register
|
||||||
|
i2c_slv_state <= receive_byte;
|
||||||
|
|
||||||
when x"A0" => -- Write SIM1 modem register
|
when x"A0" => -- Write SIM1 modem register
|
||||||
i2c_slv_state <= receive_byte;
|
i2c_slv_state <= receive_byte;
|
||||||
when x"A1" => -- Write SIM2 modem register
|
when x"A1" => -- Write SIM2 modem register
|
||||||
|
|
@ -388,11 +584,30 @@ begin
|
||||||
when receive_byte =>
|
when receive_byte =>
|
||||||
if (i2c_data_valid = '1') then
|
if (i2c_data_valid = '1') then
|
||||||
case s_reg_to_write is
|
case s_reg_to_write is
|
||||||
|
when x"86" => -- Write modem LED register
|
||||||
|
reg_mod_led(7 downto 0) <= i2c_data_from_master(7 downto 0);
|
||||||
|
when x"87" => -- Write modem power register
|
||||||
|
reg_mod_pwr(7 downto 0) <= i2c_data_from_master(7 downto 0);
|
||||||
|
when x"88" => -- Write PCIe RSTn register
|
||||||
|
reg_pcie_rstn(7 downto 5) <= i2c_data_from_master(7 downto 5);
|
||||||
|
|
||||||
when x"8C" => -- Write SIMs power register (LSB)
|
when x"8C" => -- Write SIMs power register (LSB)
|
||||||
reg_sim_pwr(7 downto 0) <= i2c_data_from_master(7 downto 0);
|
reg_sim_pwr(7 downto 0) <= i2c_data_from_master(7 downto 0);
|
||||||
-- when x"8D" => -- Write SIMs power register (MSB)
|
-- when x"8D" => -- Write SIMs power register (MSB)
|
||||||
-- reg_sim_pwr(15 downto 8) <= i2c_data_from_master(7 downto 0);
|
-- reg_sim_pwr(15 downto 8) <= i2c_data_from_master(7 downto 0);
|
||||||
|
|
||||||
|
when x"93" => -- Write FAN control regiser
|
||||||
|
reg_fan_ctl(1 downto 0) <= i2c_data_from_master(1 downto 0);
|
||||||
|
|
||||||
|
when x"95" => -- Write POE OUT control register
|
||||||
|
reg_pse_ctl(1 downto 0) <= i2c_data_from_master(1 downto 0);
|
||||||
|
|
||||||
|
when x"97" => -- Write POE IN control register
|
||||||
|
reg_poepd_ctl <= i2c_data_from_master(0);
|
||||||
|
|
||||||
|
when x"99" => -- Write Expansion card output register
|
||||||
|
reg_expio_output <= i2c_data_from_master(5 downto 0);
|
||||||
|
|
||||||
when x"A0" => -- Write SIM1 modem register
|
when x"A0" => -- Write SIM1 modem register
|
||||||
reg_sim_modemnum(0) <= to_integer(unsigned(i2c_data_from_master(3 downto 0)));
|
reg_sim_modemnum(0) <= to_integer(unsigned(i2c_data_from_master(3 downto 0)));
|
||||||
when x"A1" => -- Write SIM2 modem register
|
when x"A1" => -- Write SIM2 modem register
|
||||||
|
|
@ -446,77 +661,77 @@ begin
|
||||||
--- SIM card emulation test ---
|
--- SIM card emulation test ---
|
||||||
-------------------------------
|
-------------------------------
|
||||||
-- Switch RST line of SIM according to connected MODEM
|
-- Switch RST line of SIM according to connected MODEM
|
||||||
sim_rst_o(0) <= mod_rst_i(0) when reg_sim_modemnum(0) = 0
|
sim_rst_o(0) <= mod_simrst_i(0) when reg_sim_modemnum(0) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(0) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(0) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(0) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(0) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(0) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(0) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(0) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(0) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(0) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(0) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(0) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(0) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(0) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(0) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(1) <= mod_rst_i(0) when reg_sim_modemnum(1) = 0
|
sim_rst_o(1) <= mod_simrst_i(0) when reg_sim_modemnum(1) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(1) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(1) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(1) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(1) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(1) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(1) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(1) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(1) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(1) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(1) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(1) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(1) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(1) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(1) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(2) <= mod_rst_i(0) when reg_sim_modemnum(2) = 0
|
sim_rst_o(2) <= mod_simrst_i(0) when reg_sim_modemnum(2) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(2) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(2) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(2) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(2) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(2) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(2) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(2) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(2) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(2) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(2) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(2) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(2) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(2) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(2) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(3) <= mod_rst_i(0) when reg_sim_modemnum(3) = 0
|
sim_rst_o(3) <= mod_simrst_i(0) when reg_sim_modemnum(3) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(3) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(3) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(3) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(3) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(3) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(3) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(3) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(3) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(3) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(3) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(3) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(3) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(3) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(3) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(4) <= mod_rst_i(0) when reg_sim_modemnum(4) = 0
|
sim_rst_o(4) <= mod_simrst_i(0) when reg_sim_modemnum(4) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(4) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(4) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(4) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(4) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(4) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(4) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(4) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(4) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(4) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(4) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(4) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(4) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(4) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(4) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(5) <= mod_rst_i(0) when reg_sim_modemnum(5) = 0
|
sim_rst_o(5) <= mod_simrst_i(0) when reg_sim_modemnum(5) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(5) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(5) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(5) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(5) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(5) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(5) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(5) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(5) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(5) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(5) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(5) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(5) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(5) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(5) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(6) <= mod_rst_i(0) when reg_sim_modemnum(6) = 0
|
sim_rst_o(6) <= mod_simrst_i(0) when reg_sim_modemnum(6) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(6) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(6) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(6) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(6) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(6) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(6) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(6) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(6) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(6) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(6) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(6) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(6) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(6) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(6) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
sim_rst_o(7) <= mod_rst_i(0) when reg_sim_modemnum(7) = 0
|
sim_rst_o(7) <= mod_simrst_i(0) when reg_sim_modemnum(7) = 0
|
||||||
else mod_rst_i(1) when reg_sim_modemnum(7) = 1
|
else mod_simrst_i(1) when reg_sim_modemnum(7) = 1
|
||||||
else mod_rst_i(2) when reg_sim_modemnum(7) = 2
|
else mod_simrst_i(2) when reg_sim_modemnum(7) = 2
|
||||||
else mod_rst_i(3) when reg_sim_modemnum(7) = 3
|
else mod_simrst_i(3) when reg_sim_modemnum(7) = 3
|
||||||
else mod_rst_i(4) when reg_sim_modemnum(7) = 4
|
else mod_simrst_i(4) when reg_sim_modemnum(7) = 4
|
||||||
else mod_rst_i(5) when reg_sim_modemnum(7) = 5
|
else mod_simrst_i(5) when reg_sim_modemnum(7) = 5
|
||||||
else mod_rst_i(6) when reg_sim_modemnum(7) = 6
|
else mod_simrst_i(6) when reg_sim_modemnum(7) = 6
|
||||||
else mod_rst_i(7) when reg_sim_modemnum(7) = 7
|
else mod_simrst_i(7) when reg_sim_modemnum(7) = 7
|
||||||
else 'Z';
|
else 'Z';
|
||||||
|
|
||||||
-- Switch CLK line of SIM according to connected MODEM
|
-- Switch CLK line of SIM according to connected MODEM
|
||||||
|
|
@ -632,8 +847,7 @@ begin
|
||||||
else 'Z';
|
else 'Z';
|
||||||
|
|
||||||
-- Route one-way signals from mod to SIM
|
-- Route one-way signals from mod to SIM
|
||||||
sim_pwron_o <= reg_sim_pwr(7 downto 0);--(others => '1');--mod_pwron_i;
|
sim_pwron_o <= reg_sim_pwr(7 downto 0);
|
||||||
--mod_detect_o(3 downto 0) <= sim_detect_i(3 downto 0); --!! Switching
|
|
||||||
|
|
||||||
-- Bidir sinals routing
|
-- Bidir sinals routing
|
||||||
gen_datalines: for i in 0 to 7 generate
|
gen_datalines: for i in 0 to 7 generate
|
||||||
|
|
@ -643,9 +857,6 @@ begin
|
||||||
s_mod_data_i(i) <= mod_data_io(i);
|
s_mod_data_i(i) <= mod_data_io(i);
|
||||||
mod_data_io(i) <= '0' when s_mod_data_o(i) = '0' else 'Z';
|
mod_data_io(i) <= '0' when s_mod_data_o(i) = '0' else 'Z';
|
||||||
|
|
||||||
--sim_rst_o(i) <= mod_rst_i(i); --!! Switching
|
|
||||||
--sim_clk_o(i) <= mod_clk_i(i); --!! Switching
|
|
||||||
|
|
||||||
-- Debounce data lines
|
-- Debounce data lines
|
||||||
mod_dat_i_debounce : debounce
|
mod_dat_i_debounce : debounce
|
||||||
generic map (
|
generic map (
|
||||||
|
|
@ -676,7 +887,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(0) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(0) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(0) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(0) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(0) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(0) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(1) <= sdb_mod_data_i(0) when reg_sim_modemnum(1) = 0
|
sw_mod_data_i(1) <= sdb_mod_data_i(0) when reg_sim_modemnum(1) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(1) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(1) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(1) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(1) = 2
|
||||||
|
|
@ -685,7 +896,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(1) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(1) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(1) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(1) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(1) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(1) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(2) <= sdb_mod_data_i(0) when reg_sim_modemnum(2) = 0
|
sw_mod_data_i(2) <= sdb_mod_data_i(0) when reg_sim_modemnum(2) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(2) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(2) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(2) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(2) = 2
|
||||||
|
|
@ -694,7 +905,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(2) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(2) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(2) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(2) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(2) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(2) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(3) <= sdb_mod_data_i(0) when reg_sim_modemnum(3) = 0
|
sw_mod_data_i(3) <= sdb_mod_data_i(0) when reg_sim_modemnum(3) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(3) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(3) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(3) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(3) = 2
|
||||||
|
|
@ -703,7 +914,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(3) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(3) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(3) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(3) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(3) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(3) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(4) <= sdb_mod_data_i(0) when reg_sim_modemnum(4) = 0
|
sw_mod_data_i(4) <= sdb_mod_data_i(0) when reg_sim_modemnum(4) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(4) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(4) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(4) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(4) = 2
|
||||||
|
|
@ -712,7 +923,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(4) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(4) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(4) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(4) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(4) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(4) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(5) <= sdb_mod_data_i(0) when reg_sim_modemnum(5) = 0
|
sw_mod_data_i(5) <= sdb_mod_data_i(0) when reg_sim_modemnum(5) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(5) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(5) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(5) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(5) = 2
|
||||||
|
|
@ -721,7 +932,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(5) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(5) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(5) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(5) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(5) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(5) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(6) <= sdb_mod_data_i(0) when reg_sim_modemnum(6) = 0
|
sw_mod_data_i(6) <= sdb_mod_data_i(0) when reg_sim_modemnum(6) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(6) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(6) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(6) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(6) = 2
|
||||||
|
|
@ -730,7 +941,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(6) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(6) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(6) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(6) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(6) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(6) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
sw_mod_data_i(7) <= sdb_mod_data_i(0) when reg_sim_modemnum(7) = 0
|
sw_mod_data_i(7) <= sdb_mod_data_i(0) when reg_sim_modemnum(7) = 0
|
||||||
else sdb_mod_data_i(1) when reg_sim_modemnum(7) = 1
|
else sdb_mod_data_i(1) when reg_sim_modemnum(7) = 1
|
||||||
else sdb_mod_data_i(2) when reg_sim_modemnum(7) = 2
|
else sdb_mod_data_i(2) when reg_sim_modemnum(7) = 2
|
||||||
|
|
@ -739,7 +950,7 @@ begin
|
||||||
else sdb_mod_data_i(5) when reg_sim_modemnum(7) = 5
|
else sdb_mod_data_i(5) when reg_sim_modemnum(7) = 5
|
||||||
else sdb_mod_data_i(6) when reg_sim_modemnum(7) = 6
|
else sdb_mod_data_i(6) when reg_sim_modemnum(7) = 6
|
||||||
else sdb_mod_data_i(7) when reg_sim_modemnum(7) = 7
|
else sdb_mod_data_i(7) when reg_sim_modemnum(7) = 7
|
||||||
else 'Z';
|
else '1';
|
||||||
|
|
||||||
s_mod_data_o(0) <= sw_mod_data_o(0) when reg_sim_modemnum(0) = 0
|
s_mod_data_o(0) <= sw_mod_data_o(0) when reg_sim_modemnum(0) = 0
|
||||||
else sw_mod_data_o(1) when reg_sim_modemnum(1) = 0
|
else sw_mod_data_o(1) when reg_sim_modemnum(1) = 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue