VGA-Design (Virtex5/ISE14.5): daten von fpga ins sram auslagern

#3233217
Lesenswert?

Guten Tag,

ich beschäftige mich derzeit mit einem VGA-Design. Ich habe hierfür im 
FPGA ein Array mit 116x155 Pixel für RGB angelegt und kann somit kleine 
RGB Bilder auf einem Monitor ausgeben. (Die Array-Daten erzeuge ich 
derzeit mit Mathematica)
1
type FeldTyp1 is array (116 downto 1, 155 downto 1) of bit_vector (11 downto 0); 
2
signal FeldB : FeldTyp1 := ((b"010001111001",b"001101101000", ......

das ganze Design funktioniert auch problemlos nur das Synthetisieren und 
P&R dauert gute zwei Stunden. Im nächsten Schritt möchte ich deshalb 
meine Bilddaten in einem externen SRAM ablegen. Ich suche daher den 
geeignetsten Weg um das SRAM mit den Bilddaten zu initialisieren ohne 
ein Array im FPGA anlegen zu müssen und somit das Synthetisieren und P&R 
auf ein Bruchteil zu verkürzen.

Würde mich über Ideen/Vorschläge freuen

mfg
alex
Gast #3233284
Lesenswert?

Ein Block-RAM als ROM nutzt die Xilinx-Synthese wenn die Ausgangsdaten
nochmal über ein getaktetes Register gehen, hier als Beispiel
rauskopiert aus dem Xilinx-"XST User Guide for Virtex-4, Virtex-5"
"Chapter 3: XST HDL Coding Techniques - ROM With Registered Output VHDL 
Coding Example"; ohne das Register wirds, so denke ich, in "tausende"
LUT-RAMs abgebildet.
1
architecture syn of rams_21b is
2
  type rom_type is array (63 downto 0) of std_logic_vector (19 downto 0);
3
  signal ROM : rom_type:= (X"0200A", X"00300", X"08101", ..... X"0400D");
4
  signal rdata : std_logic_vector(19 downto 0);
5

6
  begin
7
  rdata <= ROM(conv_integer(addr));
8
   process (clk)
9
    begin
10
    if (clkevent and clk = 1) then  -- mit dem Konstrukt sollte
11
      if (en = 1) then               -- xst ein Block-RAM hernehmen.
12
      data <= rdata;                   -- und auch etwas schneller routen
13
      end if;
14
    end if;
15
   end process;
16
end syn;
#3233334
Lesenswert?

Ich bin mir ziemlich sicher, dass die Zeit zum Erstellen des Designs 
damit nicht (wesentlich) kleiner wird. Die dicken FPGAs brauchen nun mal 
so lange. Selbst ein nichtmal halbvolles Spartan 6-100 Design braucht 
etwa eine halbe Stunde auf einem aktuellen Rechner incl. neu erstellen 
von ein paar FIFOs als IP Core. Wenn da viel Logik im Chip ist und viel 
zu routen bei knackigem Timing dann dauerts halt. Da kann man nur durch 
mehr CPU Power nachhelfen.
#3233563
Lesenswert?

danke für die Vorschläge, werde sie durcharbeiten.

ja Education, das Board habe ich zur Verfügung gestellt bekommen und 
darf mich über die Ferien ein bisschen spielen/einarbeiten. Habe bis 
jetzt nur kleinere Designs in VHDL entwickelt (counter,shift register). 
Ist sozusagen mein erstes größeres Design.

Mein Ziel ist es, VGA einlesen zwischenzuspeichern (sram) und dann 
wieder über VGA ausgeben. Mein derzeitiger Status ist somit nur ein 
Zwischenschritt ;-)
deshalb möchte ich als nächsten Schritt mit einem exteren SRAM arbeiten 
und dann werde ich mich darum kümmern VGA-Signale einzulesen.

mfg
alex

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren