Compare commits
2 Commits
4e4853c540
...
23ede53056
| Author | SHA1 | Date | |
|---|---|---|---|
| 23ede53056 | |||
| b1eee9ce1e |
@ -3,44 +3,37 @@ use IEEE.std_logic_1164.all;
|
|||||||
use IEEE.NUMERIC_STD.all;
|
use IEEE.NUMERIC_STD.all;
|
||||||
|
|
||||||
entity dummy_ip is
|
entity dummy_ip is
|
||||||
generic (
|
|
||||||
data_width : natural := 8
|
|
||||||
);
|
|
||||||
port (
|
port (
|
||||||
clk, rst : in std_logic;
|
clk, rst : in std_logic;
|
||||||
ready_in, valid_in : in std_logic;
|
ready_in, valid_in : in std_logic;
|
||||||
ready_out, valid_out : out std_logic;
|
ready_out, valid_out : out std_logic;
|
||||||
data_in : in std_logic_vector(data_width - 1 downto 0);
|
data_in : in std_logic_vector(8 - 1 downto 0);
|
||||||
data_out : out std_logic_vector(data_width - 1 downto 0)
|
data_out : out std_logic_vector(8 - 1 downto 0)
|
||||||
);
|
);
|
||||||
end entity dummy_ip;
|
end entity dummy_ip;
|
||||||
|
|
||||||
architecture rtl of dummy_ip is
|
architecture rtl of dummy_ip is
|
||||||
signal incremented_in : std_logic_vector(data_width - 1 downto 0);
|
signal incremented_in : std_logic_vector(8 - 1 downto 0);
|
||||||
signal valid_out_signal : std_logic;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
valid_out <= valid_out_signal;
|
comb_proc: process(ready_in, valid_in, data_in, incremented_in)
|
||||||
data_out <= incremented_in;
|
begin
|
||||||
|
ready_out <= ready_in;
|
||||||
|
end process;
|
||||||
|
|
||||||
seq_proc: process(clk, data_in, ready_in, valid_in)
|
seq_proc: process(clk,rst)
|
||||||
begin
|
begin
|
||||||
if rst = '1' then
|
if rst = '1' then
|
||||||
incremented_in <= (others => '0');
|
valid_out <= '0';
|
||||||
valid_out_signal <= '0';
|
data_out <= (others => '0');
|
||||||
ready_out <= '1';
|
elsif rising_edge(clk) then
|
||||||
else
|
if valid_in = '1' and ready_in = '1' then
|
||||||
if rising_edge(clk) then
|
valid_out <= '1';
|
||||||
if valid_in = '1' then
|
data_out <= std_logic_vector(unsigned(data_in) + 1);
|
||||||
valid_out_signal <= '1';
|
else
|
||||||
ready_out <= '0';
|
valid_out <= '0';
|
||||||
elsif valid_out_signal = '1' and ready_in = '1' then
|
end if;
|
||||||
valid_out_signal <= '0';
|
elsif falling_edge(clk) then
|
||||||
ready_out <= '1';
|
|
||||||
end if;
|
|
||||||
elsif falling_edge(clk)then
|
|
||||||
incremented_in <= std_logic_vector(unsigned(data_in) + 1);
|
|
||||||
end if;
|
|
||||||
end if;
|
end if;
|
||||||
end process seq_proc;
|
end process seq_proc;
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@ architecture rtl of ganimede_toplevel is
|
|||||||
signal socbridge_clk : std_logic;
|
signal socbridge_clk : std_logic;
|
||||||
signal ganimede_to_ip_reset : std_logic;
|
signal ganimede_to_ip_reset : std_logic;
|
||||||
|
|
||||||
|
constant buf_size :integer := 2*1024;
|
||||||
--signal gan_socbridge_WE_in : std_logic;
|
--signal gan_socbridge_WE_in : std_logic;
|
||||||
--signal gan_socbridge_WE_out : std_logic;
|
--signal gan_socbridge_WE_out : std_logic;
|
||||||
--signal gan_socbridge_is_full_in : std_logic;
|
--signal gan_socbridge_is_full_in : std_logic;
|
||||||
@ -45,6 +46,9 @@ begin
|
|||||||
ganimede_to_ip_reset <= rst or ip_to_ganimede.socbridge.flush;
|
ganimede_to_ip_reset <= rst or ip_to_ganimede.socbridge.flush;
|
||||||
--- DRIVER INSTANTIATION ---
|
--- DRIVER INSTANTIATION ---
|
||||||
socbridge_driver_inst: entity gan_socbridge.socbridge_driver
|
socbridge_driver_inst: entity gan_socbridge.socbridge_driver
|
||||||
|
generic map(
|
||||||
|
BUFFER_SIZE => buf_size
|
||||||
|
)
|
||||||
port map(
|
port map(
|
||||||
clk => clk,
|
clk => clk,
|
||||||
socbridge_clk => socbridge_clk,
|
socbridge_clk => socbridge_clk,
|
||||||
@ -81,7 +85,7 @@ begin
|
|||||||
|
|
||||||
fifo_buffer_to_ip_inst : entity gan_buffer.fifo_buffer
|
fifo_buffer_to_ip_inst : entity gan_buffer.fifo_buffer
|
||||||
generic map (
|
generic map (
|
||||||
buffer_size => 2*1024
|
buffer_size => buf_size
|
||||||
--tech => 60
|
--tech => 60
|
||||||
)
|
)
|
||||||
port map(
|
port map(
|
||||||
@ -93,12 +97,13 @@ begin
|
|||||||
valid_in => socbridge_driver_to_buffer.valid,
|
valid_in => socbridge_driver_to_buffer.valid,
|
||||||
valid_out => ganimede_to_ip.socbridge.valid,
|
valid_out => ganimede_to_ip.socbridge.valid,
|
||||||
data_in => socbridge_driver_to_buffer.data,
|
data_in => socbridge_driver_to_buffer.data,
|
||||||
data_out => ganimede_to_ip.socbridge.data
|
data_out => ganimede_to_ip.socbridge.data,
|
||||||
|
used_slots => ip_to_socbridge_driver.read_fifo.used_slots
|
||||||
);
|
);
|
||||||
|
|
||||||
fifo_buffer_from_ip_inst : entity gan_buffer.fifo_buffer
|
fifo_buffer_from_ip_inst : entity gan_buffer.fifo_buffer
|
||||||
generic map (
|
generic map (
|
||||||
buffer_size => 2*1024
|
buffer_size => buf_size
|
||||||
-- tech => 60
|
-- tech => 60
|
||||||
)
|
)
|
||||||
port map(
|
port map(
|
||||||
|
|||||||
@ -73,6 +73,7 @@ package io_types is
|
|||||||
|
|
||||||
type ip_to_socbridge_driver_t is record
|
type ip_to_socbridge_driver_t is record
|
||||||
fifo: fifo_interface_t;
|
fifo: fifo_interface_t;
|
||||||
|
read_fifo: fifo_interface_t;
|
||||||
flush: std_logic;
|
flush: std_logic;
|
||||||
end record ip_to_socbridge_driver_t;
|
end record ip_to_socbridge_driver_t;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user