wait until synthetisierbar

Gast #4305967
Lesenswert?

frage schrieb:

> Sind
> [vhdl]
> wait until condition;
> [\vhdl]
> statements immer synthetisierbar?

"Immer" ist immer falsch.

Welche VHDL Konstrukte synthetisierbar sind beschreibt der "synthesis 
style guide" des jeweiligen Synthesetools. Pauschal gültige Antworten 
gibt es dazu nicht.

Relativ oft wird "wait" im zusammenhang mit der Taktflanke zur 
synthesegerechten Beschreibung getakter FF genutzt. Das kann es aber 
auch schon mit den synthesefähigen "wait"-Konstrukten gewesen sein.

MfG,
Gast #4308475
Lesenswert?

Ich frage mich immer noch, was es für einen Sinn macht, solche 
Konstrukte zu verwenden, wenn man synthestisierbaren Code braucht.

Mag sein, dass Xilinx das nimmt, andere tun es gfs nicht.

Der Begriff "wait" macht bei realer Hardware auch keinen Sinn, weil 
Hardware keine wirkliche zeitliche Abhängigkeit kennt. Die müsste man 
erst auch Umwegen hineininterpretieren.
Moderator (Firma: Titel) Persönliche Seite #4308717
Lesenswert?

Weltbester FPGA Pongo schrieb im Beitrag #4308475:
> Der Begriff "wait" macht bei realer Hardware auch keinen Sinn, weil
> Hardware keine wirkliche zeitliche Abhängigkeit kennt.
Es fällt zumindest mir nicht arg schwer, "wait until rising_edge(CLK)" 
als "warte auf nächste steigende Taktflanke" zu interpretieren.
Das ist allemal intuitiver als den Takt in die implizite "Warteliste" 
(=Sensitivliste) aufzunehmen und danach nur die steigende Flanke 
abzufragen.
Moderator (Firma: Titel) Persönliche Seite #4329579
Lesenswert?

fluuppu schrieb:
> ob diese Schreibweise einer Statemachine überhaupt guter Stil ist?!
Welche Schreibweise?

Ein "wait until" in der FSM?
Tadelloser Stil, garantiert synchrones Design.
http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html
http://www.lothar-miller.de/s9y/archives/43-Ein-oder-Zwei-Prozess-Schreibweise-fuer-FSM.html
Gast #4329670
Lesenswert?

Lothar M. schrieb:
> fluuppu schrieb:
>> ob diese Schreibweise einer Statemachine überhaupt guter Stil ist?!
> Welche Schreibweise?
>
> Ein "wait until" in der FSM?
> Tadelloser Stil, garantiert synchrones Design.
> http://www.lothar-miller.de/s9y/archives/16-Takt-i...
> http://www.lothar-miller.de/s9y/archives/43-Ein-od...

ich bezog mich auf das Beispiel wo Du ganz viele "Wait until" im Prozess 
hattest. Da hast du ja beides gegenübergestellt:
1
architecture Behavioral of wait_im_process is
2
signal cnt : integer range 0 to 6;
3
begin
4

5
  process begin
6
    wait until rising_edge(clk100MHz);
7
    case cnt is
8
      when 0 => dout <= '0';
9
      when 1 => clk <= '1';
10
      when 2 => clk <= '0';
11
                dout <= '0';
12
      when 3 => clk <= '1';
13
      when 4 => clk <= '0';
14
                dout <= din;
15
      when 5 => dout <= '1';
16
      when 6 => clk <= '0';
17
                dout <= '1';
18
    end case;
19
    if (cnt<6) then cnt <= cnt+1;
20
    else            cnt <= 0;
21
    end if;
22
  end process;
23

24
end Behavioral;


Versus
1
entity wait_im_process is
2
    Port ( clk10ns : in  STD_LOGIC;
3
           din  : in   STD_LOGIC;
4
           dout : out  STD_LOGIC := '0';
5
           clk  : out  STD_LOGIC := '0');
6
end wait_im_process;
7

8
architecture Behavioral of wait_im_process is
9
begin
10

11
  process begin
12
    dout <= '0';
13
    wait until rising_edge(clk10ns);
14
    clk <= '1';
15
    wait until rising_edge(clk10ns);
16
    clk <= '0';
17
    dout <= '0';
18
    wait until rising_edge(clk10ns);
19
    clk <= '1';
20
    wait until rising_edge(clk10ns);
21
    clk <= '0';
22
    dout <= din;
23
    wait until rising_edge(clk10ns);
24
    dout <= '1';
25
    wait until rising_edge(clk10ns);
26
    clk <= '0';
27
    dout <= '1';
28
    wait until rising_edge(clk10ns);
29
  end process;
30

31
end Behavioral;
Gast #4329846
Lesenswert?

fluuppu schrieb:
> ich frage mich, ob diese Schreibweise einer Statemachine überhaupt guter
> Stil ist?! Oder anders: warum sollte man diese Schreibweise überhaupt
> verwenden? Gibt es da Anwendungen für?

* Keine Sensitivitaetsliste notwendig
* Eine Einrueckungstiefe im Source weniger -> mehr Platz auf dem 
Bildschirm bzw. kann man den Tabulator auch groesser stellen, was der 
Uebersichtlichkeit enorm dient
* Sofort erkennbar, dass da kein asynchrones Zeugs im Prozess steht

Also ich sehe da nur Vorteile und damit ist es fuer mich "guter Stil"
Gast #4329861
Lesenswert?

berndl schrieb:
> * Keine Sensitivitaetsliste notwendig
> * Eine Einrueckungstiefe im Source weniger -> mehr Platz auf dem
> Bildschirm bzw. kann man den Tabulator auch groesser stellen, was der
> Uebersichtlichkeit enorm dient
> * Sofort erkennbar, dass da kein asynchrones Zeugs im Prozess steht
>
> Also ich sehe da nur Vorteile und damit ist es fuer mich "guter Stil"

Und weiter:
* sofort erkennbar, dass der Zustandsgraph der Statemaschine einfach nur 
ein großer Kreis ist.
* sofort erkennbar, dass der Zustand nicht noch andere Prozesse 
beeinflusst, da es kein explizites Zustandssignal gibt.

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