Zum Inhalt springen

Diskussion:VHDL-Tutorium

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Abschnitt hinzufügen
Aus Wikibooks
Letzter Kommentar: vor 9 Jahren von Stephan Kulla in Abschnitt Hinweis auf Buchstatus

Struktur

[Bearbeiten]

IMO sollte man Beispiele, Code-Referenz und Allgmeines zu HDL trennen und in Unterartikel verschieben.

CLK='1' and CLK'event oder rising_edge()?

[Bearbeiten]

Siehe dazu Mikrocontroller.net FAQ-Eintrag

IMO sollte man rising_edge() verwenden.
Für die Synthese ist es immer egal, für die Simulation manchmal nicht, z.B. wenn man auch andere Fälle von 0,1 simulieren muss.

"Reset-Signale [...] überflüssig"?!

[Bearbeiten]

"In den meisten Fällen ist die Verwendung von Reset-Signalen in einem VHDL-Design sowieso überflüssig" - seit wann das denn? Nur weil es vielleicht ein paar (FPGA-)Synthesetools gibt, die auch ohne Reset das richtige machen, ist das doch keine allgemeine Regel. Siehe z.B. https://groups.google.com/group/comp.lang.vhdl/browse_thread/thread/17521a5e160af6c1/72d4461a0cd251bc?lnk=gst&q=initial+value+reset#72d4461a0cd251bc oder https://groups.google.com/group/comp.lang.vhdl/browse_thread/thread/1f966b05bf156405/ac631c3c9fa69d7a?lnk=gst&q=initial+value+reset#ac631c3c9fa69d7a

VHDL Quelltext Formatierung im Wikibook

[Bearbeiten]

Die Code Formatierung in diesem Buch ist in der Regel nicht richtig, zum Beispeil:

  case ''expression'' is
  when ''fall_1'' => ''sequential statement''
  when ''fall_2'' => ''sequential statement''

Wegen des <pre> im Quelltext der Wiki Seite sieht man die Hochkommas. Alternativen sind:

1) VHDL syntax highlighting, ohne Kasten, man kann nur eine ganze Zeile hervorheben. Es sieht so aus:

case expression is
when fall_1 => sequential statement
when fall_2 => sequential statement

2) Ohne VHDL syntax highlighting, mit Kasten, aber Fett u.s.w. sind verfügbar. Es sieht so aus:

case expression is
when fall_1 => sequential statement
when fall_2 => sequential statement

Etwas Besseres habe ich nicht gefunden.

Was wäre eure Meinung nach die Beste Methode? -- Rdiez 16:02, 14. Apr. 2011 (CEST) (Signatur nachgetragen Jürgen 17:24, 14. Apr. 2011 (CEST) – bitte künftig mit 4 Tilden ~~~~ selbst erledigen.)Beantworten

Es kommt darauf an, worum es dir geht: Welchen Sinn haben Fett- und Kursivschrift im Quelltext? Ist das in einer IDE für VHDL üblich? Was ist denn wichtig?
Der Tag <syntaxhighlight> benutzt ebenso wie die Vorlage:Syntax und mehrere Vorlagen im Regal:Programmierung GeSHi. Dort können weitere Schlüsselwörter angegeben werden, die hervorgehoben werden können. Und es gibt Möglichkeiten, über eine CSS-Datei die Hervorhebungen zu steuern. Aber CSS ist nur eine individuelle Lösung für den Leser, keine allgemeine Lösung für Buchautoren. Außerdem wird GeSHi bei Wikimedia nicht regelmäßig aktualisiert. GeSHi ist inzwischen bei Version 1.1.2, aber bei Wikimedia steht immer noch 1.0.8.4 (Dezember 2009) – siehe den Bugtracker. Ich selbst habe für SQL die Liste der Schlüsselwörter stark erweitert – und warte seit August 2010 auf die Aktualisierung.
Für mehr Informationen könntest du Sourceforge und mw:Extension:GeSHiHighlight untersuchen. -- Jürgen 17:24, 14. Apr. 2011 (CEST)Beantworten

type

[Bearbeiten]

bei u.a. type sollte dabei stehen, wo man es anwenden kann. z.B. innerhalb der entity oder einem package. Wie instantziert man ein signal dessen Typ so: "type feld is array (natural range <>) of std_logic_vector(natural range <>);" deklariert wurde? "signal s_name : feld(N DOWNTO 0, M DOWNTO 0);"? --Moritzgedig 18:53, 25. Apr. 2013 (CEST)Beantworten

type conversion

[Bearbeiten]

Bei "type conversion" fehlt noch, dass man "<type>'pos(<signal>)" nutzen kann, um aus Enumerations\Aufzählungstypen integers zu machen. Oder ist das nicht synthetisierbar? -Moritzgedig

Unbeabsichtiges Erzeugen eines "Latch"

[Bearbeiten]

Das Beispiel ist nicht ganz eindeutig,, bzw. etwas zu kurz gefasst. Erst durch angabe des Prozesses und der Sensitivity-Liste kann man eindeutig sagen, dass ein Latch erzeugt wird:

process(a, b)
begin
  if    (a='1') and (b='0') then
      x <= '1';
  elsif (a='0') and (b='1') then
      x <= '0';
  end if;
end process;

Stünde der Code-Schnippsel irgendwo in einem Prozess innerhalb eines if-then-Statements mit einem Takt würde ein Register generiert werden. -- Sid6p8 11:48, 15. Jan. 2014 (CET)Beantworten

Hinweis auf Buchstatus

[Bearbeiten]

Hallo,

ich habe gerade das Buch etwas überarbeitet und formatiert. Da an diesem Projekt seit langem nicht substantiell gearbeitet wird, habe ich es im Regal als "fast fertig" deklariert (schließlich macht es als Tutorium schon einen guten Eindruck). Dies kann gerne von einem Hauptautor rückgängig gemacht werden. Viele Grüße, Stephan Kulla 11:30, 22. Aug. 2015 (CEST)Beantworten