Gast
#3033779
Hallo zusammen, ich habe einen Prozess, der während seiner Aktivität ein busy-Flag ausgeben soll. Dabei wird ein start-Signal angelegt, welches aber nur für einen Takt high ist. Daraufhin soll ein counter gestartet werden und zwar solange, bis der Counter einen bestimmten Wert erreicht hat. Während dieser Zeit soll das busy-Flag gesetzt bleiben und erst beim Erreichen des Counters wieder auf Null gesetzt werden und alles geht erst mit einem start-Signal wieder los. Dazu habe ich folgendes probiert:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
Leider geht das busy-Signal schon mit der ersten Flanke nach dem Reset auf 1, damit fängt der Counter an zu zählen und alles geht schief. Erkennt ihr meine Beschreibung in dem VHDL Code wieder, oder habe ich einen groben Schnitzer gemacht. Man könnte die Sache auch einfach mit einer FSM umgehen (ein state auf start warten, zweiter state busy=1 und counter zählen und dann wieder zurück), aber das wollte ich bewusst vermeiden. Hat jemand einen Hinweis? Liegt es an der sensitivity list? Wenn ja, habe ich es noch nicht ganz verstanden, was da rein muss... meines Erachtens nur Signale, die außerhalb des Prozesses getrieben werden, im Prozess aber abgefragt. Vielen Dank! Ralf