Hi!
Ich brauche etwas Starthilfe.
Für ein Bastelprojekt möchte ich ein paar TTLs in ein GAL stopfen.
Dachte ich ... kann nicht so schwer sein, Genius G450 aus Asien antreten
lassen, der kann GALs sagt die Verkaufsbeschreibung.
Dann Schock 1: die mitgelieferte Software braucht JEDEC als Input. Wenn
ich das richtig verstanden habe, brauch ich davor was womit ich das
JEDEC erstmal erzeuge.
Im Internet rumgewuselt und bei Google kilowattweise Strom verbraten ...
Abel-Compiler, hübsch aber wo kriegen umpf neuer Versuch GALASM ...
weiter bin ich auch nicht gekommen. Fassungslosigkeit macht sich breit.
Ich glaub nun doch nicht dass ich ein Verilog-System brauch um ein
kiki-GAL zu bauen? Wäre jetzt auch nicht schlimm weil ich eh noch ein
FPGA board hier oxidieren lasse, womit ich mal Verilog lernen will (Buch
hab ich durch).
Irgendwie bin ich knatschig, ich hatte gehofft es gäbe mittlerweile was
im Bereich OpenSource oder Freeware womit man so eine Aufgabe eben mal
erledigten kann. Aber mit "Eben mal" hab ich ja wohl grandios daneben
geschossen.
Also: Hilfe, wenn sich einer von den bereits fertigen Designern hier
wirklich mal so etwas archaisches wie ein GAL bauen will, womit macht
Ihr das?
Liebe Grüße
Adrian
PS: wenn die Software moderat Geld kostet, auch gut, aber moderat eben.
Wie Lattice User ja schon schrieb:
Das alte ispLever classic kann das noch.
Aber bist du sicher, dass du die alten GAL-Zobies wieder zum Leben
erwecken willst?
Für ein paar Logikfunktionen würde ich mal drüber nachdenken, vielleicht
ein CPLD zu verwenden.
Da machst dann nur eine Zeitreise in die jüngere Vergangenheit und nicht
gleich in die Steinzeit.
Ich habe zwischenzeitlich kräftig gesurfed und viel gelernt.
1.) ispLever zieh ich mir, einfach weil hier noch ein paar GALs
rumliegen. Danke für den Hinweis. (Ich Träne hab's dann später auch
gefunden, erst suchen dann fragen, ich weiss).
2.) Mittlerweile bin ich auch bei Deinem Vorschlag angekommen aber nun
wieder völlig irritiert. Die Hersteller machen es einem nicht leicht.
Oder ich bin zu blöd. Was hab ich gemacht:
- bin bei Reichelt suchen gegangen und hab mir nen CPLD ausgesucht:
billig ist XC95... und ich möchte ein sockelbares package. Perfekt?
Nein!
- denn auf xilinx.com bin ich in keiner Weise schlau geworden, welches
SDK ich brauch. Die Eierköppe (ist lieb gemeint aber Fakt! ;-) ) kommen
auch nicht auf die Idee bei den Chips/Products sowas hinzuschreiben wie
"use our fantastic free bladibla software or better or great commercial
ultra dudeldiedoe enterprise IDE to creat great and buggy designs?"
Für das WebPack schreiben die nur FPGAs hin, der Rest kostet Unmengen an
Geld, wo ich nun nicht glaub, dass ich das brauch (oder hätte!).
Gibt mir nen Tipp: welcher CPLD und welches Development Tool, den Rest
find ich dann schon. Der CPLD sollte bezahlbar, idealerweise 5V (ist für
Z80 Board Development) PLCC-packaged und das Tool umsonst sein .. träum
ich zumindest von.
Ne Platine zum Befüllen bau ich mir dann schon selbst (wenn ich das auch
nicht mehr kann stell ich das Basteln ein). Nen JTAG Adapter liegt hier
rum.
Aller Anfang ist schwer aber ich hab das Gefühl ich steh mir grad selbst
im Weg. Hilf mir bitte in die Latschen!
Adrian
Danke "Lattice User"!
Hab mir das gerade mal gezogen, und bau mir später mal ne VM wo ich das
Dingen einsperr. Damit bin ich in der GAL Thematik auf der Schiene und
rolle! Danke!
Die CPLD Geschichte geht mir natürlich nicht aus dem Kopf, zumal ich
dann ja eine schöne "Karriere" mache: GAL mit ispLevel, dann CPLD und
später FPGA (wo ich hin will, aber langsam).
Also die GALs sind im Sack, was mach ich mit den CPLDs?
Nachdem ich hier ein oder zwei Verilog Bücher wälze (hoffentlich lös ich
damit nun keine Grundlagen-Diskussion aus) wäre ja sexy, wenn ich die
CPLDs mit Verilog bauen könnte. Ich hab nun schon gehört dass einige
IDEs beides können VHDL und Verilog.
Ich frag mal ganz konkret:
- wäre ein z.B. XC9536 ok für den Einstieg oder ist das auch schon
wieder "Alteisen" ;-). (Hey, ich bin Software-Entwickler, eigentlich,
und will mir einen CP/M Computer selbst bauen, habt etwas Mitleid und
Humor!).
- wenn das nicht der richtige ist, macht mal einen Vorschlag? 5V
tolerant sollte er schon sein. Viele Zellen brauch ich nicht.
- welches SDK mit dem ich idealerweise dann gleich später mit FPGAs
weitermachen kann?
So zur Info: wozu eigentlich? (Hier nur weiterlesen, wer klassische
Computer oder Arduino liebt)
Ich will ein Z80 shield für den Arduino bauen. Der soll aber 512kRAM
haben und bekommt eine Bankswitching-Logik. Dafür und für den einen oder
anderen I/O sollen GALs oder CPLDs eingesetzt werden. Anbindung an den
Ardiuno über ne SIO und über das RAM (DMA-Request und SPI-Extender). So
kann das Board mit einer handvoll strippen an jeden ehrenwerten
Mikrocontroller ran, der dann I/O macht: Ergebnis - Ein Z80 mit SD-Karte
als Disks, Terminal über V.24, USB oder telnet. CP/M obligatorisch. Den
ganzen I/O macht der Arduino, Unmegen an Sensoren gibt es auch schon.
Man kann es auch anders sehen: ein kompakter Microcontroller-Rechner der
einen CP/M Companion hat, so dass man remote die Programme ändern kann
im Micro-Controller läuft nur die "Firmware". Der Rest ist eine Frage
der Software. Aber ich denke es wäre schon funny mal eine Steuerung in
Cobol oder Pascal zu bauen. Micro-Controller-Entwicklung in
Turbo-Pascal, klingt doch lustig.
Alles in allem ... ein Spielzeug! Und damit dieses Spielzeug kein
TTL-Grab wird: Bank-Switching in PLD!
@ Adrian Wallaschek (Gast)
>Gibt mir nen Tipp: welcher CPLD und welches Development Tool, den Rest>find ich dann schon. Der CPLD sollte bezahlbar, idealerweise 5V (ist für>Z80 Board Development) PLCC-packaged und das Tool umsonst sein .. träum>ich zumindest von.
Webpack, 6.32 reicht, wenn du nicht mehrere TB, ähh GB ziehen willst.
95xx OHNE XL am Ende ist ein 5V Typ. Die XL Typen haben 3,3V IO
Spannung, sind aber 5V tolerant. Siehe Pegelwandler.
CPLDs kann man mit VHDL oder Verilog entwerfen.
>- wäre ein z.B. XC9536 ok für den Einstieg
Ja.
>oder ist das auch schon>wieder "Alteisen" ;-).
Naja, rostig ist er schon, für den Einsteig reicht's gerade noch.
>- wenn das nicht der richtige ist, macht mal einen Vorschlag? 5V>tolerant sollte er schon sein. Viele Zellen brauch ich nicht.
Welche Logik willst du dort reinpacken? Ein Chip Select decoder ist kein
Thema, komplexe Logik mit vielen FlipFlops eher nicht.
>- welches SDK mit dem ich idealerweise dann gleich später mit FPGAs>weitermachen kann?
Webpack.
>Alles in allem ... ein Spielzeug! Und damit dieses Spielzeug kein>TTL-Grab wird: Bank-Switching in PLD!
Das passt schon. Aber nimm dennoch eher den 72er CPLD, nicht dass am
Ende eine Makrozelle zum Glück fehlt ;-)
Was ist als Einstieg brauch ist ein Bankswitcher.
Ursprünglich hatte ich einfach ein GAL mit welchem ich einen LS244
steuere im Sinn.
Länger drüber nachgedacht: GALs haben Fipflops. Von denen brauche ich
acht!
Eventuell hätte es ein 22V10 getan. Vielleicht hätte ich aber trotzdem
das LS gebraucht.
Funktional geht es darum:
- Z80 CPU hat 64k Adressraum
- RAM hat 512k
=> Bank-Switching!
D.h. es gibt 16 Bänke = 4 bit.
Ich möchte dass mein PLD den Adressbus überwacht und die DMA-Leitung.
Wenn kein DMA aktiv ist, also die CPU werkelt, soll der PLD die oberen 4
bit des Adressbus bereitstellen. Er soll 2x4bit Register haben, damit
ich 2 unterschiedliche Bänke ansprechen kann: eine für das BIOS, eine
für den Rest, also die obersten 4kB separat:
Bankbereich A ist von 0x0000-0xEFFF und
Bankbereich B ist von 0xF000 bis 0xFFFF
Also: ein Adressdecoder aktiviert entweder das eine oder andere 4 bit
Register. Einige Status-Leitungen (MREQ und DMA) müssen natürlich mit
beachtet werden. Der Ausgang ist logischerweise (wegen DMA) tri-state.
Aber das ist ja mit einem CPLD wohl weniger Problem als mit nem GAL.
Geschrieben werden die Register von CPU-I/O Zugriffen. Wieder etwas
Adressdecoder (diesmal von unten, 3 bit werden reichen: I/O Decoding für
Arme: 2 bit Register-Select und 6 bit device select, damit brauch ich
nur 3 bit) und eine Flanke vom IORQ setzt die FlipFlops. Zurücklesen
braucht nicht. Obwohl ... in einem CPLD wäre das ja vielleicht drin.
Für einen Anfänger ist das schon mal was. In LS kann ich das ratz-fatz
realisieren, aber der Drahtverhau wird allein an Kupfer was wert sein!
Also hinein in das Abenteuer!
Gruss
Adrian
Holger Harten schrieb:> Verilog is like C for FPGA's.
Das ist eine überaus irreführendere Aussage!!
Es werden bestenfalls (ein paar wenige!) Syntaxelemente von C
verwendet, aber das Verhalten dieser Syntaxelemente ist oft
vollkommen anders und die sich ergebenden Resultate dadurch meist
überaus unerwartet und unerwünscht... :-o
Eines stimmt aber: Verilog macht wie C viele implizite Annahmen. Bei C
muss ich erst mal das komplette Handbuch lesen, um zu verstehen, wie
diese Zeile umgesetzt wird und was da herauskommt:
1
#include<stdio.h>
2
3
voidmain()
4
{
5
longa;
6
shortb,c;
7
a=1;
8
b=3;
9
c=2.5*b+(char)a+1.7;
10
11
printf("%d %d %d",a,b,c);
12
}
Mir gefällt das nicht. Es verleitet zum schnellen, schlampigen "Erfolg".
VHDL haut mir da wegen der nicht passenden Typen zig Mal auf die Finger
und zwingt mich zum Nachdenken. Und das hat m.E. noch selten
geschadet...
VHDL ist akademisch aufgeplusteter Unsinn ähnlich ADA, bei dem der
Inhalt in redundanten Formalismen untergeht. VERILOG ist einfach wie
Gleichungen hinschreiben. Kein Wunder, daß die Amis die Chips
produzieren während man sich bei uns an der Uni darüber streitet wie der
am wenigsten kryptische VHDL code aussieht.
Ein GAL ist absolut in Orxnung, wenn es die gestellte Aufgabe erfüllen
kann. Braucht man mehr als ein GAL nimmt man ein CPLD.
Holger Harten schrieb:> Hier ab 14Min voraufen lassen.> Und dann anschauen , das sieht doch nach C Code aus.begin und end?
Das sieht wie Basic oder Pascal aus.
> Und dann anschauen , das sieht doch nach C Code aus.
Ja, und DAS ist das GEFÄHRLICHE daran.
Es sieht so "ähnlich" aus wie C, aber es ist ganz was Anderes...
> Der Ben Krasnow sagt auch "it looks like more than C to me".
Und recht hat er: es ist wesentlich mehr als nur C...
MaWin schrieb:> VHDL ist akademisch aufgeplusteter Unsinn ähnlich ADA, bei dem der> Inhalt in redundanten Formalismen untergeht.
Mal unter uns: das ist unreflektiertes Geplapper. VHDLan sich ist
nicht geschwätzig. Man kann es aber so anwenden, dass es umständlich
aussieht und auch ist. Das kann ich aber mit jeder anderen
Beschreibungssprache auch machen.
> Kein Wunder, daß die Amis die Chips produzieren während man sich bei> uns an der Uni darüber streitet wie der am wenigsten kryptische VHDL> code aussieht.
Ich schlage vor, nicht den an Hochschulen erzeugten VHDL Code als
Referenz herzunehmen und mit produktivem Code zu vergleichen.
Wie wärs mit einem kleinen Versuch?
Schreibt bitte mal eine synthetisierbare Uhr mit Kalender (Jahr = 4
Stellen, Monat, Tag, Stunden, Minuten und Sekunden je = 2 Stellen) incl.
Schaltjahrberechnung in Verilog. Und zwar so, dass ein Anfänger mit
rudimentären Kenntnissen die Funktion nachvollziehen kann. Wie viele
Zeilen braucht ihr?
Falk Brunner schrieb:>>Alles in allem ... ein Spielzeug! Und damit dieses Spielzeug kein>>TTL-Grab wird: Bank-Switching in PLD!>> Das passt schon. Aber nimm dennoch eher den 72er CPLD, nicht dass am> Ende eine Makrozelle zum Glück fehlt ;-)
Mal ganz ernsthaft:
Ich fand die GALs manchmal ganz praktisch, wenn ich eben mal 3-5 TTLs in
einer Testschaltung ersetzen wollte. Hat da jemand eine echte
Alternative, ohne gleich auf TQFP zu landen ?
Was macht ihr wenn mal nur ein paar Gatter zusammengefasst werden müssen
? Bei mir muss immer gleich ein Spartan3e Board ran,wenn uPs zu langsam
sind. (Hab nix Kleineres rumliegen.)
Grüße
Andreas
> Ich schlage vor, nicht den an Hochschulen erzeugten VHDL Code als> Referenz herzunehmen
Aha. Stattdessen ? Den in dem der Pentium definiert ist ? Kaum, der ist
in Verilog, wie alles kommerziell erfolgreiche.
> Schreibt bitte mal eine synthetisierbare Uhr mit Kalender
Ist jetzt nicht so unähnlich, dafür mit Multiplexing und 7-Segment:
http://simplefpga.blogspot.de/2012/07/to-code-stopwatch-in-verilog.html
@Adrian
Adrian Wallaschek Hallo...
Ich finde das super das hier einer Verilog macht.
Du solltest dich einloggen hier, dann kann ich dir ein PN
hier über das Forum schicken.
Ich habe die Teile alle da, damit du Starthilfe bekommst.
Mir haben die damals auch geholfen... u. warum sollte man
das nicht auch tun, u. was zurückgeben...
So einfach ist das...
Gruss Holger.
Link:
http://www.youtube.com/watch?v=pkJAWpkaiHg
MaWin schrieb:>> Ich schlage vor, nicht den an Hochschulen erzeugten VHDL Code als>> Referenz herzunehmen> Aha. Stattdessen ? Den in dem der Pentium definiert ist ? Kaum, der ist> in Verilog, wie alles kommerziell erfolgreiche.
Und wie war das nochmal mit dem fdiv-Bug? ;-)
> der ist in Verilog, wie alles kommerziell erfolgreiche.
Alles, wirklich ALLES? Ist das nicht ein wenig großspurig? Kannst du
diese Behauptung auch begründen oder verseierst du nur irgendwelche
billigen Verallgemeinerungen?
>> Schreibt bitte mal eine synthetisierbare Uhr mit Kalender> Ist jetzt nicht so unähnlich, dafür mit Multiplexing und 7-Segment:
Seh ich mir morgen zur Mittagspause mal an.
Holger Harten schrieb:> @Adrian> Adrian Wallaschek Hallo...> Ich finde das super das hier einer Verilog macht.
Ich finde es prinzipiell auch gut, nur sollte man diese
Beschreibungssprache dann nicht als logische Konsequenz von C oder wie
sauer Bier anpreisen. Verilog ist neben VHDL (und zwischenzeitlich
SystemC) eine der Hardwarebeschreibungs- und Simulationssprachen. Man
kann mit jeder der drei Sprachen die Funktionen eines FPGAs ausreizen
oder ein ASIC beschreiben.
> warum sollte man das nicht auch tun, u. was zurückgeben...
Du könntest hier auf uC.net einen Verilog-Artikel schreiben. So ein
Video ist schön für den ersten Überblick, aber was man sich ausdrucken
und auf den Schreibtisch legen kann, das hilft wesentlich
nachhaltiger.
> Und wie war das nochmal mit dem fdiv-Bug? ;-)
Wie viel Bugs hätte er in in VHDL gehabt weil die Designer
sich im Kauderwelsch der Sprache verheddert hätten ?
> Alles, wirklich ALLES?
Na ja, die anderen sind nicht kommerziell erfolgreich.
(gut, den ARM gibt es bestimmt in VHDL, typisch europäisches Produkt,
obwohl ich die ARM Sourcen nicht kenne)
Aber auch China macht eher Verilog.
Und aus Europa kommt sonst eher nichts verwertbares, die stecken noch
immer in der Package Definition fest und sind nicht beim Package body.
> dann nicht als logische Konsequenz von C
Na ja,
wenn man VHDL mit ADA vergleicht (die akademische und schwer
verdauliche)
dann ist Verilog mit C nicht so abwegig (die einfachere und
erfolgreichere...).
>Die neueren ARM Controller sind mit SytemC beschrieben, die "alten" in>VHDL. Und das hat den kommerziellen Erfolg nicht signifikant behindert.
Hast du Quellen dafür?
denn nun also diejenigen die den ARM dann in ihren Chips implementieren
dürfen, bekommen entweder VHDL oder verilog RTL um die Ohren, welches
dann durch die teuer Synthesemaschinen von Synopsys oder Cadence gejagt
wird (Ok dies sagt nix über die Code-Quellen aus).
Nun aber angefangen hat ARM "full custom"
http://groups.google.com/group/comp.arch/msg/269fe7defd51f29e
Lustig,
und ich sag noch ... ich will hier keine Grundlagendiskussion ;-).
Also damit ich auch gleich Stellung beziehe:
Wenn Verilog wie "C" ist dann wär es für mich ideal.
Tatsächlich habe ich im Buch vieles wiedererkannt, die Praxis wird es
beweisen. Wenn es heisst "in Verilog" schlampig hingeklatscht, naja,
genau das hab ich vor, es geht um Rapid Prototyping von Bastelkram und
nicht um die CPU für meinen Herzschrittmacher.
Ich bin also eindeutig kein Kandidat für VHDL (ich will nicht sagen dass
ich das nicht ausprobieren werde, aber wahrscheinlicher würde ich
SystemC ausprobieren).
Also: ich bin nun als koffeiniker registriert (der Name is Programm!)
und werde mich in Zukunft hier tummeln, weil Arduino und nun die PLDs in
allen Größen in nächster Zeit mein "Online-RPG" werden ;-).
Auf geht's!
@ Adrian Wallaschek (koffeiniker)
>Wenn Verilog wie "C" ist dann wär es für mich ideal.
Das ist es nicht. Das ist ein fataler Anfängerirrtum. Die Syntax sieht
sehr ähnlich aus, die Wirkung ist eine andere.
>Also: ich bin nun als koffeiniker registriert (der Name is Programm!)
Uhhhh.
Falk Brunner schrieb:>> Wenn Verilog wie "C" ist dann wär es für mich ideal.> Das ist es nicht. Das ist ein fataler Anfängerirrtum.> Die Syntax sieht sehr ähnlich aus, die Wirkung ist eine andere.
Danke, Falk.
Zum Hintergrund: mit Verilog, VHDL und mit SystemC wird nicht
programmiert, es wird die Hardware (oder ein System) beschrieben, die
sich der Entwickler vorstellt. Der Synthesizer kann bei geeigneter
Beschreibung dann eine Schaltung daraus machen, die im Idealfall so
aussieht, wie die ursprüngliche Vorstellung. Zur dieser Umsetzung gibt
es im CPLD Terme und Flipflops, im FPGA gibt es LUTs und Flipflops. Und
damit muss die beschriebene Schaltung aufgebaut werden können.
Hier tauchen immer wieder Anfänger auf, die (wegen der Ähnlichkeit der
Syntaxelemente) eine Hardware so beschreiben wollen, wie sie vorher
einen uC programmiert haben. Und fallen mit diesem Ansatz auf die
Nase...
Verilog ist das C für die Hardwareentwicklung, dürfte das am meisten
Missverstandene Zitat sein. Wer auch immer es zuerst gesagt hat, meinte
IMO eher dass Verilog die führende HDL ist, genau wie C die führende
Programmiersprache. (Ob er recht hatte sei dahingestellt, also bitte
keinen Flamewar)
Die Ähnlichkeiten erschöpfen sich doch in der Blockstruktur and bei den
Expressions.
SystemC ist da ja noch viel schlimmer, das IST C++ mit einer
Klassenbibliothek. ActiveHDL unterstützt SystemC (ob die Lattice Version
das freigeschaltet hat habe ich bislang nicht herausgefunden, der
Commandline Simulator als Vorraustzung dafür lässt sich auf jedem Fall
aufrufen). SystemC Sourcen füe ActiveHDL müssen übrigens mit MS VC++
oder gcc kompiliert und als dll eingebunden werden.
Wie Verilog und VHDL ist SystemC in erster Linie zur
Simulation/Verification entwickelt worden, wohl auch weil die Vs nicht
mehr mit den Anforderungen zur Verification von komplexen SoCs Schritt
halten konnten.
Verilog (IEEE Std 1364) ist übrigens eingestellt, und wird in Zukunft
als Subset von SystemVerilog (IEEE Std 1800™) fortgeführt.
>> Ist jetzt nicht so unähnlich, dafür mit Multiplexing und 7-Segment:>> http://simplefpga.blogspot.de/2012/07/to-code-stopwatch-in-verilog.html> Seh ich mir morgen zur Mittagspause mal an.
In dem verlinkten Verilog-Code für den Vorteiler ist ein grundlegender
Denkfehler, der von Anfängern gern mal gemacht wird: die 50MHz werden
nicht durch 50000000 geteilt, sondern durch 50000001.
Das ist jetzt dort nicht schlimm, weil weit unter der Ungenauigkeit des
Quarzes, aber wenn da mal nur durch 10 geteilt werden soll, dann macht
eins mehr oder weniger schon was aus...
Und hier ist die versprochene VHDL Lösung der "Stoppuhr":
1
libraryIEEE;
2
useIEEE.STD_LOGIC_1164.ALL;
3
useIEEE.NUMERIC_STD.ALL;
4
5
entitystopwatchis
6
Port(clock:inSTD_LOGIC;
7
reset:inSTD_LOGIC;
8
start:inSTD_LOGIC;
9
segments:outSTD_LOGIC_VECTOR(6downto0);-- a, b, c, d, e, f, g
10
dp:outSTD_LOGIC;
11
an:outSTD_LOGIC_VECTOR(3downto0));
12
endstopwatch;
13
14
architectureBehavioralofstopwatchis
15
16
-- minutes, ten seconds, seconds, tenth seconds, the current digit
17
signalm,s10,s1,st,digit:integerrange0to9:=0;
18
-- divides 50MHz to 0.1 sec: 0 to 4999999 are exactly 5000000 clocks
19
signalprescaler:integerrange0to4999999:=0;
20
-- the counter for the multiplexer with automatic overflow
21
signalmuxcnt:unsigned(17downto0):=(others=>'0');
22
23
begin
24
-- the stopwatch
25
processbegin
26
waituntilrising_edge(clock);
27
ifprescaler<4999999then-- count a tenth second
28
ifstart='1'then-- but only if enabled
29
prescaler<=prescaler+1;
30
endif;
31
else
32
prescaler<=0;
33
ifst=9then
34
st<=0;
35
ifs1=9then
36
s1<=0;
37
ifs10=5then
38
s10<=0;
39
ifm=9thenm<=0;
40
elsem<=m+1;
41
endif;
42
elses10<=s10+1;
43
endif;
44
elses1<=s1+1;
45
endif;
46
elsest<=st+1;
47
endif;
48
endif;
49
ifreset='1'then-- last assignment in process "wins"
50
prescaler<=0;-- -->reset has priority
51
st<=0;
52
s1<=0;
53
s10<=0;
54
m<=0;
55
endif;
56
endprocess;
57
58
-- the muxer
59
processbegin
60
waituntilrising_edge(clock);
61
muxcnt<=muxcnt+1;
62
casemuxcnt(17downto16)is
63
when"00"=>digit<=st;
64
an<="1110";
65
dp<='1';
66
when"01"=>digit<=s1;
67
an<="1101";
68
dp<='0';
69
when"10"=>digit<=s10;
70
an<="1011";
71
dp<='1';
72
whenothers=>digit<=m;
73
an<="0111";
74
dp<='0';
75
endcase;
76
ifreset='1'then-- when in reset
77
an<="1111";-- switch off all segments
78
endif;
79
endprocess;
80
81
-- the decoder
82
segments<="1000000"whendigit=0else
83
"1111001"whendigit=1else
84
"0100100"whendigit=2else
85
"0110000"whendigit=3else
86
"0011001"whendigit=4else
87
"0010010"whendigit=5else
88
"0000010"whendigit=6else
89
"1111000"whendigit=7else
90
"0000000"whendigit=8else
91
"0010000"whendigit=9else
92
"0111111";-- is a dash, but will hopefully never be used!
93
94
endBehavioral;
Den Vergleich der beiden Lösungen und die Bewertung der Aussage
> VHDL ist akademisch aufgeplusteter Unsinn ähnlich ADA, bei dem der> Inhalt in redundanten Formalismen untergeht.
überlasse ich jedem selber... ;-)
bko schrieb:>> Die neueren ARM Controller sind mit SytemC beschrieben, die "alten" in>> VHDL. Und das hat den kommerziellen Erfolg nicht signifikant behindert.> Hast du Quellen dafür?
Nein, das ist leider nur Hörensagen von einem Seminar. Ich muss mich da
offenbar nochmal schlau machen... :-/
########################################################################
###
Adrian Wallaschek schrieb:> Ich brauche etwas Starthilfe.>>>> Für ein Bastelprojekt möchte ich ein paar TTLs in ein GAL stopfen.
########################################################################
#########
Frage:
@Adrian
Darf ich dir eine persönliche Nachricht hier über das Forum schicken ?
Das würde mich sehr freuen.
Viel Erfolg mit dem Projekten...
Gruss Holger.
Lothar Miller schrieb:> Andreas H. schrieb:>> Was macht ihr wenn mal nur ein paar Gatter zusammengefasst werden müssen> Die 95er von Xilinx gibts im PLCC Format, wofür es wider passende Sockel> gibt:
Stimmt. Die Dinger sind da ganz brauchbar. Ich werd mir mal ein
Breakoutboard für die vqfp Variante machen. Das entspannt es ein wenig.
Danke für den Tip.
Grüße
Andreas
Andreas H. schrieb:> Danke für den Tip.
De nada.
Lattice User schrieb:> Verilog ist das C für die Hardwareentwicklung
Ich muss zugeben, dass ich mir Verilog schon wegen des
Fragezeichen-Operators nochmal genauer anschauen muss. So eine Zeile ist
fast so gut wie eine Sourcecodeverschlüsselung:
1
assignclick=((ticker==5000000)?1'b1:1'b0);
Und ich bin mir fast sicher, dass man da sogar Multiplexer mit
beschreiben könnte. Geht das hier?
@ Lothar Miller (lkmiller) (Moderator) Benutzerseite
>Ich muss zugeben, dass ich mir Verilog schon wegen des>Fragezeichen-Operators nochmal genauer anschauen muss. So eine Zeile ist>fast so gut wie eine Sourcecodeverschlüsselung:
Du sagst es. Der ist in C schon fragwürdig ;-)
>assign click = ((ticker == 5000000)?1'b1:1'b0);VHDL mag da eher geschwätzig sein, dafür lies es sich sehr direkt und
angenehm.
Adrian Wallaschek schrieb:> Ich glaub nun doch nicht dass ich ein Verilog-System brauch um ein> kiki-GAL zu bauen?
Wenn es nicht unbedingt klicki-bunt sein muss, dann tut es ein altes
DOS-Tool wie das in der untersten Zeile auf dieser Seite
http://elm-chan.org/fsw_e.html
Sowas nannte man früher "GAL-Assembler". Beim Begriff "design suite"
dachte man damals noch an Hotelzimmer.
Adrian Wallaschek schrieb:> @holger klar kannst Du mir PNs schicken.>>>
@Adrian du hast soeben ein Mail von mir bekommen.
Damit kann man fernmündlich alles klären.
Somit wird das einfacher
Gruss Holger.
Link: Zu dem Board was ich an dich weitergebe.
Program LCD on Spartan-3E, Verilog/FPGA (TestLCD)
https://www.youtube.com/watch?v=lQ6YKQt6Rz4&feature=endscreen&NR=1
PS.
Falls noch Fragen offen sind.
Hier schaue ich dann natürlich auch rein.
Um den Erstkontakt zu manifestieren.
Gruss Holger & Frohe Ostern an alle.
Holger Harten schrieb:
@Adrian Hier der Link ist für die Ref-Designs von Digilent.
Damit ist das erst mal manifestiert mit den *.pdf Unterlagen für das
Board Spartan E3 ...
Link: bzw. Passage von Holger.
Beitrag "Cpld einstieg und so viele Fragen"
Gruss Holger.
@Adrian
Programar FLASH PROM en FPGA Spartan-3e con XILINX ISE
https://www.youtube.com/watch?v=FcOyB84PlPk&list=PLBF4C5FE49871215F
Hier sind die 3 blauen JUMPER, genau zu setzen,die die Config. für den
Spartan-3E beinhalten. Damit ist via JTAG das Bit-File im Flash.
###################################################################
Nach einem Power-Up holt sich der SPARTAN das Design aus dem Flash.
Somit ist das Design nach einem Spannungausfall darin gespeichet.
Anloges Beispiel Boot: (ROM)--<>@MCU.
Der Spartan kann auch passiv sein, und über sein SPI Interface geladen
via externer CPU geladen werden (Bit-File) "Inject".
(3 Jumper = 3 Bits via Config-Mode)
Fazit:
Aber in der Regel macht das IMPACT Toll das per JTAG.
Gruss Holger.
Lothar Miller schrieb:> Der Spartan 3AN hat den ConfigFlash integriert. Deshalb auch N für>> nonvolatile.
@Lothar super danke.
Der Link ist für das SPARTAN Board für Source-Code testing.
https://www.youtube.com/watch?v=qXlM8p0u-as
Ich habe das SPARTAN 3E Board mit JTAG Platform, nur auf meinem alten
Garagen-PC mit WIN-XP am laufen. Die Stock-Firmware habe ich mit dem
IMPACT Tool gespeichert. Auf der Kit-DVD wurde der Treiber automatsch
installiert.
1*Bit-File, 1*JED File
Coolrunner II
---------------------------------------------------------------
Problem:
Bei WIN7 64 Bit lässt sich der USB Platform Cable Treiber nicht
installieren.
Die Digilent Adept Software 64Bit geht auch nicht.
---------------------------------------------------------------
Immer das selbe Dilemma mit den Treibern für USB auf JTAG.
So long.
Gruss Holger.
@Holger,
Holger, ich bin ein Proll!
Ich finde auf der Seite keine Nachrichteneinstellung, auf meiner email
kam nix an. Ich befürchte ich hab hier was falsch beim Anmeldern
angegeben.
Da mein Name hier Klartext steht ist meine email adresse sowieso
recherchierbar (und spam krieg ich eh schon reichlich).
Die erreichst mich unter adrian at wallaschek punkt de.
Adrian
PS: erklär mir mal ein mod wo ich hier die PNs einschalte, abrufe und
sende. Danke. ... Oh Gott komm ich mir alt vor! :-(
Adrian Wallaschek schrieb:> PS: erklär mir mal ein mod wo ich hier die PNs einschalte, abrufe und>> sende. Danke. ... Oh Gott komm ich mir alt vor! :-(
@Adrian Da oben in der Box-Ecke wo dein Autor-Name "koffeiniker" steht
klicks
du mit der Maus drauf, und dann poppt ein Fenster auf, für die PN
zu schreiben.
------------------------------------------------------------------------
-
Wichtig#1:
Da du aber ein mich eine PN schicken willst, machst du das in dem du
Autor: Holger Harten (holger-h-hennef)
also holger-h-hennef anlickst.
##################################################################
Wichtig#2:
Das Feature ist aber nur aktiv, wenn du eingelofft bist.
Der Vorteil vom Einloggen ist auch noch, dass du deinen postings auch
wieder findest.
PS: Die KontaktAdresse habe ich jetz auch.
Nach fernmündlicher Absprache können wir die FPG Start-Hilfe,
bzw. Forums-Hilfe für dich in die Wege leiten.
bingo>
Gruss Holger.
@Adrian
Ich habe heute noch mal ein ganz frisches Board geeordert.
Bzw. Noch ein Altera Ref-Design. (Für ein mobil MP3 Player in FPGA )
Link:
Hier ein Video von dem spez. Spartan-3E board.
https://www.youtube.com/watch?v=YEwxe-GERRY&NR=1&feature=endscreen
##################
Bild: Anhang- JTAG Interface ,ISE RS232 Project.
Gruss Holger.
Holger Harten schrieb:> Der Vorteil vom Einloggen ist auch noch, dass du deinen postings auch> wieder findest.
Und nach dem Absenden für 15 Minuten editieren oder gar löschen
kannst...
Lothar Miller schrieb:> Und nach dem Absenden für 15 Minuten editieren oder gar löschen>> kannst...
Das ist bei mir aber nur eine Minute, der Time-Slot.
####################################################
Manchmal ist der Editor hier zäh wie Honig.
Ist sicher hier die Bandbreite, aber unser Bürgermeister hat
erstaunlicher weise ein Internet-Bürger-Rundschreiben via Wahl-Zettel
für Hennef Sieg gemacht.
########################################################################
@Adrian
Die Stromlaufpläne für das Referenz-Board sind nicht die besten.
Ich will die JTAG Kette öffnen, um einen CoolRunner das zu proggen.
Kannst du ja mal in das Bild was ich gepostet habe reinschauen.
Die JTAG-Kette ansich habe ich am laufen. Impact geht also.
Ich brauche aber noch 64Bit Treiber via WIN7, für Xilinx das
Xilinx Platform Cable.
Der JTAG USB Chip is von Cypress.
Bei Lattice ist das der Chip Jtag + Rs232 mit (FTDI 2232D), da geht das
alles ohne Probleme.
###################################################################
Gruss Holger.
Holger Harten schrieb:> Das ist bei mir aber nur eine Minute, der Time-Slot.
Editieren kannst du höchstens so lange, bis ein Nachfolgepost gekommen
ist...
Holger Harten schrieb:> Ich habe heute auf meinem Garbage-Pc die Lizenz einfach übertragen.
@Adrian
Ich habe das mit Verilog erzeugte Bit-File jetz im
Spartan 3E Chip drin. bingo>
---------------------------------------------------------------------
Aber das Xilnx SPI Rom habe ich noch nicht mit dem
*.mcs File laden können, damit das Design von dem FPGA
dort via SPI geladen wird.
Das Tutorial ist hilfreich.
Ab 37:00 Minuten ist das an einem Spartan 3
XC3S250E-4VQ100C via SPI gezeigt.
Pinning: Hotswap, BSEL (000) .. usw.
#######################################################
FPGA Implementation Tutorial - EEVblog #193
Link:
https://www.youtube.com/watch?v=7AFGcAyK7kE
Gruss Holger.
Holger Harten schrieb:> @AdrianFPGA Xilinx VHDL Video Tutorial
Links:
http://www.youtube.com/watch?v=Ob7B6x5g6twhttp://blog.tkjelectronics.dk/2011/06/video-guide-how-to-get-started-with-xilinx-ise-and-vhdl/
------------------------------------------------------------------------
Ps: Danke für die PN. via (Xing)
Ich habe die ISE 11.1 auf meinem DELL Inpiron mit Platform-Cable am
laufen. (WIN Vista).
ChipSCope geht auch.
bingo> Ich bin "Laptop PC Mobil" mit den Xilinx SPARTAN-3E Board.
Die DVD ist der Schlüssel um da ein Xilinx System komplett mobile
aufzusetzen.
Ein SPI-Rom habe ich auch schon generated, und permanent als Ref-Design
Boot-Able via Impact Tool gemacht.
------------------------------------------------------------------
Nur der Treiber für (WIN7 64 Bit geht noch nicht) auf dem Toshiba Läppi.
#################
Gruss Holger.
Ok also das geht an den Lattice User und alle die sich zu den GALs
geäussert haben.
Ich bin mit meinem Versuch die ispLever Classic 1.6 für die GALs ans
Laufen zu bekommen einigermassen heftig am License-Management
abgeprallt. Ich hab die Lizenz anweisungsgemäß beschafft und installiert
und der FlexLM Finder findet auch die Nodelock license. Allerdings
scheint das nicht zu funktionieren: Fehler beim Laden von Projekten
F140007 window registry. Beim nächsten Start der Software: Lizenz
abgelaufen. Die Lizenz ist auf die richtige MAC Adresse eingestellt und
ein Jahr gültig aber die Software nölt rum.
Ich habe das mal dem licence-adm bei Lattice gemeldet und warte auf
Antwort wie ich da rauskomme. Das Verhalten war identisch unter XP und
7. Ich arbeite mit VMs unter MAC. Kann es daran liegen? Mein Programmer
und so weiter ist alles USB basiert und sollte problemlos in einer VM
rennen.
Da Lattice nun einigermassen enttäuscht ... zumindest bis auf weiteres,
gibt es Alternativen für GALs?
Gruß
Adrian
@Adrian
Du solltest dich bei Xilinx kostenlos Registieren lassen.
Mit ID und Password.
Das kann bei Xilinx ca. einen Tag daueren. .......
------------------------------------------------------------------------
--
Hint: die ID: ist z.B Xadrian1 , also min. ein Zeichen #Numerical.
2) Password: z.B X_Caffe1 .
Hint: geanau beides gut aufschreiben & nix verbummeln.
(Sonst ????? @ Grummel ): )....
Hint: Das ist sonst immer blöde eine neue ID zu bekommen, da die
Xilinx Webmaster echt frickelig sind.
----------------------------------------------------------------
Díe Lizenz kannst du ein leben lang behalten, und auf deine zig
Workstations übetragen, also WWW independent arbeiten.
Z.B Bankenwesen Cry-Engine ..ect bingo>
---------------------------------------------------------------
Gruss Holger.
Adrian Wallaschek schrieb:
> Da Lattice nun einigermassen enttäuscht ... zumindest bis auf weiteres,>> gibt es Alternativen für GALs?
@Adrian
Ich habe das ca. Jahr 2007 mit Lattice Gals auf WIN8 System
gemacht. Eigene ISA PC Address-Decoder, Prüf-Adapter ect..
Schöner Frickel-Kram.
#################################################################
Link:
GAL lässt sich nicht schreiben
Beitrag "GAL lässt sich nicht schreiben"
Ich habe da einen eigenen Brenner gebaut (via LPT:1)
Unten ganz weit durchscollen....
dem Link ist der Zip für den Brenner-Firmware.+
Zeichnungen.
Die C und Eagle V3.2 Quellen sind von Manfred Winterhoff gemacht.
Der ist aber wohl nicht mehr aktiv.(Server Down)
-----------------------------------------------------------------
Den Brenner habe ich aber für meine Zwecke noch gemoddet.
Aber wir können das ja alles fernmündlich bereden.
############################################################
Die HomePage von Holger Klabunde ist damals mein GAL Pool geworden.
GASM für 16V8,20V8 Derivate.
Ich habe für mein Chef damals ein Multirog Brenner
von Holger Klabunde gekauft. Das Ding geht heute noch, aber eben
nur auf LPT:1
Jetzt sind aber auf der HP nur noch CPLD's mit da drauf,
ich habe aber alles noch auf alten H-Disks.(suchen )
#####################################################################
Tip: AFAIK Ulrich Radig seine HP ist auch für CPLD Stuff gut.
http://www.ulrichradig.de/home/index.php/cpld/vga_monitortester
---------------------------------------------------------------------
Damit kannst du dir ein LPT Brenner für XC9536 oldis machen.
Die XC9536 ist aber dur 3,3V XC9536Xl ersetzt worden.
Also bleibt noch der Xilix Cool-Runner II,
Oder halt GALS mit meinen Tools von anno asbach.
---------------------------------------------------------------------
Gruss Holger.
Adrian Wallaschek schrieb:> Ich bin mit meinem Versuch die ispLever Classic 1.6 für die GALs ans>> Laufen zu bekommen einigermassen heftig am License-Management>> abgeprallt. Ich hab die Lizenz anweisungsgemäß beschafft und installiert
Ich denke du musst das mal auf einem alten Win98 Desktop PC testen.
-------------------------------------------------------------------
Da hatte ich nie Probleme, aber MAC das geht nicht so gut ?.
Das ist doch nur die License.dat die im Verzeichniss ist oder ??.
Hast du das mal im Source-Code nachgeschaut.
Lattice hat GAL16V8 A,B,C,D Derivate.
Die Fuse-Matrix ist da anders via einzelner Adressen gemoddet.
Da muss also unter dem Grund-modell z.B 16V8 compile gemacht werden,
und der Brenner für spez. Gal16V8D modelt die Fuse-Matrix um, und
brennt den Chip.
Was hast du für Lattice GAL Derivate ?
Kann dien Brenner die Fuse von 16V8A auf fuse 16V8D ummodden?
Lattice hat oft die Fuse-Matrix verbessert, un die User hat das nicht so
gefreut.
Ich habe noch einige 20V8A .. u. 20V8D
Gruss Holger.
Adrian Wallaschek schrieb:> abgelaufen. Die Lizenz ist auf die richtige MAC Adresse eingestellt und> ein Jahr gültig aber die Software nölt rum.>> Ich habe das mal dem licence-adm bei Lattice gemeldet und warte auf> Antwort wie ich da rauskomme. Das Verhalten war identisch unter XP und> 7. Ich arbeite mit VMs unter MAC. Kann es daran liegen? Mein Programmer> und so weiter ist alles USB basiert und sollte problemlos in einer VM> rennen.
Was heisst richtige MAC Addresse? Die des MAC oder der VM?
Wenn man google nach flexlm und vmware befrägt findet sich viele, die da
mit allermöglichen Software Probleme habe, z.B. weil sich die virtuelle
MAC Addresse schon mal ändert.
Die MAC Adresse ist natürlich die von der VM. Das MacOS sieht ISPLever
ja nicht. Die MAC Adresse ändert sich nur wenn man die VM kopiert und
dabei was falsch macht ;-). Im Zweifelsfalle weiss ich auch, wo ich die
für die VM manuell einstellen könnte. Das ist es nicht. Den
Virtualisierungskram mach ich schon seit Jahren da bin ich fit. Der
FlexLM sollte eigentlich auch auf einer VM keine Probleme haben. Ein
Internet-verbundener Lizenzcontroller kann da schon mal über die
Uhrensynchronisation stolpern, Flex macht das aber nicht.
Zur Windows Version:
"The current version is ispLEVER Classic 1.6,
released on August 13th, 2012."
"ispLEVER Classic download is supported on the Windows 7,
Windows Vista, Windows XP or Windows 2000 operating systems."
Die System-Requirements im Installation Guide lesen sich entsprechend.
Das hört sich auch nicht nach Win9x oder so an. Mit W7 oder XP sollte es
also gehen, tut's aber bisher nicht.
Ich versuch es sicherheitshalber nachher nochmal auf Hardware. Hier
steht genug von der Sorte rum. Wäre aber Schade. So ein Mac ist zum
Arbeiten einfach nicht zu überbieten. Aber die Chipschmieden denken so
einseitig ;-).
Ich geb nicht auf,
Adrian
@Adrian
ipconfig zeigt 2 MAC Ethernet Adressen an.
Die eine MAC must du nehmen, und zwar die von der Ether-Karte-HW
"nicht" die vom WLAN-Adapter via Ethernet.
Hint:
Das ist der Zip-File galplan2.zip
Einfacher DOS GAL Assembler ca. 130kB
Link:
http://www.holger-klabunde.de/multiupd.htm
Zip-Source:
http://www.holger-klabunde.de/multiprom/galplan2.zip
Stromlauf-Plan
http://mpu51.tripod.com/gal/gal.html
##########################################################
Hint: Kostet 40 Euro
http://www.eetools.com/index.cfm/product/311/opal-jr.cfm
•PLD Compiler for over 100 Jedec file generator including
•(GAL16V8,20V8,16R4,16R6,16R8,20L8,20R4,20R6,20R8,20R8, 22V10, 6001)
•User's guide and 3.5 Disk, Developed by National Semiconductor
Gruss Holger.
Ich hatte das 2. Interface deaktiviert. Das taucht bei mir gar nicht
auf.
Opal wäre nur eine Notlösung:
1.) ist es keine Standardsprache sondern einer dieser
Equation-Assembler.
2.) erzeugt es PAL JEDECs die anscheinend erst mit PAL2GAL konvertiert
werden müssen, d.h. GALs werden nicht nativ unterstützt.
3.) 40 Tacken dafür? Ähhh ... Nööö! Dann geh ich lieber mit dem ispLever
auf Hardware ;-)
Aber ... es war ganz interessant da mal draufzuschauen. Danke für den
Hinweis.
Nen Programmer hab ich: USB basiert: G450 (aus Asien via ebay) kann
EPROMs et al, GALs und hat auch PLCC Adapter für 32 und 44 pins. Also
eigentlich ideal für meinen Classic-Kram. Neueres geht sowieso über
JEDEC. Leider hab die Freunde aus Asien keinen Assembler beigepackts.
Umpf.
Ok,
ich bin ein Held! Ich hab den ispLever anscheinend am Laufen.
Neu installiert und ... die Intro gelesen ... neu gebootet!
Dann weitergemacht und siehe da es geht. (erstmal ohne Lizenz die pack
ich nachher rein).
Ich bin bin das nicht mehr gewohnt. Unter MacOS oder Linux muss man
nicht ständig neu booten. Unter Windows bräuchte man eigentlich schon
eine TASTE dafür. Würde sich lohnen ;-).
Naja, also ich kann jetzt erstmal Abel'n. Soweit gut. Devices hab ich
mir bestellt. Auch was aus der Lattice CPLD Ecke.
Soweit erstmal Danke an alle.
Jetzt nehm ich mir nebenbei mal die Xilinx und Altera IDEs vor.
(Xilinx für den XC95xx und Altera für mein FPGA Board).
Adrian
Adrian Wallaschek schrieb:> 2.) erzeugt es PAL JEDECs die anscheinend erst mit PAL2GAL konvertiert>> werden müssen, d.h. GALs werden nicht nativ unterstützt.
Doch das macht das Tool auch, z.B 16V8 sind Decoder als Beispiele
darin.
(Read.me)
Hier ein Hint für deine Lattice Gal-IDE.
(oben ist nur Text in griechisch, aber die Gleichungen + Bilder, für
einen
Home-Brew Gal Progger, mit Source und EXE)
Bitte ganz nach unten scrollen.
Link
http://users.ntua.gr/dpiperid/MyWebPage/Contructions/Programmers/GalBlast.htm
Gruss Holger.
Die Lattice Gal Timing-Bilder Register Transfer (RTL) sind mit deiner
IDE jetz möglich.
Damals 2006 war das alles etwas frickelig, bericht mal wie das heute
ist,
die Soft ist ja von 2012 ...
Viel Erfolg &
Gruss Holger.
Holger Harten schrieb:> Hier ein Hint für deine Lattice Gal-IDE.> (oben ist nur Text in griechisch, aber die Gleichungen + Bilder, für> einen> Home-Brew Gal Progger, mit Source und EXE)> Bitte ganz nach unten scrollen.> Link> http://users.ntua.gr/dpiperid/MyWebPage/Contructions/Programmers/GalBlast.htm
Hat ein bisschen Ähnlichkeit mit Marvins GALblast...
Der Original-Autor liest ja hier auch mit.