std_logic_vector byte für byte füllen?

Gast #3883136
Lesenswert?

Hey Leute,

ich möchte einen großen std_logic_vector Byte für Byte füllen und zwar 
mit jedem Aufruf meines Prozesses.
Meine Idee ist in dem Code-Schnipsel zu sehen, leider stoße ich bei der 
Kompilierung auf ein Problem mit Quartus 13.1, welches diesen Code 
aufgrund eines internen Fehlers so nicht verarbeiten kann.
http://www.altera.com/support/kdb/solutions/rd12122013_218.html

Ein Upgrade der Quartus Software ist wegen Cyclon II Support nicht 
möglich.
Deshalb meine Frage, gibt es eine andere Möglichkeit den Vektor schritt 
für schritt mit Daten zu füllen?
1
-- Signal Declaration
2
SIGNAL pc_input_buffer_r : std_logic_vector(5119 downto 0) := (others => '0'); -- 640 Bytes
3
SIGNAL usb_datain  : std_logic_vector (7 downto 0);
4
SIGNAL i : integer := 1;
5

6
-- Code inside my process
7
pc_input_buffer_w <= pc_input_buffer_w(i*8-1 downto 0) & usb_datain; -- shift bytes left and add new data
8
i <= i + 1;
Moderator (Firma: Titel) Persönliche Seite #3883186
Lesenswert?

Grumpi schrieb:
> pc_input_buffer_w <= pc_input_buffer_w(i*8-1 downto 0) & usb_datain;
> i <= i + 1;
Dynamische Grenzen? Kann der Synthesizer das?

> SIGNAL pc_input_buffer_r : std_logic_vector(5119 downto 0) := (others =>
> '0'); -- 640 Bytes
Dieser Monsterverktor wird auch problematisch: 5200 Flipflops zum 
Speichern und davor ein 8 mal einen Riesenmonstermegamultiplexer von 
1:640. Das wird niemals klappen!

> pc_input_buffer_r
> pc_input_buffer_w
Wie? Hast du so einen Vektor gleich 2 mal?

Wie wäre es, wenn du ein normales RAM mit 8 Bit Datenbreite nimmst und 
dort die Werte reinspeicherst? Dafür gibt es auf dem FPGA fertige 
Komponenten...
Gast #3883290
Lesenswert?

Hey Lothar,

Anscheinend sind dynamische grenzen ab Quartus 14 möglich, aber ich bin 
noch recht neu zu VHDL wie du an meinen zwei Monstervektoren mit 
insgesamt  10400 Flipflops und 16 Rießenmultiplexern wohl schon erkannt 
hast ;)
Der C-Style übernimmt oft überhand

Danke für den Tipp mit dem RAM!!! So werde ich das implementieren!

Grüße
Grumpi

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