VHDL Schnipsel

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Beispielcode und VHDL Schnipsel

Hier ist Platz für kurzen Beispielcode.

Clockgenerator in VHDL

Ein kleines VHDL-Modul welches die Eingangsfrequenz in beliebigen Verhältnis auf eine Ausgangsfrequenz runter teilen kann. Allerdings ist die Ausgangsfrequenz nicht jitter-frei.

Zählerbereich erkennen

Oft wird ein Signal aus einem Zählerstand abgeleitet. Zum Beispiel für einen längeren '1' Puls, soll bei einem Zählerstand größer 10 und kleiner 20 eine '1' ausgegeben werden, sonst '0'. Verwendet man hier ">" oder "<" wird die Logik unnötig groß. Das Beispiel zeigt eine Platzsparende Alternative.

OR über alle Bits eines Vectors

Wie fasse ich einen STD_LOGIC_VECTOR(15 downto 0) so zusammen, dass das Ausgangssignal '1' ist, sobald eines der Vektor-Bits auf '1' ist? Also eine OR-Verknüpfung über den ganzen Vektor?

Als concurrent statement:

big_or <= '0' when my_vector=(others => 0) else '1';

Als sequenzielles Statement in einem Prozess:

process(my_vector)
begin
  if my_vector=(others => 0) then
    big_or <= '0';
  else
    big_or <= '1';
  end if;
end process;

I2C-Slave

  • Master kann schreiben und lesen
  • praktisch keine Einschränkung der Frequenz
  • Error-Code nach Transfer
  • freie Slave-Adresswahl
  • Sniffer-Mode

Coder am Beispiel TTL74185 (6 bit binary to BCD decoder)

Ein Beispiel wie man Coder schreiben kann und sollte, zeigt an einigen VHDL-Beispielen der Artikel TTL74185. Der thread dazu findet sich unter: http://www.mikrocontroller.net/topic/55594.

Code Bespiele

VHDL Softwarepool