VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
mehr als 3x Variable ändern

Anfang   zurück   weiter   Ende
Seite: 1, 2
Autor Beitrag
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 15.01.06, 14:26  Betreff:  mehr als 3x Variable ändern  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Hallo Leute!
im Vorraus : Bin nen Anfänger.

Ich habe ein Problem mit VHDL und einem FPGA. Ich will ein PWM
erzeugen, bei welchem ich mit 4 Schaltern die Pulsdauer änern kann.
Das PWM erzeugen funzt, wenn ich nur 3 Schalter benutze/programmiere
tut es auch(Bild1), aber sobald ich den 4ten hinzufüge -> seht selbst
(Bild2/3) (die Doppelbalken im Bild3 kommen vom Oszi, ist nicht mehr
das beste)

Habt Ihr eine Ahnung warum?
Auf mich macht es den Eindruck, das ich eine Varaible nicht mehr als
3mal ändern kann. Kann das sein???

Bilder und Code sind in der Zip

greez Nobbe


[editiert: 15.01.06, 15:20 von nobbe]



Dateianlagen:

pwm_prob.zip (134 kByte)
anzeigen - speichern
Datei wurde schon 368-mal heruntergeladen.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 16.01.06, 12:27  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

ja wie? hat hier keine eine idee woran das liegen könnte?
es liegt aber nicht an der hardware, denn wenn ich z.b. den dip4 wieder einkommentiere und dafür den 3er raus mache tut es auch

greez

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Ines
Gast
New PostErstellt: 16.01.06, 13:59  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Nobbe,

so direkt habe ich keinen Fehler in Deinem Code entdeckt. Ich würde zwar eigentlich keine Integer-Werte verwenden, sondern std_logic_vector bevorzugen, oder zumindetens die Integer begrenzen (variable dip_int : interger range 15 downto 0;), aber sonst ...???

Was sagt denn die Simulation? Mal die Synthese-, Place/Route-Fehlermeldungen angeschaut?

Gruß
Ines
nach oben
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 16.01.06, 15:21  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

Hallo!
Das ist ja grad das komschie, im Simulator tut das wunderbar...
Aber wie würde das mit dem "std_logic_vector" aussehen? Kann mir das grad nicht vorstellen.

greez

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
BerndR
Stammgast


Beiträge: 29

New PostErstellt: 16.01.06, 17:00  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Nobbe,

hab dir mal das Ganze auf Std_logic umgestellt. Leider habe ich hier keine Hardware zum Austesten. Die Synthese und Simulation sieht gut aus.

Gruß

Bernd



Dateianlagen:

main.vhd (2 kByte)
anzeigen - speichern
Datei wurde schon 306-mal heruntergeladen.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 16.01.06, 19:47  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

hmm..jetzt tuts gar nicht mehr

und was muss ich mir genau unter einem "std_logic_vector" vorstellen?
ist das eine art array?

hmmm... ich verstehe den folgenden zeile nicht ganz, kannst du die mir erklären?
"pulsdauer := 6 * to_integer(unsigned(dip_int));"

hoffe die fragen sind nicht zu "dumm"

greez

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
BerndR
Stammgast


Beiträge: 29

New PostErstellt: 17.01.06, 11:21  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Nobbe,

ich habe die Schaltung heute in Hardware gegossen. Funktioniert aber bei mir auch nicht. Ich denke, wir müssen deine PWM etwas umschreiben.

Zu deiner ersten Frage:
std_logic_vector ist ein Bus der sich aus einzelnen std_logic Signalen zusammensetzt, dabei gibt man die Busbreite in der Klammer an. Die einzelnen Bussignale kann man dann wieder durch Angabe des entsprechenden Bits in der Klammer hinter dem Bus-Namen angeben. Als Beispiel nehmen wir mal einen 16Bit Datenbus. Dem gibst du den Namen "Data" und definierst ihn als std_logic_vector(15 downto 0). Wenn du nun z.B. Bit 0 einzeln ansprechen willst, schreibst du "Data(0)".

Zu deiner zweiten Frage:
Wenn man eine integer Zahl ( in diesem Fall 6) mit einem Wert vom Typ std_logic_vector multiplizieren will, muss man den Typ erst konvertieren. Std_logic kann ja auch "U,Z oder X" sein. Diese Umwandlung macht man mit der angegebenen Formel (to_integer(unsigned(std_logic_vector))). Damit das funktioniert muss man die library IEEE.numeric_std.all einbinden.

Ich hoffe, das beantwortet deine Fragen

Gruß

Bernd

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
BerndR
Stammgast


Beiträge: 29

New PostErstellt: 17.01.06, 11:39  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

Hallo Nobbe,

auf Grund deiner Fragen habe ich dein File noch einmal etwas umgeschrieben. Jetzt funktioniert es auch in Hardware.

Gruß

Bernd



Dateianlagen:

main.vhd (2 kByte)
anzeigen - speichern
Datei wurde schon 371-mal heruntergeladen.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 17.01.06, 12:23  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

ok, das muss ich dann mal heute abend ausprobieren, auf arbeit habe ich kein board dabei

aber das mit dem "to_integer(unsigned(Dip))" habe ich noch nie gerhört, steht auch nicht in der syntax.pdf die ich habe.
liegt wahrscheinlich daran, das es in der "IEEE.numeric_std.ALL;" enthalten ist. gibts draüber auch eine syntax-beschreibung?

und soweit ich den code verstanden habe muss ich jetzt in der *.ucf datei dann stat "dip1" z.B. "dip(0)" schreiben oder?

aber was ich nicht verstehe warum du mir auch die LED's in ein vector gemacht hast.

greez

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
nobbe
Junior-Mitglied


Beiträge: 14

New PostErstellt: 17.01.06, 22:07  Betreff: Re: mehr als 3x Variable ändern  drucken  weiterempfehlen Antwort mit Zitat  

hmm...
hab den code mal ausprobiert, es tut zwar jetzt, habe aber einen dc-offset, und mein fpg wird sau heiß...naja ich glaube da stimmt was noch net, habe das mit dem vecotr aber jetzt begriffen und werd bei gelgenheit das mal versuchen selber zu schreiben...
aber das mit dem umformen...muss da wohl mal in google schauen, obs da ne gute erklärung gibt

greez

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ndern:  
Anfang   zurück   weiter   Ende
Seite: 1, 2
Seite 1 von 2
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj