Hallo, bräuchte mal eine Info zu einem ucf File des Demo Boardes Virtex-5. Wollte mal ein eigenes Projekt auf den FPGA spielen und blicke jedoch bei der Pin Zuweisung noch nicht ganz durch. Auf welchen Pin wird der externe Clock gelegt (N15??) Mit welchem Befehl kan man ungenützte Ausgänge auf einen definierten Zustand ziehen (Pull up) bzw. tristate vermeiden. Für Infos bin ich sehr dankbar.
mit den unbenutzten pins musst du nix machen, oder gibt es dafür bei dir einen bestimmten grund? welches board hast du? ml505
> Mit welchem Befehl kan man ungenützte Ausgänge auf einen definierten > Zustand ziehen (Pull up) bzw. tristate vermeiden. Während der Konfiguration gibt es Optionen bei "Generate Programming File" (Rechtsklick). Unused IOB Pins kann man hier z.B. auf PullUp oder -Down stellen. Nachdem das FPGA konfiguriert ist, mußt du Steuerausgänge, die an andere Bausteine gehen (Chip-Select) in deinem VHDL-Code als Ausgang definieren und auf den inaktiven Pegel stellen. Am schlimmsten ist es, wenn du einen Steuereingang einfach an einen FPGA-Eingang (= unbenutzter Pin) anschließt. Dann ist der Pegel an beiden Eingängen undefiniert. Und undefinierte Pegel bei CMOS-Eingängen ziehen einen erhöhten Strom durch die Transistoren der Eingangstreiber nach sich.
Wegen den unangeschlossenen Pins war mir klar warum ich es machen muss, aber ich wusste nicht wo ich das einstellen kann. Kenne bis jetzt nur den Cyclone II und bei diesem machen ich dass durch einen einzigen Befehl im qsf file. Nun dachte ich mir, dass es für das ucf file auch einen ähnlichen Befehl geben muss. Könnte mir noch jemand sagen welcher Pin für den Eingangstakt der richtige ist für das Demo Board ML507. Vielen Dank
AH15 -> 100MHz AH17 -> 33MHz AG18 -> 27MHz ohne gewähr :) aber wenn du nen bischen in den dokumenten des boards schaust findest du das auch
coder schrieb: > Ist ein Tristate-Output standardmäßig durch high oder low enabled? Wie meinen? Ein Tristate-Ausgang wird z.B. in VHDL hochohmig, wenn man ein 'Z' auf ihn schreibt. Er wird low, wenn amn eine '0' auf ihn schreibt, und das mit dem high kannst du dir selber herleiten. Ob der für diese Umschalterei intern ein high oder ein low braucht, ist egal.
Mich hat es nur gewundert, warum die Synthese einen nicht gewünschten Inverter vor den T-Input des Tristate-Outputs gehängt hat.
coder schrieb: > Mich hat es nur gewundert, warum die Synthese einen nicht gewünschten > Inverter vor den T-Input des Tristate-Outputs gehängt hat. Wo?
Ich habe hier einen Spartan-II, dessen Outputs von einem Signal, welches von extern herangeführt wird, aktiviert werden. Der Port activate übergibt das Signal, welches für eine Aktivierung '1' wird, an die Logik:
1 | s_activate_async <= ACTIVATE; |
2 | |
3 | process(s_clk) |
4 | begin
|
5 | if rising_edge(s_clk) then |
6 | s_activate <= s_activate_async; |
7 | ...
|
8 | end if; |
9 | end process; |
10 | |
11 | READY <= s_ready when s_activate = '1' else 'Z'; -- s_ready wird '1' wenn die CLKDLL locked |
Im RTL-Schematic wird nun das Signal s_activate, bevor es zum tristate-Output geführt wird, über einen Inverter geführt. Es hat mich verwundert, aber vielleicht wird es ja von der Synthese so zurechtgebogen wie es der tristate braucht(?).
Naja, wenn man sich das OBUFT Element anschaut, wirds klarer. Offenbar verlangt die Logik am IOB tatsächlich eine 1 für den TS Modus. Ist ja aber völlig egal, dazu gibts ja Hochsprachen wie VHDL ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.