]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-dad.git/blob - hw/sensor_mem.vhd
Clean DAD test code a little to use symbolic names for registers and bits.
[fpga/lx-cpu1/lx-dad.git] / hw / sensor_mem.vhd
1 library ieee;\r
2 \r
3 use ieee.std_logic_1164.all;\r
4 use ieee.numeric_std.all;\r
5 use work.lx_dad_pkg.all;\r
6 \r
7 -- 8 kB memory for data read from sensor\r
8 -- Can be accessed from the Master CPU\r
9 \r
10 entity sensor_mem is\r
11         port\r
12         (\r
13                 -- Memory wiring for internal state automata use\r
14                 clk_i  : in std_logic;\r
15                 ce_i   : in std_logic;\r
16                 adr_i  : in std_logic_vector(10 downto 0);\r
17                 bls_i  : in std_logic_vector(3 downto 0);\r
18                 dat_i  : in std_logic_vector(31 downto 0);\r
19                 dat_o  : out std_logic_vector(31 downto 0);\r
20                 -- Memory wiring for Master CPU\r
21                 clk_m  : in std_logic;\r
22                 en_m   : in std_logic;\r
23                 we_m   : in std_logic_vector(3 downto 0);\r
24                 addr_m : in std_logic_vector(10 downto 0);\r
25                 din_m  : in std_logic_vector(31 downto 0);\r
26                 dout_m : out std_logic_vector(31 downto 0)\r
27         );\r
28 end sensor_mem;\r
29 \r
30 architecture rtl of sensor_mem is\r
31 begin\r
32 \r
33 I_RAMB: xilinx_dualport_bram\r
34         generic map\r
35         (\r
36                 we_width => 4,\r
37                 byte_width => 8,\r
38                 address_width => 11,\r
39                 port_a_type => READ_FIRST,\r
40                 port_b_type => READ_FIRST\r
41         )\r
42         port map\r
43         (\r
44                 -- Internal state automata port\r
45                 clka => clk_i,\r
46                 rsta => '0',\r
47                 ena => ce_i,\r
48                 wea => bls_i,\r
49                 addra => adr_i,\r
50                 dina => dat_i,\r
51                 douta => dat_o,\r
52 \r
53                 -- Master CPU port\r
54                 clkb => clk_m,\r
55                 rstb => '0',\r
56                 enb => en_m,\r
57                 web => we_m,\r
58                 addrb => addr_m,\r
59                 dinb => din_m,\r
60                 doutb => dout_m\r
61         );\r
62 \r
63 end rtl;