Line 61... |
Line 61... |
use work.wishbone_bfm_pkg.all;
|
use work.wishbone_bfm_pkg.all;
|
|
|
-- entity ------------------------------------------------------------
|
-- entity ------------------------------------------------------------
|
entity stimulator is
|
entity stimulator is
|
generic(
|
generic(
|
g_number_of_signals : natural := 1
|
number_of_signals_g : natural := 1
|
);
|
);
|
port(
|
port(
|
wb_i : in wishbone_slave_in_t;
|
wb_i : in wishbone_slave_in_t;
|
wb_o : out wishbone_slave_out_t;
|
wb_o : out wishbone_slave_out_t;
|
|
|
signals_o : out std_logic_vector(g_number_of_signals-1 downto 0)
|
signals_o : out std_logic_vector(number_of_signals_g-1 downto 0)
|
);
|
);
|
end stimulator;
|
end stimulator;
|
|
|
--=architecture===============================================================
|
--=architecture===============================================================
|
architecture rtl of stimulator is
|
architecture rtl of stimulator is
|
--============================================================================
|
--============================================================================
|
-- signal declaration
|
-- signal declaration
|
--============================================================================
|
--============================================================================
|
signal s_register0 : std_logic_vector(wb_i.dat'left downto 0);
|
signal register0_s : std_logic_vector(wb_i.dat'left downto 0);
|
signal s_register1 : std_logic_vector(wb_i.dat'left downto 0);
|
signal register1_s : std_logic_vector(wb_i.dat'left downto 0);
|
--============================================================================
|
--============================================================================
|
begin
|
begin
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
wb_o.ack <= '1';
|
wb_o.ack <= '1';
|
wb_o.err <= '0';
|
wb_o.err <= '0';
|
Line 91... |
Line 91... |
-- read data multiplexer
|
-- read data multiplexer
|
proc_read_data_mux : process (all)
|
proc_read_data_mux : process (all)
|
begin
|
begin
|
case wb_i.adr(27 downto 0) is
|
case wb_i.adr(27 downto 0) is
|
when 28X"000_0000" =>
|
when 28X"000_0000" =>
|
wb_o.dat <= s_register0;
|
wb_o.dat <= register0_s;
|
when 28X"000_0004" =>
|
when 28X"000_0004" =>
|
wb_o.dat <= s_register1;
|
wb_o.dat <= register1_s;
|
when others =>
|
when others =>
|
wb_o.dat <= (others =>'U');
|
wb_o.dat <= (others =>'U');
|
end case;
|
end case;
|
end process;
|
end process;
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
proc_avalon_write_data : process (all)
|
proc_avalon_write_data : process (all)
|
begin
|
begin
|
if (wb_i.rst = '1') then
|
if (wb_i.rst = '1') then
|
s_register0 <= (others => '0');
|
register0_s <= (others => '0');
|
s_register1 <= (others => '0');
|
register1_s <= (others => '0');
|
elsif (rising_edge(wb_i.clk)) then
|
elsif (rising_edge(wb_i.clk)) then
|
if (wb_i.we = '1' AND wb_i.stb = '1' AND wb_i.sel = X"F" AND wb_i.cyc = '1') then
|
if (wb_i.we = '1' AND wb_i.stb = '1' AND wb_i.sel = X"F" AND wb_i.cyc = '1') then
|
case wb_i.adr(27 downto 0) is
|
case wb_i.adr(27 downto 0) is
|
when 28X"000_0000" =>
|
when 28X"000_0000" =>
|
s_register0 <= wb_i.dat;
|
register0_s <= wb_i.dat;
|
when 28X"000_0004" =>
|
when 28X"000_0004" =>
|
s_register1 <= wb_i.dat;
|
register1_s <= wb_i.dat;
|
when others =>
|
when others =>
|
end case;
|
end case;
|
end if;
|
end if;
|
end if;
|
end if;
|
end process;
|
end process;
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
signals_o <= s_register0(signals_o'left downto 0);
|
signals_o <= register0_s(signals_o'left downto 0);
|
--============================================================================
|
--============================================================================
|
end rtl; --stimulator
|
end rtl; --stimulator
|
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
---- end of file ----
|
---- end of file ----
|
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
No newline at end of file
|
No newline at end of file
|