Forum: FPGA, VHDL & Co. eBay-Board in VHDL Programmieren


von Jan R. (Gast)


Lesenswert?

Hallo,

kennt einer eine Kostenlose Software, mit man dieses FPGA Board in VHDL 
Programmieren kann?

Gibt es ein Tutorial, um Herauszufinden, wie man die Ports in VHDL 
richtig benennt (spezifisch zu diesem Board), sodass das Signal richtig 
von Ausgang zum Eingang Durchgeschleift wird?



http://www.ebay.de/itm/FPGA-Altera-EP1C3T144-Board-USB-Blaster-JTAG-programmer-Programmierer-/141525401709?pt=Wissenschaftliche_Geräte&hash=item20f392406d

von petersieg (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> mit man dieses FPGA Board in VHDL Programmieren kann?
Kurzer Impuls: warum heißt es VHDL und nicht VHPL?

Richtig: weil VHDL keine Programmiersprache, sondern eine 
Beschreibungssprache ist. Das wird dir sicher irgendwann mal auffallen.

von Jan R. (Gast)


Lesenswert?

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 VHDL keine 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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> hat je jemand behauptet, dass VHDL eine Programmiersprache sei?
Ja, du. Ich hatte deinen Post zitiert:
>>> man dieses FPGA Board in VHDL Programmieren kann?
Und Programmieren kann man mit in logischer Konsequenz nur mit einer 
Programmiersprache ...

: Bearbeitet durch Moderator
von Jan R. (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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/design_flow/des-assign_pins.html

von VHDL-Programmierer (Gast)


Lesenswert?

Lothar Miller schrieb:
> Richtig: weil VHDL keine 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".

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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"...

: Bearbeitet durch Moderator
von VHDL-Programmierer (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

: Bearbeitet durch Moderator
von Lattice User (Gast)


Lesenswert?

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 -

von Sigi (Gast)


Lesenswert?

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.

von Jojo S. (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Jan R. (Gast)


Lesenswert?

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.

von Markus F. (mfro)


Lesenswert?

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.

von VHDL-Programmierer (Gast)


Lesenswert?

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.

von peter (Gast)


Lesenswert?

------------------------------
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

von peter (Gast)


Lesenswert?

----------------------------------------
Theoretisch eine CPU beschreiben,
----------------------------------------

Auch praktisch.....

Gruss

von Jojo S. (Gast)


Lesenswert?

>------------------------------
>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.

von Markus F. (mfro)


Lesenswert?

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?).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von berndl (Gast)


Lesenswert?

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

von Bitflüsterer (Gast)


Lesenswert?

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.

von Fpgakuechle K. (Gast)


Lesenswert?

VHDL-Programmierer schrieb im Beitrag #3955642:
> Lothar Miller schrieb:
>> Richtig: weil VHDL keine 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,

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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".

: Bearbeitet durch Moderator
von VHDL-Programmierer (Gast)


Lesenswert?

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.

von Lattice User (Gast)


Lesenswert?

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.

von Lattice User (Gast)


Lesenswert?

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.

von Fpgakuechle K. (Gast)


Lesenswert?

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,

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von PittyJ (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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"... ;-)

von Fpgakuechle K. (Gast)


Lesenswert?

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,

von Duke Scarring (Gast)


Lesenswert?

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 ;-)

von GS (chromosoma)


Lesenswert?

Sagt mal, ist es nicht scheißegal ob man es programmiert oder 
beschreibt?
Hautsache es funktioniert.

von Fpgakuechle K. (Gast)


Lesenswert?

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,

von Jan R. (Gast)


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

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
    alias  led_n            : std_logic is GPIO_HEADER_00;
2
    --
3
    alias  uart_txd         : std_logic is GPIO_HEADER_01;
4
    alias  uart_rxd         : std_logic is GPIO_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

von Jan R. (Gast)


Angehängte Dateien:

Lesenswert?

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!!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan R. schrieb:
> Also so langsam macht das echt kein Spass mehr
Ich hätte zum krampfigen Thema "Schematics im FPGA" den 
Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"
Ist zwar für Xilinx ISE, gilt aber generell!

: Bearbeitet durch Moderator
von Jan R. (Gast)


Lesenswert?

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ß.

von Jan R. (Gast)


Lesenswert?

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?

von horst (Gast)


Lesenswert?

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

von oliver (Gast)


Lesenswert?

>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.

von Jan R. (Gast)


Angehängte Dateien:

Lesenswert?

1
  library ieee ;
2
use ieee.std_logic_1164.all;
3
use ieee.std_logic_unsigned.all;
4
5
entity counter is 
6
port(  clk:  in std_logic;
7
  reset:  in std_logic;
8
  enable:  in std_logic;
9
  count:  out std_logic_vector(3 downto 0)
10
);
11
end counter;
12
13
architecture behav of counter is         
14
  signal pre_count: std_logic_vector(3 downto 0);
15
  begin
16
    process(clk, enable, reset)
17
    begin
18
      if reset = '1' then
19
        pre_count <= "0000";
20
      elsif (clk='1' and clk'event) then
21
        if enable = '1' then
22
          pre_count <= pre_count + "1";
23
        end if;
24
      end if;
25
    end process;  
26
    count <= pre_count;
27
end behav;

Während der Verilog Code aus dem Alteratutorial, von oben einwandfrei 
geht, Meint der Compiler hier wieder Meckern zu dürfen. Warum das denn 
jetz?

von Markus F. (mfro)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Jan R. (Gast)


Lesenswert?

Ja, glaube jetzt habe ich es raus mit der bedinung der Software. 
Trotzdem danke

von Jan R. (Gast)


Lesenswert?

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.)

von Jan R. (Gast)


Lesenswert?

??

von Lattice User (Gast)


Lesenswert?

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!

von Jan R. (Gast)


Lesenswert?

Vielen Dank.

Was passiert dann eigentlich, wenn man diese Datei nicht einbindet? Gibt 
es eine Default?

von Duke Scarring (Gast)


Lesenswert?

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

von peter (Gast)


Lesenswert?

Wenn ich von WIN7 und WIN8 schreibe, dann meine ich nicht den 
32Bit-Unfug sondern 64Bit, Und darauf läuft Quartus-Alt nicht.

Gruss

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
Noch kein Account? Hier anmelden.