3 use ieee.std_logic_1164.all;
\r
4 use ieee.numeric_std.all;
\r
5 use work.lx_dad_pkg.all;
\r
7 -- Connects sampling memory and SPI interface
\r
13 clk_i : in std_logic;
\r
15 ce_i : in std_logic;
\r
17 reset_i : in std_logic;
\r
18 -- Master CPU peripheral bus
\r
19 bls_i : in std_logic_vector(3 downto 0);
\r
20 address_i : in std_logic_vector(10 downto 0);
\r
21 data_i : in std_logic_vector(31 downto 0);
\r
22 data_o : out std_logic_vector(31 downto 0);
\r
24 led : out std_logic;
\r
25 -- Memory wiring for internal state automata use
\r
26 ce_a_i : in std_logic;
\r
27 adr_a_i : in std_logic_vector(10 downto 0);
\r
28 bls_a_i : in std_logic_vector(3 downto 0);
\r
29 dat_a_i : in std_logic_vector(31 downto 0)
\r
32 -- Add there external component signals
\r
36 architecture Behavioral of bus_sensor is
\r
38 signal sensor_mem_ce_s : std_logic;
\r
39 signal sensor_mem_ce_r : std_logic;
\r
40 signal sensor_mem_bls_s : std_logic_vector(3 downto 0);
\r
41 signal sensor_mem_dout_s : std_logic_vector(31 downto 0);
\r
43 signal led_i: std_logic:='1';
\r
50 sensor_mem_instance: sensor_mem
\r
53 -- Memory wiring for internal state automata use
\r
60 -- Memory wiring for Master CPU
\r
62 en_m => sensor_mem_ce_s,
\r
63 we_m => sensor_mem_bls_s,
\r
64 addr_m => address_i(10 downto 0),
\r
66 dout_m => sensor_mem_dout_s
\r
69 decoder_logic: process(ce_i, address_i, bls_i)
\r
71 sensor_mem_ce_s <= '0';
\r
72 sensor_mem_bls_s <= (others => '0');
\r
74 if ce_i = '1' then --and address_i(11 downto 10) = "00" then
\r
75 sensor_mem_ce_s <= '1';
\r
76 sensor_mem_bls_s <= bls_i;
\r
80 output_multiplexer: process(sensor_mem_ce_r, sensor_mem_dout_s)
\r
82 data_o <= (others => '0');
\r
84 if sensor_mem_ce_r = '1' then
\r
85 data_o <= sensor_mem_dout_s;
\r
92 wait until clk_i = '1' and clk_i'event;
\r
94 sensor_mem_ce_r <= sensor_mem_ce_s;
\r