5. vaja: sistem s pomnilnikom

Izdelali bomo sistem za prikaz slike iz notranjega pomnilnika BRAM. Sistem bo vseboval IP sinhronizacijsko komponento, komponento za branje pomnilnika in komponento za prikaz sličice.

Izdelava komponente za branje pomnilnika

1. Izdelava novega projekta

Port ( clk : in STD_LOGIC;
       rstb : in STD_LOGIC;
       rgb_i: in STD_LOGIC_VECTOR(7 downto 0);
       tx_i, ty_i: in STD_LOGIC_VECTOR(8 downto 0);
       en_i: in STD_LOGIC;
           
       rgb_o: out STD_LOGIC_VECTOR(7 downto 0);
       tx_o, ty_o: out STD_LOGIC_VECTOR(8 downto 0);
       en_o: out STD_LOGIC;           
                      
       BRAM_enb : out STD_LOGIC;           
       BRAM_doutb : out STD_LOGIC_VECTOR (31 downto 0);
       BRAM_dinb : in STD_LOGIC_VECTOR (31 downto 0);
       BRAM_web : out STD_LOGIC_VECTOR (3 downto 0);          
       BRAM_addrb : out STD_LOGIC_VECTOR (31 downto 0); 
       BRAM_clkb : out STD_LOGIC;
       BRAM_rstb : out STD_LOGIC
      );
BRAM_enb <= '1';
BRAM_doutb <= (others => '0');
BRAM_web <= (others => '0');
BRAM_addrb <= "00000000000000" & ty_i & tx_i;
BRAM_rstb <= not rstb;
BRAM_clkb <= clk;

2. Izdelava komponente IP

Uporaba komponente v sistemu

Aplikacija

#include "xparameters.h"

int main()
{
 int y=100,x;
 char *p;

 for (x=0; x<100; x++) {
   p= (char *)XPAR_AXI_BRAM_CTRL_0_S_AXI_BASEADDR+x+512*y;
   *p = 255;
 }