VHDL Schnipsel
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.