Vorteile Komb. + Getakteter Prozess in architecture

Gast #4600617
Lesenswert?

Hallo zusammen,

bei meinem aktuellen Projekt bin ich bei der Recherche auf eine Struktur 
gestoßen, die verspricht, besonders "gut" zu sein. Gut im Sinne von 
Hardwareverbrauch, Latency und Throughput.

Dabei sieht die architecture immer so aus:
1
library IEEE;
2

3
use IEEE.std_logic_1164.all;
4
use IEEE.numeric_std.all;
5

6
entity Beispiel is
7
     CLK : in std_logic;
8
     --... (Diverse Ports)
9
end Beispiel;
10
architecture arch_Beispiel of Beispiel is
11
    -- Alle Internen signale werden durch diesen type zusammengefasst
12
    type register_t is record
13
         --...(Diverse Signale)
14
    end record;
15
    
16
    signal register : register_t;
17
    signal register_next : register_t;
18

19
begin
20
     -- Getakteter Prozess
21
     update : process(CLK) is
22
     begin
23
          if rising_edge(CLK) then
24
              -- alle internen Signale werden bei steigender Flanke    geupdated
25
              register <= register_next;
26
          end if;
27
     end process update;
28

29

30
     -- Kominatorische Logik
31
     -- Hier erfolg nun die eigentliche Berschreibung.
32
     -- Die Variable dient nur dazu einen Wert direkt nach seiner Zuweisung zur Verfügung zu haben.
33
     comb : process(register,register_next,...diverse in/out Ports) is
34
     variable register_buf : register_t;
35
     begin
36
        register_buf := register;
37

38

39
     
40

41
               --..... Kombinatorische Logik
42

43
               --..... Unter anderem auch Output Assignment
44

45
       register_next <= register_buf;
46
    end process comb;
47
end architecture arch_Beispiel;

Was sind die Vorteile einer solchen Struktur gegenüber der herkömmlichen 
Variante? Hat das einen speziellen Namen?

Vielen Dank schonmal im Vorraus.

Grüße,
pantagruel
Moderator (Firma: Titel) Persönliche Seite #4600622
Lesenswert?

pantagruel schrieb:
> auf eine Struktur gestoßen, die verspricht, besonders "gut" zu sein. Gut
> im Sinne von Hardwareverbrauch, Latency und Throughput.
Lass das mal den Synthesizer machen. Was tatsächlich "gut" und 
"effizient" ist, das hängt nämlich in sehr großem Maße von der 
verwendeten Architektur ab.

> Was sind die Vorteile einer solchen Struktur gegenüber der herkömmlichen
> Variante?
Das ist im Prizip die stinknormale seit Jahrzehnten angewendete 
Zwei-Prozess-Schreibweise.

Die speziell hier gezeigte Variante hat einen "Vorteil": durch die 
ausschließliche Verwendung von Variablen im Prozess muss ein 
Softwareprogrammierer nicht umdenken, weil sich die Werte bei der 
Zuweisung "sofort" ändern und so das "Programm" Top-Down "abgearbeitet" 
wird.
Das entspricht natürlich nicht der Hardware, sondern ist eine 
Krücke...

> Hat das einen speziellen Namen?
Siehe den Beitrag "Gaisler-Religion?"
Gast #4600629
Lesenswert?

pantagruel schrieb:
> die verspricht, besonders "gut" zu sein. Gut im Sinne von
> Hardwareverbrauch, Latency und Throughput.

wer behauptet das?

pantagruel schrieb:
> Hat das einen speziellen Namen?

die "Zwei Prozess Schreibweise"

pantagruel schrieb:
> Was sind die Vorteile einer solchen Struktur gegenüber der herkömmlichen
> Variante?

Für Anfänger ist evtl. die Zwei-Prozess Schreibweise besser 
verständlich, weil sie eine gedankliche Trennung zwischen Speicherung in 
Flipflops und kombinatorischer Logik erlaubt. Für die praktische Arbeit 
ist sie imho zu umständlich, weil man "alles doppelt schreiben muss".

pantagruel schrieb:
> der herkömmlichen
> Variante?

Mit der "herkömmlichen Variante" meinst du die Ein-Prozess Schreibweise? 
Wenn du in beiden Fällen die selbe Hardware beschreibst, dann erhältst 
du auch das selbe Syntheseergebnis. Bei der Ein-Prozess Schreibweise 
muss man mal verinnerlichen, dass der selbe Signalname für den Eingang 
wie für den Ausgang eines Flipflops gebraucht wird - das fällt in der 
Zwei-Prozess Schreibweise mit getrennten Namen ggf. leichter. Ansonsten 
ist die Zwei-Prozess Schreibweise "fehleranfälliger". Wenn man mal 
schnell noch ein neues Signal braucht und vergisst alles doppelt zu 
machen, dann baut man leicht Latches oder kombinatorische Schleifen.

Aber wenn man seine Hardware korrekt beschreibt liefern beide 
Beschreibungen gleich gute Ergebnisse.
Gast #4600653
Lesenswert?

Wow, das ging ja flott :)
Danke für eure Antworten.

Okay, das klärt einiges.

Lothar M. schrieb:
> Siehe den Beitrag "Gaisler-Religion?"

Das ist ja DAS Paper... :D Da steht alles an Info drin was ich brauche 
(Schreibe nebenher eine Arbeit über das Projekt). Hätte ich das mal 
früher gefunden, wären meine Fragen gar nicht erst aufgetaucht. Vielen 
Dank für den Tipp!!

Ein schönes Wochenende euch allen :)

pantagruel


PS.: Dies ist mein erster Beitrag in diesem Forum. Gibt es eine 
Möglichkeit Threads als gelöst o.ä. zu markieren?

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