mikrocontroller.net

Forum: FPGA, VHDL & Co. VHDL why is my process not sequential


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Kus A. (Firma: 2s) (jennyzuh)


Bewertung
0 lesenswert
nicht lesenswert
Question about *VHDL*:

When i run this it shows to synchronous clk signals:
process 
begin

tb_CLK <= '1';
tb_SPI_CLK <='1';
wait for 1 ns;
tb_CLK <= '0' ;
tb_SPI_CLK <='0';
wait for 1 ns;

end process; 
------------
When I run this:
 it shows both signals but tb_SPI_CLK is 1 clock tick shifted :(
Why doesnt it work sequentially in the process ?
process 
begin

tb_CLK <= '1';
tb_SPI_CLK <=tb_CLK ;
wait for 1 ns;
tb_CLK <= '0' ;
tb_SPI_CLK <=tb_CLK ;
wait for 1 ns;

end process; 


Thank you :D

: Bearbeitet durch User
von Markus F. (mfro)


Bewertung
0 lesenswert
nicht lesenswert
Kus A. schrieb:
> Why doesnt it work sequentially in the process ?

Because that's the way how signal assignments in VHDL processes work.

Welcome to the world of VHDL.

Best imagine that signal assignments get "collected" and not executed 
until the next wait statement (or the 'end' of the process, if there is 
no wait).

Thus you are - contrary to what you assumed - not assigning the value 
just 'written' to tb_SPI_CLK (because that 'write' does not occur any 
earlier than at the wait statement), but its previous value.

VHDL variables work like you would expect, but have other implications 
you still need to discover.

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.

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