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?