Files
lt16lab/soc/peripheral/peripherals.vhd

102 lines
2.3 KiB
VHDL

-- See the file "LICENSE" for the full license governing this code. --
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
library work;
use work.lt16x32_internal.all;
use work.lt16x32_global.all;
use work.wishbone.all;
use work.config.all;
package lt16soc_peripherals is
component can_vhdl_top is
generic(
memaddr : generic_addr_type;
addrmask : generic_mask_type
);
port(
clk : in std_logic;
rstn : in std_logic;
wbs_i : in wb_slv_in_type;
wbs_o : out wb_slv_out_type;
rx_i : in std_logic;
tx_o : out std_logic;
irq_on : out std_logic
);
end component can_vhdl_top;
component wb_led is
generic(
memaddr : generic_addr_type;-- := CFG_BADR_LED;
addrmask : generic_mask_type-- := CFG_MADR_LED;
);
port(
clk : in std_logic;
rst : in std_logic;
led : out std_logic_vector(7 downto 0);
wslvi : in wb_slv_in_type;
wslvo : out wb_slv_out_type
);
end component;
component wb_switches is
generic(
memaddr : generic_addr_type; --:= CFG_BADR_SW;
addrmask : generic_mask_type --:= CFG_MADR_SW;
);
port(
clk : in std_logic;
rst : in std_logic;
wslvi : in wb_slv_in_type;
wslvo : out wb_slv_out_type;
buttons : in std_logic_vector(4 downto 0);
switches : in std_logic_vector(15 downto 0);
interrupt : out std_logic
);
end component;
component wb_timer is
generic(
memaddr : generic_addr_type; --:= CFG_BADR_TIMER;
addrmask : generic_mask_type --:= CFG_MADR_TIMER;
);
port(
clk : in std_logic;
rst : in std_logic;
wslvi : in wb_slv_in_type;
wslvo : out wb_slv_out_type;
interrupt : out std_logic
);
end component;
component wb_scrolling is
generic(
memaddr : generic_addr_type; --:= CFG_BADR_SCR;
addrmask : generic_mask_type --:= CFG_MADR_SCR;
);
port(
clk : in std_logic;
rst : in std_logic;
wslvi : in wb_slv_in_type;
wslvo : out wb_slv_out_type;
anodes : out std_logic_vector(7 downto 0);
cathodes : out std_logic_vector(7 downto 0)
);
end component;
end lt16soc_peripherals;
package body lt16soc_peripherals is
--insert function bodies
end lt16soc_peripherals;