Signalerzeugung

Gast #388895
ich erhalte eine kontinuierliche Signalfolge -> 00, 01, 11, 00, ...

Jedes Signal liegt eine bestimmte Zeit(20-30 Taktperionden) an, bevor
es sofort von dem drauffolgenden Signal abgelöst wird.

Wie kann ich diese Signalfolge benützend einen "Takt" daraus
ableiten?
Als Ergebnis möchte ich, jedesmal wenn sich das anliegende Signal
ändert, einen Impuls von 1-Clk-Takt Länge erhalten.

so etwa:

   00               01              11             00      01
XXXXXXXXXXXXXyyyyyyyyyyyyyyyyyyZZZZZZZZZZZZZZZZXXXXXXXXXXyyyyyy
|-|__________|-|_______________|-|_____________|-|_______|-|___


Danke!


Die Signalfolge sind die Zustaände eines Automaten!
#388898
> Die Differenz ... bilden

Bzw. hier reicht ein einfacher Vergleich aus.

Sig1 ist Dein Input.
...
if Reset ...
elsif rising_edge (clock) .....
  Pulse <= '0';
  Sig2 <= Sig1;
  if Sig1 = Sig2 then
    Pulse <= '1'
  end if;
end if;
(Setzt voraus, dass Sich Sig1 nicht 2mal hintereinander
ändert, aber das hast Du oben ja geschrieben.)

Gruss,

Alex
#388901
Es geht auch ein "ungleich"-Vergleich, also
Pulse <= (To_unsigned(Sig1) /= To_unsigned(Sig2));
Hab die genaue Syntax gerade nicht im Kopf, weiss nicht
ob to_unsigned das auf std_logic oder bit_vector geht,
ggf. auch direkt als Type-cast, /= kann leider kein
std_logic_vector oder bit_vector.

Oder ein XOR auf den Vector und danach OR_REDUCE (wenn
man die entsprechenden Packages hat) oder so ... ;-)
Pulse <= OR_REDUCE(XOR(Sig1, Sig2));
(Weiss die Schreibweise gerade nicht auswendig.)

Viele Wege führen nach Rom.

Alex

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.