Hallo zusammen,
Einsynchronisieren von Signalen ist bei VHDL ja ziemlich üblich und
kommt bei mir auch mehrfach im Code vor.
Dabei sieht das ganze immer in etwa so aus:
1 | sync_signal : PROCESS (clk)
|
2 | BEGIN
|
3 |
|
4 | IF rising_edge(clk) THEN
|
5 | signal_d1 <= signal;
|
6 | signal_d2 <= signal_d1;
|
7 | END IF;
|
8 |
|
9 | signal_int <= signal_d2
|
10 |
|
11 | END PROCESS;
|
Es gibt hier noch "schönere" Lösungen indem man mit Vektoren arbeitet
etc.
Was ich aber aktuell versuche ist das Einsynchronisieren über zwei FFs
mittels einer Funktion oder Prozedur.
Ich stelle mir sowas vor wie:
1 | signal_int <= sync_function(signal_ext,clk)
|
Leider scheint es nicht möglich zu sein, innerhalb einer Funktion oder
Procedur flankensensitiv zu arbeiten, oder geht sowas?
Gibt es hier etwas einfacheres als obigen Process immer wieder zu
nutzen?
Danke und Grüße
Maxen