rst(i) <= (CLEAR or sd_los_i(i) or internal_make_link_reset_out(i) or watchdog_trigger(i));
rst_n(i) <= not(CLEAR or sd_los_i(i) or internal_make_link_reset_out(i) or watchdog_trigger(i));
+ CLK_RX_HALF_OUT(i) <= clk_rx_half(i);
CLK_RX_FULL_OUT(i) <= clk_rx_full(i);
+ CLK_TX_HALF_OUT(i) <= clk_tx_half(i);
+ CLK_TX_FULL_OUT(i) <= clk_tx_full(i);
-- gen_slave_clock : if IS_SYNC_SLAVE = c_YES generate -- NO WAY IN HELL !! this downlink is a master
-- clk_200_i(i) <= clk_rx_full(i);
use work.med_sync_define.all;
use work.soda_components.all;
-
entity med_ecp3_sfp_sync_down is
generic( SERDES_NUM : integer range 0 to 3 := 0;
IS_SYNC_SLAVE : integer := c_NO); --select slave mode
SYSCLK : in std_logic; -- 100 MHz main clock net, synchronous to RX clock
RESET : in std_logic; -- synchronous reset
CLEAR : in std_logic; -- asynchronous reset
- --
--- PCSA_REFCLKP : in std_logic; -- external refclock straight into serdes PL!
--- PCSA_REFCLKN : in std_logic; -- external refclock straight into serdes PL!
--Internal Connection TX
MED_DATA_IN : in std_logic_vector(c_DATA_WIDTH-1 downto 0);
MED_PACKET_NUM_IN : in std_logic_vector(c_NUM_WIDTH-1 downto 0);
attribute syn_sharing of med_ecp3_sfp_sync_down_arch : architecture is "off";
-
component DCS
-- synthesis translate_off
generic
signal sci_write_shift_i : std_logic_vector(2 downto 0);
signal sci_read_shift_i : std_logic_vector(2 downto 0);
+-- fix signal names for constraining
+attribute syn_preserve : boolean;--
+attribute syn_keep : boolean;--
+attribute syn_preserve of sci_ch_i : signal is true;--
+attribute syn_keep of sci_ch_i : signal is true;--
+attribute syn_preserve of sci_qd_i : signal is true;--
+attribute syn_keep of sci_qd_i : signal is true;--
+attribute syn_preserve of sci_reg_i : signal is true;--
+attribute syn_keep of sci_reg_i : signal is true;--
+attribute syn_preserve of sci_addr_i : signal is true;--
+attribute syn_keep of sci_addr_i : signal is true;--
+attribute syn_preserve of sci_data_in_i : signal is true;--
+attribute syn_keep of sci_data_in_i : signal is true;--
+attribute syn_preserve of sci_data_out_i : signal is true;--
+attribute syn_keep of sci_data_out_i : signal is true;--
+attribute syn_preserve of sci_read_i : signal is true;--
+attribute syn_keep of sci_read_i : signal is true;--
+attribute syn_preserve of sci_write_i : signal is true;--
+attribute syn_keep of sci_write_i : signal is true;--
+attribute syn_preserve of sci_write_shift_i : signal is true;--
+attribute syn_keep of sci_write_shift_i : signal is true;--
+attribute syn_preserve of sci_read_shift_i : signal is true;--
+attribute syn_keep of sci_read_shift_i : signal is true;--
+
signal wa_position : std_logic_vector(15 downto 0) := x"FFFF";
signal wa_position_rx : std_logic_vector(15 downto 0) := x"FFFF";
signal tx_allow : std_logic;
signal got_link_ready_i : std_logic;
signal internal_make_link_reset_out : std_logic;
+attribute syn_preserve of wa_position : signal is true;--
+attribute syn_keep of wa_position : signal is true;--
+attribute syn_preserve of wa_position_rx : signal is true;--
+attribute syn_keep of wa_position_rx : signal is true;--
+
signal stat_rx_control_i : std_logic_vector(31 downto 0);
signal stat_tx_control_i : std_logic_vector(31 downto 0);
signal debug_rx_control_i : std_logic_vector(31 downto 0);
--Media interface for Lattice ECP3 using PCS at 2GHz
-
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.all;
entity med_ecp3_sfp_sync_up is
generic( SERDES_NUM : integer range 0 to 3 := 0;
- -- MASTER_CLOCK_SWITCH : integer := c_NO; --just for debugging, should be NO
IS_SYNC_SLAVE : integer := c_YES); --select slave mode
port(
CLK : in std_logic; -- 200 MHz reference clock
MED_READ_IN : in std_logic;
CLK_RX_HALF_OUT : out std_logic := '0'; --received 100 MHz
CLK_RX_FULL_OUT : out std_logic := '0'; --received 200 MHz
+ CLK_TX_HALF_OUT : out std_logic := '0'; --received 100 MHz
+ CLK_TX_FULL_OUT : out std_logic := '0'; --received 200 MHz
--Sync operation
RX_DLM : out std_logic := '0';
DCSMODE : string :=“POS”
);
-- synthesis translate_on
-
port (
CLK0 :in std_logic ;
CLK1 :in std_logic ;
begin
clk_200_internal <= CLK;
+
CLK_RX_HALF_OUT <= clk_rx_half;
CLK_RX_FULL_OUT <= clk_rx_full;
+CLK_TX_HALF_OUT <= clk_tx_half;
+CLK_TX_FULL_OUT <= clk_tx_full;
-
-
---SD_TXDIS_OUT <= not (rx_allow_q or not IS_SYNC_SLAVE); --slave only switches on when RX is ready
-SD_TXDIS_OUT <= '0'; --not (rx_allow_q); --slave only switches on when RX is ready
+SD_TXDIS_OUT <= '0'; --not (rx_allow_q or not IS_SLAVE); --slave only switches on when RX is ready
LINK_READY_OUT <= got_link_ready_i;
\r
end if;
end if;
end process;
-
-
-------------------------------------------------
-- TX Data
-------------------------------------------------
);
LINK_PHASE_OUT <= link_phase_S; --PL!
-
-------------------------------------------------
-- RX Data
-------------------------------------------------
THE_RX_CONTROL : rx_control
port map(
- CLK_200 => clk_200_i,
+ CLK_200 => clk_rx_full, --clk_200_i, PL!
CLK_100 => SYSCLK,
RESET_IN => rst, --CLEAR, PL!
internal_make_link_reset_out <= make_link_reset_i when IS_SYNC_SLAVE = c_YES else '0';
sd_los_i <= SD_LOS_IN when rising_edge(SYSCLK); -- PL!
-
STAT_OP(15) <= send_link_reset_i when rising_edge(SYSCLK);
STAT_OP(14) <= '0';
STAT_OP(13) <= internal_make_link_reset_out when rising_edge(SYSCLK); --make trbnet reset
-library ieee;\r
-use ieee.std_logic_1164.all;\r
---use ieee.numeric_std.all;\r
---use ieee.std_logic_arith.all;
+library ieee;
+use ieee.std_logic_1164.all;
+--use ieee.numeric_std.all;
+use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
-\r
+
library work;
use work.trb_net_std.all;
use work.trb_net_components.all;
-use work.trb_net16_hub_func.all; \r
+use work.trb_net16_hub_func.all;
use work.soda_components.all;
-\r
-entity soda_calibration_timer is\r
- port(\r
- SODACLK : in std_logic; -- fabric clock\r
- RESET : in std_logic; -- synchronous reset\r
- CLEAR : in std_logic; -- asynchronous reset\r
- CLK_EN : in std_logic; \r
- --Internal Connection\r
- START_CALIBRATION : in std_logic := '0';\r
- END_CALIBRATION : in std_logic := '0';\r
- CALIB_VALID_OUT : out std_logic := '0'; --
- CALIB_TIME_OUT : out std_logic_vector(15 downto 0) := (others => '0')\r
- );\r
-end soda_calibration_timer;\r
-\r
-architecture Behavioral of soda_calibration_timer is\r
-
- signal calibration_running_S : std_logic := '0';\r
- signal calibration_timer_S : std_logic_vector(15 downto 0) := (others => '0'); -- from super-burst-nr-generator\r
-\r
-begin\r
-\r
- packet_fsm_proc : process(SODACLK)--, RESET, packet_state_S, crc_valid_S, START_OF_SUPERBURST, soda_cmd_strobe_S)\r
- begin\r
- if rising_edge(SODACLK) then\r
+
+entity soda_calibration_timer is
+ generic(
+ cCALIBRATION_TIMEOUT : natural range 1 to 5000 := cSODA_CALIBRATION_TIMEOUT -- clock-period in ns
+ );
+ port(
+ SODACLK : in std_logic; -- fabric clock
+ RESET : in std_logic; -- synchronous reset
+ CLEAR : in std_logic; -- asynchronous reset
+ CLK_EN : in std_logic;
+ --Internal Connection
+ START_CALIBRATION : in std_logic := '0';
+ END_CALIBRATION : in std_logic := '0';
+ VALID_OUT : out std_logic := '0'; --
+ CALIB_TIME_OUT : out std_logic_vector(15 downto 0) := (others => '0');
+ TIMEOUT_ERROR : out std_logic := '0'
+ );
+end soda_calibration_timer;
+
+architecture Behavioral of soda_calibration_timer is
+
+ constant cCALIBRATION_LIMIT : std_logic_vector(11 downto 0) := conv_std_logic_vector((cSODA_CALIBRATION_TIMEOUT / cSODA_CLOCK_PERIOD), 12);
+
+ signal calibration_running_S : std_logic := '0';
+ signal calibration_timer_S : std_logic_vector(15 downto 0) := (others => '0'); -- from super-burst-nr-generator
+
+begin
+
+ packet_fsm_proc : process(SODACLK)--, RESET, packet_state_S, crc_valid_S, START_OF_SUPERBURST, soda_cmd_strobe_S)
+ begin
+ if rising_edge(SODACLK) then
if (RESET='1') then
- CALIB_VALID_OUT <= '0';\r
+ VALID_OUT <= '0';
CALIB_TIME_OUT <= (others => '0');
calibration_running_S <= '0';
- calibration_timer_S <= (others => '0');\r
+ calibration_timer_S <= (others => '0');
+ TIMEOUT_ERROR <= '0';
else
if (START_CALIBRATION='1') then
calibration_running_S <= '1';
calibration_timer_S <= (others => '0');
- CALIB_VALID_OUT <= '0';\r
+ VALID_OUT <= '0';
CALIB_TIME_OUT <= (others => '0');
+ TIMEOUT_ERROR <= '0'; -- reset timeout error at start of new calibration
elsif (END_CALIBRATION='1') then
calibration_running_S <= '0';
- CALIB_VALID_OUT <= '1';\r
+ VALID_OUT <= '1';
CALIB_TIME_OUT <= calibration_timer_S;
- elsif (calibration_timer_S = x"ffff") then
+ TIMEOUT_ERROR <= '0'; -- reset timeout error because a correct reply was received
+ elsif (calibration_timer_S = cCALIBRATION_TIMEOUT) then
calibration_running_S <= '0';
- CALIB_VALID_OUT <= '1';\r
+ VALID_OUT <= '1';
CALIB_TIME_OUT <= calibration_timer_S;
+ TIMEOUT_ERROR <= '1'; -- set timeout error because NO correct reply was received
elsif (calibration_running_S='1') then
calibration_timer_S <= calibration_timer_S + 1;
- end if;\r
- end if;\r
- end if;\r
- end process;\r
-\r
+ end if;
+ end if;
+ end if;
+ end process;
+
end architecture;
\ No newline at end of file
constant cSODA_CLOCK_PERIOD : natural range 1 to 20 := 5; -- soda clock-period in ns
constant cSYS_CLOCK_PERIOD : natural range 1 to 20 := 10; -- soda clock-period in ns
constant cBURST_PERIOD : natural := 2400; -- particle-beam burst-period in ns
- constant cSODA_COMMAND_WINDOS_SIZE : natural range 1 to 65535 := 5000; -- size of the window in which soda-cmds are allowed after a superburst-pulse in ns
+ constant cSODA_COMMAND_WINDOS_SIZE : natural range 1 to 65535 := 5000; -- size of the window in which soda-cmds are allowed after a superburst-pulse in ns
+ constant cSODA_CALIBRATION_TIMEOUT : natural range 100 to 5000 := 250; -- soda clock-period in ns
constant cWINDOW_delay : std_logic_vector(7 downto 0) := conv_std_logic_vector(28, 8); -- in clock-cycles
constant cCLOCKS_PER_WINDOW : std_logic_vector(15 downto 0) := conv_std_logic_vector((cSODA_COMMAND_WINDOS_SIZE / cSODA_CLOCK_PERIOD) - 1, 16); -- in clock-cycles
port(
SYSCLK : in std_logic; -- fabric clock
SODACLK : in std_logic; -- recovered clock
+ TX_SODACLK : in t_HUB_BIT; -- transmit clock
RESET : in std_logic; -- synchronous reset
CLEAR : in std_logic; -- asynchronous reset
CLK_EN : in std_logic;
--Internal Connection
START_CALIBRATION : in std_logic := '0';
END_CALIBRATION : in std_logic := '0';
- CALIB_VALID_OUT : out std_logic := '0'; --
- CALIB_TIME_OUT : out std_logic_vector(15 downto 0) := (others => '0')
+ VALID_OUT : out std_logic := '0'; --
+ CALIB_TIME_OUT : out std_logic_vector(15 downto 0) := (others => '0');
+ TIMEOUT_ERROR : out std_logic := '0'
);
end component;
SEL : in std_logic ;
DCSOUT : out std_logic) ;
end component;
+\r
+component dff_re
+ Port (\r
+ rst : in STD_LOGIC;
+ clk : in STD_LOGIC;
+ enable : in STD_LOGIC;
+ d : in STD_LOGIC_VECTOR;
+ q : out STD_LOGIC_VECTOR;
+ data_valid : out STD_LOGIC
+ );
+end component;\r
end package;
\ No newline at end of file
port(
SYSCLK : in std_logic; -- fabric clock
SODACLK : in std_logic; -- recovered clock
+ TX_SODACLK : in t_HUB_BIT; -- tx-full clock
RESET : in std_logic; -- synchronous reset
CLEAR : in std_logic; -- asynchronous reset
CLK_EN : in std_logic;
TXUP_DLM_WORD_OUT : out std_logic_vector(7 downto 0) := (others => '0');
TXUP_DLM_PREVIEW_OUT : out std_logic := '0'; --PL!
UPLINK_PHASE_IN : in std_logic := '0'; --PL!
-\r
+
-- MULTIPLE DUPLEX DOWN-LINKS TO THE BOTTOM
RXDN_DLM_IN : in t_HUB_BIT;
RXDN_DLM_WORD_IN : in t_HUB_BYTE;
SODA_READ_IN : in std_logic := '0';
SODA_WRITE_IN : in std_logic := '0';
SODA_ACK_OUT : out std_logic := '0';
- LEDS_OUT : out std_logic_vector(3 downto 0);\r
+ LEDS_OUT : out std_logic_vector(3 downto 0);
LINK_DEBUG_IN : in std_logic_vector(31 downto 0) := (others => '0')
);
end soda_hub;
architecture Behavioral of soda_hub is
--SODA
- signal soda_cmd_word_S : std_logic_vector(30 downto 0) := (others => '0');
- signal soda_cmd_valid_S : std_logic := '0';
- signal start_of_superburst_S : std_logic := '0';
- signal super_burst_nr_S : std_logic_vector(30 downto 0) := (others => '0'); -- from super-burst-nr-generator
- signal crc_data_S : std_logic_vector(7 downto 0) := (others => '0');
- signal crc_valid_S : std_logic := '0';
+ signal soda_cmd_word_S : std_logic_vector(30 downto 0) := (others => '0');
+ signal soda_cmd_valid_S : std_logic := '0';
+ signal soda_cmd_strobe_S : std_logic := '0'; -- for commands sent in a SODA package
+ signal soda_cmd_strobe_sodaclk_S : std_logic := '0'; -- for commands sent in a SODA package
+ signal trb_cmd_word_S : std_logic_vector(30 downto 0) := (others => '0');
+ signal trb_cmd_valid_S : std_logic := '0';
+ signal trb_cmd_strobe_S : std_logic := '0'; -- for commands sent over trbnet
+ signal trb_cmd_strobe_sodaclk_S : std_logic := '0'; -- for commands sent over trbnet
+-- signal soda_cmd_pending_S : std_logic := '0';
+-- signal soda_send_cmd_S : std_logic := '0';
+ signal start_of_superburst_S : std_logic := '0';
+ signal super_burst_nr_S : std_logic_vector(30 downto 0) := (others => '0'); -- from super-burst-nr-generator
+ signal crc_data_S : std_logic_vector(7 downto 0) := (others => '0');
+ signal crc_valid_S : std_logic := '0';
-- Signals
type STATES is (SLEEP,RD_RDY,WR_RDY,RD_ACK,WR_ACK,DONE);
signal CURRENT_STATE, NEXT_STATE: STATES;
signal last_packet_sent_S : t_PACKET_TYPE_SENT;
- signal expected_reply_S : std_logic_vector(7 downto 0);
- signal reply_valid_S : t_HUB_BIT_ARRAY;
+ signal expected_reply_S : t_HUB_BYTE_ARRAY; --std_logic_vector(7 downto 0);
+ signal reply_data_valid_S : t_HUB_BIT_ARRAY;
signal reply_OK_S : t_HUB_BIT_ARRAY;
- signal start_of_calibration_S : std_logic := '0';
+ signal recv_start_calibration_S : std_logic := '0';
+ signal send_start_calibration_S : t_HUB_BIT_ARRAY;
signal start_calibration_S : t_HUB_BIT_ARRAY;
- signal calibration_valid_S : t_HUB_BIT_ARRAY;
+ signal calib_data_valid_S : t_HUB_BIT_ARRAY;
signal calibration_time_S : t_HUB_WORD_ARRAY;
signal calib_register_s : t_HUB_LWORD_ARRAY;
-\r
- signal dead_channels_S : t_HUB_BIT_ARRAY;
- signal channel_status_S : t_HUB_BIT_ARRAY;\r
- signal status_register : std_logic_vector(31 downto 0) := (others => '0');
-\r
+ signal reply_timeout_error_S : t_HUB_BIT_ARRAY;
+ signal channel_timeout_status_S : t_HUB_BIT_ARRAY;
+ signal downstream_error_S : t_HUB_BIT_ARRAY;
+
+ signal dead_channel_S : t_HUB_BIT_ARRAY;
+
+ signal CTRL_STATUS_register_S : t_HUB_LWORD_ARRAY;\r
+ \r
+ signal TXstart_of_superburst_S : t_HUB_BIT_ARRAY;
+ signal TXsuper_burst_nr_S : t_HUB_LWORD_ARRAY; -- from super-burst-nr-generator
+ signal TXsoda_cmd_valid_S : t_HUB_BIT_ARRAY;
+ signal TXsoda_cmd_word_S : t_HUB_LWORD_ARRAY;
+
+
+-- signal channel_status_S : t_HUB_BIT_ARRAY;
+-- signal status_register : std_logic_vector(31 downto 0) := (others => '0');
+
-- slave bus signals
signal bus_ack_x : std_logic;
signal bus_ack : std_logic;
signal buf_bus_data_out : std_logic_vector(31 downto 0) := (others => '0');
signal ledregister_i : std_logic_vector(31 downto 0) := (others => '0');
signal txup_dlm_out_S : std_logic;
-\r
--- debug\r
- signal debug_status_S : std_logic_vector(31 downto 0) := (others => '0');
- signal debug_rx_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
- signal debug_tx_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
- signal debug_SOS_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
- signal debug_cmd_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
+
+-- debug
+-- signal debug_status_S : std_logic_vector(31 downto 0) := (others => '0');
+-- signal debug_rx_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
+-- signal debug_tx_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
+-- signal debug_SOS_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
+-- signal debug_cmd_cnt_S : std_logic_vector(31 downto 0) := (others => '0');
begin
CLK_EN => '1',
--Internal Connection
START_OF_SUPERBURST_OUT => start_of_superburst_S,
- START_OF_CALIBRATION_OUT => start_of_calibration_S,
+ START_OF_CALIBRATION_OUT => recv_start_calibration_S,
SUPER_BURST_NR_OUT => super_burst_nr_S,
SODA_CMD_VALID_OUT => soda_cmd_valid_S,
SODA_CMD_WORD_OUT => soda_cmd_word_S,
RX_DLM_IN => RXUP_DLM_IN,
RX_DLM_WORD_IN => RXUP_DLM_WORD_IN
);
-\r
- hub_reply_packet_builder : soda_reply_pkt_builder \r
+
+ hub_reply_packet_builder : soda_reply_pkt_builder
port map(
SODACLK => SODACLK,
RESET => RESET,
CLEAR => '0',
CLK_EN => CLK_EN,
--Internal Connection
- LINK_PHASE_IN => UPLINK_PHASE_IN,\r
+ LINK_PHASE_IN => UPLINK_PHASE_IN,
START_OF_SUPERBURST => start_of_superburst_S,
SUPER_BURST_NR_IN => super_burst_nr_S,
SODA_CMD_STROBE_IN => soda_cmd_valid_S,
TX_DLM_PREVIEW_OUT => TXUP_DLM_PREVIEW_OUT,
TX_DLM_OUT => txup_dlm_out_S, --TX_DLM_OUT,
TX_DLM_WORD_OUT => TXUP_DLM_WORD_OUT
- );
-\r
+ );\r
+ \r
+
+
channel :for i in c_HUB_CHILDREN-1 downto 0 generate
- start_calibration_S(i) <= start_of_calibration_S;\r
-\r
+ X_clk_domain : process(TX_SODACLK(i))
+ begin
+ if rising_edge(TX_SODACLK(i)) then
+ if RESET='1' then
+ TXsoda_cmd_valid_S(i) <= '0';
+ TXstart_of_superburst_S(i) <= '0';
+ TXsoda_cmd_word_S(i) <= (others => '0');
+ TXsuper_burst_nr_S(i) <= (others => '0');
+ else
+ TXsoda_cmd_valid_S(i) <= soda_cmd_valid_S;
+ TXstart_of_superburst_S(i) <= start_of_superburst_S;
+ TXsoda_cmd_word_S(i) <= '0' & soda_cmd_word_S;
+ TXsuper_burst_nr_S(i) <= '0' & super_burst_nr_S;
+ end if;
+ end if;
+ end process;
+ \r
+ \r
+ \r
+ start_calibration_S(i) <= send_start_calibration_S(i);
+
packet_builder : soda_packet_builder
port map(
- SODACLK => SODACLK,
+ SODACLK => TX_SODACLK(i),
RESET => RESET,
--Internal Connection
- SODA_CMD_STROBE_IN => soda_cmd_valid_S,
- START_OF_SUPERBURST => start_of_superburst_S,
- SUPER_BURST_NR_IN => super_burst_nr_S,
- SODA_CMD_WORD_IN => soda_cmd_word_S,
- EXPECTED_REPLY_OUT => open,
- TIME_CAL_OUT => open, --start_calibration_S(i),
- TX_DLM_PREVIEW_OUT => TXDN_DLM_PREVIEW_OUT(i),
- TX_DLM_OUT => TXDN_DLM_OUT(i),
- TX_DLM_WORD_OUT => TXDN_DLM_WORD_OUT(i)
+ SODA_CMD_STROBE_IN => TXsoda_cmd_valid_S(i),
+ START_OF_SUPERBURST => TXstart_of_superburst_S(i),
+ SUPER_BURST_NR_IN => TXsuper_burst_nr_S(i)(30 downto 0),
+ SODA_CMD_WORD_IN => TXsoda_cmd_word_S(i)(30 downto 0),
+ EXPECTED_REPLY_OUT => expected_reply_S(i),
+ TIME_CAL_OUT => send_start_calibration_S(i),
+ TX_DLM_PREVIEW_OUT => TXDN_DLM_PREVIEW_OUT(i),
+ TX_DLM_OUT => TXDN_DLM_OUT(i),
+ TX_DLM_WORD_OUT => TXDN_DLM_WORD_OUT(i)
);
hub_reply_handler : soda_reply_handler
port map(
- SODACLK => SODACLK,
+ SODACLK => TX_SODACLK(i),
RESET => RESET,
CLEAR => '0',
CLK_EN => '1',
--Internal Connection
-- LAST_PACKET => last_packet_sent_S,
- EXPECTED_REPLY_IN => expected_reply_S,
+ EXPECTED_REPLY_IN => expected_reply_S(i),
RX_DLM_IN => RXDN_DLM_IN(i),
RX_DLM_WORD_IN => RXDN_DLM_WORD_IN(i),
- REPLY_VALID_OUT => reply_valid_S(i),
+ REPLY_VALID_OUT => reply_data_valid_S(i),
REPLY_OK_OUT => reply_OK_S(i)
);
hub_calibration_timer : soda_calibration_timer
port map(
- SODACLK => SODACLK,
+ SODACLK => TX_SODACLK(i),
RESET => RESET,
CLEAR => '0',
CLK_EN => '1',
--Internal Connection
START_CALIBRATION => start_calibration_S(i),
- END_CALIBRATION => reply_valid_S(i),
- CALIB_VALID_OUT => calibration_valid_S(i),
- CALIB_TIME_OUT => calibration_time_S(i)
+ END_CALIBRATION => reply_data_valid_S(i),
+ VALID_OUT => calib_data_valid_S(i),
+ CALIB_TIME_OUT => calibration_time_S(i),
+ TIMEOUT_ERROR => reply_timeout_error_S(i)
);
- hub_store_calib_proc : process(SYSCLK)
+ sodahub_calib_timeout_proc : process(SYSCLK) -- converting to sysclk domain
begin
if rising_edge(SYSCLK) then
if( RESET = '1' ) then
- calib_register_S(i) <= (others => '0');
- else
- calib_register_S(i)(15 downto 0) <= calibration_time_S(i);
+ calib_register_S(i) <= (others => '0');
+ channel_timeout_status_S(i) <= '0';
+ downstream_error_S(i) <= '0';
+ CTRL_STATUS_register_S(i)(16) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_S(i)(17) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_S(i)(31) <= '0'; -- reset REPORT_ERROR status-bit
+ elsif (calib_data_valid_S(i) = '1') then -- calibration finished in time
+ calib_register_S(i) <= x"0000" & calibration_time_S(i);
+ channel_timeout_status_S(i) <= '0';
+ elsif (reply_data_valid_S(i) = '1') then -- the reply was correct
+ channel_timeout_status_S(i) <= '0';
+ if (reply_OK_S(i) = '1') then
+ downstream_error_S(i) <= '0';
+ elsif (dead_channel_S(i) = '0') then
+ downstream_error_S(i) <= '1';
+ CTRL_STATUS_register_S(i)(16) <= '1'; -- set DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_S(i)(31) <= '1'; -- set REPORT_ERROR status-bit
+ end if;
+ elsif ((reply_timeout_error_S(i) = '1') and (reply_OK_S(i) = '1')) then
+ channel_timeout_status_S(i) <= '1';
+ CTRL_STATUS_register_S(i)(17) <= '1'; -- set CALIBRATION_TIMEOUT_ERROR status-bit
+ CTRL_STATUS_register_S(i)(31) <= '1'; -- set REPORT_ERROR status-bit
+ elsif (CTRL_STATUS_register_S(i)(15) = '1') then -- check if slowcontrol wants to reset errors
+ CTRL_STATUS_register_S(i)(16) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_S(i)(17) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_S(i)(31) <= '0'; -- reset REPORT_ERROR status-bit
end if;
end if;
end process;
+-- hub_store_calib_proc : process(SYSCLK)
+-- begin
+-- if rising_edge(SYSCLK) then
+-- if( RESET = '1' ) then
+-- calib_register_S(i) <= (others => '0');
+-- else
+-- calib_register_S(i)(15 downto 0) <= calibration_time_S(i);
+-- end if;
+-- end if;
+-- end process;
+
-----------------------------------------------------------
-- Reply status report --
-----------------------------------------------------------
- reply_report_proc : process(SYSCLK)
- begin
- if rising_edge(SYSCLK) then
- if( RESET = '1' ) then
- channel_status_S(i) <= '0';
- elsif (reply_valid_S(i)='1') then
- channel_status_S(i) <= reply_OK_S(i) or dead_channels_S(i);
- else
- channel_status_S(i) <= '0';
- end if;
- end if;\r
-
- end process;
+-- reply_report_proc : process(SYSCLK)
+-- begin
+-- if rising_edge(SYSCLK) then
+-- if( RESET = '1' ) then
+-- channel_status_S(i) <= '0';
+-- elsif (reply_data_valid_S(i)='1') then
+-- channel_status_S(i) <= reply_OK_S(i) or dead_channels_S(i);
+-- else
+-- channel_status_S(i) <= '0';
+-- end if;
+-- end if;
+--
+-- end process;
end generate;
begin
if( rising_edge(SYSCLK) ) then
if ( RESET = '1' ) then
- LEDregister_i <= (others => '0');
- elsif( (store_wr = '1') and (SODA_ADDR_IN = B"0000") ) then
- LEDregister_i <= SODA_DATA_IN;
+ trb_cmd_strobe_S <= '0';
+ trb_cmd_word_S <= (others => '0');
+ CTRL_STATUS_register_S(0)(15 downto 0) <= (others => '0');
+ CTRL_STATUS_register_S(1)(15 downto 0) <= (others => '0');
+ CTRL_STATUS_register_S(2)(15 downto 0) <= (others => '0');
+ CTRL_STATUS_register_S(3)(15 downto 0) <= (others => '0');
+ elsif( (store_wr = '1') and (SODA_ADDR_IN = "0000") ) then
+ trb_cmd_strobe_S <= '1';
+ trb_cmd_word_S <= SODA_DATA_IN(30 downto 0);
+ elsif( (store_wr = '1') and (SODA_ADDR_IN = "0001") ) then
+ trb_cmd_strobe_S <= '0';
+ CTRL_STATUS_register_S(0)(15 downto 0) <= SODA_DATA_IN(15 downto 0); -- use only the 16 lower bits for control
+ elsif( (store_wr = '1') and (SODA_ADDR_IN = "0010") ) then
+ trb_cmd_strobe_S <= '0';
+ CTRL_STATUS_register_S(1)(15 downto 0) <= SODA_DATA_IN(15 downto 0); -- use only the 16 lower bits for control
+ elsif( (store_wr = '1') and (SODA_ADDR_IN = "0011") ) then
+ trb_cmd_strobe_S <= '0';
+ CTRL_STATUS_register_S(2)(15 downto 0) <= SODA_DATA_IN(15 downto 0); -- use only the 16 lower bits for control
+ elsif( (store_wr = '1') and (SODA_ADDR_IN = "0100") ) then
+ trb_cmd_strobe_S <= '0';
+ CTRL_STATUS_register_S(3)(15 downto 0) <= SODA_DATA_IN(15 downto 0); -- use only the 16 lower bits for control
+ else
+ trb_cmd_strobe_S <= '0';
end if;
end if;
end process THE_WRITE_REG_PROC;
+
+ dead_channel_S(0) <= CTRL_STATUS_register_S(0)(8); -- slow-control can declare a channel dead
+ dead_channel_S(1) <= CTRL_STATUS_register_S(1)(8); -- slow-control can declare a channel dead
+ dead_channel_S(2) <= CTRL_STATUS_register_S(2)(8); -- slow-control can declare a channel dead
+ dead_channel_S(3) <= CTRL_STATUS_register_S(3)(8); -- slow-control can declare a channel dead
-- register read
THE_READ_REG_PROC: process( SYSCLK )
buf_bus_data_out <= '0' & soda_cmd_word_S;
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0001") ) then
buf_bus_data_out <= '0' & super_burst_nr_S;
- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0010") ) then
- buf_bus_data_out <= LEDregister_i;
- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0011") ) then
- buf_bus_data_out <= debug_status_S;
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0100") ) then
- buf_bus_data_out <= debug_rx_cnt_S;
+ buf_bus_data_out <= calib_register_S(0);
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0101") ) then
- buf_bus_data_out <= debug_tx_cnt_S;
+ buf_bus_data_out <= calib_register_S(0);
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0110") ) then
- buf_bus_data_out <= debug_sos_cnt_S;
+ buf_bus_data_out <= calib_register_S(0);
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0111") ) then
- buf_bus_data_out <= debug_cmd_cnt_S;
+ buf_bus_data_out <= calib_register_S(0);
+ elsif( (store_rd = '1') and (SODA_ADDR_IN = "0011") ) then
+ buf_bus_data_out <= CTRL_STATUS_register_S(0);
+ elsif( (store_rd = '1') and (SODA_ADDR_IN = "0100") ) then
+ buf_bus_data_out <= CTRL_STATUS_register_S(1);
+ elsif( (store_rd = '1') and (SODA_ADDR_IN = "0101") ) then
+ buf_bus_data_out <= CTRL_STATUS_register_S(2);
+ elsif( (store_rd = '1') and (SODA_ADDR_IN = "0110") ) then
+ buf_bus_data_out <= CTRL_STATUS_register_S(3);
end if;
end if;
end process THE_READ_REG_PROC;
-\r
--- debug signals\r
- DEBUG_HUB : process(SODACLK)\r
- begin\r
- if( rising_edge(SODACLK) ) then\r
- debug_status_S(0) <= RESET;
- debug_status_S(1) <= CLEAR;
- debug_status_S(2) <= CLK_EN;
- if ( RESET = '1' ) then\r
- debug_rx_cnt_S <= (others => '0');
- debug_tx_cnt_S <= (others => '0');
- else
- if (txup_dlm_out_S = '1') then
- debug_tx_cnt_S <= debug_tx_cnt_S + 1;
- end if;
- if (RXUP_DLM_IN = '1') then
- debug_rx_cnt_S <= debug_rx_cnt_S + 1;
- end if;
- if (start_of_superburst_S = '1') then
- debug_sos_cnt_S <= debug_sos_cnt_S + 1;
- end if;
- if (soda_cmd_valid_S = '1') then
- debug_cmd_cnt_S <= debug_cmd_cnt_S + 1;
- end if;
- end if;
- end if; \r
- end process;\r
-\r
- debug_status_S(31 downto 3) <= LINK_DEBUG_IN(31 downto 3);\r
+-- buf_bus_data_out <= debug_status_S;
+-- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0100") ) then
+-- buf_bus_data_out <= debug_rx_cnt_S;
+-- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0101") ) then
+-- buf_bus_data_out <= debug_tx_cnt_S;
+-- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0110") ) then
+-- buf_bus_data_out <= debug_sos_cnt_S;
+-- elsif( (store_rd = '1') and (SODA_ADDR_IN = "0111") ) then
+-- buf_bus_data_out <= debug_cmd_cnt_S;
+-- end if;
+-- end if;
+-- end process THE_READ_REG_PROC;
+
+-- debug signals
+ --DEBUG_HUB : process(SODACLK)
+ --begin
+ --if( rising_edge(SODACLK) ) then
+ --debug_status_S(0) <= RESET;
+ --debug_status_S(1) <= CLEAR;
+ --debug_status_S(2) <= CLK_EN;
+ --if ( RESET = '1' ) then
+ --debug_rx_cnt_S <= (others => '0');
+ --debug_tx_cnt_S <= (others => '0');
+ --else
+ --if (txup_dlm_out_S = '1') then
+ --debug_tx_cnt_S <= debug_tx_cnt_S + 1;
+ --end if;
+ --if (RXUP_DLM_IN = '1') then
+ --debug_rx_cnt_S <= debug_rx_cnt_S + 1;
+ --end if;
+ --if (start_of_superburst_S = '1') then
+ --debug_sos_cnt_S <= debug_sos_cnt_S + 1;
+ --end if;
+ --if (soda_cmd_valid_S = '1') then
+ --debug_cmd_cnt_S <= debug_cmd_cnt_S + 1;
+ --end if;
+ --end if;
+ --end if;
+ --end process;
+
+ --debug_status_S(31 downto 3) <= LINK_DEBUG_IN(31 downto 3);
TXUP_DLM_OUT <= txup_dlm_out_S;
-- output signals
LEDS_OUT <= LEDregister_i(3 downto 0);
SODA_DATA_OUT <= buf_bus_data_out;
SODA_ACK_OUT <= bus_ack;
-end architecture;
+end architecture;
\ No newline at end of file
-- signal last_packet_sent_S : t_PACKET_TYPE_SENT := c_NO_PACKET;
-- slave bus signals
- signal bus_ack_x : std_logic;
- signal bus_ack : std_logic;
- signal store_wr_x : std_logic;
- signal store_wr : std_logic;
- signal store_rd_x : std_logic;
- signal store_rd : std_logic;
- signal buf_bus_data_out : std_logic_vector(31 downto 0);
+ signal bus_ack_x : std_logic;
+ signal bus_ack : std_logic;
+ signal store_wr_x : std_logic;
+ signal store_wr : std_logic;
+ signal store_rd_x : std_logic;
+ signal store_rd : std_logic;
+ signal buf_bus_data_out : std_logic_vector(31 downto 0);
- signal ledregister_i : std_logic_vector(31 downto 0);
- signal test_line_i : std_logic_vector(31 downto 0);
+ signal CTRL_STATUS_register_i : std_logic_vector(31 downto 0);
+ signal test_line_i : std_logic_vector(31 downto 0);
- signal reply_valid_S : std_logic;
- signal expected_reply_S : std_logic_vector(7 downto 0);
- signal reply_OK_S : std_logic;
- signal start_calibration_S : std_logic;
+ signal reply_data_valid_S : std_logic;
+ signal expected_reply_S : std_logic_vector(7 downto 0);
+ signal reply_OK_S : std_logic;
+ signal start_calibration_S : std_logic;
+
+ signal calib_data_valid_S : std_logic;
+ signal calibration_time_s : std_logic_vector(15 downto 0) := (others => '0');
+ signal calib_register_s : std_logic_vector(31 downto 0) := (others => '0');
+-- signal calib_register_rst_s : std_logic := '0'; -- read of calibration register resets contents to 0\r
+ signal reply_timeout_error_S : std_logic;
+ signal channel_timeout_status_S : std_logic;
+ signal downstream_error_S : std_logic;
+\r
+ signal dead_channel_S : std_logic;
- signal calibration_valid_s : std_logic;
- signal calibration_time_s : std_logic_vector(15 downto 0) := (others => '0');
- signal calib_register_s : std_logic_vector(31 downto 0) := (others => '0');
--- signal calib_register_rst_s : std_logic := '0'; -- read of calibration register resets contents to 0
begin
EXPECTED_REPLY_IN => expected_reply_S,
RX_DLM_IN => RX_DLM_IN,
RX_DLM_WORD_IN => RX_DLM_WORD_IN,
- REPLY_VALID_OUT => reply_valid_S,
- REPLY_OK_OUT => reply_OK_S
+ REPLY_VALID_OUT => reply_data_valid_S, -- there was a reply
+ REPLY_OK_OUT => reply_OK_S -- the reply was as expected
);
src_calibration_timer : soda_calibration_timer
CLK_EN => '1',
--Internal Connection
START_CALIBRATION => start_calibration_S,
- END_CALIBRATION => reply_valid_S,
- CALIB_VALID_OUT => calibration_valid_S,
- CALIB_TIME_OUT => calibration_time_S
+ END_CALIBRATION => reply_data_valid_S,
+ VALID_OUT => calib_data_valid_S,
+ CALIB_TIME_OUT => calibration_time_S,\r
+ TIMEOUT_ERROR => reply_timeout_error_S -- timeout because no reply was received
);
- src_store_calib_proc : process(SYSCLK) -- converting to sysclk domain
+ sodasource_calib_timeout_proc : process(SYSCLK) -- converting to sysclk domain
begin
if rising_edge(SYSCLK) then
if( RESET = '1' ) then
- calib_register_S <= (others => '0');
- else
- calib_register_S(15 downto 0) <= calibration_time_S;
+ calib_register_S <= (others => '0');\r
+ channel_timeout_status_S <= '0';
+ downstream_error_S <= '0';
+ CTRL_STATUS_register_i(16) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_i(17) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_i(31) <= '0'; -- reset REPORT_ERROR status-bit
+ elsif (calib_data_valid_S = '1') then -- calibration finished in time
+ calib_register_S(15 downto 0) <= calibration_time_S;\r
+ channel_timeout_status_S <= '0';
+ elsif (reply_data_valid_S = '1') then -- the reply was correct
+ channel_timeout_status_S <= '0';\r
+ if (reply_OK_S = '1') then\r
+ downstream_error_S <= '0';\r
+ elsif (dead_channel_S = '0') then\r
+ downstream_error_S <= '1';\r
+ CTRL_STATUS_register_i(16) <= '1'; -- set DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_i(31) <= '1'; -- set REPORT_ERROR status-bit
+ end if;
+ elsif ((reply_timeout_error_S = '1') and (reply_OK_S = '1')) then
+ channel_timeout_status_S <= '1';
+ CTRL_STATUS_register_i(17) <= '1'; -- set CALIBRATION_TIMEOUT_ERROR status-bit
+ CTRL_STATUS_register_i(31) <= '1'; -- set REPORT_ERROR status-bit\r
+ elsif (CTRL_STATUS_register_i(15) = '1') then -- check if slowcontrol wants to reset errors\r
+ CTRL_STATUS_register_i(16) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_i(17) <= '0'; -- reset DOWNSTREAM_ERROR status-bit
+ CTRL_STATUS_register_i(31) <= '0'; -- reset REPORT_ERROR status-bit
end if;
end if;
end process;
\r
\r
+\r
---------------------------------------------------------
-- RegIO Statemachine
---------------------------------------------------------
if ( RESET = '1' ) then
soda_cmd_strobe_S <= '0';
soda_cmd_word_S <= (others => '0');
- LEDregister_i <= (others => '0');
--- TEST_LINE_i <= (others => '0');
+ CTRL_STATUS_register_i(15 downto 0) <= (others => '0');
elsif( (store_wr = '1') and (SODA_ADDR_IN = "0000") ) then
soda_cmd_strobe_S <= '1';
soda_cmd_word_S <= SODA_DATA_IN(30 downto 0);
elsif( (store_wr = '1') and (SODA_ADDR_IN = "0001") ) then
soda_cmd_strobe_S <= '0';
- LEDregister_i <= SODA_DATA_IN;
+ CTRL_STATUS_register_i(15 downto 0) <= SODA_DATA_IN(15 downto 0); -- use only the 16 lower bits for control
else
soda_cmd_strobe_S <= '0';
end if;
end if;
end process THE_WRITE_REG_PROC;
-
+\r
+ dead_channel_S <= CTRL_STATUS_register_i(8); -- slow-control can declare a channel dead\r
+
-- register read
THE_READ_REG_PROC: process( SYSCLK )
buf_bus_data_out <= '0' & super_burst_nr_S;
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0010") ) then
buf_bus_data_out <= calib_register_S;
--- calib_register_rst_S <= '1';
elsif( (store_rd = '1') and (SODA_ADDR_IN = "0011") ) then
- buf_bus_data_out <= LEDregister_i;\r
--- else\r
--- calib_register_rst_S <= '0';
+ buf_bus_data_out <= CTRL_STATUS_register_i;\r
end if;
end if;
end process THE_READ_REG_PROC;
-- output signals
- LEDS_OUT <= LEDregister_i(3 downto 0);
+ LEDS_OUT <= CTRL_STATUS_register_i(3 downto 0);
SODA_DATA_OUT <= buf_bus_data_out;
SODA_ACK_OUT <= bus_ack;
signal soda_rxup_clock_full : std_logic;
-- signal soda_rxdn_clock_half : t_HUB_BIT;
signal soda_rxdn_clock_full : t_HUB_BIT;
+ signal soda_txdn_clock_full : t_HUB_BIT;
signal make_reset : std_logic;
--SODA uplink
CTRL_DEBUG => (others => '0')
);
--- SFP_TXDIS(3) <= sfp_txdis_S;
SFP_TXDIS <= sfp_txdis_S;
---------------------------------------------------------------------------
port map(
SYSCLK => clk_sys_internal, --clk_sys_i,
SODACLK => clk_soda_i,
+ TX_SODACLK => soda_txdn_clock_full, -- This is 4 clocks !!
RESET => reset_i,
CLEAR => clear_i,
CLK_EN => '1',
CLK_TX_HALF_OUT(2) => open,
CLK_TX_HALF_OUT(3) => open,
- CLK_TX_FULL_OUT(0) => open,
- CLK_TX_FULL_OUT(1) => open,
- CLK_TX_FULL_OUT(2) => open,
- CLK_TX_FULL_OUT(3) => open,
+ CLK_TX_FULL_OUT(0) => soda_txdn_clock_full(0),
+ CLK_TX_FULL_OUT(1) => soda_txdn_clock_full(1),
+ CLK_TX_FULL_OUT(2) => soda_txdn_clock_full(2),
+ CLK_TX_FULL_OUT(3) => soda_txdn_clock_full(3),
RX_DLM(0) => rxdn_dlm_i(0),
RX_DLM(1) => rxdn_dlm_i(1),
--SODA
signal SOB_S : std_logic := '0';
-- fix signal names for constraining
- attribute syn_preserve of CLK_GPLL_LEFT : signal is true;
- attribute syn_keep of CLK_GPLL_LEFT : signal is true;
--- attribute syn_noprune of CLK_GPLL_LEFT : signal is true;
- attribute syn_preserve of CLK_GPLL_RIGHT : signal is true;
- attribute syn_keep of CLK_GPLL_RIGHT : signal is true;
--- attribute syn_noprune of CLK_GPLL_RIGHT : signal is true;
- attribute syn_preserve of CLK_PCLK_LEFT : signal is true;
- attribute syn_keep of CLK_PCLK_LEFT : signal is true;
--- attribute syn_noprune of CLK_PCLK_LEFT : signal is true;
- attribute syn_preserve of CLK_PCLK_RIGHT : signal is true;
- attribute syn_keep of CLK_PCLK_RIGHT : signal is true;
--- attribute syn_noprune of CLK_PCLK_RIGHT : signal is true;
-
-attribute syn_preserve of soda_rx_clock_full : signal is true;
- attribute syn_keep of soda_rx_clock_full : signal is true;
- attribute syn_preserve of soda_rx_clock_half : signal is true;
- attribute syn_keep of soda_rx_clock_half : signal is true;
- attribute syn_preserve of soda_tx_clock_full : signal is true;
- attribute syn_keep of soda_tx_clock_full : signal is true;
- attribute syn_preserve of soda_tx_clock_half : signal is true;
- attribute syn_keep of soda_tx_clock_half : signal is true;
- attribute syn_preserve of clk_sys_internal : signal is true;
- attribute syn_keep of clk_sys_internal : signal is true;
- attribute syn_preserve of clk_raw_internal : signal is true;
- attribute syn_keep of clk_raw_internal : signal is true;
- attribute syn_preserve of tx_dlm_i : signal is true;
- attribute syn_keep of tx_dlm_i : signal is true;
- attribute syn_preserve of rx_dlm_i : signal is true;
- attribute syn_keep of rx_dlm_i : signal is true;
+ attribute syn_preserve of CLK_GPLL_LEFT : signal is true;
+ attribute syn_keep of CLK_GPLL_LEFT : signal is true;
+ attribute syn_preserve of CLK_GPLL_RIGHT : signal is true;
+ attribute syn_keep of CLK_GPLL_RIGHT : signal is true;
+ attribute syn_preserve of CLK_PCLK_LEFT : signal is true;
+ attribute syn_keep of CLK_PCLK_LEFT : signal is true;
+ attribute syn_preserve of CLK_PCLK_RIGHT : signal is true;
+ attribute syn_keep of CLK_PCLK_RIGHT : signal is true;
+
+ attribute syn_preserve of soda_rx_clock_full : signal is true;
+ attribute syn_keep of soda_rx_clock_full : signal is true;
+ attribute syn_preserve of soda_rx_clock_half : signal is true;
+ attribute syn_keep of soda_rx_clock_half : signal is true;
+ attribute syn_preserve of soda_tx_clock_full : signal is true;
+ attribute syn_keep of soda_tx_clock_full : signal is true;
+ attribute syn_preserve of soda_tx_clock_half : signal is true;
+ attribute syn_keep of soda_tx_clock_half : signal is true;
+ attribute syn_preserve of clk_sys_internal : signal is true;
+ attribute syn_keep of clk_sys_internal : signal is true;
+ attribute syn_preserve of clk_raw_internal : signal is true;
+ attribute syn_keep of clk_raw_internal : signal is true;
+ attribute syn_preserve of tx_dlm_i : signal is true;
+ attribute syn_keep of tx_dlm_i : signal is true;
+ attribute syn_preserve of rx_dlm_i : signal is true;
+ attribute syn_keep of rx_dlm_i : signal is true;
begin
CLEAR_OUT => clear_i, -- async reset out, USE WITH CARE!
RESET_OUT => reset_i, -- synchronous reset out (SYSCLK)
DEBUG_OUT => open
- );
+ );
---------------------------------------------------------------------------
)
port map(
CLK => clk_raw_internal,
- SYSCLK => clk_sys_internal, --clk_sys_i,
+ SYSCLK => clk_sys_internal,
RESET => reset_i,
CLEAR => clear_i,
CLK_EN => '1',
CLOCK_FREQUENCY => CLOCK_FREQUENCY
)
port map (
- CLK => clk_sys_internal, --clk_sys_i,
+ CLK => clk_sys_internal, --clk_sys_i, PL! 30062014
RESET => reset_i,
CLK_EN => '1',
PORT_ADDR_MASK => (0 => 9, 1 => 9, 2 => 9, 3 => 4, others => 0)
)
port map(
- CLK => clk_sys_internal, --clk_sys_i,
- RESET => reset_i,
+ CLK => clk_sys_internal,
+ RESET => reset_i,
DAT_ADDR_IN => regio_addr_out,
DAT_DATA_IN => regio_data_out,
THE_SPI_RELOAD : spi_flash_and_fpga_reload --.flash_reboot_arch
port map(
- CLK_IN => clk_sys_internal, --clk_sys_i,
- RESET_IN => reset_i,
+ CLK_IN => clk_sys_internal,
+ RESET_IN => reset_i,
BUS_ADDR_IN => spimem_addr,
BUS_READ_IN => spimem_read_en,
IS_SYNC_SLAVE => c_NO
)
port map(
- CLK => clk_raw_internal, --clk_200_i,
- SYSCLK => clk_sys_internal, --clk_sys_i,
- RESET => reset_i,
+ CLK => clk_raw_internal,
+ SYSCLK => clk_sys_internal,
+ RESET => reset_i,
CLEAR => clear_i,
--- PCSA_REFCLKP => PCSA_REFCLKP, -- external refclock straight into serdes PL!
--- PCSA_REFCLKN => PCSA_REFCLKN, -- external refclock straight into serdes PL!
--Internal Connection for TrbNet data -> not used a.t.m.
MED_DATA_IN => med_data_out(31 downto 16),
MED_PACKET_NUM_IN => med_packet_num_out(5 downto 3),
BURST_PERIOD => cBURST_PERIOD -- burst-period in ns
)
port map(
- SYSCLK => clk_sys_internal, --soda_rx_clock_half, --
+ SYSCLK => soda_tx_clock_half, --clk_sys_internal, PL! 30062014
RESET => reset_i,
SODA_BURST_PULSE_OUT => SOB_S
);
THE_SODA_SOURCE : soda_source
port map(
- SYSCLK => clk_sys_internal, --clk_sys_i,
- SODACLK => clk_raw_internal,
+ SYSCLK => soda_tx_clock_half, --clk_sys_internal, --clk_sys_i, PL! 30062014
+ SODACLK => soda_tx_clock_full, --clk_raw_internal, PL! 30062014
RESET => reset_i,
--Internal Connection
SODA_BURST_PULSE_IN => SOB_S,
);
\r
\r
---alive : soda_clockscaler
--- port map(
--- CLK => clk_raw_internal,
--- RESET => reset_i,
--- CLOCK_ENABLE_OUT => open,
--- CLOCK_OUT => LED_GREEN
--- );
+raw : soda_clockscaler
+ port map(
+ CLK => clk_raw_internal,
+ RESET => reset_i,
+ CLOCK_ENABLE_OUT => open,
+ CLOCK_OUT => open
+ );
\r
---rx_alive : soda_clockscaler
--- port map(
--- CLK => soda_rx_clock_full,
--- RESET => reset_i,
--- CLOCK_ENABLE_OUT => open,
--- CLOCK_OUT => LED_RED
--- );
+tx : soda_clockscaler
+ port map(
+ CLK => soda_tx_clock_full,
+ RESET => reset_i,
+ CLOCK_ENABLE_OUT => open,
+ CLOCK_OUT => open\r
+
+ );
---------------------------------------------------------------------------
---------------------------------------------------------------------------
process
begin
- wait until rising_edge(clk_sys_internal);
+ wait until rising_edge(soda_tx_clock_half); --clk_sys_internal); PL! 30062014
time_counter <= time_counter + 1;
end process;
<Option name="HDL type" value="VHDL"/>
</Options>
<Implementation title="soda_client" dir="soda_client" description="soda_client" synthesis="synplify" default_strategy="Strategy1">
- <Options def_top="spi_flash_and_fpga_reload" top="trb3_periph_sodaclient"/>
+ <Options def_top="trb3_periph_sodaclient" top="trb3_periph_sodaclient"/>
<Source name="code/version.vhd" type="VHDL" type_short="VHDL">
<Options/>
</Source>
-<Project ModBy="Inserter" SigType="0" Name="/local/lemmens/lattice/soda/soda_hub_probe.rvl" Date="2014-06-24">
+<Project ModBy="Inserter" SigType="0" Name="/local/lemmens/lattice/soda/soda_hub_probe.rvl" Date="2014-07-02">
<IP Version="1_5_062609"/>
<Design DesignEntry="Schematic/VHDL" Synthesis="synplify" DeviceFamily="LatticeECP3" DesignName="soda_hub"/>
- <Core InsertDataset="0" Insert="1" Reveal_sig="2041639764" Name="trb3_periph_sodahub_LA0" ID="0">
+ <Core InsertDataset="0" Insert="1" Reveal_sig="2042945940" Name="trb3_periph_sodahub_LA0" ID="0">
<Setting>
- <Clock SampleClk="the_hub_sync_downlink/clk_200_txdata" SampleEnable="0" EnableClk="" EnableClk_Pri="0"/>
+ <Clock SampleClk="clk_raw_internal" SampleEnable="0" EnableClk="" EnableClk_Pri="0"/>
<TraceBuffer Implementation="0" BitTimeStamp="0" hasTimeStamp="0" IncTrigSig="1" BufferDepth="256"/>
<Capture Mode="0" MinSamplesPerTrig="8"/>
<Event CntEnable="0" MaxEventCnt="8"/>
</Setting>
<Dataset Name="Base">
<Trace>
- <Sig Type="SIG" Name="the_hub_sync_uplink/watchdog_trigger"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/got_link_ready_i"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/link_phase_out"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rst"/>
- <Bus Name="the_hub_sync_uplink/rx_data">
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:0"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:1"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:2"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:3"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:4"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:5"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:6"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_data:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/recv_start_calibration_s"/>
+ <Bus Name="a_soda_hub/start_calibration_s">
+ <Sig Type="SIG" Name="a_soda_hub/start_calibration_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/start_calibration_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/start_calibration_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/start_calibration_s:3"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm"/>
- <Bus Name="the_hub_sync_uplink/rx_dlm_word">
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:0"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:1"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:2"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:3"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:4"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:5"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:6"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_dlm_word:7"/>
+ <Bus Name="a_soda_hub/send_start_calibration_s">
+ <Sig Type="SIG" Name="a_soda_hub/send_start_calibration_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/send_start_calibration_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/send_start_calibration_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/send_start_calibration_s:3"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_uplink/rx_k"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_dlm_preview_in"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_dlm"/>
- <Bus Name="the_hub_sync_uplink/tx_data">
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:0"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:1"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:2"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:3"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:4"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:5"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:6"/>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_data:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/start_of_superburst_s"/>
+ <Bus Name="a_soda_hub/super_burst_nr_s">
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/super_burst_nr_s:30"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_uplink/tx_k"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_preview_out"/>
- <Bus Name="a_soda_hub/txup_dlm_word_out">
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:0"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:1"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:2"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:3"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:4"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:5"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:6"/>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_word_out:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_strobe_s"/>
+ <Bus Name="a_soda_hub/trb_cmd_word_s">
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/trb_cmd_word_s:30"/>
</Bus>
- <Sig Type="SIG" Name="a_soda_hub/txup_dlm_out"/>
- <Bus Name="the_hub_sync_downlink/got_link_ready_i">
- <Sig Type="SIG" Name="the_hub_sync_downlink/got_link_ready_i:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/got_link_ready_i:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/got_link_ready_i:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/got_link_ready_i:3"/>
- </Bus>
- <Bus Name="the_hub_sync_downlink/link_phase_out">
- <Sig Type="SIG" Name="the_hub_sync_downlink/link_phase_out:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/link_phase_out:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/link_phase_out:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/link_phase_out:3"/>
- </Bus>
- <Bus Name="the_hub_sync_downlink/lsm_status">
- <Sig Type="SIG" Name="the_hub_sync_downlink/lsm_status:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/lsm_status:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/lsm_status:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/lsm_status:3"/>
- </Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_n:0"/>
- <Bus Name="rx_data0">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:3"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:4"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:5"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:6"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_data:0:7"/>
- </Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_k:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm:0"/>
- <Bus Name="rx_dlm_word0">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:3"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:4"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:5"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:6"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_dlm_word:0:7"/>
- </Bus>
- <Bus Name="rx_fsm_state0">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_fsm_state:0:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_fsm_state:0:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_fsm_state:0:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_fsm_state:0:3"/>
- </Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_allow_q:0"/>
- <Bus Name="tx_data0">
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:3"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:4"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:5"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:6"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_data:0:7"/>
+ <Bus Name="a_soda_hub/soda_cmd_word_s">
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/soda_cmd_word_s:30"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_dlm:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_k:0"/>
- <Bus Name="tx_fsm_state0">
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_fsm_state:0:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_fsm_state:0:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_fsm_state:0:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/tx_fsm_state:0:3"/>
+ <Bus Name="a_soda_hub/txdn_dlm_out">
+ <Sig Type="SIG" Name="a_soda_hub/txdn_dlm_out:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/txdn_dlm_out:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/txdn_dlm_out:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/txdn_dlm_out:3"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/watchdog_trigger:0"/>
- <Bus Name="the_hub_sync_downlink/sd_txdis_out">
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_txdis_out:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_txdis_out:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_txdis_out:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_txdis_out:3"/>
- </Bus>
- <Bus Name="sfp_txdis">
- <Sig Type="SIG" Name="sfp_txdis:1"/>
- <Sig Type="SIG" Name="sfp_txdis:2"/>
- <Sig Type="SIG" Name="sfp_txdis:3"/>
- <Sig Type="SIG" Name="sfp_txdis:4"/>
- <Sig Type="SIG" Name="sfp_txdis:5"/>
- <Sig Type="SIG" Name="sfp_txdis:6"/>
- </Bus>
- <Bus Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/cs">
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/cs:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/cs:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/cs:2"/>
- </Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/rx_cdr_lol_ch_s"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/rx_lol_los"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/rx_pcs_rst_ch_c"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/tx_pll_lol_qd_s"/>
- <Bus Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/state_out">
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/state_out:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/state_out:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/state_out:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_rx_fsm/state_out:3"/>
- </Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/the_serdes/rst_qd_c"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/the_serdes/lsm_status_ch0_s"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/the_serdes/rx_cdr_lol_ch0_s"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/the_serdes/rx_cv_err_ch0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/the_serdes/rx_half_clk_ch0"/>
- <Sig Type="SIG" Name="uplink_ready_s"/>
- <Sig Type="SIG" Name="downlink_clear"/>
- <Sig Type="SIG" Name="downlink_reset"/>
- <Sig Type="SIG" Name="dnlink_phase_s:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_down_quad"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_k:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_k:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_k:3"/>
- <Bus Name="the_hub_sync_downlink/rx_pcs_rst">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_pcs_rst:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_pcs_rst:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_pcs_rst:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_pcs_rst:3"/>
- </Bus>
- <Bus Name="the_hub_sync_downlink/rx_serdes_rst">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_serdes_rst:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_serdes_rst:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_serdes_rst:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rx_serdes_rst:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/txup_dlm_out"/>
+ <Bus Name="a_soda_hub/dead_channel_s">
+ <Sig Type="SIG" Name="a_soda_hub/dead_channel_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/dead_channel_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/dead_channel_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/dead_channel_s:3"/>
</Bus>
- <Bus Name="the_hub_sync_downlink/rst_qd">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_qd:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_qd:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_qd:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst_qd:3"/>
+ <Bus Name="a_soda_hub/ctrl_status_register_s[3:0]">
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:30"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:0:31"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:30"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:1:31"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:30"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:2:31"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:8"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:9"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:10"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:11"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:12"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:13"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:14"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:15"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:16"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:17"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:18"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:19"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:20"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:21"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:22"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:23"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:24"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:25"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:26"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:27"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:28"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:29"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:30"/>
+ <Sig Type="SIG" Name="a_soda_hub/ctrl_status_register_s:3:31"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/serdes_rst_down_quad"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/tx_pll_lol_qd_s"/>
- <Bus Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/cs">
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/cs:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/cs:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/cs:2"/>
+ <Bus Name="a_soda_hub/downstream_error_s">
+ <Sig Type="SIG" Name="a_soda_hub/downstream_error_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/downstream_error_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/downstream_error_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/downstream_error_s:3"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/tx_pcs_rst_ch_c"/>
- <Bus Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/state_out">
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/state_out:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/state_out:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/state_out:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/\generated_logic(0)\/the_tx_fsm/state_out:3"/>
+ <Bus Name="a_soda_hub/reply_data_valid_s">
+ <Sig Type="SIG" Name="a_soda_hub/reply_data_valid_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_data_valid_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_data_valid_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_data_valid_s:3"/>
</Bus>
- <Bus Name="the_hub_sync_downlink/rst">
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/rst:3"/>
+ <Bus Name="a_soda_hub/reply_ok_s">
+ <Sig Type="SIG" Name="a_soda_hub/reply_ok_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_ok_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_ok_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_ok_s:3"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/clear"/>
- <Bus Name="the_hub_sync_downlink/sd_los_i">
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_los_i:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_los_i:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_los_i:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/sd_los_i:3"/>
+ <Bus Name="a_soda_hub/reply_timeout_error_s">
+ <Sig Type="SIG" Name="a_soda_hub/reply_timeout_error_s:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_timeout_error_s:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_timeout_error_s:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/reply_timeout_error_s:3"/>
</Bus>
- <Bus Name="the_hub_sync_downlink/internal_make_link_reset_out">
- <Sig Type="SIG" Name="the_hub_sync_downlink/internal_make_link_reset_out:0"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/internal_make_link_reset_out:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/internal_make_link_reset_out:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/internal_make_link_reset_out:3"/>
+ <Bus Name="a_soda_hub/expected_reply_s[3:0]">
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:0:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:1:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:2:7"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:0"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:1"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:2"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:3"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:4"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:5"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:6"/>
+ <Sig Type="SIG" Name="a_soda_hub/expected_reply_s:3:7"/>
</Bus>
- <Sig Type="SIG" Name="the_hub_sync_downlink/watchdog_trigger:1"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/watchdog_trigger:2"/>
- <Sig Type="SIG" Name="the_hub_sync_downlink/watchdog_trigger:3"/>
</Trace>
<Trigger>
- <TU Serialbits="0" Type="0" ID="1" Sig="(BUS)the_hub_sync_uplink/rx_fsm_state[3:0],"/>
- <TU Serialbits="0" Type="0" ID="2" Sig="the_hub_sync_uplink/watchdog_trigger,"/>
- <TU Serialbits="0" Type="0" ID="3" Sig="the_hub_sync_uplink/got_link_ready_i,"/>
- <TU Serialbits="0" Type="0" ID="4" Sig="a_soda_hub/start_of_superburst_s,"/>
- <TU Serialbits="0" Type="0" ID="5" Sig="the_hub_sync_downlink/the_serdes/rx_cv_err_ch0,"/>
- <TU Serialbits="0" Type="0" ID="6" Sig="the_hub_sync_downlink/the_serdes/rx_cv_err_ch1,"/>
+ <TU Serialbits="0" Type="0" ID="1" Sig="a_soda_hub/recv_start_calibration_s,"/>
+ <TU Serialbits="0" Type="0" ID="2" Sig="a_soda_hub/start_of_superburst_s,"/>
+ <TU Serialbits="0" Type="0" ID="3" Sig="a_soda_hub/trb_cmd_strobe_s,"/>
+ <TU Serialbits="0" Type="0" ID="4" Sig="a_soda_hub/soda_cmd_valid_s,"/>
<TE MaxSequence="1" MaxEvnCnt="1" ID="1" Resource="1"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="2" Resource="0"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="3" Resource="0"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="4" Resource="0"/>
- <TE MaxSequence="2" MaxEvnCnt="1" ID="5" Resource="0"/>
- <TE MaxSequence="2" MaxEvnCnt="1" ID="6" Resource="0"/>
</Trigger>
</Dataset>
</Core>
<Source name="code/trb3_periph_sodasource.vhd" type="VHDL" type_short="VHDL">
<Options top_module="trb3_periph_sodasource"/>
</Source>
+ <Source name="code/soda_clockscaler.vhd" type="VHDL" type_short="VHDL">
+ <Options/>
+ </Source>
<Source name="code/soda_source_synconstraints.fdc" type="Synplify Design Constraints File" type_short="SDC">
<Options/>
</Source>
-rvl_alias "clk_raw_internal" "clk_raw_internal";
+rvl_alias "soda_tx_clock_full" "the_sync_link/clk_tx_full_out";
RVL_ALIAS "clk_raw_internal" "clk_raw_internal";
RVL_ALIAS "clk_raw_internal" "clk_raw_internal";
BLOCK RESETPATHS ;
-<Project ModBy="Inserter" SigType="0" Name="/local/lemmens/lattice/soda/soda_source_probe.rvl" Date="2014-05-26">
+<Project ModBy="Inserter" SigType="0" Name="/local/lemmens/lattice/soda/soda_source_probe.rvl" Date="2014-07-01">
<IP Version="1_5_062609"/>
<Design DesignEntry="Schematic/VHDL" Synthesis="synplify" DeviceFamily="LatticeECP3" DesignName="soda_source"/>
- <Core InsertDataset="0" Insert="1" Reveal_sig="2037718156" Name="trb3_periph_sodasource_LA0" ID="0">
+ <Core InsertDataset="0" Insert="1" Reveal_sig="2042795948" Name="trb3_periph_sodasource_LA0" ID="0">
<Setting>
- <Clock SampleClk="clk_raw_internal" SampleEnable="0" EnableClk="" EnableClk_Pri="0"/>
+ <Clock SampleClk="the_sync_link/clk_tx_full_out" SampleEnable="0" EnableClk="" EnableClk_Pri="0"/>
<TraceBuffer Implementation="0" BitTimeStamp="0" hasTimeStamp="0" IncTrigSig="1" BufferDepth="256"/>
<Capture Mode="0" MinSamplesPerTrig="8"/>
<Event CntEnable="0" MaxEventCnt="8"/>
<Sig Type="SIG" Name="the_soda_source/super_burst_nr_s:29"/>
<Sig Type="SIG" Name="the_soda_source/super_burst_nr_s:30"/>
</Bus>
- <Bus Name="the_sync_link/start_timer">
- <Sig Type="SIG" Name="the_sync_link/start_timer:0"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:1"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:2"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:3"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:4"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:5"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:6"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:7"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:8"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:9"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:10"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:11"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:12"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:13"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:14"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:15"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:16"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:17"/>
- <Sig Type="SIG" Name="the_sync_link/start_timer:18"/>
- </Bus>
- <Bus Name="the_sync_link/the_tx/current_state">
- <Sig Type="SIG" Name="the_sync_link/the_tx/current_state:0"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/current_state:1"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/current_state:2"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/current_state:3"/>
- </Bus>
- <Sig Type="SIG" Name="the_sync_link/the_tx/reset_in"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/rx_allow_qtx"/>
- <Bus Name="the_sync_link/the_tx/tx_data_out">
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:0"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:1"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:2"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:3"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:4"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:5"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:6"/>
- <Sig Type="SIG" Name="the_sync_link/the_tx/tx_data_out:7"/>
- </Bus>
- <Sig Type="SIG" Name="the_sync_link/clear"/>
- <Sig Type="SIG" Name="the_sync_link/sd_los_in"/>
- <Sig Type="SIG" Name="the_sync_link/sd_txdis_out"/>
<Bus Name="sfp_los">
<Sig Type="SIG" Name="sfp_los:1"/>
<Sig Type="SIG" Name="sfp_los:2"/>
<Sig Type="SIG" Name="sfp_los:5"/>
<Sig Type="SIG" Name="sfp_los:6"/>
</Bus>
- <Sig Type="SIG" Name="the_sync_link/rx_allow"/>
- <Sig Type="SIG" Name="the_sync_link/tx_allow"/>
- <Bus Name="the_sync_link/rx_fsm_state">
- <Sig Type="SIG" Name="the_sync_link/rx_fsm_state:0"/>
- <Sig Type="SIG" Name="the_sync_link/rx_fsm_state:1"/>
- <Sig Type="SIG" Name="the_sync_link/rx_fsm_state:2"/>
- <Sig Type="SIG" Name="the_sync_link/rx_fsm_state:3"/>
+ <Sig Type="SIG" Name="the_soda_source/start_calibration_s"/>
+ <Sig Type="SIG" Name="the_soda_source/start_of_superburst_s"/>
+ <Sig Type="SIG" Name="the_soda_source/tx_dlm_preview_out"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_data_valid_s"/>
+ <Bus Name="the_soda_source/calibration_time_s">
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:2"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:3"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:4"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:5"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:6"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:7"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:8"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:9"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:10"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:11"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:12"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:13"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:14"/>
+ <Sig Type="SIG" Name="the_soda_source/calibration_time_s:15"/>
+ </Bus>
+ <Sig Type="SIG" Name="the_soda_source/channel_timeout_status_s"/>
+ <Sig Type="SIG" Name="the_soda_source/dead_channel_s"/>
+ <Sig Type="SIG" Name="the_soda_source/downstream_error_s"/>
+ <Sig Type="SIG" Name="the_soda_source/reply_data_valid_s"/>
+ <Sig Type="SIG" Name="the_soda_source/reply_ok_s"/>
+ <Sig Type="SIG" Name="the_soda_source/reply_timeout_error_s"/>
+ <Bus Name="the_soda_source/ctrl_status_register_i">
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:0"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:1"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:2"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:3"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:4"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:5"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:6"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:7"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:8"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:9"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:10"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:11"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:12"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:13"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:14"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:15"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:16"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:17"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:18"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:19"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:20"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:21"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:22"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:23"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:24"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:25"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:26"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:27"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:28"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:29"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:30"/>
+ <Sig Type="SIG" Name="the_soda_source/ctrl_status_register_i:31"/>
+ </Bus>
+ <Bus Name="the_soda_source/calib_register_s">
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:2"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:3"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:4"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:5"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:6"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:7"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:8"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:9"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:10"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:11"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:12"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:13"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:14"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:15"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:16"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:17"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:18"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:19"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:20"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:21"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:22"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:23"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:24"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:25"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:26"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:27"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:28"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:29"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:30"/>
+ <Sig Type="SIG" Name="the_soda_source/calib_register_s:31"/>
+ </Bus>
+ <Bus Name="the_soda_source/expected_reply_s">
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:2"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:3"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:4"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:5"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:6"/>
+ <Sig Type="SIG" Name="the_soda_source/expected_reply_s:7"/>
+ </Bus>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_strobe_s"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_pending_s"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_window_s"/>
+ <Bus Name="the_soda_source/soda_cmd_word_s">
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:2"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:3"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:4"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:5"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:6"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:7"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:8"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:9"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:10"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:11"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:12"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:13"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:14"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:15"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:16"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:17"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:18"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:19"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:20"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:21"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:22"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:23"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:24"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:25"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:26"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:27"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:28"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:29"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_cmd_word_s:30"/>
</Bus>
- <Bus Name="the_sync_link/tx_fsm_state">
- <Sig Type="SIG" Name="the_sync_link/tx_fsm_state:0"/>
- <Sig Type="SIG" Name="the_sync_link/tx_fsm_state:1"/>
- <Sig Type="SIG" Name="the_sync_link/tx_fsm_state:2"/>
- <Sig Type="SIG" Name="the_sync_link/tx_fsm_state:3"/>
+ <Bus Name="the_soda_source/soda_data_in">
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:0"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:1"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:2"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:3"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:4"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:5"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:6"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:7"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:8"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:9"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:10"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:11"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:12"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:13"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:14"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:15"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:16"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:17"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:18"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:19"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:20"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:21"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:22"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:23"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:24"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:25"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:26"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:27"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:28"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:29"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:30"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_in:31"/>
</Bus>
- <Sig Type="SIG" Name="the_sync_link/tx_pll_lol"/>
- <Sig Type="SIG" Name="the_sync_link/rx_los_low"/>
- <Sig Type="SIG" Name="the_sync_link/rx_pcs_rst"/>
- <Sig Type="SIG" Name="the_sync_link/rx_serdes_rst"/>
- <Sig Type="SIG" Name="the_sync_link/link_phase_out"/>
- <Sig Type="SIG" Name="the_sync_link/tx_dlm_preview_in"/>
+ <Bus Name="the_soda_source/soda_data_out">
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:0"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:1"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:2"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:3"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:4"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:5"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:6"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:7"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:8"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:9"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:10"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:11"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:12"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:13"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:14"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:15"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:16"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:17"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:18"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:19"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:20"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:21"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:22"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:23"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:24"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:25"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:26"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:27"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:28"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:29"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:30"/>
+ <Sig Type="SIG" Name="the_soda_source/soda_data_out:31"/>
+ </Bus>
+ <Bus Name="the_soda_source/packet_builder/expected_reply_out">
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:0"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:1"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:2"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:3"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:4"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:5"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:6"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/expected_reply_out:7"/>
+ </Bus>
+ <Sig Type="SIG" Name="the_sync_link/tx_k"/>
<Bus Name="the_sync_link/tx_data">
<Sig Type="SIG" Name="the_sync_link/tx_data:0"/>
<Sig Type="SIG" Name="the_sync_link/tx_data:1"/>
<Sig Type="SIG" Name="the_sync_link/tx_data:6"/>
<Sig Type="SIG" Name="the_sync_link/tx_data:7"/>
</Bus>
+ <Sig Type="SIG" Name="the_sync_link/tx_dlm"/>
<Bus Name="the_sync_link/tx_dlm_word">
<Sig Type="SIG" Name="the_sync_link/tx_dlm_word:0"/>
<Sig Type="SIG" Name="the_sync_link/tx_dlm_word:1"/>
<Sig Type="SIG" Name="the_sync_link/tx_dlm_word:6"/>
<Sig Type="SIG" Name="the_sync_link/tx_dlm_word:7"/>
</Bus>
- <Sig Type="SIG" Name="the_sync_link/tx_k"/>
- <Sig Type="SIG" Name="the_sync_link/rx_cdr_lol"/>
<Sig Type="SIG" Name="the_sync_link/rx_k"/>
- <Sig Type="SIG" Name="the_sync_link/rx_dlm"/>
<Bus Name="the_sync_link/rx_data">
<Sig Type="SIG" Name="the_sync_link/rx_data:0"/>
<Sig Type="SIG" Name="the_sync_link/rx_data:1"/>
<Sig Type="SIG" Name="the_sync_link/rx_data:6"/>
<Sig Type="SIG" Name="the_sync_link/rx_data:7"/>
</Bus>
+ <Sig Type="SIG" Name="the_sync_link/rx_dlm"/>
<Bus Name="the_sync_link/rx_dlm_word">
<Sig Type="SIG" Name="the_sync_link/rx_dlm_word:0"/>
<Sig Type="SIG" Name="the_sync_link/rx_dlm_word:1"/>
<Sig Type="SIG" Name="the_sync_link/rx_dlm_word:6"/>
<Sig Type="SIG" Name="the_sync_link/rx_dlm_word:7"/>
</Bus>
- <Bus Name="the_sync_link/the_rx_fsm/cs">
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/cs:0"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/cs:1"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/cs:2"/>
- </Bus>
- <Bus Name="the_sync_link/the_rx_fsm/ns">
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/ns:0"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/ns:1"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/ns:2"/>
+ <Bus Name="the_soda_source/packet_builder/packet_state_s">
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/packet_state_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/packet_state_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/packet_state_s:2"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/packet_state_s:3"/>
+ <Sig Type="SIG" Name="the_soda_source/packet_builder/packet_state_s:4"/>
</Bus>
- <Bus Name="the_sync_link/wa_position">
- <Sig Type="SIG" Name="the_sync_link/wa_position:0"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:1"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:2"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:3"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:4"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:5"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:6"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:7"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:8"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:9"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:10"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:11"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:12"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:13"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:14"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position:15"/>
+ <Bus Name="the_soda_source/src_reply_handler/reply_recv_state_s">
+ <Sig Type="SIG" Name="the_soda_source/src_reply_handler/reply_recv_state_s:0"/>
+ <Sig Type="SIG" Name="the_soda_source/src_reply_handler/reply_recv_state_s:1"/>
+ <Sig Type="SIG" Name="the_soda_source/src_reply_handler/reply_recv_state_s:2"/>
</Bus>
- <Bus Name="the_sync_link/wa_position_rx">
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:0"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:1"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:2"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:3"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:4"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:5"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:6"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:7"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:8"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:9"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:10"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:11"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:12"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:13"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:14"/>
- <Sig Type="SIG" Name="the_sync_link/wa_position_rx:15"/>
+ <Bus Name="raw/counter_s">
+ <Sig Type="SIG" Name="raw/counter_s:0"/>
+ <Sig Type="SIG" Name="raw/counter_s:1"/>
+ <Sig Type="SIG" Name="raw/counter_s:2"/>
+ <Sig Type="SIG" Name="raw/counter_s:3"/>
+ <Sig Type="SIG" Name="raw/counter_s:4"/>
+ <Sig Type="SIG" Name="raw/counter_s:5"/>
+ <Sig Type="SIG" Name="raw/counter_s:6"/>
+ <Sig Type="SIG" Name="raw/counter_s:7"/>
+ <Sig Type="SIG" Name="raw/counter_s:8"/>
+ <Sig Type="SIG" Name="raw/counter_s:9"/>
+ <Sig Type="SIG" Name="raw/counter_s:10"/>
+ <Sig Type="SIG" Name="raw/counter_s:11"/>
+ <Sig Type="SIG" Name="raw/counter_s:12"/>
+ <Sig Type="SIG" Name="raw/counter_s:13"/>
+ <Sig Type="SIG" Name="raw/counter_s:14"/>
+ <Sig Type="SIG" Name="raw/counter_s:15"/>
+ <Sig Type="SIG" Name="raw/counter_s:16"/>
+ <Sig Type="SIG" Name="raw/counter_s:17"/>
+ <Sig Type="SIG" Name="raw/counter_s:18"/>
+ <Sig Type="SIG" Name="raw/counter_s:19"/>
+ <Sig Type="SIG" Name="raw/counter_s:20"/>
+ <Sig Type="SIG" Name="raw/counter_s:21"/>
+ <Sig Type="SIG" Name="raw/counter_s:22"/>
+ <Sig Type="SIG" Name="raw/counter_s:23"/>
+ <Sig Type="SIG" Name="raw/counter_s:24"/>
</Bus>
- <Sig Type="SIG" Name="the_soda_source/start_calibration_s"/>
- <Sig Type="SIG" Name="the_soda_source/start_of_superburst_s"/>
- <Sig Type="SIG" Name="the_soda_source/tx_dlm_preview_out"/>
- <Bus Name="the_sync_link/the_rx_fsm/counter2">
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:0"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:1"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:2"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:3"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:4"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:5"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:6"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:7"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:8"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:9"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:10"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:11"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:12"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:13"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:14"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:15"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:16"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:17"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:18"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/counter2:19"/>
+ <Bus Name="tx/counter_s">
+ <Sig Type="SIG" Name="tx/counter_s:0"/>
+ <Sig Type="SIG" Name="tx/counter_s:1"/>
+ <Sig Type="SIG" Name="tx/counter_s:2"/>
+ <Sig Type="SIG" Name="tx/counter_s:3"/>
+ <Sig Type="SIG" Name="tx/counter_s:4"/>
+ <Sig Type="SIG" Name="tx/counter_s:5"/>
+ <Sig Type="SIG" Name="tx/counter_s:6"/>
+ <Sig Type="SIG" Name="tx/counter_s:7"/>
+ <Sig Type="SIG" Name="tx/counter_s:8"/>
+ <Sig Type="SIG" Name="tx/counter_s:9"/>
+ <Sig Type="SIG" Name="tx/counter_s:10"/>
+ <Sig Type="SIG" Name="tx/counter_s:11"/>
+ <Sig Type="SIG" Name="tx/counter_s:12"/>
+ <Sig Type="SIG" Name="tx/counter_s:13"/>
+ <Sig Type="SIG" Name="tx/counter_s:14"/>
+ <Sig Type="SIG" Name="tx/counter_s:15"/>
+ <Sig Type="SIG" Name="tx/counter_s:16"/>
+ <Sig Type="SIG" Name="tx/counter_s:17"/>
+ <Sig Type="SIG" Name="tx/counter_s:18"/>
+ <Sig Type="SIG" Name="tx/counter_s:19"/>
+ <Sig Type="SIG" Name="tx/counter_s:20"/>
+ <Sig Type="SIG" Name="tx/counter_s:21"/>
+ <Sig Type="SIG" Name="tx/counter_s:22"/>
+ <Sig Type="SIG" Name="tx/counter_s:23"/>
+ <Sig Type="SIG" Name="tx/counter_s:24"/>
</Bus>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/reset_timer2"/>
- <Sig Type="SIG" Name="the_sync_link/the_rx_fsm/timer2"/>
</Trace>
<Trigger>
- <TU Serialbits="0" Type="0" ID="1" Sig="the_sync_link/start_timer:18,"/>
- <TU Serialbits="0" Type="0" ID="2" Sig="the_sync_link/lsm_status,"/>
- <TU Serialbits="0" Type="0" ID="3" Sig="the_sync_link/rx_error,"/>
- <TU Serialbits="0" Type="0" ID="4" Sig="the_soda_source/start_of_superburst_s,"/>
- <TU Serialbits="0" Type="0" ID="5" Sig="the_soda_source/start_calibration_s,"/>
- <TU Serialbits="0" Type="0" ID="6" Sig="the_sob_source/soda_burst_pulse_out,"/>
+ <TU Serialbits="0" Type="0" ID="1" Sig="the_soda_source/soda_cmd_strobe_sodaclk_s,"/>
+ <TU Serialbits="0" Type="0" ID="2" Sig="the_sync_link/rx_error,"/>
+ <TU Serialbits="0" Type="0" ID="3" Sig="the_soda_source/start_of_superburst_s,"/>
+ <TU Serialbits="0" Type="0" ID="4" Sig="the_soda_source/start_calibration_s,"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="1" Resource="0"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="2" Resource="0"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="3" Resource="0"/>
<TE MaxSequence="2" MaxEvnCnt="1" ID="4" Resource="0"/>
- <TE MaxSequence="2" MaxEvnCnt="1" ID="5" Resource="0"/>
- <TE MaxSequence="2" MaxEvnCnt="1" ID="6" Resource="0"/>
</Trigger>
</Dataset>
</Core>
<BScanLen>1</BScanLen>
<BScanVal>0</BScanVal>
</Bypass>
- <File>/local/lemmens/lattice/soda/trb3_periph_sodahub_20140624.bit</File>
- <FileTime>06/24/14 15:32:11</FileTime>
+ <File>/local/lemmens/lattice/soda/trb3_periph_sodahub_20140702.bit</File>
+ <FileTime>07/03/14 15:55:49</FileTime>
+ <JedecChecksum>N/A</JedecChecksum>
<Operation>Fast Program</Operation>
<Option>
<SVFVendor>JTAG STANDARD</SVFVendor>
</Option>
</Device>
<Device>
- <SelectedProg value="FALSE"/>
+ <SelectedProg value="TRUE"/>
<Pos>4</Pos>
<Vendor>Lattice</Vendor>
<Family>LatticeECP3</Family>
<BScanLen>1</BScanLen>
<BScanVal>0</BScanVal>
</Bypass>
+ <File>/local/lemmens/lattice/soda/trb3_periph_sodaclient_20140624.bit</File>
+ <FileTime>06/24/14 17:16:05</FileTime>
<Operation>Fast Program</Operation>
<Option>
<SVFVendor>JTAG STANDARD</SVFVendor>
<IOState>HighZ</IOState>
+ <PreloadLength>1326</PreloadLength>
<IOVectorData>0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</IOVectorData>
<OverideUES value="TRUE"/>
<TCKFrequency>1.000000 MHz</TCKFrequency>
<SVFProcessor>ispVM</SVFProcessor>
+ <Usercode>0x00000000</Usercode>
<AccessMode>JTAG</AccessMode>
</Option>
</Device>
<BScanLen>1</BScanLen>
<BScanVal>0</BScanVal>
</Bypass>
- <File>/local/lemmens/lattice/soda/trb3_periph_sodasource_20140617.bit</File>
- <FileTime>06/17/14 15:29:03</FileTime>
+ <File>/local/lemmens/lattice/soda/trb3_periph_sodasource_20140701.bit</File>
+ <FileTime>07/01/14 09:40:14</FileTime>
<Operation>Fast Program</Operation>
<Option>
<SVFVendor>JTAG STANDARD</SVFVendor>
<BScanLen>1</BScanLen>
<BScanVal>0</BScanVal>
</Bypass>
- <File>/local/lemmens/lattice/soda/trb3_periph_sodaclient_20140617.bit</File>
- <FileTime>06/17/14 15:26:56</FileTime>
+ <File>/local/lemmens/lattice/soda/trb3_periph_sodaclient_20140624.bit</File>
+ <FileTime>06/24/14 17:16:05</FileTime>
<Operation>Fast Program</Operation>
<Option>
<SVFVendor>JTAG STANDARD</SVFVendor>
<BScanLen>1</BScanLen>
<BScanVal>0</BScanVal>
</Bypass>
- <File>/local/lemmens/lattice/soda/trb3_periph_sodasource_20140617.bit</File>
- <FileTime>06/17/14 15:29:03</FileTime>
+ <File>/local/lemmens/lattice/soda/trb3_periph_sodasource_20140701.bit</File>
+ <FileTime>07/01/14 09:40:14</FileTime>
<Operation>Fast Program</Operation>
<Option>
<SVFVendor>JTAG STANDARD</SVFVendor>