Muss man die Zustände in FSM synchronisieren?

Gast #4102314
Lesenswert?

Abend
Nehmen wir an, ich habe zwei Clockdomains:
z.B.
1
process(clk1)
2
if rising_edge(clk1)then
3
   case FSM is
4
    when ST1=>
5
      a<=b;
6
      if(c=1)then
7
      FSM<=ST2
8
      end if;
9
    when ST2=>
10
      a<=d;
11
      if(c=2)then
12
       FSM<=ST3
13
      end if;
14
      ......usw
15
end if;
16
end process;
und
1
process(clk1)
2
if rising_edge(clk2)then
3
   case FSM is
4
    when ST1=>
5
      e<=g;
6
         .......
7
    when ST2=>
8
      e<=f;
9
         .......
10
      ......usw
11
end if;
12
end process;
Ich weiß, dass man die Steuersignale zwischen  den clockdomains durch 
zwei FF synchronisieren muss, aber wie sieht es mit FSM  aus?
Wie synchronisiere ich denn die Zustände?
Moderator (Firma: Titel) Persönliche Seite #4102352
Lesenswert?

Magnetron schrieb:
> Wie synchronisiere ich denn die Zustände?
Du bräuchtest hier ein Handshake-Verfahren zur Übergabe des aktuellen 
Zustands, weil eine FSM idR aus mehreren FF besteht und somit einen 
parallelen Bus darstellt.
Und parallele Busse werden über ein zusätzliches Steuersignal (z.B. als 
"data_valid") an eine andere Domäne übergeben.
Einfach nur "über 2 Flipflops eintakten" wird hier zwingend schiefgehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren