Hallo, bin ziemlich neu in der VHDL Programmierung und habe bereits ein Problem: Will ich mit einer Taste (auf dem Board: South -> K17) eine LED (LD0 -> F12) leuchten lassen, so leuchtet sie zwar bei Tastendruck auf, bleibt jedoch bei einmaligem Drücken der Taste für ca. 3 sec an. Solange prellt doch keine Taste? Was könnte das Problem sein? library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.numeric_std.ALL; entity topfile is Port ( clk : in STD_LOGIC; led : out STD_LOGIC := '0'; taste: in STD_LOGIC); end topfile; architecture Behavioral of topfile is begin process begin wait until rising_edge(clk); if taste = '1' then led <= '1'; else led <= '0'; end if; end process; end Behavioral; Benutze ISE 9.2 und das Developmentboard Spartan-3E mit dem XC3S500E! In der Simulation siehts prima aus! mfg
> auf dem Board:
Auf WELCHEM Board?
Zeig mal dein UCF, das klappt evtl. besser, wenn du dort einen PULLDOWN
mit einbaust:
NET "taste" LOC = "K17" | IOSTANDARD = LVTTL | PULLDOWN ;
1 | use IEEE.STD_LOGIC_ARITH.ALL; |
2 | use IEEE.STD_LOGIC_UNSIGNED.ALL; |
3 | use IEEE.numeric_std.ALL; |
Viel Spass damit... Siehe Beitrag "IEEE.STD_LOGIC_ARITH.ALL obsolete"
joe schrieb: > Aber warum gehts jetzt;) Schaltplan des EVAL-Boards und Port-Pin Beschreibung ansehen... http://www.wattystuff.net/electronics/spartan-3e-fpga-starter-board/spartan-3e-fpga-nsew-buttons/ Der FPGA-Pin ist hochohmig, wenn er "einfach" nur als Eingang definiert wird. Und der Schalter schaltet "nur" 3V auf den Pin, wenn er betätigt ist. Aber wenn der Schalter nicht betätigt ist, belibt der hochohmige Pin ganz sich selber überlassen. Und dann schleicht in 3s die Ladung so langsam davon, bis irgendwann aus der '1' eine '0' wird... Der Pulldown sorgt für einen definierten Pegel (=Low) bei offenem FPGA-Pin.
Danke für die schnelle Antworten! Das ich den FPGA Pin in einem undefinierten Zustand lasse nach loslassen der Taste hab ich gar nicht bemerkt, aber klingt völlig logisch! Danke für den Link;)
Ich gehe davon aus, dass Du das Spartan3E-Starterkit von Digilent hast. Da ist die Benutzung der Taster im Handbuch eigentlich sehr gut beschrieben, inklusive dem Hinweis das Du zwingend einen Pulldown brauchst.
Ja, richtig. Finde das Handbuch "Introduction to programmable logic" aber nicht gerade überzeugend. Jedoch bin ich in VHDL noch net wirklich richtig drin. Gibts gute empfehlendswerte Tutorials im Netz? Für ISE 9.2?
joe schrieb: > Ja, richtig. > Finde das Handbuch "Introduction to programmable logic" aber nicht > gerade überzeugend. Jedoch bin ich in VHDL noch net wirklich richtig > drin. > Gibts gute empfehlendswerte Tutorials im Netz? > Für ISE 9.2? Hallo Joe... Ich empfehle dir einen wechsel zu einer aktuelleren ISE. Ich würde die 12.2 oder die 13.1 nehmen. Ist geschmacksache, da manche erste eine nehmen für die es ein erstes Release gibt. Hier ein Link zu den Tutorials von Xilinx: http://www.xilinx.com/support/documentation/index.htm Gruß Boris
Für den Anfang erstmal nicht, erst wenn du einen uC in deinen FPGA integrieren willst. Und die EDK ist nicht umsonst, kostet einzeln ca. 500 Eur...
Aber ISE muss man auch bezahlen oder arbeitet Ihr immer mit Weppack?
ISE Webpack ist umsonst. Es kann halt nur die kleinen Bausteine wie z.B. deinen Spartan 3e. Ich habe an der Arbeit auch nur Webpack (wir benutzen ja auch nur 3A DSP 1800 und Spartan 6)
joe schrieb: > was ist mit EDK? > Benötige ich das? Die Frage mußt du dir selber beantworten. Wenn du mit uCs in FPGAs herummachen willst, dann ja. joe schrieb: > Finde das Handbuch "Introduction to programmable logic" aber nicht > gerade überzeugend. Das hat nichts mit dem Handbuch zum EAVL-Borad zu tun... > Gibts gute empfehlendswerte Tutorials im Netz? Kauf dir ein Buch. Da kannst du besser rumkritzeln...
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.