]> rtime.felk.cvut.cz Git - fpga/zynq/canbench-sw.git/blob - system/ip/display_16bit_cmd_data_bus_1.0/hdl/display_16bit_cmd_data_bus_v1_0.vhd
0d76b024ecdc4cf0691af3ae22bb6560d167aa57
[fpga/zynq/canbench-sw.git] / system / ip / display_16bit_cmd_data_bus_1.0 / hdl / display_16bit_cmd_data_bus_v1_0.vhd
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
4
5 entity display_16bit_cmd_data_bus_v1_0 is
6         generic (
7                 -- Users to add parameters here
8
9                 -- User parameters ends
10                 -- Do not modify the parameters beyond this line
11
12
13                 -- Parameters of Axi Slave Bus Interface S00_AXI
14                 C_S00_AXI_DATA_WIDTH    : integer       := 32;
15                 C_S00_AXI_ADDR_WIDTH    : integer       := 6;
16
17                 -- Parameters of Axi Master Bus Interface M00_AXI
18                 C_M00_AXI_START_DATA_VALUE      : std_logic_vector      := x"AA000000";
19                 C_M00_AXI_TARGET_SLAVE_BASE_ADDR        : std_logic_vector      := x"40000000";
20                 C_M00_AXI_ADDR_WIDTH    : integer       := 32;
21                 C_M00_AXI_DATA_WIDTH    : integer       := 32;
22                 C_M00_AXI_TRANSACTIONS_NUM      : integer       := 4
23         );
24         port (
25                 -- Users to add ports here
26                 lcd_res_n       : out std_logic;
27                 lcd_cs_n        : out std_logic;
28                 lcd_wr_n        : out std_logic;
29                 lcd_rd_n        : out std_logic;
30                 lcd_dc          : out std_logic;
31                 lcd_data        : inout std_logic_vector(15 downto 0);
32
33                 irq_rq_out      : out std_logic;
34                 -- User ports ends
35                 -- Do not modify the ports beyond this line
36
37
38                 -- Ports of Axi Slave Bus Interface S00_AXI
39                 s00_axi_aclk    : in std_logic;
40                 s00_axi_aresetn : in std_logic;
41                 s00_axi_awaddr  : in std_logic_vector(C_S00_AXI_ADDR_WIDTH-1 downto 0);
42                 s00_axi_awprot  : in std_logic_vector(2 downto 0);
43                 s00_axi_awvalid : in std_logic;
44                 s00_axi_awready : out std_logic;
45                 s00_axi_wdata   : in std_logic_vector(C_S00_AXI_DATA_WIDTH-1 downto 0);
46                 s00_axi_wstrb   : in std_logic_vector((C_S00_AXI_DATA_WIDTH/8)-1 downto 0);
47                 s00_axi_wvalid  : in std_logic;
48                 s00_axi_wready  : out std_logic;
49                 s00_axi_bresp   : out std_logic_vector(1 downto 0);
50                 s00_axi_bvalid  : out std_logic;
51                 s00_axi_bready  : in std_logic;
52                 s00_axi_araddr  : in std_logic_vector(C_S00_AXI_ADDR_WIDTH-1 downto 0);
53                 s00_axi_arprot  : in std_logic_vector(2 downto 0);
54                 s00_axi_arvalid : in std_logic;
55                 s00_axi_arready : out std_logic;
56                 s00_axi_rdata   : out std_logic_vector(C_S00_AXI_DATA_WIDTH-1 downto 0);
57                 s00_axi_rresp   : out std_logic_vector(1 downto 0);
58                 s00_axi_rvalid  : out std_logic;
59                 s00_axi_rready  : in std_logic;
60
61                 -- Ports of Axi Master Bus Interface M00_AXI
62                 m00_axi_aclk    : in std_logic;
63                 m00_axi_aresetn : in std_logic;
64                 m00_axi_awaddr  : out std_logic_vector(C_M00_AXI_ADDR_WIDTH-1 downto 0);
65                 m00_axi_awprot  : out std_logic_vector(2 downto 0);
66                 m00_axi_awvalid : out std_logic;
67                 m00_axi_awready : in std_logic;
68                 m00_axi_wdata   : out std_logic_vector(C_M00_AXI_DATA_WIDTH-1 downto 0);
69                 m00_axi_wstrb   : out std_logic_vector(C_M00_AXI_DATA_WIDTH/8-1 downto 0);
70                 m00_axi_wvalid  : out std_logic;
71                 m00_axi_wready  : in std_logic;
72                 m00_axi_bresp   : in std_logic_vector(1 downto 0);
73                 m00_axi_bvalid  : in std_logic;
74                 m00_axi_bready  : out std_logic;
75                 m00_axi_araddr  : out std_logic_vector(C_M00_AXI_ADDR_WIDTH-1 downto 0);
76                 m00_axi_arprot  : out std_logic_vector(2 downto 0);
77                 m00_axi_arvalid : out std_logic;
78                 m00_axi_arready : in std_logic;
79                 m00_axi_rdata   : in std_logic_vector(C_M00_AXI_DATA_WIDTH-1 downto 0);
80                 m00_axi_rresp   : in std_logic_vector(1 downto 0);
81                 m00_axi_rvalid  : in std_logic;
82                 m00_axi_rready  : out std_logic
83         );
84 end display_16bit_cmd_data_bus_v1_0;
85
86 architecture arch_imp of display_16bit_cmd_data_bus_v1_0 is
87
88         -- component declaration
89         component display_16bit_cmd_data_bus_v1_0_S00_AXI is
90                 generic (
91                 C_S_AXI_DATA_WIDTH      : integer       := 32;
92                 C_S_AXI_ADDR_WIDTH      : integer       := 6
93                 );
94                 port (
95                 S_AXI_ACLK      : in std_logic;
96                 S_AXI_ARESETN   : in std_logic;
97                 S_AXI_AWADDR    : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
98                 S_AXI_AWPROT    : in std_logic_vector(2 downto 0);
99                 S_AXI_AWVALID   : in std_logic;
100                 S_AXI_AWREADY   : out std_logic;
101                 S_AXI_WDATA     : in std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
102                 S_AXI_WSTRB     : in std_logic_vector((C_S_AXI_DATA_WIDTH/8)-1 downto 0);
103                 S_AXI_WVALID    : in std_logic;
104                 S_AXI_WREADY    : out std_logic;
105                 S_AXI_BRESP     : out std_logic_vector(1 downto 0);
106                 S_AXI_BVALID    : out std_logic;
107                 S_AXI_BREADY    : in std_logic;
108                 S_AXI_ARADDR    : in std_logic_vector(C_S_AXI_ADDR_WIDTH-1 downto 0);
109                 S_AXI_ARPROT    : in std_logic_vector(2 downto 0);
110                 S_AXI_ARVALID   : in std_logic;
111                 S_AXI_ARREADY   : out std_logic;
112                 S_AXI_RDATA     : out std_logic_vector(C_S_AXI_DATA_WIDTH-1 downto 0);
113                 S_AXI_RRESP     : out std_logic_vector(1 downto 0);
114                 S_AXI_RVALID    : out std_logic;
115                 S_AXI_RREADY    : in std_logic
116                 );
117         end component display_16bit_cmd_data_bus_v1_0_S00_AXI;
118
119         component display_16bit_cmd_data_bus_v1_0_M00_AXI is
120                 generic (
121                 C_M_START_DATA_VALUE    : std_logic_vector      := x"AA000000";
122                 C_M_TARGET_SLAVE_BASE_ADDR      : std_logic_vector      := x"40000000";
123                 C_M_AXI_ADDR_WIDTH      : integer       := 32;
124                 C_M_AXI_DATA_WIDTH      : integer       := 32;
125                 C_M_TRANSACTIONS_NUM    : integer       := 4
126                 );
127                 port (
128                 INIT_AXI_TXN    : in std_logic;
129                 ERROR   : out std_logic;
130                 TXN_DONE        : out std_logic;
131                 M_AXI_ACLK      : in std_logic;
132                 M_AXI_ARESETN   : in std_logic;
133                 M_AXI_AWADDR    : out std_logic_vector(C_M_AXI_ADDR_WIDTH-1 downto 0);
134                 M_AXI_AWPROT    : out std_logic_vector(2 downto 0);
135                 M_AXI_AWVALID   : out std_logic;
136                 M_AXI_AWREADY   : in std_logic;
137                 M_AXI_WDATA     : out std_logic_vector(C_M_AXI_DATA_WIDTH-1 downto 0);
138                 M_AXI_WSTRB     : out std_logic_vector(C_M_AXI_DATA_WIDTH/8-1 downto 0);
139                 M_AXI_WVALID    : out std_logic;
140                 M_AXI_WREADY    : in std_logic;
141                 M_AXI_BRESP     : in std_logic_vector(1 downto 0);
142                 M_AXI_BVALID    : in std_logic;
143                 M_AXI_BREADY    : out std_logic;
144                 M_AXI_ARADDR    : out std_logic_vector(C_M_AXI_ADDR_WIDTH-1 downto 0);
145                 M_AXI_ARPROT    : out std_logic_vector(2 downto 0);
146                 M_AXI_ARVALID   : out std_logic;
147                 M_AXI_ARREADY   : in std_logic;
148                 M_AXI_RDATA     : in std_logic_vector(C_M_AXI_DATA_WIDTH-1 downto 0);
149                 M_AXI_RRESP     : in std_logic_vector(1 downto 0);
150                 M_AXI_RVALID    : in std_logic;
151                 M_AXI_RREADY    : out std_logic
152                 );
153         end component display_16bit_cmd_data_bus_v1_0_M00_AXI;
154
155         signal m00_axi_init_axi_txn     : std_logic;
156         signal m00_axi_error    : std_logic;
157         signal m00_axi_txn_done : std_logic;
158
159 begin
160
161 -- Instantiation of Axi Bus Interface S00_AXI
162 display_16bit_cmd_data_bus_v1_0_S00_AXI_inst : display_16bit_cmd_data_bus_v1_0_S00_AXI
163         generic map (
164                 C_S_AXI_DATA_WIDTH      => C_S00_AXI_DATA_WIDTH,
165                 C_S_AXI_ADDR_WIDTH      => C_S00_AXI_ADDR_WIDTH
166         )
167         port map (
168                 S_AXI_ACLK      => s00_axi_aclk,
169                 S_AXI_ARESETN   => s00_axi_aresetn,
170                 S_AXI_AWADDR    => s00_axi_awaddr,
171                 S_AXI_AWPROT    => s00_axi_awprot,
172                 S_AXI_AWVALID   => s00_axi_awvalid,
173                 S_AXI_AWREADY   => s00_axi_awready,
174                 S_AXI_WDATA     => s00_axi_wdata,
175                 S_AXI_WSTRB     => s00_axi_wstrb,
176                 S_AXI_WVALID    => s00_axi_wvalid,
177                 S_AXI_WREADY    => s00_axi_wready,
178                 S_AXI_BRESP     => s00_axi_bresp,
179                 S_AXI_BVALID    => s00_axi_bvalid,
180                 S_AXI_BREADY    => s00_axi_bready,
181                 S_AXI_ARADDR    => s00_axi_araddr,
182                 S_AXI_ARPROT    => s00_axi_arprot,
183                 S_AXI_ARVALID   => s00_axi_arvalid,
184                 S_AXI_ARREADY   => s00_axi_arready,
185                 S_AXI_RDATA     => s00_axi_rdata,
186                 S_AXI_RRESP     => s00_axi_rresp,
187                 S_AXI_RVALID    => s00_axi_rvalid,
188                 S_AXI_RREADY    => s00_axi_rready
189         );
190
191 -- Instantiation of Axi Bus Interface M00_AXI
192 display_16bit_cmd_data_bus_v1_0_M00_AXI_inst : display_16bit_cmd_data_bus_v1_0_M00_AXI
193         generic map (
194                 C_M_START_DATA_VALUE    => C_M00_AXI_START_DATA_VALUE,
195                 C_M_TARGET_SLAVE_BASE_ADDR      => C_M00_AXI_TARGET_SLAVE_BASE_ADDR,
196                 C_M_AXI_ADDR_WIDTH      => C_M00_AXI_ADDR_WIDTH,
197                 C_M_AXI_DATA_WIDTH      => C_M00_AXI_DATA_WIDTH,
198                 C_M_TRANSACTIONS_NUM    => C_M00_AXI_TRANSACTIONS_NUM
199         )
200         port map (
201                 INIT_AXI_TXN    => m00_axi_init_axi_txn,
202                 ERROR   => m00_axi_error,
203                 TXN_DONE        => m00_axi_txn_done,
204                 M_AXI_ACLK      => m00_axi_aclk,
205                 M_AXI_ARESETN   => m00_axi_aresetn,
206                 M_AXI_AWADDR    => m00_axi_awaddr,
207                 M_AXI_AWPROT    => m00_axi_awprot,
208                 M_AXI_AWVALID   => m00_axi_awvalid,
209                 M_AXI_AWREADY   => m00_axi_awready,
210                 M_AXI_WDATA     => m00_axi_wdata,
211                 M_AXI_WSTRB     => m00_axi_wstrb,
212                 M_AXI_WVALID    => m00_axi_wvalid,
213                 M_AXI_WREADY    => m00_axi_wready,
214                 M_AXI_BRESP     => m00_axi_bresp,
215                 M_AXI_BVALID    => m00_axi_bvalid,
216                 M_AXI_BREADY    => m00_axi_bready,
217                 M_AXI_ARADDR    => m00_axi_araddr,
218                 M_AXI_ARPROT    => m00_axi_arprot,
219                 M_AXI_ARVALID   => m00_axi_arvalid,
220                 M_AXI_ARREADY   => m00_axi_arready,
221                 M_AXI_RDATA     => m00_axi_rdata,
222                 M_AXI_RRESP     => m00_axi_rresp,
223                 M_AXI_RVALID    => m00_axi_rvalid,
224                 M_AXI_RREADY    => m00_axi_rready
225         );
226
227         -- Add user logic here
228     m00_axi_init_axi_txn <= '0';
229
230     irq_rq_out <= '0';
231
232     lcd_res_n <= '1';
233     lcd_cs_n <= '1';
234     lcd_wr_n <= '1';
235     lcd_rd_n <= '1';
236     lcd_dc   <= '0';
237         -- User logic ends
238
239 end arch_imp;