In der Altera-FPGA-Dokumentation wird auf eine „I/O-Weak-Pullup“-Funktionalität verwiesen.
Ich möchte interne schwache Pullups anstelle externer Pullups verwenden, um eine PCB-Modifikation zu vermeiden.
Es scheint möglich zu sein, einen schwachen Pull-Up für einen I/O in Quartus zu aktivieren. Aber es gibt keine Informationen darüber, wie man es aktiviert.
Irgendwelche Hinweise?
Es gibt zwei Möglichkeiten, dies zu tun.
Der erste Ansatz ist im Pin-Planer-Tool. Dies ist die GUI, mit der Sie auswählen können, welcher Pin wohin geht. Gehen Sie im Hauptfenster bei geöffnetem Projekt zum Menü Aufgaben und wählen Sie Pin-Planer (oder drücken Sie Ctrl+ Shift+ N).
Klicken Sie im Pinplaner-Fenster unten in der Ansicht „Alle Pins“ mit der rechten Maustaste auf eine beliebige Spaltenüberschrift und wählen Sie „Spalten anpassen“:
Scrollen Sie in dem sich öffnenden Fenster auf der linken Seite nach unten und suchen Sie nach "Weak Pull-up Resistor" (bei mir ist es der dritte von unten). Klicken Sie darauf und dann auf die rechte Pfeilschaltfläche, um es zu den sichtbaren Spalten hinzuzufügen. Klicken Sie dann auf OK.
Zurück im Pin Planner-Fenster sollten Sie nun eine neue Spalte mit dem Namen Weak Pull-Up Resistor sehen. Klicken Sie für jeden Pin, für den Sie es aktivieren möchten, einfach in das Feld für diese Spalte und wählen Sie „Ein“ (Sie können auch „Ein“ in das Feld eingeben). Standardmäßig ist es auf „Aus“ gestellt – wenn die Spalte also leer ist, bedeutet dies dasselbe, als ob es „Aus“ heißt.
Sie können es auch manuell mit dem Werkzeug "Zuweisungseditor" zuweisen. Dies ist nützlich, wenn Sie es beispielsweise für alle Pins in einem Bus oder sogar nur für alle Pins aktivieren möchten. Hier können Sie Platzhalter verwenden.
Öffnen Sie das Zuweisungseditor-Tool im Hauptfenster, indem Sie zum Menü „Zuweisungen“ gehen und „Zuweisungseditor“ auswählen (oder Ctrl+ Shift+ drücken A) .
Am Ende der Zuordnungsliste befindet sich eine Zeile, in der alle Einträge sind <<New>>
. Klicken Sie in die Spalte „Assignment Name“ und wählen Sie „Weak Pull-Up Resistor“ aus. Wählen Sie dann in der Spalte „Wert“ „Ein“. Geben Sie schließlich in der Spalte „An“ den Pin-Namen ein (der das Platzhalterzeichen enthalten kann *
).
Dadurch wird das Pull-up für jeden Pin aktiviert, der mit dem Namen in der Spalte „An“ übereinstimmt.
Ich möchte darauf hinweisen, dass die schwachen Pullup-Widerstände auf einem FPGA/SOC/MCU kein Ersatz für echte externe Pullups sind. Wenn Sie also eine Strategie für die Verwendung entwickeln, berücksichtigen Sie bitte Folgendes.
Meine Empfehlung lautet daher, der bekanntesten Designmethode zu folgen, die von vielen großen und kleinen Unternehmen übernommen wurde, und externe Pullup-Widerstände an Netzen zu verwenden, die von einem FPGA/SOC/MCU kommen, um sie mit anderen Teilen der Platine zu verbinden oder zu testen Punkte. Designempfehlungen wie diese schlagen vor, Klimmzüge mit nicht mehr als 10 K Ohm zu verwenden, wobei 4,7 K im Allgemeinen besser sind. Kleinere Werte sind auszuwählen, wenn dies durch die Schaltungsanforderungen gerechtfertigt ist.
Beachten Sie, dass fast dieselben Kommentare und Empfehlungen auch für die Verwendung von schwachen Pulldown-Widerständen auf dem Chip gelten.
Innerhalb der qsf-Datei können Sie Folgendes hinzufügen:
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to pin_name
Qiu