Hallo,
es dreht sich hier um die Kommunikation zwischen einem Mikrocontroller
und einem ASIC über den gemultiplexten adress-daten BUS.
Im speziellen möchte ich das ALE Signal betrachten. Dieses kann vom
Controller der mit 80MHz betrieben wird um maximal einen takt verlängert
werden. Dabei kommt man auf 25ns.
Das ASIC dagegen wird mit 12.8 MHz betrieben. Im Code-Teil für die
Steuerung des BUS steht nun folgendes:
1 | save_addr :
|
2 | PROCESS ( addrdec_ale, addrdec_clearn )
|
3 |
|
4 | BEGIN
|
5 | IF addrdec_clearn = '0' THEN
|
6 | adbus_dff <= "00110000000000000000" ;
|
7 | ELSIF ( addrdec_ale = '1' ) THEN
|
8 | adbus_dff <= addrdec_adbus ;
|
9 | END IF ;
|
10 | END PROCESS save_addr;
|
Hier steht die Abfrage ale=1.
Das heisst für mich da der Teil in einem Prozess steht, dass ale Pegel-
und nicht flankengesteuert ist. Wird dabei der ale-Pegel im ASIC für
einen Taktzyklus (12.8MHz) lang abgefragt? Der Prozessor sendet
allerdings ein ale mit 25ns, welches viel kürzer ist.
Könnten dadurch Probleme entstehen oder was für Auswirkungen können
auftreten?