www.mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL Modell auf algorithmischer und register transfer ebene


Autor: Sebastian F. (bastel_vhdl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey ho,

da ich zur Zeit vollkommen verwirrt bin und kein Stück weiter komme 
stell ich jetz einfach hier meine Frage.

Ich muss in meine VHDL Projektarbeit zwei Modelle mit einfliessen 
lassen.
Das Modell auf algorithmischer oder abstrakter Ebene und zum zweiten auf 
der Register Transfer Ebene.

Nun kenne ich folgende Def. dazu:
Algorithmische Ebene = Beschreibung durch parallel ablaufende 
Algorithmen, kein Bezug zur späteren Realisierung, keine Takt- u. 
Reset-Signale

Register Transfer Ebene = detailliertes Datenstrukturmodell mit 
optimiertem Datenfluß und minimiertem Steuerfluß wird dargestellt, 
zeitlich parallel ablaufende Aktivitäten werden folgerichtig in ein 
Zeitraster
eingeordnet, d. h. Einführung von Takt und Reset-Signalen

Soweit so gut. Nun habe ich hier vor mir einen vollständigen 
Mealy-Automatengraphen auf Blatt Papier und will diesen mittels beider 
Modelle umsetzen. Ich komme nur immer wieder zu dem Schluss das ich 
gedanklich auf Register Transfer Ebene arbeite. Wie soll ich den Ablauf 
des Automaten auf algorithmischer Ebene darstellen.
Auf Registertransferebene würde ich folgendermaßen vorgehen:

architecture arch of automat is
  type state_type is (z0, z1, z2, z3);
  signal state : state_type;
begin
process (clk)
begin
  if (clk'event and clk = '1') then
    case state is
      when z0 =>
                                if ... then
                                   ...
                                else
                                   state <= z1;
                                end if;
      when z1 =>
        ..........
      when z2 =>
        ..........
      when z3 =>
        ..........
    end case;
  end if;
end process;
end arch;

Es kann ja aber nicht das Ziel sein einen Mealy Automaten mittels 
parallelen Anweisungen darzustellen (wie das das algorithmische Modell 
vorgibt).

Hat jemand von euch einen vernünftigen Ansatz für das abstrakte Modell?

mfg bastel

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian Schwabe schrieb:
> Das Modell auf algorithmischer oder abstrakter Ebene
.
.
> Nun habe ich hier vor mir einen vollständigen
> Mealy-Automatengraphen auf Blatt Papier
Dann bist du doch fertig, du hast das ganze auf einer abstrakter Ebene 
Dargestellt.

Algorithmisch bezieht sich vermutlich auch auf sowas wie:
a = (b + c) * x / 8.9;
in RTL mußt du dieses ggf in mehrere Schritte/Teilprobleme zerlegen 
(add/mult/div, ausreichende registerbreiten, float darstellung etc...)

Ansonsten würde ich auch eine Beschreibung in Funktionaler Manier (wie 
z.B. in C üblich) als 'Algorithmisch' bezeichnen.

Autor: Sebastian F. (bastel_vhdl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. Ich hätte vlt. dazu schreiben sollen das zu beiden Modellen in 
ModelSim eine Testbench erstellt werden soll.
D.h. ich muss diesen Mealy Automaten irgendwie auf zwei arten 
darstellen. Und das so das ModelSim damit arbeiten kann.
Momentan erstelle ich meine Dateien mittels Quartus und teste diese mit 
ModelSim. Naja nur das abstrakte Modell bereitet mir regelrechte 
Kopfschmerzen.

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Code für die State-Machine ist aber auf Verhaltensabene beschrieben 
(wenn mich nicht alles täuscht).

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist nicht immer leicht, die beiden Modell-Varianten zu trennen.

Ich weiss nicht genau, was deine FSM machen soll, aber falls z.B. die 
FSM dazu dient, aufgrund eines Start-Signals bestimmte Signale mit 
definierter Verzögerung auszulösen, dann wäre eine algorithmisches 
Modell z.B. so ähnlich :

process
  wait for Start = '1';
  Read_Enanble <= '1' after 100 ns, '0' after 200 ns
  Output_Enable <= '1' after 50 ns, '0' after 300 ns;
end process;

Eine Umsetzung dieses Verhaltens auf RTL ist dann deine FSM, der Takt 
irgendein Bruchteil von 50 ns, und die States machen das Timing.

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.