mikrocontroller.net

Forum: FPGA, VHDL & Co. Daten werden mit File I/O nicht eingelesen


Autor: file i/o (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich möchte eine Sinustabelle über eine Textdatei in einen selbst 
angelegten Speicher speichern und später weiterverarbeiten.

es werden keine fehlermeldungen ausgegeben, allerdings liegt in meinen 
speicher nur die zahl 1.
kann mir vielleicht einer einen tip geben, wo mein fehler liegen könnte?

Teile des Programmcodes:

-----------------------------------------------------------------------
architecture funktion of oszillator is

signal phase_width:    integer := number_phase*(8*8);    -- Gesamte 
Bitlänge der Dateninfo

signal data_clk:    std_logic;              -- Takt: Datenabfrage
signal write_clk:    std_logic;              -- Schreibtakt
signal baud_clk:    std_logic;              -- Baudtakt

type sinmemory is    array (0 to 7) of integer;
signal sinetable:    sinmemory;

------------------------------------------------------------------------

-- Sinustabelle einlesen

sinustabelle: process(clk)

variable sincounter:  integer range 0 to 7;
variable fstatus:    FILE_OPEN_STATUS;

begin

for j in 0 to 7 loop
  read(sinus_data, sinetable(sincounter));
  sincounter := sincounter + 1;
end loop;

end process sinustabelle;

------------------------------------------------------------------------
-- Sinus erzeugen

sine: process

variable sinecounter:  integer range 0 to 7;

begin

wait until rising_edge (data_clk);

sinus <= conv_std_logic_vector(sinetable(sinecounter), 12);

sinecounter := sinecounter + 1;

end process sine;
----------------------------------------------------------------------


die textdatei sieht so aus:

0
71
100
71
0
-71
-100
-71

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll das auch synthetisiert werden? Wenn ja, auf welchem Baustein?

sincounter kannst Du Dir sparen (zumindest beim Einlesen), nimm j 
dafür. Und bau am Ende des read-Prozesses noch ein /wait;/ ein.

Duke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.