You've already forked gitified_old_clb_svn
70 lines
2.0 KiB
VHDL
70 lines
2.0 KiB
VHDL
library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
|
|
use work.wishbone_pkg.all;
|
|
|
|
entity xwb_watchdog is
|
|
generic(
|
|
g_interface_mode : t_wishbone_interface_mode := CLASSIC;
|
|
g_address_granularity : t_wishbone_address_granularity := WORD;
|
|
g_period : integer
|
|
);
|
|
port (
|
|
clk_sys_i : in std_logic;
|
|
rst_n_i : in std_logic;
|
|
|
|
slave_i : in t_wishbone_slave_in;
|
|
slave_o : out t_wishbone_slave_out;
|
|
desc_o : out t_wishbone_device_descriptor;
|
|
|
|
multiboot_reset : out std_logic -- signal to perform a multiboot from possition 0
|
|
);
|
|
end xwb_watchdog;
|
|
|
|
architecture rtl of xwb_watchdog is
|
|
|
|
component wb_watchdog
|
|
generic (
|
|
g_interface_mode : t_wishbone_interface_mode;
|
|
g_address_granularity : t_wishbone_address_granularity);
|
|
port (
|
|
clk_sys_i : in std_logic;
|
|
rst_n_i : in std_logic;
|
|
wb_adr_i : in std_logic_vector(4 downto 0);
|
|
wb_dat_i : in std_logic_vector(31 downto 0);
|
|
wb_dat_o : out std_logic_vector(31 downto 0);
|
|
wb_sel_i : in std_logic_vector(3 downto 0);
|
|
wb_stb_i : in std_logic;
|
|
wb_cyc_i : in std_logic;
|
|
wb_we_i : in std_logic;
|
|
wb_ack_o : out std_logic;
|
|
wb_int_o : out std_logic;
|
|
wb_stall_o : out std_logic;
|
|
multiboot_reset : out std_logic);
|
|
end component;
|
|
|
|
begin -- rtl
|
|
|
|
|
|
U_Wrapped_I2C : wb_watchdog
|
|
generic map (
|
|
g_interface_mode => g_interface_mode,
|
|
g_address_granularity => g_address_granularity)
|
|
port map (
|
|
clk_sys_i => clk_sys_i,
|
|
rst_n_i => rst_n_i,
|
|
wb_adr_i => slave_i.adr(4 downto 0),
|
|
wb_dat_i => slave_i.dat,
|
|
wb_dat_o => slave_o.dat,
|
|
wb_sel_i => slave_i.sel,
|
|
wb_stb_i => slave_i.stb,
|
|
wb_cyc_i => slave_i.cyc,
|
|
wb_we_i => slave_i.we,
|
|
wb_ack_o => slave_o.ack,
|
|
wb_int_o => slave_o.int,
|
|
wb_stall_o => slave_o.stall,
|
|
|
|
multiboot_reset => multiboot_reset);
|
|
end rtl;
|
|
|