|
Betreff |
Autor |
Datum |
|
Re: elsif ungleich case ?
Hallo Tobias,
das liegt daran, dass du dem Synthesetool nicht vorschreibst, wie sich IO(1) und IO(2) in den nicht beschriebenen Fällen verhalten sollen. Es sieht so aus, als ob bei if Latches generiert werden und beim case nicht (Das ist auch von Synthese-tool zu Synthese-tool unterschiedlich). Dadurch werden im ersten Fall die IO-Daten gehalten bis die Anweisung für das Rücksetzen kommt und im zweiten Fall nicht.
Um das gewünschte Verhalten für beide Beschreibungsarten zu erhalten, solltest du in die else bzw. when others -Bedingung den Halteterm eintragen IO(1) <= IO(1); IO(2) <= IO(2);
Wenn die IOs als output definiert sind, wird es hier eine Fehlermeldung geben. Deshalb ist es ratsam hierfür interne Signale zu erzeugen, die am Schluss den Outputs zugewiesen werden.
Signal io1 : std_logic;
Signal io2 : std_logic;
Im Prozess werden dann die internen Signale io1 und io2 benutzt.
Ausserhalb des Prozesses kommt dann noch die Zuweisung:
IO(1) <= io1; und
IO(2) <= io2;
Damit sollte es dann funktionieren.
Gruß
Bernd
|
BerndR |
21.12.09, 10:12 |
|
Re: deutsches tutorial für abel
Hallo Crazy,
anbei findest du eine Sammlung von Dateien eines deutschsprachigen Abel-Workshops mit Beispieldateien. Ich hoffe es hilft dir, die Sprache schnell zu lernen. Mir stellt sich allerdings die Frage, warum ihr das lernen sollt. Heutzutage wird das doch kaum noch genutzt.
Viel Spaß
Bernd
P.S.: Wenn du noch Verständnisfragen hast, melde dich ruhig.
|
BerndR |
28.01.08, 09:26 |
|
Re: Nachschlagewerke für VHDL
Hallo Martin,
da kann ich dir die Lattice Starter Software empfehlen. Die kannst du dir kostenlos von der Website: http://www.latticesemi.com
herunterladen. Darin enthalten ist ein Hilfstool namens ipExpress.
In diesem Tool findest du die verschiedensten VHDL Module, wie Counter, Schieberegister oder auch komplexere Sachen. Diese Module kannst du mit dem Tool parametrieren und heraus kommt lauffähiger VHDL-Code.
Probier's einfach mal aus.
Viel Spaß
Bernd :)
|
BerndR |
22.05.07, 09:59 |
|
Re: Erklaerung
Hallo Jojo,
also der erste Term beschreibt einen 22 Bit upCounter, denn:
Clkdiv + 1 ist der freilaufende up Counter und
mod 2**cntsize beschreibt den Überlauf bei 2 hoch 22.
Der zweite Term nimmt dann das höchstwertige Bit als heruntergeteilten Takt. Da dieses Signal wohl als unsigned definiert wurde, muss die Umwandlung per To_unsigned(Signal, Länge) gemacht werden.
Bernd :)
|
BerndR |
10.01.07, 11:18 |
|
Re: VHDL Befehlsliste
Hallo Viktor,
if Abfragen sind nur innerhalb von Prozessen erlaubt.
Bernd ;)
|
BerndR |
10.01.07, 11:04 |
|
Re: suche einfaches Programm für den Einstieg in VHDL
Hallo Micha,
auf den ersten Blick würde ich sagen, dass die end if Anweisung vor der next Anweisung stehen muss, da die If Abfrage innerhalb der For Schleife abgeschlossen sein muss.
Als einfaches Programm für VHDL Anfänger empfehle ich dir das ispLever Starterkit von Lattice. Das kannst du dir kostenlos von der Website Http://www.latticesemi.com laden. Dort sind viele Beispiel Designs auch in VHDL vorhanden und die online Hilfe ist inzwischen auch sehr gut.
Gruß
Bernd
|
BerndR |
02.05.06, 12:43 |
|
Re: mehr als 3x Variable ändern
Hallo Nobbe,
vergiss dass mit dem Umformen. Es soll dir nur zeigen, dass man nicht so einfach mit einem std_logic rechnen kann, da es hier auch Zustände wie U, X oder Z geben kann. So wie ich es geschrieben habe, ist es konform zum IEEE Standard (durch Nutzung der library numeric_std). Einfacher ist es aber die library unsigned zu nutzen. Die macht die Umformung automatisch (ist nur quasi standard, wird aber von allen mir bekannten FPGA Designern erfolgreich benutzt).
Ich habe dein Design in ein Lattice CPLD vom Typ LC4256V-75T176C programmiert. Damit läuft es ohne heiß zu werden. Gemessen habe ich die Ausgänge allerdings nicht, ich sehe nur, dass die LED an "Pin45" aus ist, wenn alle Switches auf "1" liegen.
Gruß
Bernd
|
BerndR |
18.01.06, 09:29 |
|
Re: mehr als 3x Variable ändern
Hallo Nobbe,
auf Grund deiner Fragen habe ich dein File noch einmal etwas umgeschrieben. Jetzt funktioniert es auch in Hardware.
Gruß
Bernd
|
BerndR |
17.01.06, 11:39 |
|
Re: mehr als 3x Variable ändern
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
|
BerndR |
17.01.06, 11:21 |
|
Re: mehr als 3x Variable ändern
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
|
BerndR |
16.01.06, 17:00 |
|
Re: Blutiger Anfänger
Hallo Björn,
wenn du mit der Lattice ispLever Software arbeitest, gibt es im Projektnavigator einen Constraint Editor (für CPLDs) oder einen Pre-Map Preference Editor (für FPGAs). Ein Doppelklick darauf startet die VHDL-Synthese (wenn sie noch nicht durchgelaufen ist) und öffnet anschließend den Editor. Dort kannst du die Pins in eine Tabelle eintragen oder grafisch per Drag and Drop verteilen.
Gruß
Bernd :)
|
BerndR |
28.10.05, 10:05 |
|
Re: Blutiger Anfänger
Hallo Björn,
und den Schaltplan für das Downloadkabel. Der Treiber ist nicht unbedingt nötig. Bei mir läuft es auch mit 100 Ohm Serienwiderständen.
|
BerndR |
26.10.05, 09:39 |
|
Re: Blutiger Anfänger
Hallo Björn,
dann sende ich dir erst einmal die VHDL Einführungslektüre.
Gruß
Bernd :)
|
BerndR |
26.10.05, 09:36 |
|
Re: Blutiger Anfänger
Hallo Björn,
dann fangen wir ganz klein an.
Erst einmal besorgst du dir die ispLever Starter Software von Lattice (http://www.latticesemi.com) mit der dazugehörigen Lizenz (gilt 6 Monate und kann beliebig oft verlängert werden).
Dann schicke ich dir eine Anleitung für das Tool und ein einfaches Projekt in VHDL. Wenn du es dann noch in Hardware ausprobieren möchtest empfehle ich dir ein kleines Eval-board (gibt es für kleines Geld bei http://www.hardware-design.de). Die dort angebotenen Boards bzw. Bausteine passen zur Lattice Software (ich habe fertig angepasste Beispiele für das LC4064 und LFEC Board). Ein Downloadkabel kannst du dir dort auch besorgen, oder selbst bauen (Schaltplan kann ich dir geben). So, dann brauchst du noch eine VHDL Anleitung. Da kann ich dir eine Präsentation eines älteren VHDL Kurses schicken.
Gruß
Bernd :)
|
BerndR |
25.10.05, 17:04 |
|
Re: Blutiger Anfänger
Hallo Björn,
welche Vorkenntnisse hast du denn schon? Kennst du dich mit GALs oder CPLDs aus? Hast du schon etwas mit ABEL oder AHDL gemacht?
Ich kann dich mit Infos zu Lattice FPGAs versorgen.
Gruß
Bernd :)
|
BerndR |
25.10.05, 14:12 |
|
Re: wie VHDL funktioniert?
Hallo Nadine,
ich habe ein kleines Bild, welches dir die Analogie zwischen VHDL und einem konkreten Board zeigt. Vielleicht macht es die Sache für dich anschaulicher.
Gruß
Bernd :)
|
BerndR |
03.08.05, 10:28 |
|
Re: ANFÄNGERIN
Hallo Alida,
welche Version von Modelsim hast du denn?
Ich habe einige Anleitungen für Modelsim unter Windows.
:)
|
BerndR |
28.04.05, 11:20 |
|
Re: Sekundentakt realisieren
Hallo Chris,
in dem File, das ich dir geschickt habe ist das auch implementiert.
Gruß
Bernd :)
|
BerndR |
19.11.04, 09:15 |
|
Re: Entwurf einer Uhr
Hallo Chris,
schau dir doch mal das anhängende File an. Dort sind schon mal Stunden und Minuten implementiert. Die Schaltung läuft auf einem Eval-Board mit einem Baustein von Lattice ohne Probleme.
Gruß
Bernd
|
BerndR |
22.10.04, 09:58 |
|
Re: Artikel in der Design & Verification
Hallo,
ich kann dazu nur aus Sicht der programmierbaren Logik etwas sagen. Hier sind die mulimillionen Gatter Designs noch nicht so breit gestreut. Wir sehen bei unseren Kunden eine große Bereitschaft auf VHDL umzusteigen (von Schaltplan, ABEL oder AHDL). Also wird die Zahl der VHDL-Anwender (zumindest in Europa) noch weiter stark ansteigen.
Ein Aussterben von VHDL im Bereich der CPLDs und FPGAs ist deshalb meiner Meinung nicht zu erwarten.
Kritisch kann es für Firmen werden, die große ASIC Designs mit VHDL entwickeln und dort an die Grenzen der Tools stoßen.
Gruß
Bernd
|
BerndR |
08.07.04, 09:55 |
|
Re: Umsetzung rising_edge(clk)
Hallo,
soweit ich weiß, ist die zweite Möglichkeit erst in dem neueren VHDL-Standard unterstützt und hat ausser der kürzeren Schreibweise keine Auswirkungen.
Gruß
Bernd
|
BerndR |
25.06.04, 10:32 |
|
Re: Simulation von Buszyklen
Hallo Michael,
danke für den Beispielcode und das Instruction-file. Ist auch gar nicht so schwer zu verstehen. Ich werde es bei Gelegenheit mal mit meiner Simulation ausprobieren.
Gruß
Bernd
|
BerndR |
25.06.04, 10:25 |
|
AW: Unterschied zwischen net und pin im ucf file
Ok, dann klinke ich mich aus, da ich nicht mit Xilinx arbeite.
Gruß
Bernd
-----Ursprüngliche Nachricht-----
Von: Samuel [mailto:@carookee.com]
Gesendet: Samstag, 19. Juni 2004 12:43
An: [email protected]
Betreff: Re: Unterschied zwischen net und pin im ucf file
tja - ich habs wohl schlecht erklärt!
also ich verwende net und pin im ucf file!!!
aber wie gesagt geht es mit pin nicht und nur mit net - was ist der
unterschiede zwischen den beiden Sachen?
grüßle
Mit bonus.net bis zu 70% beim Einkauf sparen!
Jetzt anmelden und kostenlos testen!
_____
Um auf diesen Beitrag zu antworten, benutzen Sie die Antworten-Funktion
Ihrer Mail-Software.
Einen neuen Beitrag im Forum
verfassen · Diesen Beitrag
online lesen ·
Mailingliste
|
BerndR |
21.06.04, 09:05 |
|
AW: Unterschied zwischen net und pin im ucf file
Hallo Sam,
PIN und NET hört sich stark nach Hardware an. Das sollte nicht unbedingt in
das VHDL-Source file.
Dafür gibt es (zumindest bei Lattice) ein Constraint-file, wo die
hardwareabhängigen Sachen abgelegt werden.
Gruß
Bernd
-----Ursprüngliche Nachricht-----
Von: Samuel Wenz [mailto:@carookee.com]
Gesendet: Freitag, 18. Juni 2004 08:48
An: [email protected]
Betreff: Unterschied zwischen net und pin im ucf file
Hallo zusammen.
Bin wieder aus der Theoriephase zurück und werde hier wieder kräftig
loslegen.
Ich habe einen kleinen Konflikt mit nets und pins. Was ist genau der
Unterschied zwischen den beiden Bezeichnungen. Warum geht mein VHDL File mit
PINs nicht und bei NETs compiliert es gar nicht? Obwohl ich sowohl im vhdl
als auch im ucf file die gleichen Bezeichnungen verwende?
Vielleicht weiss ja hier einer mehr?
gruß sam
PS bitte schreibt mir doch eine email.
Mit bonus.net bis zu 70% beim Einkauf sparen!
Jetzt anmelden und kostenlos testen!
_____
Um auf diesen Beitrag zu antworten, benutzen Sie die Antworten-Funktion
Ihrer Mail-Software.
Einen neuen Beitrag im Forum
verfassen · Diesen Beitrag
online lesen ·
Mailingliste
|
BerndR |
18.06.04, 14:25 |
|
Re: Simulation von Buszyklen
Hallo Dr. Faustus,
nein mit File I/O habe ich noch nichts gemacht. Wäre super, wenn du mir ein Codebeispiel schicken kannst.
Gruß
Bernd
|
BerndR |
16.06.04, 12:21 |
|
Re: Simulation von Buszyklen
Problem hat sich erledigt, habe ein bisschen rumgespielt und eine Lösung gefunden.
|
BerndR |
16.06.04, 11:19 |
|
Re: drecksforum
Hallo Gubi,
ich habe mir auch etwas mehr Aktivität gewünscht. Meine Frage hat bis jetzt noch Keiner gelesen. Zum Glück habe ich inzwischen selbst eine Lösung gefunden. Zu deinem Multiplizierer Problem habe ich leider gar nichts gefunden. Bin halt auch noch Anfänger. Ich komme aber als Applikationsingenieur viel rum und werde mal horchen, ob nicht irgendwer so etwas schon mal gemacht hat.
Gruß
Bernd
|
BerndR |
16.06.04, 11:11 |
|
Re: Is ja noch nich so viel los hier...
Hallo Leute,
bin auf der Suche nach einer Lösung für mein VHDL-Problem in diesem Forum gelandet. Ich kann den Reigen der PLD-Hersteller ergänzen. Ich arbeite professionell mit VHDL und nutze dazu die Tools und Bausteine von Lattice. Aktuell schreibe ich an einem PCI-Design.
Auf einen regen Austausch!
Bernd :)
|
BerndR |
09.06.04, 13:36 |
|
Simulation von Buszyklen
Hallo,
wer kann mir sagen, wie ich mit ModelSim meine Simulation komfortabler gestalten kann? Ich habe ein PCI-Design geschrieben, welches ich jetzt ausgiebig testen will. Damit das nicht eine unendlich lange unübersichtliche Tabelle wird, möchte ich einen PCI-Bus-Zyklus als Funktion oder Prozedur schreiben, die ich bei Bedarf nur mit den entsprechenden Parametern aufrufen will (Adresse, Datum, Lesen/Schreiben, etc.). Ich habe schon lange im Internet gestöbert, aber noch nichts Passendes gefunden.
Gruesse
Bernd :)
|
BerndR |
09.06.04, 13:34 |
|
|
|