architecture behavioral of counter is
signal eq_max : std_logic; -- cnt is equal to MAX
- signal cnt : std_logic_vector (WIDTH-1 downto 0);
+ signal cnt : std_logic_vector (WIDTH-1 downto 0) := (others => '0');
--------------------------------------------------------------------------------
A_OFF : integer := 4);
port (
-- Primary slave interface
- ACK_O : out std_logic;
+ ACK_O : out std_logic := '0';
CLK_I : in std_logic;
RST_I : in std_logic;
STB_I : in std_logic;
IRF_ADR_O : out std_logic_vector (IRF_ADR_W-1 downto 0);
IRF_DAT_I : in std_logic_vector (15 downto 0);
IRF_DAT_O : out std_logic_vector (15 downto 0);
- IRF_STB_O : out std_logic;
- IRF_WE_O : out std_logic;
+ IRF_STB_O : out std_logic := '0';
+ IRF_WE_O : out std_logic := '0';
-- Error flag
BAD_BASE : out std_logic);
end entity irc_base;
constant ANG_ADR : irf_adr_t := conv_std_logic_vector(BASE+A_OFF, IRF_ADR_W);
- signal state : state_t;
+ signal state : state_t := ready;
signal irc : std_logic_vector (15 downto 0);
signal irc_base : std_logic_vector (15 downto 0);
signal irc_per : std_logic_vector (15 downto 0);
constant IRC_ADR : irf_adr_t := conv_std_logic_vector(IRC_BASE, IRF_ADR_W);
- signal INNER_ACK : std_logic;
+ signal INNER_ACK : std_logic := '0';
--------------------------------------------------------------------------------
IRF_ADR_W : integer := 5);
port (
-- Primary slave intefrace
- ACK_O : out std_logic;
+ ACK_O : out std_logic := '0';
CLK_I : in std_logic;
RST_I : in std_logic;
STB_I : in std_logic;
-- Motion Control Chain
- MCC_STB_O : out std_logic_vector (MCC_W-1 downto 0);
+ MCC_STB_O : out std_logic_vector (MCC_W-1 downto 0) := (others => '0');
MCC_ACK_I : in std_logic_vector (MCC_W-1 downto 0);
- MCC_MUX_CODE : out std_logic_vector (MUX_W-1 downto 0);
- MCC_MUX_EN : out std_logic;
+ MCC_MUX_CODE : out std_logic_vector (MUX_W-1 downto 0) := (others => '0');
+ MCC_MUX_EN : out std_logic := '0';
-- Shared dual-port memory
IRF_ACK_I : in std_logic;
IRF_ADR_O : out std_logic_vector (IRF_ADR_W-1 downto 0);
IRF_DAT_I : in std_logic_vector (15 downto 0);
IRF_DAT_O : out std_logic_vector (15 downto 0);
- IRF_STB_O : out std_logic;
+ IRF_STB_O : out std_logic := '0';
IRF_WE_O : out std_logic);
end entity mcc_master;
type state_t is (ready, read_mask, do_mcc, done);
- signal state : state_t;
+ signal state : state_t := ready;
signal mcc_mask : std_logic_vector (MCC_W-1 downto 0);
- signal mcc_ack_inner : std_logic_vector (MCC_W downto 0);
- signal mcc_stb_inner : std_logic_vector (MCC_W-1 downto 0);
+ signal mcc_ack_inner : std_logic_vector (MCC_W downto 0) := (others => '0');
+ signal mcc_stb_inner : std_logic_vector (MCC_W-1 downto 0) := (others => '0');
signal mux_code_inner : std_logic_vector (MUX_W-1 downto 0);
- signal mcc_exec : std_logic;
+ signal mcc_exec : std_logic := '0';
--------------------------------------------------------------------------------
architecture behavioral of pwm is
-- Register accessible from bus
- signal reg : std_logic_vector (PWM_WIDTH-1 downto 0);
+ signal reg : std_logic_vector (PWM_WIDTH-1 downto 0) := (others => '0');
-- Compare value during pwm cycle, loaded from 'reg' when new period begins.
- signal cmp : std_logic_vector (PWM_WIDTH-1 downto 0);
+ signal cmp : std_logic_vector (PWM_WIDTH-1 downto 0) := (others => '0');
--------------------------------------------------------------------------------
STB_I : in std_logic;
-- PWM interface
PWM_DAT_O : out std_logic_vector (PWM_W-1 downto 0);
- PWM_STB_O : out std_logic;
+ PWM_STB_O : out std_logic := '0';
-- Shared dual-port memory
IRF_ACK_I : in std_logic;
IRF_ADR_O : out std_logic_vector (IRF_ADR_W-1 downto 0);
constant PWM_ADR : irf_adr_t := conv_std_logic_vector(P_BASE + PWM_OFF, IRF_ADR_W);
- signal state : state_t;
+ signal state : state_t := ready;
- signal INNER_ACK : std_logic;
+ signal INNER_ACK : std_logic := '0';
--------------------------------------------------------------------------------
-- Slave interface
SL_ACK_I : in std_logic;
SL_IRF_ADR_I : in std_logic_vector (IRF_ADR_W-1 downto 0);
- SL_STB_O : out std_logic;
+ SL_STB_O : out std_logic := '0';
SL_MUX_CODE : out std_logic_vector (1 downto 0));
end entity sequencer;
constant P2_MASK: irf_adr_t := conv_std_logic_vector(P_BASE+1*P_SIZE, IRF_ADR_W);
constant P3_MASK: irf_adr_t := conv_std_logic_vector(P_BASE+2*P_SIZE, IRF_ADR_W);
- signal state : state_t;
+ signal state : state_t := ready;
- signal INNER_ACK : std_logic;
+ signal INNER_ACK : std_logic := '0';
--------------------------------------------------------------------------------
IRF_CYC_O : out std_logic;
IRF_DAT_I : in std_logic_vector (15 downto 0);
IRF_DAT_O : out std_logic_vector (15 downto 0);
- IRF_STB_O : out std_logic;
+ IRF_STB_O : out std_logic := '0';
IRF_WE_O : out std_logic;
-- Master interface to the wave look-up-table
LUT_ADR_O : out std_logic_vector (LUT_ADR_W-1 downto 0);
constant P2_ADR : irf_adr_t := conv_std_logic_vector(P_BASE+P2_OFF, IRF_ADR_W);
constant P3_ADR : irf_adr_t := conv_std_logic_vector(P_BASE+P3_OFF, IRF_ADR_W);
- signal state : state_t;
+ signal state : state_t := ready;
signal angle_in : lut_adr_t;
- signal ack_latch : std_logic;
+ signal ack_latch : std_logic := '0';
--------------------------------------------------------------------------------
IRF_ADR_O : out std_logic_vector (IRF_ADR_W-1 downto 0);
IRF_DAT_I : in std_logic_vector (15 downto 0);
IRF_DAT_O : out std_logic_vector (15 downto 0);
- IRF_STB_O : out std_logic;
- IRF_WE_O : out std_logic);
+ IRF_STB_O : out std_logic := '0';
+ IRF_WE_O : out std_logic := '0');
end entity vector_scale;
--------------------------------------------------------------------------------
constant VECTOR_ADR : irf_adr_t := conv_std_logic_vector(PHASE_BASE + VECTOR_OFF, IRF_ADR_W);
constant SCALED_ADR : irf_adr_t := conv_std_logic_vector(PHASE_BASE + SCALED_OFF, IRF_ADR_W);
- signal state : state_t;
+ signal state : state_t := ready;
- signal INNER_ACK : std_logic;
+ signal INNER_ACK : std_logic := '0';
function twos_to_biased (twos : std_logic_vector) return std_logic_vector is