Möglicherweise sehen Sie, dass Benutzer-Ausgabestifte während der Initialisierungsstufe in Intel® Arria® 10 Gerät in einen unerwarteten Zustand gelangen.
Dies liegt daran, dass Benutzerlogik und Benutzer-I/O-Pins gleichzeitig und nicht während der Initialisierung aktiviert werden.
Unten sehen Sie ein Beispiel. ( Abbildung des Beispiels )
- Ein Eingabestift des Benutzers wird mit dem niedrigen aktiven Set-Port eines Registers verbunden.
- Dieser Pin für die Eingabe des Benutzers wird vom Hochfahren bis zum Benutzermodus niedrig gehalten.
- Ein Datenausgangs-Port aus dem Register wird mit einem Benutzer-Ausgabe-Pin verbunden.
Es wird erwartet, dass die Ausgabe-Pins des Benutzers hoch bleiben, da sich die Benutzer-I/O-Pins während der Konfigurationsstufe und des Initialisierungszustands im Eingabe-Tri-Zustand mit schwachem Pull-up befinden und das Register vom eingestellten Port im Benutzermodus auf hoch gesetzt wird.
Aber Logik verwenden und Benutzer-I/O-Pins werden während der Initialisierungsphase aktiviert. Wenn das Register und der Benutzer-Ausgabestift schneller aktiviert werden als der Eingabeport und der Ausgangszustand des Registers niedrig ist, breitet sich der Ausgabestift niedrig aus dem Register aus, bis der Eingabeport aktiviert ist und der festgelegte Port des Registers niedrig wird.
Wenn ein externes Gerät eine Ausgabe vom Intel Arria 10 Gerät überwacht, kann ein unerwarteter Zustand während der Initialisierungsstufe das Verhalten des externen Geräts beeinflussen.
Um dieses Problem zu umgehen, verwenden Sie eine der folgenden Möglichkeiten.
- Problemumgehung 1: Machen Sie das externe Gerät dazu, den Status des Benutzer-Ausgabestifts zu ignorieren, bis INIT_DONE Pin hoch geht (Abbildung der Problemumgehung 1)
- Problemumgehung 2: Bewahren Sie den Eingabestatus auf den externen Geräten unter Verwendung externer Logik auf, bis INIT_DONE Pin hoch geht (Abbildung der Problemumgehung 2)
- Problemumgehung 3: Behalten Sie den Ausgabestatus des Arria 10 Geräts mithilfe der Benutzerlogik, bis das interne INIT_DONE-Signal hoch geht (Abbildung der Problemumgehung 3)
Sie können internes INIT_DONE signal mit der folgendenWYG-Instanziierung verwenden.
<< Verilog->>
twentynm_controller u1 (.initdonecore();
<< VHDL->>
twentynm_controller der Komponente ist
Port( initdonecore: out STD_LOGIC );
Endkomponente;
u1: twentynm_controller
port map( initdonecore => );