Forum: FPGA, VHDL & Co. VHDL Standard


von Michael W. (Gast)


Lesenswert?

Hallo zusammen!

Ich bin ja nicht gerade der große Schaltungsentwickler, kenne mich 
aufgrund meiner Ausbildung aber auch mit analoger und digitaler 
Schaltungstechnik aus. So verfolge ich seit einiger Zeit die Beiträge im 
Forum "Analogtechnik", und bin überrascht, dass sich eigentlich in all 
den Jahren nicht so wahnsinnig viel verändert hat und die Sprache der 
Elektronik, so wie ich sie gelernt habe, noch heute gesprochen wird wie 
vor 30 Jahren.


Andererseits bin nun doch ein wenig "betroffen", dass heutzutage (ich 
bin ja nicht mehr der jüngste...) digitale Schaltungen maschinell 
mittels HW-Beschreibungssprachen wie VHDL entworfen werden. Scheinbar 
lernt man das sogar schon in HTLs (=österreichischer Schultyp für 
technische Ausbildung).

Ich möchte mich nun ein wenig orientieren und nachfragen, ob der Umgang 
mit VHDL zum Standard-Handwerkszeug eines Elektronikers modernen 
Ausbildungsstands ist, oder ob es sich um eine Sache für Spezialisten 
handelt, die FPGAs oder ASICs entwerfen. Ich habe zu meiner Zeit (war in 
den 80-ern) die Verwendung von Karnaugh Diagrammen gelernt und einen 
Überblick über Logikfamilien und Standardbausteine (Flip-Flops, etc...) 
erhalten. Ist diese Vorgehensweise heute passe, bzw. lernt man 
eigentlich noch auf dieser untersten Ebene? In der Analaogtechnik lernt 
man heute auf FHs noch so ziemlich das gleiche (das weiß ich, da ich 
immer wieder mit Studenten zu tun habe), wie zu meiner Zeit, die Dinger 
sind kleiner geworden, aber ein OP ist immer noch ein OP.

Als ich jedoch das hier sah, habe ich begriffen, dass ich offenbar ein 
Fossil aus besseren Zeiten bin:
1
library IEEE; 
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.STD_LOGIC_ARITH.ALL;
4
use IEEE.STD_LOGIC_UNSIGNED.ALL;
5
entity UnknownEntity is
6
port(CLK, RESET : in std_logic; 
7
Q : out std_logic_vector(3 downto 0)); 
8
end UnknownEntity;
9
architecture Behavioral of UnknownEntity is
10
signal tmp_count: std_logic_vector(3 downto 0); 
11
begin
12
UnbekannterProzess : process (CLK, RESET) 
13
begin 
14
if RESET = '1' then tmp_count <= (others => '0'); 
15
elsif CLK ' event and CLK = '1' then tmp_count <= 
16
tmp_count + 1;
17
end if;
18
end process UnbekannterProzess;
19
Q <= tmp_count; 
20
end Behavioral;

Das beschreibt eine simple Anordnung von 4 D-Flipflops...
Ist es entschuldbar, dies als "allgemeiner Techniker", nicht zu 
verstehen?
Oder gehört dies zum Ausbildungsstand, so wie zu meiner Zeit halt das 
Ohmsche Gesetz?

Im übrigen finde ich dieses Thema unglaublich interessant, und ich 
überlege mir, mich wenigstens ein wenig damit zu beschäftigen (auch wenn 
ich es beruflich vermutlich nie brauchen werde). Wenn man das auf einer 
HTL lernt, kann es ja nicht "sooo kompliziert" sein, die 
Sprachspezifikation sieht aber sogar für mich, der sich sein ganzes 
Leben mit Programmiersprachen beschäftigt hat, doch einigermaßen 
"lernintensiv" aus. Gibt es eine Toolchain, die gratis ist und mit der 
man einige grundlegende Versuche machen kann?

Bitte um eine entsprechende "Einnordung" ggg !

Vielen Dank,
Michael

von Uwe (Gast)


Lesenswert?

Fast alle Toolchains bekommt man in einer "free version".
Man muß sich halt registriern. Ich kann Quartus II empfehlen.
Bei Altera kann man eigentlich alle ICs die Altera im Angebot hat und 
hatte programmieren. Um wirklich mal was "cooles" zu machen (ohne 
allzuviel Geld in die Hand zu nehmen) kann ich nur das DE0 nano Board 
empfehlen
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593
Da ist halt nen kleines "billig" FPGA drauf (Cyclone ist die billig" 
Serie, Stratix die Teure und Arria die Mittelklasse)
http://www.altera.com/devices/fpga/cyclone-iv/overview/cyiv-overview.html
http://www.altera.com/devices/fpga/stratix-fpgas/stratix-iv/overview/stxiv-overview.html
Hat halt "nur" 22320 Lookup Tables wobei jede Lookuptable zu einem 
Logikgatter mit 4 Inputs und einem Output programmiert werden kann. 
Diese Ein und Ausgänge der 22000 LUTs können beliebig miteinander 
verdrahtet werden um eine Digitale Schaltung zu basteln ohne zu löten. 
Zu jeder LUT gehört natürlich auch noch ein FlipFlop das auch frei 
verdrahtet werden kann. Man kann jede LUT auch als 16 Bit Speicher oder 
Schieberegister benutzen (Man kann aber auch aus den RS-FlipFlops 
Schieberegister basteln oder was auch immer). Achso ja dann sind noch 
Dual Ported Rams drinne 9Kbit mit jeweils eigenen Adress und 
Datenbuss(en) die Frei mit allem anderen verdrahtet werden können 
(insgesammt 66 Stück also 594Kbits) und noch 66 18x18 Bit 
Multipliziereinheiten und 4 PLL.
Zum rumspielen echt gut.

von berndl (Gast)


Lesenswert?

Michael W. schrieb:
> Als ich jedoch das hier sah, habe ich begriffen, dass ich offenbar ein
> Fossil aus besseren Zeiten bin:

Naja, der gezeigte Code (bzw. genauer: Die HW-Beschreibung) scheint ja 
von einem potentiellen Terroristen verfasst worden zu sein...
Sie sollte aber funktionieren...

Es gibt fuer VHDL ja auch Editoren, mit denen man Einruecken kann, 
Leerzeilen hinzufuegt, ... Auch gibt es in VHDL Kommentare (die mit -- 
anfangen). Achja, viele Editoren beherrschen VHDL Syntax-Highlighting.

Aber zum Thema: Man kann mit VHDL (oder Verilog) HW beschreiben, aber 
man kann noch mehr: Man kann damit seinen Design simulieren. Du brauchst 
also (eigentlich) gar keine HW auf dem Arbeitstisch liegen haben.
Nimm GHDL oder (da der etwas kryptisch zu bedienen ist) zieh' dir eine 
Toolchain von Altera, Lattice oder Xilinx runter (das sind dann halt 
immer einige Gigabyte...) und du kannst loslegen.

Und Lothars Seite hat viele gute Beispiele wie man sowas machen kann. 
Einfach mal hier suchen...

PS: Und ja, sogenannte HDLs nehmen dir viel Komplexitaet ab. Wer sowas 
wie CPLD oder FPGA grafisch beschreiben moechte, ist meiner Meinung nach 
ein Masochist...

von Schlumpf (Gast)


Lesenswert?

Auf deine Frage, ob man heute noch die Grundlagen der Digitaltechnik 
verstehen muss, wo man sich doch in VHDL einfach was zusammen-hacken 
kann?

Ich bin der festen Überzeugung, dass das mit Ja zu beantworten ist.

Ohne das Hintergrundwissen über digitale Schaltungstechnik erleidet man 
früher oder später Schiffbruch beim VHDL-Design.

Auf den Ersten und zweiten Blick sieht es so aus, als könnte man hier 
einfach was zusammentippen und die Toolchain drumrum wird es dann schon 
richten. Aber so ist es nur bedingt.

Man be-schreibt eigentlich Hardware und dazu muss man auch verstehen, 
wie diese Hardware funktioniert.
Und wer keine Ahung hat, was eine Setup-Zeit an einem Register ist, der 
fällt früher oder später auf die Nase.

Dinge, wie boolsche Algebra nimmt einem natürlich die Toolchain ab und 
man muss sich nicht selbst hinsetzen und mit KV vereinfachen.

von Michael W. (Gast)


Lesenswert?

Und wie fängt man da am besten an?
Ich sehe den Wald vor lauter Bäumen nicht. Ich habe da so ein "Buch" 
<Schaltungsdesign mit VHDL; Gunther Lehmann, Bernhard Wunder, Manfred 
Selz>. das ist ja ganz nett zu lesen, aber selbst wenn ich dieses von 
A-Z durchackern würde, könnte ich noch kein FPGA programmieren...

von berndl (Gast)


Lesenswert?

guck mal auf Lothars Seite. Nicht nur Code, auch gute Erklaerungen...

von Michael W. (Gast)


Lesenswert?

berndl schrieb:
> guck mal auf Lothars Seite. Nicht nur Code, auch gute Erklaerungen...

und was ist Lothars Seite?

von Michael W. (Gast)


Lesenswert?

Uwe schrieb:
> Um wirklich mal was "cooles" zu machen (ohne
> allzuviel Geld in die Hand zu nehmen) kann ich nur das DE0 nano Board
> empfehlen
> 
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593
> Da ist halt nen kleines "billig" FPGA drauf (Cyclone ist die billig"
> Serie,

Und wie wird das programmiert? Man braucht eine spezielle Toolchain für 
diesen Hersteller, oder eine x-beliebige?

von Lattice User (Gast)


Lesenswert?

Michael W. schrieb:
> berndl schrieb:
>> guck mal auf Lothars Seite. Nicht nur Code, auch gute Erklaerungen...
>
> und was ist Lothars Seite?

http://www.lothar-miller.de/s9y/

von Sanfredo (Gast)


Lesenswert?

Michael W. schrieb:
> habe zu meiner Zeit (war in
> den 80-ern) die Verwendung von Karnaugh Diagrammen gelernt und einen
> Überblick über Logikfamilien und Standardbausteine (Flip-Flops, etc...)
> erhalten. Ist diese Vorgehensweise heute passe, bzw. lernt man
> eigentlich noch auf dieser untersten Ebene?

Willkommen im Club. Du hast damit bessere Voraussetzungen, 
Digitalschaltungen zu bauen, als die Neulinge, die nur in Prozessen 
denken.

>Karnaugh
Gab es da nicht auch noch einen Hernn V.?   (Wegen KV-Diagram)

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


Lesenswert?

Und zum Thema Buch schlage ich noch immer "VHDL-Synthese " (trotz aller 
Schwächen) von Reichardt&Schwarz vor.

Eine Suche hier im Forum bringt da Licht ins Dunkel... ;-)

von Lattice User (Gast)


Lesenswert?

Sanfredo schrieb:

>>Karnaugh
> Gab es da nicht auch noch einen Hernn V.?   (Wegen KV-Diagram)

http://en.wikipedia.org/wiki/Edward_Veitch

von Christoph (Gast)


Lesenswert?

Michael W. schrieb:
> Und wie fängt man da am besten an?
> Ich sehe den Wald vor lauter Bäumen nicht. Ich habe da so ein "Buch"
> <Schaltungsdesign mit VHDL; Gunther Lehmann, Bernhard Wunder, Manfred
> Selz>. das ist ja ganz nett zu lesen, aber selbst wenn ich dieses von
> A-Z durchackern würde, könnte ich noch kein FPGA programmieren...

Ja, das war auch mein erstes VHDL Buch.
Völlig ungeeignet für einen Anfänger, da es eine Sprachbeschreibung ist 
und nichts mit dem praktischen Anwenden zu tun hat.

Jetzt ca. 10 Jahre später finde ich dieses Buch sogar nützlich und nutze 
es immer mal wieder um speziellere Finessen der Sprache VHDL nach zu 
schlagen.

Lothar Miller schrieb:
> Und zum Thema Buch schlage ich noch immer "VHDL-Synthese " (trotz
> aller Schwächen) von Reichardt&Schwarz vor.
>
> Eine Suche hier im Forum bringt da Licht ins Dunkel... ;-)

Kann ich als Anfänger nur empfehlen!
Ohne dieses Buch hätte ich dieses Thema während meinem Studium 
warscheinlich aufgegeben.

Viele Beispiele, Übungen und ein sehr praktischer Ansatz der deinem 
Vorwissen gerecht wird.

Michael W. schrieb:
> In der Analaogtechnik lernt
> man heute auf FHs noch so ziemlich das gleiche (das weiß ich, da ich
> immer wieder mit Studenten zu tun habe), wie zu meiner Zeit, die Dinger
> sind kleiner geworden, aber ein OP ist immer noch ein OP.

Noch ein kleiner Exkurs am Rand:
Weil wir noch nicht soweit sind, dass wir an den Schulen VHDL-AMS 
unterrichten :-)
Damit kann man man dann auch zeit- und wertkontinurierliche Systeme 
beschreiben und simulieren. Selber noch nie gemacht, da ich kein 
Chipdesign mache, Lego Klötze (LUTs im FPGA) gibts bis jetzt nur 
digital.

Michael W. schrieb:
> Und wie wird das programmiert? Man braucht eine spezielle Toolchain für
> diesen Hersteller, oder eine x-beliebige?

Die Toolchain ist immer herstellerabhängig.

Für die VHDL Simulation wirst du eigentlich (FPGA Bereich) nur zwei 
antreffen: ModelSim von Mentor und ActiveHDL von ALDEC. Die Hersteller 
liefern diese mit ihren Toolchains aus.

Als FreieSoftware gibts "nur" VHDL Simulatoren: GHDL und FreeHDL.
Die weiteren Prozessschritte (Synthese, Place&Route) sind, mangels 
informationen zu den FPGAs, nicht als OpenSource machbar.

von Michael W. (Gast)


Lesenswert?

Gleich vorweg: Bitte einen absolut unwissenden jetzt nicht zur Sau 
machen ggg Ich habe am Thema irgendwie Lunte gerochen und mag mich mit 
FPGAs beschäftigen.

Uwe schrieb:
> http://www.terasic.com.tw/cgi-bin/page/archive.pl?...

Das sieht ja interessant aus und das kleine Geld würde ich investieren, 
um mal was KOMPLETT neues zu lernen.

Jedoch verstehe ich einige grundlegende Dinge noch nicht (ich bin ja 
grad dabei mir einen allerersten Überblick zu verschaffen):

1) um mit so einem Board anzufangen benötige ich ja erst einmal das 
nötige Know-How was VHDL angeht. Sollte man sich das vorher aneignen 
oder während? Es scheint ja doch ein wenig komplexer zu sein als einen 
ARM zu programmieren ggg  Ich bin halt leider der ungeduldige Typ, der 
es nicht schafft zuerst mal 2000 Seiten in 6 Monaten zu lesen, bevor das 
erste konkrete Ergebnis am Tisch liegt.

2) Ich kann als Privatperson keine 1000€ ausgeben. 70€ ist OK. Für 
obiges Board benötige ich auch Quartus II? Was ist in diesem "Nios II 
Embedded Design Suite" die schon beim Board dabei ist denn drin? 
Beinhaltet diese bereits Quartus II? Falls nicht, wie komme ich zu einer 
günstigen ? Reicht da diese "Web Edition"? Und wenn ich Quartus II 
brauche, was ist dann das "Nios"?

3) Kann ich mit dem Quartus II auch simulieren? Vorerst muss ich ja 
lernen und ich werde wohl kaum gleich nach einer Stunde das Board 
programmieren...

Ich hoffe diese Fragen waren nicht allzu "dämlich" ...

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


Lesenswert?

Michael W. schrieb:
> Was ist in diesem "Nios II Embedded Design Suite" die schon beim Board
> dabei ist denn drin?
Vergiss einfach am Anfang mal diese Prozessorsysteme auf FPGAs.

> Reicht da diese "Web Edition"?
Die ganzen freien Versionen reichen locker für den Anfang. Nimm ein 
kleines, erprobtes, billiges Board und leg damit los. Mach das 
Blinklicht, dann das Lauflicht, dann eine serielle Schnitte, die 
Ansteuerung eines VGA Monitors. Und lerne dabei.
> 1) um mit so einem Board anzufangen benötige ich ja erst einmal das
> nötige Know-How was VHDL angeht. Sollte man sich das vorher aneignen
> oder während?
Wenn du hartnäckig dran bleibst, dann kannst du dich, wenn die Blätter 
braun werden, so langsam an größere Sachen machen. Nimm dir in der 
Lernphase viel Zeit für Irrwege und versuch herauszufinden, WAS du da 
gerade falsch gemacht hast. Auf diese Art wirst du diesen Irrweg später 
nicht mehr gehen...

Und falls/wenn dir das "kleine" EVAL-Board dann zu eng wird, dann 
verkaufst du es ohne nennenwerten Wertverlust und schaffst dir ein 
gößeres an...

> 3) Kann ich mit dem Quartus II auch simulieren?
Nein. Es ist aber eine Schnittstelle zum Simulator (ModelSim) 
implementiert, sodass du alles auf der selben Oberfläche erledigen 
kannst...

von Bernd Bruch (Gast)


Lesenswert?

Michael W. schrieb:
> berndl schrieb:
>> guck mal auf Lothars Seite. Nicht nur Code, auch gute Erklaerungen...

Oder eines der hunderten FPGA-projekte wie dieses: 
Retrocomputing auf FPGA. Die halten sich nicht mit KleinKlein wie 
FlipFlop die 42. auf, sondern zeigen wie man übliche Embedded-Blöcke wie 
Addressdecoder, Bus-multiplexer, Speicherinterface, RS232-Kommunikation 
in einer Hochsprache resourcenoptimal beschreibt resp. "baut".


MfG

von Michael W. (Gast)


Lesenswert?

Hallo und danke für deine Tips:

Lothar Miller schrieb:
> Michael W. schrieb:
>> Was ist in diesem "Nios II Embedded Design Suite" die schon beim Board
>> dabei ist denn drin?
> Vergiss einfach am Anfang mal diese Prozessorsysteme auf FPGAs.

Wie meinst du das ?
Dass das von mir angegebene Board "unbrauchbar" ist?

Lothar Miller schrieb:
>> 3) Kann ich mit dem Quartus II auch simulieren?
> Nein. Es ist aber eine Schnittstelle zum Simulator (ModelSim)
> implementiert, sodass du alles auf der selben Oberfläche erledigen
> kannst...

Ich will mir, wenn ich in dieses Thema schon einsteige, gleich mit einer 
geeigneten Toolchain anfangen, da ich später nicht alle drei Wochen 
umlernen möchte.

1) Was empfiehlst du für den Anfang nun konkret? Sollte ich mir die 
Quartus II Web Version runterladen?

2) Die momentan wichtigste Frage: Ich muss erst mal VHDL lernen. 
Nebenbei will ich dann sicher auch gleich mal was (ganz 
einfaches)ausprobieren. Was bedeutet "Ausprobieren" dann genau? Wenn ich 
keinen Simulator habe, wie dann? Ist ModelSim dafür geeignet? Was ist 
der grundsätzliche Unterschied zwischen Quartus II und Model Sim? Wann 
brauche ich was? Quartus zur Erstellung einer HW-Beschreibung und 
ModelSim zum Testen?

von Michael W. (Gast)


Lesenswert?

Noch so eine ganz grundlegende Frage:

Da gibt es Projekte, wo ganze CPUs in FPGA realisiert werden.

http://www.mikrocontroller.net/articles/Retrocomputing_auf_FPGA#Warum_Z1013.3F

Wie geht das eigentlich? ich baue dann auf VHDL Basis eine ganze CPU? 
Kann eine Einzelperson überhaupt das entsprechende know-How haben? Mir 
ist derzeit noch ein Rätsel, wie das funktioniert? Eine CPU ist ja nicht 
gerade trivial und besteht aus unzähligen Komponenten, tausenden 
logischen Grundeinheiten, etc. die ja einzeln getestet werden müssen. 
Mir ist klar wie der Z80 grundsätzlich funktioniert, aber den 
nachzubauen entzieht sich meiner Vorstellungskraft. Das macht man so 
locker in den Abendstunden? Auch Zilog wird den Z80 nicht einfach so in 
einer Woche aus dem Boden gestampft haben, und da arbeiteten vermutlich 
dutzende Entwickler mit jahrelanger Erfahrung monatelang dran. In Summe 
wohl Mannjahre. Und dann gibt es Einzelpersonen, die so als Spielzeug 
einen Prozessor locker nachbauen? Mir kommt das so vor als würde ich als 
Modellbauer einen Airbus nachbauen wollen - im Garten halt. Ich habe 
mich bisher nicht zu den dümmsten gezählt, aber langsam hab ich 
ernsthafte Bedenken...*ggg*

von Uwe (Gast)


Lesenswert?

> > > Vergiss einfach am Anfang mal diese Prozessorsysteme auf FPGAs.
> >Wie meinst du das ?
>Dass das von mir angegebene Board "unbrauchbar" ist?
Man kann ja in einem FPGA auch eine eigene CPU "bauen".
Um jetzt nicht selber ne CPU basteln zu müßen bietet Altera halt ne 
"fertige" CPU an, die man nur mit nen paar Mausklicks ins Fenster zieht.
Dazu gibt es dann noch Peripherie die man mit der Maus ins Fenster 
zieht. Und schon hat man nen Komplettes System im FPGA mit alles was man 
da reingezogen hat. Naja so in etwa.
Brauchst du um VHDL zu lernen nicht.

> 1) Was empfiehlst du für den Anfang nun konkret? Sollte ich mir die
> Quartus II Web Version runterladen?
Ja geht auch ohne Hardware. Ist halt schöner wenn man was in der Hand 
hält.

> Quartus zur Erstellung einer HW-Beschreibung und
> ModelSim zum Testen?
Ja

von Schlumpf (Gast)


Lesenswert?

@ Michael:

Ich versuch´s einfach mal, ein wenig für dich zu sortieren:

Um ein FPGA-Design zu erstellen benötigst du im Wesentlichen vier Dinge:

1. Einen Editor, mit dem du deine Eingabe in VHDL machen kannst. Das 
kann im Prinzip ein ganz normaler Texteditor sein.
Es gibt auch Editoren, mit denen man quasi Schaltpläne erstellen kann 
und die diese dann wiederum im VHDL wandeln. Davon rate ich dir aber 
erstmal ab.

2. Einen Simulator. Mit ihm kannst du das Verhalten deines VHDL-Codes 
simulieren. Das kann z.B. Modelsim sein.

3. Einen Synthesizer und Place and Route (PaR). Der Synthesizer ist der 
eigentliche "Compiler" und bildet das, was du in VHDL beschrieben hast, 
auf die Möglichen Strukturelemente ab, die der FPGA dir zur Verfügung 
stellt. Dazu muss der Synthesizer natürlich wissen, welchen FPGA zu 
verwendest.
PaR "platziert" dann die Elemente und verbindet sie "routing".

4. Eine Möglichkeit, das von Synthese und PaR generierte File in das 
FPGA zu "brennen"..

Die meisten FPGA Hersteller bieten eine Toolchain an, die alle o.g. 
Schritte in einer Entwicklungsumgebung zusammenfasst.
Dieser Entwicklungsumgebung geben sie dann einen hübschen Namen. Altera 
nennt sie "Quartus", Lattice nennt sie "Diamond",...

von Christoph (Gast)


Lesenswert?

Michael W. schrieb:
> Wie geht das eigentlich? ich baue dann auf VHDL Basis eine ganze CPU?
> Kann eine Einzelperson überhaupt das entsprechende know-How haben?

Lothar Miller schrieb:
> Und zum Thema Buch schlage ich noch immer "VHDL-Synthese " (trotz
> aller
> Schwächen) von Reichardt&Schwarz vor.

Geh und kauf dir dieses Buch.

Da wirst du Schritt für Schritt an all diese Themen herangeführt.

Der Abschluss bildet dann Kapitel 8: Synthesefähiger VHDL-Entwurf eines 
Mikroporozessors (Seite 193 bis 226)

von Schlumpf (Gast)


Lesenswert?

> Wie geht das eigentlich? ich baue dann auf VHDL Basis eine ganze CPU?
> Kann eine Einzelperson überhaupt das entsprechende know-How haben?

Eines nach dem Anderen..
Erst mal Gehen lernen und dann kannst du irgendwann an nen Marathon 
denken.

Eine CPU ist im Prinzip nichts Dramatisches und je nach Ausbaustufe und 
unterstütztem Befehlssatz kann die auch sehr klein und Übersichtlich 
ausfallen. Also durchaus etwas, was der ambitionierte Hobby-FPGA-Bastler 
in den Abendstunden zusammenwursteln kann.

Aber du wirst erstmal mit einem einfachen UND-Gatter anfangen.
Danach vielleicht einen Zähler
Dann einen Zustandsautomaten
Dann vielleicht mal nen UART
....

und irgendwann kommst du vielleicht selber an den Punkt wo du sagst: So, 
jetzt mach ich mal ne kleine CPU.

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


Lesenswert?

Bernd Bruch schrieb:
> eines der hunderten FPGA-projekte wie dieses: Retrocomputing auf FPGA.
> Die halten sich nicht mit KleinKlein wie FlipFlop die 42. auf
Das ist ein toller Tipp für einen Anfänger: "Mach 2 Schritt auf einmal 
und fall aufs Maul!"
Wenn ich (m)ein Flipflop (bzw. FPGA) nicht in- und auswendig kenne, 
bekomme ich keine Hardware ressourcenoptimal beschrieben. Und zu einem 
Flipflop könnte ich mehr als 42 Kapitel schreiben...

Michael W. schrieb:
>> Vergiss einfach am Anfang mal diese Prozessorsysteme auf FPGAs.
> Wie meinst du das ?
> Dass das von mir angegebene Board "unbrauchbar" ist?
Nein, dass du nicht das augenmerk auf einen als Softcore implementierten 
Prozessor setzen solltest. Das ist so, wie wenn du sagst: ich finde die 
Technik eines Autos interessant, dann aber nur zum Händler gehst und 
eine Probefahrt machst. (D)ein Auto lernst du nur durch das 
"Dranrumschrauben" kennen...

Michael W. schrieb:
> 2) Die momentan wichtigste Frage: Ich muss erst mal VHDL lernen.
Du musst nicht VHDL lernen, sondern du musst lernen, welche 10% von VHDL 
du tatsächlich auf Hardware bekommst. Denn:
> Nebenbei will ich dann sicher auch gleich mal was ausprobieren.

> Was bedeutet "Ausprobieren" dann genau?
> Wenn ich keinen Simulator habe, wie dann?
Für mich ist es die Implementierung in Hardware. Simulieren kannst du 
vieles, und nur der kleinste Teil davon wird auf einem FPGA umsetzbar 
sein.

> Ist ModelSim dafür geeignet?
Ein Simulator wird das tadellos als Verzögerungsglied simulieren:
1
   ausgang <= eingang after 500 ms;
Der Synthesizer wird das after einfach ignorieren, und du guckst mit 
deiner schönen und tadellos simulierenden VHDL-Beschreibung in die 
Röhre...

> Was ist der grundsätzliche Unterschied zwischen Quartus II
> und Model Sim? Wann brauche ich was?
> Quartus zur Erstellung einer HW-Beschreibung und ModelSim zum Testen?
Quartus ist eine Entwicklungsumgebung, die die FPGA Toolchain 
(Synthesizer, Mapper, Place&Route, Bitgen) und den Siulator (Modelsim) 
unter eine Oberfläche bringt.

von Bernd Bruch (Gast)


Lesenswert?

Michael W. schrieb:
> Noch so eine ganz grundlegende Frage:
>
> Da gibt es Projekte, wo ganze CPUs in FPGA realisiert werden.
>
> http://www.mikrocontroller.net/articles/Retrocompu...
>
> Wie geht das eigentlich? ich baue dann auf VHDL Basis eine ganze CPU?
> Kann eine Einzelperson überhaupt das entsprechende know-How haben? Mir
> ist derzeit noch ein Rätsel, wie das funktioniert? Eine CPU ist ja nicht
> gerade trivial und besteht aus unzähligen Komponenten, tausenden
> logischen Grundeinheiten, etc. die ja einzeln getestet werden müssen.

da hätten wir noch ein anderes project:
http://www.mikrocontroller.net/svnbrowser/pibla/00_hw/src/pibla.vhd?view=markup

resp. PiBla

ist ein Nachbau eines 8 bit softcores. Grundlage ist das Blockbild und 
er Op-code wie beim Orginal. Eine CPU besteht aus wenigen Blöcken die in 
einer Hochsprache einfach zu beschreiben sind:

-programmcounter
-Registerbank
-Speicherinterface
-Arithmetik/Logik-einheit
-Interruptcontroller
-datenpfad

In dem Projekt sind es knapp 1000 Zeilen, wurde in ca 2 Wochen von einer 
Einzelperson in der Elternzeit geschrieben. Wenn man gelernt hat wie man 
Zähler, Multiplexor und Register hochsprachig beschreibt ist ein kleiner 
Risc-Core keine Hexerei.
Um Klassen komplexer ist dagegen eine (FPGA-)CPU mit 6-stufiger 
Pipeline, Cache-managment, MMU, FPU und Sprungvorhersage, optimiert auf 
100+MHz.

MfG,

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


Lesenswert?

Michael W. schrieb:
> 1) Was empfiehlst du für den Anfang nun konkret? Sollte ich mir die
> Quartus II Web Version runterladen?
Richtig. Wenn du meinst, mit Altera glücklich werden zu können, dann ist 
das der nächste Schritt...

von Michael W. (Gast)


Lesenswert?

Christoph schrieb:
> Geh und kauf dir dieses Buch.
>
> Da wirst du Schritt für Schritt an all diese Themen herangeführt.
>
> Der Abschluss bildet dann Kapitel 8: Synthesefähiger VHDL-Entwurf eines
> Mikroprozessors (Seite 193 bis 226)

Setzt dieses buch voraus, dass man VHDL schon kann oder wird man an VHDL 
herangeführt? ich bin ja blutiger Anfänger ;-)

Falls letzteres zutrifft, würde ich es gleich bestellen.

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


Lesenswert?

Michael W. schrieb:
> Wie geht das eigentlich? ich baue dann auf VHDL Basis eine ganze CPU?
> Kann eine Einzelperson überhaupt das entsprechende know-How haben?
Eine nackte CPU ist doch einfach: die muss ein paar logische 
Verknüfungen können, Schieben und rechnen. Und dann braucht man noch 
einen Zustandsautomaten, der Befehle aus einem RAM holt, und das wars im 
Großen und Ganzen. Das geht in 2 Wochen, wenn man sich vorher 
eingerbeitet, schlau gemacht und VHDL gelernt hat.
Und diese Einheit kann man dann in allen möglichen Ecken optimieren und 
daruas einen Weltkonzern aufbauen. Dazu braucht man dann mehrere 
Mannjahre...

Michael W. schrieb:
> Setzt dieses buch voraus, dass man VHDL schon kann oder wird man an VHDL
> herangeführt? ich bin ja blutiger Anfänger ;-)
Man lernt den Teil von VHDL, der sich auf einem FPGA umsetzen lässt, 
kennen. Zwar mit Fokussierung auf Xilinx-FPGAs, aber die Hersteller 
kochen alle mit dem selben Wasser, haben die selben Probleme und recht 
ähnliche Lösungen.

von Michael W. (Gast)


Lesenswert?

Bernd Bruch schrieb:
> In dem Projekt sind es knapp 1000 Zeilen, wurde in ca 2 Wochen von einer
> Einzelperson in der Elternzeit geschrieben.

OK, das erscheint mir derzeit noch so, als ob ich in 3 Tagen zum Jupiter 
fliegen könnte...Aber ich fange mal klein an. Mich fasziniert das Thema 
einfach unglaublich...Wenn ich über ein Flipflop nicht hinaus komme, ist 
es ja auch OK...

Lothar Miller schrieb:
> Michael W. schrieb:
>> 1) Was empfiehlst du für den Anfang nun konkret? Sollte ich mir die
>> Quartus II Web Version runterladen?
> Richtig. Wenn du meinst, mit Altera glücklich werden zu können, dann ist
> das der nächste Schritt...

Und Modelsim alleine geht für den Anfang nicht?

von Uwe (Gast)


Lesenswert?


von Schlumpf (Gast)


Lesenswert?

> Und Modelsim alleine geht für den Anfang nicht?

Doch, das geht auch, wenn du nur simulieren willst und es nicht auf eine 
reale Hardware laden willst
Aber in so eine Entwicklungsumgebung ist alles schön eingebettet und man 
muss nur auf´s Knöpfchen drücken.
Aber man kann Modelsim natürlich auch "stand alone" verwenden.

von Michael W. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Eine nackte CPU ist doch einfach: die muss ein paar logische
> Verknüfungen können, Schieben und rechnen. Und dann braucht man noch
> einen Zustandsautomaten, der Befehle aus einem RAM holt, und das wars im
> Großen und Ganzen.

Das heißt, das Verhalten der CPU wird abstrakt formuliert, ohne sich 
drum zu kümmern, welche konkreten Gatter ich benötige, um eine ALU zu 
realisieren? Ich formuliere unter VHDL z.B. eine "Addition", ohne wissen 
zu müssen, wie diese Addition konkret umgesetzt wird? So wie ich ein 
Programm in C schreibe, ohne zu wissen, was da im einzelnen (auf 
Maschinenebene) genau passiert? So wie mir ein C-Compiler 
Maschinenbefehle auf unterster Ebene erzeugt, erzeugt mir die VHDL eine 
Umsetzung auf "Logikgatter", die ich dann im Detail nicht (unbedingt) 
kennen muss? Falls das so ist, wäre das ja ur-geil und ich habe bisher 
wirklich was versäumt ;-)

von Schlumpf (Gast)


Lesenswert?

Na ja, ich finde eher langbeinig Blodinen "ur-geil", aber jedem das 
Seine ;-)

Aber im Prinzip hast du recht.. du kannst eine Addition C = A+B 
hinschreiben und die Synthese baut dir daraus einen Addierer, ohne, dass 
du dich um jedes "Gatter" kümmern musst.

Ein Verständnis dessen, was da aber von der Synthese gebaut wird, ist 
dennoch sehr hilfreich und eigentlich für ein gutes Design unerlässlich.

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


Lesenswert?

Michael W. schrieb:
> Ich formuliere unter VHDL z.B. eine "Addition"
So etwa:
1
  res <= a+b;
Spannend wirds dann etwa ab der Division...  ;-)

> ohne wissen zu müssen, wie diese Addition konkret umgesetzt wird?
Dieses Wissen ist in der Toolchain und im FPGA implementiert und jeweils 
durch etliche Patente abgesichert. Du kannst aber einfach mal das 
Users-Manual "deines" FPGAs durchlesen, wie das nun konkret umgesetzt 
wird. Dabei wrist du dann bei den Addierern z.B. eine Carry-Chain 
finden, die genau den eigentlich kritischen Zählerüberlauf in die 
nächte(n) Stelle(n) optimal abhandeln kann...

von Michael W. (Gast)


Lesenswert?

Vielen Dank einmal...
ich habe mir das Buch bestellt und kann es kaum erwarten, darin zu 
lesen;-)

Sorry für meine laienhaften Fragen.

Verglichen mit diesem Thema ist mein ARM Controller ja eine 
Aufwärmübung...

von Michael W. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Dieses Wissen ist in der Toolchain und im FPGA implementiert und jeweils
> durch etliche Patente abgesichert. Du kannst aber einfach mal das
> Users-Manual "deines" FPGAs durchlesen, wie das nun konkret umgesetzt
> wird.

Das heißt auf Simulatorebene gibt es noch keine Umsetzung in konkrete 
atomare Bausteine, sondern es läuft der VHDL-Code quasi "interpretativ"? 
Für eine konkrete HW gibt es dann eine Art "Compiler", der mir aus einer 
Addition eine reale Logikschaltung macht. Richtig ? Falls ja, geht mir 
langsam ein Licht auf...

von Schlumpf (Gast)


Lesenswert?

> Das heißt auf Simulatorebene gibt es noch keine Umsetzung in konkrete
> atomare Bausteine, sondern es läuft der VHDL-Code quasi "interpretativ"?
> Für eine konkrete HW gibt es dann eine Art "Compiler", der mir aus einer
> Addition eine reale Logikschaltung macht. Richtig ? Falls ja, geht mir
> langsam ein Licht auf...

So kann man es sagen.

von Georg A. (georga)


Lesenswert?

Die Vorstellung, dass eine CPU "per se" komplex ist, taucht dann auf, 
wenn man als alter 74er-Digital-Hase versucht, nur in den verfügbaren 
74er Bausteinen zu denken... Das war zu den Anfangszeiten der FPGAs noch 
recht weit verbreitet und es gab für die damals vorherrschende 
Schaltplaneingabe auch Bibliotheken mit 74er-Äquivalenten, aber es hift 
gerade mit HDLs nicht viel. Der Witz an den FPGAs und HDLs ist ja, dass 
man eigentlich alles genauso haben bzw. beschreiben kann, wie man es 
tatsächlich braucht.

Ich muss mir keinen 24Bit-Zähler mit Preload aus 3*'590 (oder 6*'90) 
zusammenbauen und wenn ich dann noch einen Reset bei einem bestimmen 
Zählerstand brauche, mit 3*'688 einen Vergleicher dranzuhängen. Werden 
dann 25Bit gebraucht, geht die Überlegerei los, ob man das Bit noch 
diskret dazufrickelt oder zwei Bausteine nur 1/8 ausnutzt. Von der 
Versuchung, asynchrone Schweinereien zur Logikvereinfachung zu machen, 
mal ganz abgesehen.

von Hans (Gast)


Lesenswert?

Michael W. schrieb:
> OK, das erscheint mir derzeit noch so, als ob ich in 3 Tagen zum Jupiter
> fliegen könnte...
Nach 3 Tagen kommst Du theoretisch bis nach England, erleidest aber 
schon über Oldenburg einen Absturz, weil Du was übersehen hast.

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


Lesenswert?

Georg A. schrieb:
> Die Vorstellung, dass eine CPU "per se" komplex ist, taucht dann auf,
> wenn man als alter 74er-Digital-Hase versucht, nur in den verfügbaren
> 74er Bausteinen zu denken..
Oder gar noch, eine Schaltung so wie damals zu "malen". Mir gefällt da 
die Sache mit der Uhr im Beitrag "kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)"

Und dann gibt es natürlich noch Verilog, das im "Rest der Welt" (USA, 
Asien) eher verwendet wird. Siehe dazu den 
Beitrag "Frage zur Lernkurve VHDL vs. Verilog"

von Michael W. (Gast)


Lesenswert?

Und wie komme ich an ModelSim? bei der Student's Version muss ich ja 
eine akademische Institution angeben...rufen die mich dann an und fragen 
nach?

von Schlumpf (Gast)


Lesenswert?

Lade doch einfach die Quartus II Web Edition runter. Da ist alles dabei, 
was du brauchst (Auch Modelsim)

von Michael W. (Gast)


Lesenswert?

OK- danke !

von MCUA (Gast)


Lesenswert?

>Ist diese Vorgehensweise heute passe, bzw. lernt man
>eigentlich noch auf dieser untersten Ebene?
Auf welcher Ebene soll man sonst lernen, um HW entwickeln zu können?
Um mir das mit PLDs, FPGAs & Co anzusehen, würde ich zuerst mal die betr 
Datasheets ansehen (Reihenfolge einfach...komplex) (oder Buch (kann auch 
älteres sein) dazu kaufen), um zu sehen was da wie wo wieoft drin ist.
(Nichts anderes, als das was du bereits kennst, nur manches halt 
besonders (gut oder schlecht) verschaltet).
Denn nur die wirkliche Hardware dort drinnen kommt zum funktionieren, 
die Eingabeart (Schematics oder Sprache oder wie man es nennen will) ist 
nur Mittel zum Zweck.
Die Evolution (Revolution?) dieser Bausteine kann man nur anhand der 
eingebauten Hardware-Elementen beurteilen, nicht anhand irgend einer 
Sprache.

von Alex T. (monstabug)


Lesenswert?

Hallo,

Ich möchte gern die ursprüngliche Frage nach der aktuellen Lage bei den 
"Neulingen" beantworten.

Ich bin momentan an der HTL und kann sagen, wir lernen sehrwohl die 
unterste Schicht kennen.

Die ersten beiden Jahre bestehen hauptsächlich aus ohmschem Gesetz und 
analogem Schaltungsdesign. Wir lernen boolsche Algebra, KV Diagramme, 
4bit-Vollmultiplizierer aus Logikgattern aufzubauen, Flip-Flops, Counter 
/ Uhren mit ne555, designen, routen und löten von Platinen, etc.

Es ist aber auch zu sagen, dass unser Lehrplan einige Jahre hinter der 
Zeit ist ^^. In modernen Designs findet man meiner "Erfahrung" nach, bis 
auf den einen oder anderen Filter, kaum noch analoge Schaltungen; Es 
gibt heutzutage für fast alles einen IC, der dann auch ganz gern mal 
verwendet wird.

In der 3. sind dann Filter und OPVs das große Thema und im 2. Semester 
gehts dann erstmals mit µC los (bis vor kurzem eher 8051, jetzt meist 
AVR / PIC). Generell werden im Unterricht eher nur die Grundlagen 
abgedeckt, wer sich fürs Thema interessiert muss selbstständig lernen 
(man wird von manchen Lehrern auch dabei unterstützt :) ). in der 4 und 
5. gehts dann um Leitungstheorie, Regelungstechnik, µC, Smith-Diagramme, 
Modulation (AM, FM) und ganz intensiv auch noch Netzwerktechnik 
(Ethernet, LWL, IP/TCP etc.)

Es sind in der schule einige DE0-nano Boards vorhanden, die werden 
jedoch nirgends verwendet, es ist also VHDL/FPGA im Unterricht überhaupt 
kein Thema (bis auf eine kurze Abschreibübung zum Thema GAL(auch ein 
besonders aktuelles Bauteil xD )).

VHDL wird aber meiner Meinung nach in der Industrie sehr stark verwendet 
(sowohl FPGA als auch ASIC) und ist durchaus eine zeitgerechte Technik, 
die ein Digitaltechniker(-experte) beherrschen sollte.

Noch etwas: in der FH Hagenberg zB hat man fast ausschließlich mit FPGAs 
zu tun, wohingegen sich Studienrichtungen wie Elektrotechnik oder 
Telematik (Graz) bis zum Master fast ausschließlich auf analoges 
Schaltungsdesign konzentrieren.

Ich vertrete auch die Meinung, dass man sich mit der Hardware die man 
programmiert auskennen sollte, eine Ausbildung auf dem unterstem Level 
der Technik ist also unerlässlich (und auch notwendig als Grundlage um 
die komplexeren Dinge zu verstehen).

hoffe ich konnte etwas licht ins dunkel bringen :)

MfG,
Alex

von Puntigamer (Gast)


Lesenswert?

Alex Trinker schrieb:
> och etwas: in der FH Hagenberg zB hat man fast ausschließlich mit FPGAs
> zu tun,
hm, verwunderlich, in AT werden immer noch stark gute Leute auf dem 
Gebiet gesucht. Oft greift man auf Deutsche zurück, weil im Raum keine 
zu beschaffen sind. Gilt vor allem für den Raum Graz. Wenn stimmt, was 
Du sagst, dass es in Graz weniger FPGA zu lernen gibt, wäre das eine 
Erklärung.

von W.S. (Gast)


Lesenswert?

Leute, merkt ihr eigentlich noch, wie sehr ihr euch verstiegen habt?

Also, mein rat an den TO wäre so etwas dies:

1. fang an mir einem einfachen und  eher simplen CPLD. Das hat den 
Vorteil, daß du deine erdachte Logik so richtig in den Chip per JTAG 
brennen kannst und hinterher (bis zum nächsten Löschen) der Chip genau 
so funktioniert, wie du ihn programmiert hast. Strom marsch und Chip 
geht.

Fange nicht mit FPGA's an, denn die muß man in den meisten Fällen 
jedesmal mit ihrem Programm versorgen. Das geht zwar mit 
Konfigurations-Flashroms, die zum jeweiligen Chip passen, aber es ist 
eine Verkomplizierung auf den Anfang, die nicht sein muß. Sowas kannst 
du dir für später aufheben.

2. such dir eine einfache, aber nützliche Anwendung für dein Vorhaben, 
damit VHDL zu lernen. Bloß die üblichen Tralala-Projekte wie LED blinken 
lassen und so sind nicht wirklich lehrreich, weil vorgekaut. Alles - 
auch das Lernen einer bislang fremden Programmiersprache - braucht einen 
realen Zweck, sonst ist es mit Verlaub Wichserei.

Mein Vorschlag: ein simpler Frequenzzähler, also Frequenz ein, 7 Segment 
raus, erstmal 4 Stellen sonst wird es viel zu kompliziert für den 
blutigen Anfang.  Wenn du mit uC umgehen kannst, dann einen Vorteiler 
für nen Frequenzzähler, Stellenanzahl ist dann eher Sache des uC.

Und nochwas grundsätzliches: Alles, was man besser mit nem uC machen 
kann, sollte man auch mit nem uC machen. Programmierbare Logik hat genau 
dort und nur dort ihren Sinn, wo man das Ganze eben nicht genausogut mit 
nem uC erledigen kann.

3. Bastle dir ein einfaches Programmierinterface. Bei Xilinx geht ein 
sogen. Parallelkabel #3 immer noch gut und bei Altera nennt sich das 
ganze Byteblaster oder so. Da sist alles kein Aufwand und ist 
spottbillig, erfordert aber einen Parallelport. Sowas gibt es immer 
noch, z.B. als Steckkarte be Pollin, und zumindest die ISE von Xilinx 
kann damit immer noch gut umgehen.

4. Bastle dir zu deinem Projekt die passende Leiterplatte, schließlich 
soll das Ganze ja am Ende zu was nütze sein, sonst ist schnell der Spaß 
zu ende.

5. überlege dir die Schaltung, die du im Chip realisieren willst, also 
die Funktionalität, die es bringen soll. Du mußt das nicht in einzelnen 
Gattern aufmalen (geht aber..) - aber du mußt vorher wissen, was du 
eigentlich mit VHDL zusammenstricken willst.

W.S.

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


Lesenswert?

Zum Punkt 1:  Lattice als "Erfinder" der CPLDs verkaufen ihre MachXO 
FPGAs als CPLD Nachfolger. Wenn ich diesen Abgesang höre, würde ich 
empfehlen, gleich mit FPGAs anzufangen...

von Michael W. (Gast)


Lesenswert?

Danke für die Unterstützung...

Ich habe mir mal das Buch gekauft und bin im Schmökern.
Irgendwann in nächster Zeit (...) kaufe ich mit sicher ein Board.
Wieso ist von einem FPGA Board abzuraten? Weil es flüchtig ist? Ich habe 
schon an das DE0 nano Board gedacht - ist das für den Angang schlecht?

Ich bin aber sowieso noch nicht so weit, und ich will erst mal 
simulieren und die Toolchain beherrschen lernen.

von Georg A. (georga)


Lesenswert?

Abzuraten ist nicht ganz richtig, so ein Board ist schon gut.

Es ist halt so, dass CPLDs auf Flash basieren und FPGA auf SRAM. D.h. 
FPGAs sind nach dem Einschalten erst mal dumm und müssen irgendwie 
programmiert werden. Beim Entwickeln geht das schnell per JTAG, 
ansonsten muss das FPGA aus einem externen Flash "gebootet" werden oder 
eine CPU schreibt das rein. Das ist zwar für Bastelei und Updates 
praktisch, aber es verkompliziert das Design etwas, wenn man ein echtes 
"Produkt" haben will. Der ganze Umstand fällt bei CPLDs weg.

Ich persönlich würde trotzdem zu einem FPGA-Board raten. CPLDs sind 
schon arg beschränkt.

von Beobachter (Gast)


Lesenswert?

es ist doch kein problem, ein flash image zu machen und das 
draufzuschieben, die meisten fpgas sind auf den eval boards doch mit spi 
versehen

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


Lesenswert?

Michael W. schrieb:
> Wieso ist von einem FPGA Board abzuraten? Weil es flüchtig ist?
Das Board selber ist wie erwähnt nicht "flüchtig", weil es ja einen 
Config-Speicher aufgelötet hat. Es ist aber durchaus so, dass das 
einzelne FPGA eher flüchtig ist und einen externen Boot-Flash brauchen, 
wobei Xilinx mit dem S3 AN oder Lattice mit dem MachXO durchaus auch 
All-Inclusive Service anbieten.

Und auch bei CPLDs ist es schon seit geraumer Zeit so, dass die beim 
Anlegen einer Spannung ebenfalls geladen werden. Nur eben massiv 
parallel, sodass sie praktisch "sofort" da sind...

von Uwe (Gast)


Lesenswert?

Das FPGA lädt sich aber im Normalfall seine Konfiguration aber selber 
(Kann man durch die Pegel an ein paar Pins einstellen). Bei den fertigen 
Boards muß man sich darum keine Gedanken machen.

von Michael W. (Gast)


Angehängte Dateien:

Lesenswert?

Nachdem ich mir das Buch "VHDL-Synthese" besorgt habe, baue ich nun 
einige der Beispiele unter Quartus II nach, und schaue was dabei 
rauskommt.

Für die folgende Entity ist mir nicht (ganz) klar, wie das Ergebnis zu 
interpretieren ist:
1
entity SRG_PAR is
2
  generic(WIDTH: natural := 4;
3
          SHW:natural := 2);
4
  port( CLK, LOAD, R_L: in bit;
5
        DIN: in bit_vector(WIDTH-1 downto 0);
6
        YOUT: out bit_vector(WIDTH-1 downto 0));
7
        
8
end SRG_PAR;
9
10
architecture SHIFT_R_L of SRG_PAR is
11
  signal YINT: bit_vector(WIDTH-1 downto 0);
12
  signal TEMP: bit_vector(SHW-1 downto 0);
13
  begin
14
    TEMP <= (others=>'0');
15
    SYN_SHIFT: process (CLK)
16
    begin
17
      if CLK='1' and CLK'event then
18
        if LOAD='1' then YINT <= DIN;
19
        elsif R_L = '0' then
20
          YINT <= YINT(WIDTH-1-SHW downto 0) & TEMP;
21
        else
22
          YINT <= TEMP & YINT(WIDTH-1 downto SHW);
23
        end if;
24
      end if;
25
    end process SYN_SHIFT;
26
    YOUT <= YINT;
27
  end SHIFT_R_L

Die Fragen:

a)
Der RTL Viewer spuckt den Schaltplan aus, wie im Anhang. Was bedeutet 
"2'h0--" am linken MUX ? Wo sehe ich, wie die Beschaltung des MUX 
konkret aussieht? Im Bild ist das nur auf Bus-Ebene.

b)
Wenn YINT(3..0) die vier D-FFs sind, was bedeutet dann die Bezeichnung 
YINT ~ (3..0)? Ich meine die tiefere Bedeutung des Zeichens "~".

Danke, Michael

von Duke Scarring (Gast)


Lesenswert?

Michael W. schrieb:
> Der RTL Viewer spuckt den Schaltplan aus, wie im Anhang. Was bedeutet
> "2'h0--" am linken MUX ?
TEMP ist bei Dir "00". An dem Mux liegen die beiden Varianten des (links 
& rechts) geschobenen Wertes an.

> Ich meine die tiefere Bedeutung des Zeichens "~".
Die Tilde steht in Verilog (und in C) für die bitweise Negation.

Duke

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.