Jan R. schrieb:> mit man dieses FPGA Board in VHDL Programmieren kann?
Kurzer Impuls: warum heißt es VHDL und nicht VHPL?
Richtig: weil VHDLkeine Programmiersprache, sondern eine
Beschreibungssprache ist. Das wird dir sicher irgendwann mal auffallen.
Lothar Miller schrieb:> Jan R. schrieb:>> mit man dieses FPGA Board in VHDL Programmieren kann?> Kurzer Impuls: warum heißt es VHDL und nicht VHPL?>> Richtig: weil VHDLkeine Programmiersprache, sondern eine> Beschreibungssprache ist. Das wird dir sicher irgendwann mal auffallen.
Ja ist doch klar, hat je jemand behauptet, dass VHDL eine
Programmiersprache sei?
Jan R. schrieb:> hat je jemand behauptet, dass VHDL eine Programmiersprache sei?
Ja, du. Ich hatte deinen Post zitiert:
>>> man dieses FPGA Board in VHDLProgrammieren kann?
Und Programmieren kann man mit in logischer Konsequenz nur mit einer
Programmiersprache ...
entity Beispiel is
port (
a : in STD_LOGIC;
b : out STD_LOGIC;
end Beispiel;
Ich will einfach nur wissen, wie ich a und b jetzt an den Physikalischen
Port binden kann.
Lothar Miller schrieb:> Richtig: weil VHDLkeine Programmiersprache, sondern eine> Beschreibungssprache ist. Das wird dir sicher irgendwann mal auffallen.
Wann hört diese Haarspalterei denn endlich mal auf?
Als der Begriff und die Sprache erfunden wurde, gab es die abstrakte
Form der heutigen Synthese nicht, bei der die Funktion der Hardware
beschrieben wird und nicht direkt deren Struktur. Von daher konnte man
zur Zeit der Begriffsbildung nicht darauf Rücksicht nehmen. Sich jetzt
daran aufzuhängen ist nicht schlüssig. Zudem heisst der Begriff
"Programmieren" der aus dem lateinischen kommt übersitzt nichts anderes
als "Beschreiben".
Ich finde man sollte mit dem Quark mal aufhören.
VHDL ist eine Programmiersprache, die wie jede andere auch mehr oder
weniger abstrahiert auf Hardware zugreift und deren Code mehrere
Übersetzungsstufen durchläuft. Bei VHDL sind es sogar besonders viele
Abstraktionsstufen und mithin wird mit dieser Sprache zunächst einmal
ein Parser kommandiert, der Strukturen und Abläufe trennt. Z.B. werden
State Machines analysiert und umgebaut etc. Was dort läuft ist also
definitiv eine Software, die von einer anderen Software, nämlich dem
VHDL-Code gesteuert => programmiert wird, denn es sind
Steuerungsvorschriften und "Vorschrift" ist die naheliegendste
Übersetzung des Begriffes "Programm".
VHDL-Programmierer schrieb im Beitrag #3955642:
> Zudem heisst der Begriff "Programmieren" der aus dem lateinischen kommt> übersitzt nichts anderes als "Beschreiben".
programmare : ausrufen, bekannt machen
describere : beschreiben
> Was dort läuft ist also definitiv eine Software, die von einer anderen> Software, nämlich dem VHDL-Code gesteuert => programmiert wird
Eine sehr allumfassende Ansicht, denn dann "programmiere" ich auch den
Ausdruck meiner Word-Texte oder Bilder im Paintshop.
> Sich jetzt daran aufzuhängen ist nicht schlüssig.
Ich bestehe nur deshalb so gern so ausdrücklich auf dieser
Unterscheidung, weil sonst gleich einer aus der C-Ecke gekrochen kommt,
in VHDL eine for-Schleife "programmiert" und sich dann überaus wundert,
warum das nicht "geht"...
Lothar Miller schrieb:
Vorsicht! Abgeleitete Verben müssen schon inhaltich interpretiert werden
und nicht nur rein formal:
> programmare : ausrufen, bekannt machen
Das ist eine Begriffsverengung auf lediglich das Bekanntmachen des
Programmes. Das Programm selber, also z.B. auch ein Parteiprogramm oder
ein Theaterprogramm (oder auch ein Computerprogramm oder
Hardwareprogramm) sind zunächst -> Vorschriften, Darstellungen,
Beschreibungen.
> decribere
Dieses "Bescheiben" leitet sich vom dem tatsächlichen Vorgang des
Schreibens / Aufschreibens. Es wäre also korrespondierend zum "writing".
....
Man muss sehen, wie die "Lateiner" die Begriffe verwendeten und wofür um
Begrunündungen ziehen zu können, in welcher Weise man Begriffe für
heutiges Anwenden kann oder nicht anwenden darf. Wie es die
Begriffsreduzierten Amis verwendeten, kann da IMO kein Massstab sein.
Und die Strukturvorschriften einer Anwordnung sind definitiv ein
"Programm".
Dass die Computerfizzis, die nur SW machen, den Begriff für sich
beanspruchen und umgekehrt beim Erblicken desselben nur an Ihr eigenes
Metier denken, darf da kein Hindernis sein.
Im Übrigen nannte auch Konrad Zuse die Hardware, die er in seine
Hardware schob (nämlich die Lochkarte in einen seiner späteren Rechner)
ein "Programm" und der Vorgang war ausdrücklich ein "Porgrammieren". Und
das ist ja nochmal etwas ganz anderes.
Zurückkommend auf das was "Programmierer" tun: Auch beim C und der
uC-Landschaft wird Hardware programmiert. Indem z.B. ein HW-Timer in C
gesetzt wird, entsteht genau so eine Konfiguration wie in einer LUT.
Beides eindeutig ein Programmiervorgang.
>Word
Wenn Du das Bild selber reintust, ist es kein Progrmmieren. Wenn Du aber
einen VBA-Befehl schreibst, der das macht, schon. Und mit BEzug zu
meiner Argumentation: Auch wenn Du nur auf einem Blatt Papier eine
Anweisung schreibst, wie ein Grafiker ein Bild einzukopieren hat und wo,
ist diese Anweisung ein Programm: Ein Anweisung an eine Peron.
Beim VHDL ist der Code halt nur eine Anweisung an das Synthesetool -
sozusagen einen virtuellen Automaten.
Gut, dann halten wir das so fest.
Du programmierst FPGAs und ich beschreibe Hardware. Denn es könnte
ja durchaus sein, dass meine Hardwarebeschreibung nicht auf ein FPGA
oder CPLD, sondern auf ein ASIC kommt.
Lothar Miller schrieb:> Du programmierst FPGAs
Tut er nicht, er programmiert das Synthesetool:
VHDL-Programmierer schrieb im Beitrag #3955828:
> Beim VHDL ist der Code halt nur eine Anweisung an das Synthesetool -
Der lateinische Ursprung (programmieren/beschreiben) bzw.
"scheinbar" griechische Ursprung (z.B. Algorithmus) hat
kaum noch etwas mit der heutigen Bedeutung zu tun.
Programmieren wird z.B. als das Entwerfen von Programmen
oder auch als "Brennen" von Chips (PROMs etc.) verwendet.
Beschreiben hingegen ist bei VHDL zutreffend, das im
Hintergrund eine Software zum Scannen/Parsen verwendet
wird, ist irrelevant. Und dass das Ergebnis der Synthese
eine Software ist, die auf dem FPGA läuft, ist Blödsinn.
Allerdings ist Compilieren im Zusammenhang mit FPGAs
zutreffend, es bedeutet ja grob das Zusammensetzen
aus einzelnen Komponenten. Der Begriff wird auch im
Bauwesen, in Maschinenbau und Etechnik (CAD..) verwendet.
Im Berufsleben ist der Unterschied in der Tat oft schwierig
rüberzubringen. Wenn man was mit FPGAs machen möchte braucht man
jemanden der damit umgehen kann. Gut, wir haben doch Hard- und
Softwerker? Ja, aber der Hardwerker muss nicht löten und die Softwerker
machen alle in C, VHDL ist ganz was anderes. Dann sieht man nur noch
Fragezeichen in den Augen und es ist einfacher von 'spezieller Software
für FPGA' zu reden. Und die Leute die FPGA Software erstellen haben sich
auch schon daran gewöhnt Programmierer genannt zu werden, Synthetisierer
hört sich eher nach Drogenmischer an :-)
Jemand, der den Umgang mit FPGA lernt bekommt den Unterschied aber
üblicherweise in der ersten Stunde genannt.
Die Frage zum Eingangspost ist aber eher ob es Nachteil ist die älteren
Quartus Versionen verwenden zu müssen. Ist die Parallelinstallation mit
neueren einfach möglich? Abgesehen vom Platzbedarf, die Werkzeuge
verschlingen ja gerne zig Gigabyte.
Jojo S. schrieb:> Jemand, der den Umgang mit FPGA lernt bekommt den Unterschied aber> üblicherweise in der ersten Stunde genannt
... versteht dann aber den Unterschied nicht, weil er ja schon lange
"programmieren" kann, und "programmiert" sein FPGA dann gleich wie
seinen uC: mit Funktionen, Variablen, Prozeduren und Schleifen. Die
kennt er nämlich schon vom uC her ganz genau.
Auch wenn dieser Thread jetzt sehr ausgeartet ist, bin ich zu meiner
Zufriedenheit mit dem Thread noch nicht durch.
Jan R. schrieb:
>> Ich will einfach nur wissen, wie ich a und b jetzt an den Physikalischen>> Port binden kann.>Das geht über Pin-Constraints oder Location-Constraints:>http://www.altera.com/support/software/quartus2/de...
Ich würde mich jetzt mal nicht zu denen Zählen, die den Unterschied
Zwischen FPGA, welches oft mit VHDL einhergeht und uCs oder Prozessoren
nicht kennen. Ich habe VHDL auch einmal gelernt, der unterschied ist mir
daher auch bewusst.
Ich habe dieses Board geschenkt bekommen, und würde es gerne im Rahmen
einer Steuerung einsetzen. Das Port assignment, wird ja meist in einer
Datei vollzogen, welche diesen Entwicklungsplatinen in irgendeiner Form
beiliegt, und dann in VHDL selbst leicht verwendet werden kann.
Meine Fragen sind also:
Welche Quartusversion brauche ich.
Wie binde ich dass assignment File her.
Wie binde ich es ein.
Nochmal zu dem Programmieren unterschied, ich habe glaube eine
Möglichkeit das gut zu erklären, dass ihr euch hier jetzt nicht ewig
darüber streitet.
Die CPU, welche ein in einem Speicher abgelegtes Programm abarbeitet,
ist Hardwareseitig fest definiert und fest verdrahtet.
Ein FPGA arbeitet Grundverschieden: Es ist Hardwareseitig nicht fest
Definiert und besteht aus vielen Logikzellen. Die so verdrahtet werden,
wie es vorher in VHDL beschrieben wurde.
Mit VHDL könnte ich Theoretisch eine CPU beschreiben, die dann das in
einem Angehängten Speicher gespeicherte Programm Ausführt.
https://www.altera.com/download/sw/dnl-sw-index.jsp
Ein Stückchen unten gibt's einen "Software Selector", dort auf "Select
by Device", dein Käferlein auswählen, die entsprechend letzte
unterstützte Quartus-Version auswählen und warten (dicker Brocken) ...
Jan R. schrieb:> Nochmal zu dem Programmieren unterschied, ich habe glaube eine> Möglichkeit das gut zu erklären, dass ihr euch hier jetzt nicht ewig> darüber streitet.
Für mich ist der Unterschied zwischen einer "klassischen
Programmiersprache" und VHDL im wesentlichen der, daß bei ersterem "das
Programm" das Ergebnis ist.
Bei der Synthese ist das Ergebnis des "Programmlaufs" das Ergebnis: das
Bitfile, das man ins FPGA "programmieren" kann.
Also eher so wie bei Logo: "Schildkröte 90° rechts, Stift runter, zehn
Schritte vorwärts, Stift hoch", bloß daß mich "das Programm" nicht so
besonders interessiert, sondern das "Bild" (das bei VHDL ein wenig
komplexer ist als bei Logo), das dabei rauskommt.
Sigi schrieb:> Der lateinische Ursprung (programmieren/beschreiben) bzw.> "scheinbar" griechische Ursprung (z.B. Algorithmus) hat> kaum noch etwas mit der heutigen Bedeutung zu tun.
eben!
> Beschreiben hingegen ist bei VHDL zutreffend
teilweise, denn es werden heute eigentlich fast nur noch Abläufe und
Funktionen definiert, und kaum noch Vorgaben für die reale HW Struktur.
Diese ist mehr oder weniger offen. Von daher wird nicht die Hardware,
sondern das Verhalten der Hardware beschrieben. "Bavhioural Modelling"
in Neudeutsch.
> das(s) im Hintergrund eine Software zum Scannen/Parsen verwendet> wird, ist irrelevant.
Das ist aber DAS entscheidende Kriterium. Früher haben wir mit OR und
AND die Gates beschrieben, huete schreiben wir + * : auf.
> Und dass das Ergebnis der Synthese> eine Software ist, die auf dem FPGA läuft, ist Blödsinn.
Das hat auch niemand gesagt :-)
Die Aussage war, dass mittels einer Software (VHDL) eine Software (ISE)
programmiert wird, welche eine Software (Netzliste, HW Bschreibung)
herstellt, die von einer weiteren Software (Mapper) als
Funktionsanweisung aufgefasst wird, um unter Zuhilfenahme von Software
(Libs) diese Funktionswünsche in eine Hardware umszusetzen, wobei sie
Hardwareelemente des FPGAs heranzieht (oder in Lothars Fall,
Bib-Elemente aus der ASCI-Lib).
Dieses Software funktioniert wie ein Ingenieur früher. Sie überlegt sich
, was benötgit wird, wie es aussehen muss und wie man es mit den
vorgegebenen Elementen zusammenbasteln kann.
Das alles sind stark programmatische Vorgänge.
Heraus kommt wieder eine Software
Diese Software "läuft" dann nicht auf dem FPGA, sondern sie "läuft" auf
der abstrahierten Syntheseebene. Was dann läuft, ist das Ergebnis,
nämlich alle Abläufe, alle pipelines, alle state machines.
Und da gibt es definitiv keinen Zweifel: Eine pipeline und eine state
machine sind software und die steuernden Signale, die vordefinierten
Abläufe, sind eine Vorschrift für dieses Verhalten, seien sie auch nicht
explicit vergeben.
> Allerdings ist Compilieren im Zusammenhang mit FPGAs> zutreffend, es bedeutet ja grob das Zusammensetzen> aus einzelnen Komponenten. Der Begriff wird auch im> Bauwesen, in Maschinenbau und Etechnik (CAD..) verwendet.
------------------------------
Welche Quartusversion brauche ich.
------------------------------
EP1C3T144
Für dieses Ding brauchst du unter Version 10.0
Nur die läuft nicht mehr unter Win7 und höher sondern nur bei WinXP.
Gruss
>------------------------------>Welche Quartusversion brauche ich.>------------------------------>EP1C3T144>Für dieses Ding brauchst du unter Version 10.0
konkreter wird das im Altera Forum beantwortet:
http://www.alteraforum.com/forum/showthread.php?t=46583
danach geht es mit der WebEdition bis zu Version 11 SP1.
Die Werkzeuge zu bedienen ist auch eine Kunst für sich wg der unendlich
vielen Menüpunkte/Optionen, die Zeit für die Tutorials sollte man sich
nehmen.
peter schrieb:> EP1C3T144> Für dieses Ding brauchst du unter Version 10.0
Das Altera Download Center behauptet 11.0 (Web Edition) könne das (das
ist doch ein Cyclone I, oder?).
VHDL-Programmierer schrieb im Beitrag #3956216:
> Eine pipeline und eine state machine sind software
Ich könnte da ohne Zögern sagen: könnte aber auch Hardware sein. Dann
nämlich, wenn die Pipeline oder die FSM im Silizium sind. Das ist für
mich (und unsere Softies) dann auf jeden Fall reinrassige Hardware.
Sigi schrieb:> Allerdings ist Compilieren im Zusammenhang mit FPGAs> zutreffend, es bedeutet ja grob das Zusammensetzen> aus einzelnen Komponenten. Der Begriff wird auch im Bauwesen, in> Maschinenbau und Etechnik (CAD..) verwendet.
Beim GAL war das ein Assembler. Und der nächst höhere Schritt nach dem
GAL/Assembler ist ein FPGA/Compiler...
Blöd ist nur, dass es in einer FPGA-Toolchain keinen Compiler gibt.
Einen Compiler gibt es nur beim Simulator, wo aus der Beschreibung
tatsächlich ein auf einem Rechner ausführbares Programm compiliert
wird.
BTW: mit diesen lateinischen Worten habe nicht ich angefangen. Eine
Herleitung aus diesen Begriffen muss schiefgehen, denn die alten Römer
wussten nichts von CPUs und FPGAs.
VHDL-Programmierer schrieb im Beitrag #3956216:
> "Bavhioural Modelling"> in Neudeutsch.
Nee, das ist zu 100% kein Deutsch, zu xx% kein Neudeutsch und zu 50%
kein Englisch...
SCNR
Ich denke Lothar ist der Letzte, der sich unter vier Augen weigern
würde, dem "gegnerischen" Standpunkt den intellektuellen Tribut zu
zollen den er verdient.
Aber mit diesem hanebüchenen halbgaren, viertelgebildeten, von
irgendwelchen obskuren Kalenderblattrückseiten zusammengebasteltem
Schwachsinn, den er da als "Argument" benutzt, beweist
"VHDL-Programmierer" (sic) nur, dass Bildung nicht zwingend
Urteilsvermögen zur Folge hat. Er kann vielleicht VHDL-Code schreiben,
aber das denken soll er doch bitte den Pferden (sprich Lothar)
überlassen.
Mahlzeit.
VHDL-Programmierer schrieb im Beitrag #3955642:
> Lothar Miller schrieb:>> Richtig: weil VHDLkeine Programmiersprache, sondern eine>> Beschreibungssprache ist. Das wird dir sicher irgendwann mal auffallen.> VHDL ist eine Programmiersprache, die wie jede andere auch mehr oder> weniger abstrahiert auf Hardware zugreift und deren Code mehrere> Übersetzungsstufen durchläuft. Bei VHDL sind es sogar besonders viele> Abstraktionsstufen und mithin wird mit dieser Sprache zunächst einmal> ein Parser kommandiert, der Strukturen und Abläufe trennt. Z.B. werden> State Machines analysiert und umgebaut etc. Was dort läuft ist also> definitiv eine Software, die von einer anderen Software, nämlich dem> VHDL-Code gesteuert => programmiert wird, denn es sind> Steuerungsvorschriften und "Vorschrift" ist die naheliegendste> Übersetzung des Begriffes "Programm".
Schmarrn, VHDL ist eine Beschreibungssprache. VHDL ist ursprünglich zur
Dokumentation/Spezifikation definiert worden, damit diejenigen die die
Funktion spezifiziert haben deren korrekten Implementierung überprüfen
können ohne sich durch die ASIC-Schematics zu wühlen. Die
computergesteuerte Simulation/Synthese kam als Verwendungszweck erst
später hinzu.
MfG,
Fpga Kuechle schrieb:> Die computergesteuerte Simulation/Synthese kam als Verwendungszweck erst> später hinzu.
Und zudem kann nur ein klitzekleiner und stark reglementierter Teil von
VHDL tatsächlich "auf Hardware laufen" oder "in Hardware umgesetzt
werden".
Schon beim extrem wichtigen und oft verwendeten Datentyp time geht das
nicht mehr...
Die restlichen 95% von VHDL sind nur zur Systembeschreibungssprache und
Systemdokumentation verwendbar. Auch aus diesem Grund ist VHDL so stark
typisiert und so "geschwätzig".
Lothar Miller schrieb:> Und zudem kann nur ein klitzekleiner und stark reglementierter Teil von> VHDL tatsächlich "auf Hardware laufen" oder "in Hardware umgesetzt> werden".
eben deshalb ist es eben nicht primär eine Hardwarebeschreibungssprache
sondern eine Verhaltensbeschreibungssprache. Und Verhaltensbbeschreibung
ist Software = Ablauf. Sieht es jetzt jemand noch nicht ein?
Strenggenommen müsste es heisst Software Definition Language.
Lothar Miller schrieb:> Sigi schrieb:>> Allerdings ist Compilieren im Zusammenhang mit FPGAs>> zutreffend, es bedeutet ja grob das Zusammensetzen>> aus einzelnen Komponenten. Der Begriff wird auch im Bauwesen, in>> Maschinenbau und Etechnik (CAD..) verwendet.> Beim GAL war das ein Assembler. Und der nächst höhere Schritt nach dem> GAL/Assembler ist ein FPGA/Compiler...> Blöd ist nur, dass es in einer FPGA-Toolchain keinen Compiler gibt.
Synplify Pro zeigt beim synthesieren folgende Schritte an:
Compiling...
Pre-Mapping...
Mapping...
Auch ActiveHDL (Simulator) fängt mit Compile... an
Es gibt also einen Compiler in der Verarbeitungskette, der hat aber mit
FPGA noch nichts zu tun.
VHDL-Programmierer schrieb im Beitrag #3956661:
> Lothar Miller schrieb:>> Und zudem kann nur ein klitzekleiner und stark reglementierter Teil von>> VHDL tatsächlich "auf Hardware laufen" oder "in Hardware umgesetzt>> werden".> eben deshalb ist es eben nicht primär eine Hardwarebeschreibungssprache> sondern eine Verhaltensbeschreibungssprache. Und Verhaltensbbeschreibung> ist Software = Ablauf. Sieht es jetzt jemand noch nicht ein?
Man kann hauch das Verhalten des Sonnensystemsystems in einer formalen
Sprache beschreiben. Also ist das Sonnensystem Software?
Und das kann man auf so ziemlichb alles verallgeminern.
>> Strenggenommen müsste es heisst Software Definition Language.
VHDL-Programmierer schrieb im Beitrag #3956661:
> eben deshalb ist es eben nicht primär eine Hardwarebeschreibungssprache> sondern eine Verhaltensbeschreibungssprache. Und Verhaltensbbeschreibung> ist Software = Ablauf. Sieht es jetzt jemand noch nicht ein?
Du bist auf dem Holzweg.
Software heisst: Hardware gleich (CPU) - Ablauf(steuerung) variabel.
Beispiel Zähler:
Man braucht einen Puls von 10 Takten Länge, also braucht man einen
Zähler.
Im FPGA sind u.a. folgende Zähler möglich:
-Binärcounter
-graycounter
-Pseudorandom (LFSR based) counter
-One Hot counter
Varianten ergeben sich noch in der Zählrichtung (Up/Down)
Die Software ist nicht in der Lage das zu abstrahieren, Es ist in VHDL
(m.W.) nicht möglich zu beschreiben das ein Puls von 10 Takten zu
erzeugen ist - EGAL WIE. Beschreibt man in VHDL synthesegerecht einen
Zähler gibt man immer die HW-Struktur mit vor. Nicht mit allen Details
aber nicht so abstrakt das die Synthese völlige Freiheit bei der
Implementierung hat.
MfG,
Lattice User schrieb:> Synplify Pro zeigt beim synthesieren folgende Schritte an:
Ich werde mir das wieder mal genauer ansehen müssen... 8-o
VHDL-Programmierer schrieb im Beitrag #3956661:
> Und Verhaltensbbeschreibung ist Software = Ablauf. Sieht es jetzt jemand> noch nicht ein?
Ich habe es schon im Beitrag "Re: eBay-Board in VHDL Programmieren"
eingesehen.
Warum kann man eigentlich die "Software" für das FPGA nicht gleich mit
einer richtigen Programmiersprache wie BASIC oder gar C (be)schreiben?
Denn eigentlich ist nach letzter Ansicht VHDL nicht mehr nur eine VHPL
sondern sogar eine SPL (software programming language). Und gerade die
erwähnten Sprachen sind richtig anerkannte SPL...
Markus F. schrieb:> das ist doch ein Cyclone I, oder?
Ja. Lade einfach die 11er herunter und probiere es aus. Oder kauf nicht
das verlinkte Board, sondern eines mit einem aktuelleren Baustein...
Zu den Wortklaubereien hier:
Steht nicht das P in FPGA für Programmable?
http://de.wikipedia.org/wiki/Field_Programmable_Gate_Array
Also wird ein FPGA letztendlich programmiert.
VHDL ist keine Programmiersprache im klassischen Sinne, dient aber auch
dazu, ein Programm für den FPGA zu erzeugen.
Das das Programm dann anders 'abläuft' als auf einem Prozessor, das
wissen wir auch.
PittyJ schrieb:> Steht nicht das P in FPGA für Programmable?
Ja, korrekt.
> Also wird ein FPGA letztendlich programmiert.
Ein FPGA braucht also ein Programm. Aus dem VHDL Code muss somit für
FPGAs ein Programm gemacht werden.
Aber ein ASIC wird aus einem Stück Silizium hergestellt. Es braucht also
eine Herstellungsbeschreibung bzw. eine Hardwarebeschreibung (Layout,
Schichtenaufbau, Gehäuseform, Bondierung, usw.).
Ich hatte schon immmer den Verdacht: VHDL ist gespalten... :-/
> Das das Programm dann anders 'abläuft' als auf einem Prozessor,> das wissen wir
Aber der Neuling, der schon in jungen Jahren "Programmieren" mit uCs
gelernt hat, weiß es nicht. Und wenn der jetzt auf FPGAs weiter
"Programmieren" darf, dann verwendet er auch den selben
"Programmierstil" und fällt auf die Nase. Das passiert hier doch
laufend.
Ich selber finde es zudem cooler, etwas anderes zu machen als die
Hausfrau, die ihre Eieruhr oder die Waschmaschine nebenher auch
"programmiert"... ;-)
PittyJ schrieb:> Zu den Wortklaubereien hier:>> Steht nicht das P in FPGA für Programmable?> http://de.wikipedia.org/wiki/Field_Programmable_Gate_Array> Also wird ein FPGA letztendlich programmiert.
Wenn dann wird er mit dem bit-stream der Konfigurationsdaten
"programmiert", aber nicht mit VHDL und darum geht es hier.
"Programmierbare Logik" ist älter als VHDL.
> VHDL ist keine Programmiersprache im klassischen Sinne, dient aber auch> dazu, ein Programm für den FPGA zu erzeugen.
Was ist klassisch im Zusammenhang mit Programm? Die ersten Computer
waren hardverdrahtet, die Speicherprogrammierung hielt erst später
Einzug. Demzufolge ist das klassische Programm ein Verdrahtungsplan also
schematic
und somit ein "FPGA-Programm" (Netzliste) die klassische Variante und
die maschienübersetzbare Liste von Anweisung eine neuzeitliche Variante
der klassischen (hardwired) Programmierung.
Löst man sich von der Elektrotechnik findet man noch ältere "Programme"
(Ablaufsteuerungen). So die Nockenwelle die die Ventile eines Motors
steuert. Und im Sinne der Ablaufsteuerung wäre dann auch ein Uhrwerk
eines "klassischen" Weckers ein Programm und der Uhrmacher ein
Programmierer !?
Dann wäre eine Murmelbahn die den Lauf einer Kugel steuert ein Programm
und einer der Dominosteine zu einer kunstvollen Bahn wie beim Domino-day
aufstellt ein Programmierer der archaischen Schule!
MfG,
Fpga Kuechle schrieb:> Dann wäre eine Murmelbahn die den Lauf einer Kugel steuert ein Programm> und einer der Dominosteine zu einer kunstvollen Bahn wie beim Domino-day> aufstellt ein Programmierer der archaischen Schule!
Jetzt kann ich endlich mein Popcorn rausholen ;-)
Böser Kommunist schrieb:> Sagt mal, ist es nicht scheißegal ob man es programmiert oder> beschreibt?> Hautsache es funktioniert.
Ja, wenn man sich an einem FPGA-Design mit seinen "Erfahrungenschatz"
als abstrahierender Computerprogrammer versucht wird das FPGA-Konstrukt
nicht funktionieren.
Hat man dagegen eine Vorstellung wie man das in etwa in digitaler
Schaltungstechnik aufbauen würde und schreibt sein VHDL/Verilog etc
entsprechend, wird es genau das tun was es soll.
MfG,
Oh mein Gott, was ein Tratsch aus diesem Thread wurde :-))
Querkus II in Version 11 unterstützt den Chip.
Jetzt bräuchte ich aber noch einen Schaltplan von dem Ding, denn die
erhoffte Pin asignment Datei, scheint es ja nicht zu geben :-((
Im Schlimmsten Fall muss ich die Leiterbahnen verfolgen aber das ist
schon ein ziemlicher sch.., wenn man von so einem Teil keinen Schaltplan
vorliegen hat, welcher das FPGA mit Perepherie zeigt.
Jan R. schrieb:> denn die> erhoffte Pin asignment Datei, scheint es ja nicht zu geben
Ich lege die mir meist selber an, oder schau im Referenze-Design nach,
wie das dort gelöst wurde.
Duke
Jan R. schrieb:> Jetzt bräuchte ich aber noch einen Schaltplan von dem Ding,
Dort steht:
1
if you need the datasheet,please contact us.
Nun denn, wohlan...
> denn die erhoffte Pin asignment Datei, scheint es ja nicht zu geben :-((
Weil bei dir die IOs ja auch andere Namen haben können, wäre das nur
teilweise hilfreich.
Lothar Miller schrieb:> Weil bei dir die IOs ja auch andere Namen haben können, wäre das nur> teilweise hilfreich.
Ich verwende im top-Modul und dem Constraints-File immer die Namen der
Signale, die auf der jeweiligen Hardware verfügbar sind (z.B.
GPIO_HEADER_xx).
Wenn ich dann dort eine LED dranhänge oder einen USB-RS232-TTL-Wandler,
dann werden die Pins im VHDL mittels 'alias' verknüpft:
1
aliasled_n:std_logicisGPIO_HEADER_00;
2
--
3
aliasuart_txd:std_logicisGPIO_HEADER_01;
4
aliasuart_rxd:std_logicisGPIO_HEADER_02;
Ist zwar bei bidirektionalen Bussen etwas aufwändig, aber ich kann das
top-Modul und das Constrainsfile sofort im nächsten Projekt nutzen.
Duke
Hi,
habe jetzt mal ein und erstellt, habe mich da an ein Quartus Tutorial
gehalten.
Leider kommt nur Sch.. dabei heraus.
Zuerst habe ich den Chip ausgewählt, dann das und eingefügt, und dann
ein und Ausgänge definiert.
Jetzt bin ich wie im Tutorial auf Analysis&Elaboration gegangen und dann
kamen diese Fehler,
was bedeuten sie wie elemeniere ich sie!!
Also so langsam macht das echt kein Spass mehr, kann mich nicht
erinnern, das das bei den Xilinx FPGAs, mit denen ich mich vor Jahren
mal beschäftigen musste so ein Krampf war!!
ich möchte mich jetzt ehrlich gesagt nicht durch irgendwelche alten
Threads forsten, wenn das nicht direkt um Quertus geht, bringt mir es
garnichts.Habe mich an dieses Thutorial gehalten.
http://www.altera.com/literature/tt/tt_my_first_fpga.pdf
Statt des Zählers, habe ich nur ein und eingefügt. Wo liegt mein Fehler?
Kann mir das eine Sagen? Waarum soll das toplevel design entry
undefiniert sein? Was soll dieser Quatsch. Ich habe mich an dieses
verdammte Tutorial gehalten und trotzdem geht ein Scheiß.
Habe es gemacht wie hier nochmal im Bett gemacht:
http://youtu.be/auQ7wpVH-0Q
Offensichtlich habe ich keine Fehler gemacht..
Istnes bei den alteras auch so, dass ich nicht jeden Pin als Clock
definieren kann?
Hi!
Ich hatte schon mal versehentlich das gleiche Problem.
Fehler bei mir:
Top Level Entity hatte nicht den identischen Namen wie das Projekt
==> wurde geändert und schon funktionierte es!!!
Gruss
Horst
>Nur die läuft nicht mehr unter Win7 und höher sondern nur bei WinXP.
Unfug! Die Version 9.0 läuft auch unter Win8.1 wunderbar. Nur für den
USB-Blaster muss man den Programmer der V12 installieren.
Zum thema, pack doch dein Projekt mal zusammen und lad es hier hoch.
Dann kann man mal gucken. Wird wohl ein Namenskonflikt sein.
Wenn da "top partition does not contain any logic" steht, dann heißt das
wohl, daß die top Partition keine Logik enthält.
Du solltest mal kontrollieren, was Du als Toplevel-Entity gesetzt hast.
Jan R. schrieb:> Warum das denn jetz?
Was kommt denn kurz vor den Fehlermeldungen?
Ich schlage vor, du kopierst einfach die ganzen Build-Messages als
Text hierher...
Hi,
hab nochmal ne frage zuden .sdc files.
Wenn ich das Richtig verstanden habe, sind das Randbedingungen für das
Dynamische Verhalten, sie geben dem Compiler die Vorgabe, die Interne
Verkabelung so Vorzunehmen, dass die Maximalwerte für Glitches nicht
überschritten werden.
Verstehe ich das Richtig? (Wenn nicht bitte nicht einfach mit nein
Antworten, das bringt ja niemandem was.)
Jan R. schrieb:> Hi,>> hab nochmal ne frage zuden .sdc files.>> Wenn ich das Richtig verstanden habe, sind das Randbedingungen für das> Dynamische Verhalten, sie geben dem Compiler die Vorgabe, die Interne> Verkabelung so Vorzunehmen, dass die Maximalwerte für Glitches nicht> überschritten werden.>> Verstehe ich das Richtig? (Wenn nicht bitte nicht einfach mit nein> Antworten, das bringt ja niemandem was.)
Fast richtig, es geht nicht um Glitches sondern um die Laufzeit von
Flipflop zu Flipflop, die darf natürlich nicht länger sein als wie vom
Takt vorgegeben. In die Laufzeit geht die "Verkabelung" (das Routing im
Fachjargon) und die Verzögerungen durch logische Verknüpfungen ein.
Komplizierte Logik, z.B. ein mit einer Forschleife erstellter Dividierer
verringern die erreichbare Taktrate.
Jan R. schrieb:> ??
Es ist Sonntag!
Jan R. schrieb:> Was passiert dann eigentlich, wenn man diese Datei nicht einbindet?
Die Laufzeiten sind natürlich trotzdem da.
> Gibt es eine Default?
Das Tool kann nicht mehr prüfen, ob die Laufzeiten zum Takt passen.
Wenn Du dann der Takt zu schnell ist, funktioniert Dein Design nicht
mehr (fehlerhafte Daten, komisches Verhalten an State-Machines, etc.).
Duke