std_logic_vector byte für byte füllen?

Gast #3883136
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
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
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

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.