Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlagen
dann wird´s aber Zeit, da mal was zu machen!
Die Dinger sind nämlich garnicht so verkehrt.
Es muß ja nicht der High-Chip mit 1/2 Million Transistor / oder noch besser 1/2 Mio Gatteräquivalente sein, ein GAL tut´s anfangs auch. Hat auch den Vorteil, daß die meisten Prommer das können und gleich auch noch eine kleine Software dabei ist (ich rede jetzt vom CONITEC GalepII und III)
Dazu braucht man nicht!!! so ein Ungeheuer-Paket wie z.B. PALASM (das Ding erschlägt; kann alles usw. nur das alles nutzen für ein paar Gatter???), da tut´s die Prommer-Software oder ein Freeware Tool auch.
Dto. mit PLDs (Beispiel Lattice 1016 / 1032), das sind einfach große, aufgepustete GALs.
Für Newcomer:
GAL = Gate-Array-Logic
PAL = selbiges, aber nur einmal programmierbar und typenspezifisch.
Sinn der GAL-Aktion war es, mehrere PAL-Typen zu emulieren.
Typenbezeichnung: PAL 16L8 hat 16 Pins zzgl. Versorgungsspannung, davon 16 Eingänge auf 8 Ausgänge verknüpfbar und das nur "logisch"
also Pin 2 = (Pin5 and Pin4) or Pin7
ich schieß das jetzt mal ab, nicht daß mir dir Software wieder einen zeigt...
gleich geht´s weiter.
dann gibt es die PALs 16R8 z.B.
R heißt registered, die haben Flipflops im Ausgang, können also zählen z.B.
Das macht dann der PAL-Assembler:
statt z.B. Pin2 = Pin3 and Pin4
heißt es dann := (Doppelpunkt gleich), d.h. beim nächsten Clock-Signal.
Jetzt kommen die GALs, die können beides. Wiederum macht das der GAL-Assembler; den interessiert nicht!!! "=" oder ":=", den interessiert, daß er ein GAL vor sich hat und das nach seinem Gutdünken je nach, in den entsprechenden Modus versetzen kann.
Ein GAL 20V8 hat also 20 Pins (zzgl. Betriebsspannung) davon 8 "universell verwendbare Ausgänge, kann also ein 20L8 genau wie ein 20R8.
So setzt sich die Typenbeschreibung fort. (16Vxx = 16Lxx oder 16Rxx).
Interessiert nur die Anzahl Pins (soviel in, soviel out).
CPLDs (gleich)...
CPLD = aufgepustetes GAL!
Als Beispiel sei hier mal der ISP1016 von Lattice genannt, das sind vom Prinzip 16 huckepack-gestapelte GALS --> menge Holz (hat auch 44pin PLCC)
Mal abgesehen von UB+ und Masse und einem speziellen Clock und Reset Eingang und einem (und jetzt kommt der Knaller) "ISP" in-system-programmable.
Man braucht keinen Galep oder sowas, ein Kabel an der Parallelschnittstelle (Centronics) des PC reicht. Läuft ähnlich wie die neueren 8051er mit MISO/MOSI.
Jetzt der Hit: Man kann jeden Pin individuell konfigurieren (bis auf die 4 5 6 reservierten - UB, Prog..Takt) usw., aber selbst die kann man auch noch nutzen.
Bleiben wir beim 1016, der hat 16 Logic-Blocks (a 4 Register); der 1032 kommt demnach auf stolze 96 Flip-Flops intern, die sich als JK-D-RS oder nur als einfache Verknüpfung nach Belieben verschalten lassen (gut für´s Platinenlayout).
weiter gleich...
Noch einer:
Die Viecher laufen bis zu 125MHz !!! (hundertfünfundzwanzig Megaherz)!!!
Das ist dann die Reihe 20xxx, die 10xxx schaffen um die 70MHz.
Real ist ohne Supertricksen etwa die Hälfte, weil der Clock ja einmal H und einmal L ist, aber (eigene Erfahrung... der 1032 bringt echte 35MHz Durchsatz), da muß sich ein TTL schon abstrampeln; vor allem ein LS-TTL, weil die Viecher auch recht sparsam sind in Punkto Stromaufnahme.
Man muß sich das mal vor Augen führen: Eine Aldi-Plastiktüte vollgepackt mit TTL-Chips.
Wird noch besser, Thema FPGA (Xilinx und Konsorten) 250.000 Gatter, da reicht die Tüte nicht mehr...
aber soviel erstmal zu diesem Thread.
Hunger bekommen??? Ich auch!, also erstmal was essen...:)
Nach kurzer Pause grüßen jetzt die Xilinxe:
Im Gegensatz zu CPLDs a´la Lattice GALxxx/ISPxxx reihen die sich in die Gattung FPLA ein, sprich Flexibel programmierbares Logic Array; andere Bezeichnungen gibt´s auch.
Unterschied: Die haben nicht die GAL-Struktur mit xyz-Ausgangszellen, sondern einfach zigtausend Transistoren, die beliebig können; da kann man ganze CPUs per Software hineinladen; z.B. den beliebten 80xxx - wutsch ist der drin, incl. Memory-Controller... was einem so einfällt.
Aaaaaaber!!!
Die Programmierung erschlägt einen erst recht, obgleich die Software fast identisch wirkt, nur 200tausend!!! Gatter zu verbauen, statt 96 Flipflops ist heavy hoch drei.
Geht einfach nicht, zumindest nicht so einfach wie bei CPLDs.
Da kommt dann "Abstrakte Modellierung Digitaler Schaltungen" ins Spiel, z.B. VERILOG udgl., also nicht mehr Pin1 = Pin5 and Pin7, sondern ein BASIC-artiger Dialekt "on rising clck... on edge blubber blubber" - tu das und jenes.
so nach dem Motto:
if clock = steigend, then zähl eins weiter.
Den Rest erledigt der Compiler; der baut dann selbst einen Zähler daraus zusammen.
Entsprechend ist der Verbrauch an Transistoren, ein paartausend on Chip braucht man dafür schon, und wundere sich niemand, wie schnell man per if-then-else paarhundert Transistoren verbaut hat; das geht ratz fatz.
Nur... im Gegenteil zu Microcontrollern setzt der Compiler das direkt in Hardware um; nix mit so-und-so vielen Taktzyklen, da werden Transistoren verbaut ohne Ende, mit dem Erfolg von "1Clock" bei zig MHz. - und dann hat der (ähnlich einem DSP) - aber eben in Hardware 20.000 Transistoren zu einem filigranen Register zusammengebaut, dessen Schaltplan kein Mensch raffen würde.
VERI high abstraction LOGical language.
Entwicklungssysteme für Einsteiger sind Freeware
--> Design Expert (früher Synario) für z.B. Lattice
--> XILINX Web-Pack
und danach kommen die Megatausend teuren Produkte, gleich mit Autorouter, Platine, Schaltplan usw. Da kann sich dann der Router den "besten" Pin selbst aussuchen, der am besten ins layout paßt, und verändert dann selbst das Pinning. Dazu dann Synthese/Analyse Tools mit Berechnung der max. Frequenz, Leiterbahnlayout mit diesen (man sieht es auf PC-Boards) mäanderförmigen Leiterbahnen, damit alle Signale (HF-technisch) zur gleichen Zeit an die auserwählten Pins kommen. Das macht alles die Software, und das ist der Knackpunkt. Hut ab vor den Programmierern, die diese Tools schreiben, denen die Mega-Rechner bauen, um in brauchbarer Zeit solche Monster-Router erträglich werkeln zu lassen usw.
Blicken tut das kein Mensch mehr, genausowenig wie Bits.
Deswegen gibt es Mnemonics (z.B. add a,b) und nicht 001000010
Hochsprachen (if a>b then mach was)
und eben VHDL (very high definition language) (on posEdge do count +1),
woraufhin der Compiler sich erstmal 100 Transistoren packt, daraus einen Flankendetektor und einen Zähler baut.
weiter demnächst
fangen wir mal bei GALs an (PALs sind out für Bastler; zuviel Verschleiß, weil die sich nicht löschen lassen (Tonne) und man zig Typen im Regal haben müßte...)
Für industrielle Fertigung lohnt das natürlich, keine Frage (10.000 Videorecorder a einen Groschen gespart; klarer Fall)!!!
Also GAL für unsereins; (P.S. macht dann auch keinen Unterschied danach in die 10.000er Serie zu gehen; die Logikgleichungen sind 1:1), also mit GAL testen, dann PAL programmieren.. (lohnt aber echt erst bei Menge).
Was macht jetzt der Assembler? (P.S. es ist genau so ein Assembler wie einer für Z80, 68000, 80xxx, oder vergleichbar eine recht einfache Programmiersprache in Form einer Textdatei (Notepad z.B.) diesem präsentiert.
Das ist ganz wichtig, weil der Assembler kein WORD kann, auf Formatierungen scheißt etc. - also plain Text ASCII
Zuerst kommt die Definition des Bausteins, dann das gewünschte Pinning
Chip : 20V10
Pins : Clock, Schalter1, Schalter2...Lampe1, Lampe2... (alle der Reihe nach durch!!! von 1..24 hat der 20V8).
Da jetzt aufpassen!!! er hat nur 10 Pins die Ausgang sein können; Eingang jederzeit; kein Thema. IdR. ist Pin1 für eine Clock-Funktion reserviert, ggf. noch einer für Output-Enable z.B. (also die mit Vorsicht genießen).
Betriebsspannung wie bei TTLs (links oben plus, rechts unten Minus 5V).
Deswegen hat der 24pinnige 20V10 nur 20 (reale) Pins (abzgl. Clock und OE und plus und Minus UB) von denen 10 als Ausgang verwendet dürfen.
Datenblatt hilft weiter.
Ergo ein 16V8 16 Pins, davon 8 als Ausgang benutzbar, einen für Plus, einen für Minus UB, einen für Clock und einen für OE --> macht 20er Gehäuse.
und dann geht´s los.
nachdem das mit dem Pinning und dem Typ geklärt ist kann man sich jetzt noch entscheiden, wie sich das Teil verhalten soll an den Ausgängen.
Deswegen die Pin-Liste erweitern
Pins:
Clock,
...
Lampe1; combinatorial,
Lampe2; registered,
...
...
usw.
heißt also für Lampe1 baut er nichts dazu, Lampe2 erhält ein Flipflop
(idR. erstmal ein D-FF getaktet von Clock (Pin1))
und jetzt geht´s richtig ran (namlich an die Logik).
Ein Pal/Gal (übrigens spätstens dann ist Asche, ein PAL16R bzw ein PAL16L 1:1 zu übernehmen; das L hat keine Register, kann nur kombinatorisch).
Das R beides; kostet halt paar Pfennig mehr; aber wir sind hier bei GAL und die können beides; man muß es ihnen halt sagen, bzw. dem Assembler.
Nichts anderes passiert in Programmiersprachen;
var schalter1 : integer;
schalter2 : boolean;
....
oder Dim Lampe [1..2] as real
Boolsche Algebra ist jetzt angesagt: (also Hirnschmalz)!!!
if Schalter1 and Schalter2 then Lampe1
Lampe1 = Schalter1 & Schalter2
Das Kaufmanns-Und (&) heißt "and" und ein (+) heißt "or"
Lampe2 := Schalter1 & Schalter2
man achte auf das Doppelpunkt-Gleich, weil das ist registered, d.h. Lampe1 geht sofort an, Lampe2 erst beim nächsten Clock. Dafür geht Lampe1 auch wieder sofort aus (wenn einer der Taster losgelassen wird), Lampe2 leuchtet bis zum nächsten Clock. D-Flip-Flop.
noch einer am Ende dieses Artikels:
Lampe2 := Schalter1 + Schalter2
klaro, hier sitzt ein OR dazwischen und := also auch ein Flip-Flop mit drin.
Lampe1 = Schalter1 & Schalter2 & Schalter3 & Schalter4...
das geht 8mal (8 Undverknüpfungen).
Lampe1 = Schalter1 & Schalter3
+ Schalter1 & Schalter4
+ Notaus
Das geht auch 8mal. Man hat es eigentlich mit einer 8*8 Matrix zu tun, also 8 and und 8 or pro Ausgang.
jetzt hat man zufällig keinen Schließenden Notaus-Taster, der öffnet nämlich wenn man draufdrückt.
Dafür gibt es den "!" not Operator
Lampe1 = Schalter1 & Schalter3
+ Schalter1 & Schalter4
+ !Notaus
und das geht in jeglicher Kombination, sogar auch rückwärts, denn man kann ja den Ausgangszustand eines Pins wieder einlesen.
Lampe1 = Schalter1 & Schalter3
+ Schalter1 & Schalter4
+ Notaus & Lampe2
+ Chefda & !Bandmeister
+ !Chefda & Bandmeister
+ !Chefda & !Bandmeister
also Lampe1 leuchtet auf jeden Fall, egal ob Chef oder Bandmeister da oder nicht, und es interessiert nicht, ob irgendein Taster betätigt wurde.
+ Chefda & !Bandmeister
+ !Chefda & Bandmeister
+ !Chefda & !Bandmeister
Dieser Ausdruck ist immer =1
+ Chefda & meister & !Chefda & meister & !Chefda & !meister & Firmaplatt
viel Spaß beim Basteln!!! für den Anfang... sind aber bloß elementare 64 Varianten möglich 8*und, 8*oder, Rückführung eines jeden, das ganze registered (braucht man für Zähler z.B.).
Das Ganze kann man natürlich mal in einer Hochsprache (vorher) testen; die Werkzeuge sind identisch:
if not (Meisterda or Chefda) then print "heute ein lauer Tag"
stellt sich jetzt die Frage??? (Meister or Chef)???
besser wär´s ja wenn beide nicht da wären
(!Meisterda and !Chefda) then print "heute lauer Tag"
Jetzt kommt "De-Morgan" (so hieß der Mann), der hat ein wenig Algebra betrieben und herausgefunden, daß ein ODER-Gatter einem NAND-Gattter mit inversen Eingängen entspricht.
also:
Meisterda oder Chefda = nicht(nicht Meisterda and nicht Chefda)
und jetzt der Unterschied zwischen PROMs und GALs
Die PROMs haben immer eine ODER Verknüpfung, deren (auch 8 Terme) dann miteinander ver-UNDet werden, GALs, PALs machen es andersherum.
PROM: Meisterda + Chefda + StromAn
&! FirmaPleite
& GehaltBezahlt
GAL: Wenn weder der Meister da ist, noch der Chef, oder Strom nicht an oder die Firma Pleite und das Gehalt auch nicht bezahlt
!Meisterda & !Chefda & !StromAn
+ FirmaPleite
+ !GehaltBezahlt
in beiden Fällen sollte man zu hause bleiben weil ohne Stom nix los, ob Meisterda oder Chefda
oder kein Meisterda und auch kein Chefda (weil auf der Flucht vor´m Finanzamt), und deswegen auch kein StromAn, oder die FirmaPleite, oder das Gehalt nicht bezahlt wurde.
Wobei es jetzt auch egal ist, ob die Firma Pleite ist, oder das Gehalt nicht bezahlt wurde, kommt immer zuhausebleiben raus; den Meister und den Chef kann man also weglassen.
Zuhausebleiben = !StromAn (ohne Strom nix los ->zuhause bleiben)
+ FirmaPleite (auch nix los -> zuhause bleiben)
+ Gehalt nicht bezahlt (heißt auch zuhause bleiben)
Doppelte Verneinung: kann man eins ins andere umrechnen und Chef und Meister schlicht wegkürzen (Logik optimieren; wozu da noch ein paar Transistoren und Schalter und Eingangspins verschwenden, wenn eh schon alles erledigt ist.
FirmaPleite reicht auch schon. Ob das Gehalt bezahlt ist oder nicht; Insolvenzmasse, Rechtsanwalt??? egal: erstmal zuhausebleiben.
Ich hoffe, das leuchtet ein,
elektronisch ist ein AND-Gatter ein NOR-Gatter mit inversen Eingängen (wie gesagt NOR, also am Ausgang nochmal die Verneinung!!!); und andersherum dto.
Ein NAND (not AND) mit inversen Eingängen ist ein OR
das wird noch interessanter... Garantiert!!!
In der (Berufsschule je nach...) lernt man das sogenannte Karnaugh-Welsch Diagramm, so ein Kreuz aus allen Eingängen usw. Dann kann man das diagonal zusammenstreichen und (Egalitäten) z.B. Meister nicht da, Chef nicht da, egal wenn Firma sowieso pleite. Ob dann noch Strom da ist, wenn man eh kein Gehalt bekommen hat ist dann auch egal.
Aber so kompliziert muß man nicht um 5 Ecken denken, man muß es nur verstehen, daß es so ist. Diese Umformerei usw. nimmt einem der Compiler total ab. Wenn man mal in etwas komplexere Aktionen (Logfiles) hineinschaut; jede dritte Zeile: Node465 and Node835 are unused ... und tschüß!!! das erkennt der Compiler/Assembler. Also man kann den Meister und den Chef ruhig bedenken und in den Source mit reinschreiben, die werden "weg-Compiled" wegen unnütz.
Es ist immer wieder (für mich) in der Praxis verblüffend, was da so alles wegoptimiert wird; so nach dem Motto: "Ochs! was machst Du Dir darüber Gedanken!" Vollig unsinnig, "spar Dir den Pin"
Wenn man mal eine Weile mit solchen Tools gearbeitet hat (und das ist Erfahrungssache), also 1,2,3...10 Projekte machen, dann hat man den Dreh raus. Rest ruhig der Software überlassen, die stolpert schneller drüber, als man sich das Hirn zermatert.
Ein kompletter Rebuild von einem Chip mit 96 Registern, 192 Macrocells (Lattice 1032) dauert keine Minute auf einem schlappen P2/450 unter Win98.
Ein Gal ist in paar Sekunden da durchgerattert. Da lacht die Software drüber.
"Waaas? Nur´n GAL? na ja ich mach´s" (weil Du es bist...)!
Manoman , hast Dir ja Mühe gemacht ...
Heißt das , man soll als Anfänger CPLD nehmen ?
Wenn ja , welchen kannst Du für Bastler empfehlen ?
Hallo Buz11, das wird noch spaßiger!!!
Ich habe es dehalb nur!!! unter Grundlagen belassen und tippe aus Zeit-einteilungsgründen halt ab und zu ein- zwei Seiten dazu (immer mit dem Dämoklesschwert im Rücken, daß mich die Forensoftware abschaltet.
Deswegen kleine Artikel und dann halt davon ein paar mehr.
Zum Einstieg würde ich auf jeden Fall mit GALs anfangen, einfach nur um ein Feeling dafür zu bekommen, was "programmierbare Logik" und Lötkolben unterscheidet. Dazu hatte ich mir den nächsten Artikel auserkoren.
Konkret für Dich... Einen Gal-Brenner zu haben ist nie verkehrt, wie gesagt, ich benutze hier den (Uralt!!! mittlerweile) GALEP2, der macht Eproms, Gals und sogar (per selbstbastel-Adapter 89C52; Conitec war so freundlich, mir einen Adapterplan zuzufaxen).
Ein Galep 3 oder 4 geht halt ins Geld, wie weit Andre´s USB-Prommer das können???, also sowas in der Richtung.
Weiteres an Programmieradaptern / Geräten kann man sich sparen (ich z.B. habe mir für (so um die 15,- Euro) den CT-Flasher noch zugelegt um zerschossene Bios(e) wieder auf die Füße zu bekommen; läuft top; ist halt eine PC-ISA Steckkarte, aber die Werkstattdose hängt eh offen an der Wand, brauchen tu ich es vielleicht 3..4mal im Jahr; aber schön, sowas zu haben für den Fall, daß...:)
Genau wie ein Netzteil und ein Oszi, und wenn es die letzten Schlabberdinger sind.
Wenn es jetzt (und ich denke in meinen nächsten Artikeln) bisschen an´s Eingemachte geht... lies sie, frag nach, dafür ist die Rubrik (von wem auch immer) gemacht worden; das wächst schon mit der Zeit.
In Circuit Programmierung:
Das ist ganz praktisch, neuere Chips unterstützen das, u.A. gibt es auch ISP-GALS von Lattice, das spart den Prommer und die Wechselei.
Läuft sö ähnlich wie diese MISO/MOSI Aktion auf den 89"S"xxx-Typen Microcontrollern; braucht halt ein spezielles Kabel (meist an der Parallelen Schnittstelle), das dann die Bits da reinschießt, per Download Programm.
Viel Aufstand ist das nicht, nur "haben ein Schießgewehr"
Kostet meist (Xilinx / Lattice) so um die 100,- Euro, selbstbauen ist billiger.
(Sub-D25-Centronics Stecker und ein 74LS244) und ein Stück Kabel.
Die Sache läuft dann so: Schaltung aufbauen, Kabel an die "Special-Pins", Software downloaden - und jetzt bitte nicht danach fragen, warum die das machen???...
Lattice hat eine elende Freischaltploitik zu Design-Expert entwickelt; das läuft 1/2 Jahr, danach kann man dann wieder per Mail einen Code anfordern usw.
Stirbt einem vorher der Rechner mal ab (Platte kaputt); Lattice neuen Code anfordern; der haut sich nämlich an der Datenträgernummer der Festplatte und sonstigem Schrubbel (nennt sich FLEX-LM license manager).
Der managed auch bei Xilinx derart gut, daß es den Chip-Designern echt zu blöd ist (mir auch!), weil z.B. dieser Flex-Server mit paar Lizenzen (ich rede jetzt nicht von der Freeware) in der Firma läuft, der Programmierer seinen Lappy mit nach hause nimmt, und dann geht´s los. Das Ding beharrt auf eine Internetverbindung (Telefonkosten!!!) um mit der Firma mal einfach so eine Standleitung aufzubauen; teurer Spaß aus einem Hotel z.B. Modem natürlich auch immer mitschleppen!!! Nicht vergessen!!! Das Ding ist "FLEXibel" einen zu ärgern. Frage wozu? Schließlich wollen die Firmen ihre Chips verkaufen, und unprogrammiert sind die Dumm wie Stroh erstmal.
Gibt übrigens auf irgendso einer Hackseite aus Kanada eine Anleitung diesen FLEX-LM beliebig freizuschalten etc. Muß man sich nur mit Disasssemblern auskennen, oder einen kennen, der...
Hatte ich auch schon einen Thread geschaltet "Suche Hacker ..."
Hat hier im Forum nur keinen interessiert. Vielleicht war die Zeit und das Interesse damals nicht groß genug???...:mad:
Es geht auch ohne Hacker!!! (obwohl das etwas einfacher wäre).
Der Vorgänger von "Design-Expert" heißt "Synario", kann aber in groben Zügen all das was unsereins braucht (kleine Einschränkungen, z.B. daß der Editor Bauteile nicht drehen kann
sieht dann so aus:
+----------------+
| |
| +----+ +---+ |
+-| D |--|inv|--+
----|Flip| +---+
+----+
kann man mit leben.
Weiteres Manko; kann nur in der Standard OEM Version ISP GAL16 und 20
den ISP1016 (leider nicht den 1016E; den 1016 ohne E gibt es nur noch als MIL-Version (bei Reichelt/Farnell etc.) - paar Mark teurer, kann man mit leben. Dafür kostet die Software nix und man hat keinen FLEX-LM am Hals.
Zum Erste-Schritte machen, allemal gut.
und der 1016 (ohne E) hat genauso wie der mit E 16 Output-Blocks a 4er Verknüpfung, also einen 16 Bit Counter kann der schon. Dann geht im leider die Puste aus.
Ein Adressdekoder a´la
CS = A5 & !A6 &!Chefda
+ A7 & A5 & Meister & A6
+ A9 & FirmaPleite & !AEN
+ Hunger & KantineZu
also das geht locker, genau wie ein Gal.
Der E-Typ ist übrigens dto. nur hat der "Extended internes Routing"; kann man sich vorstellen wie eine doppelseitige Leiterplatte statt eiseitig, das erleichtert dem Compiler/Router ein paar Konstrukte umzusetzen, die sonst nicht drin wären (z.B. Rückkopplung eines Ausgangs auf x-beliebigen Eingang -- das eben ganz locker mit einer Leiterbahn (virtuell!!!) auf der Platinenoberseite); so muß man sich das in etwa vorstellen.
Leider ist im Gegensatz zu einseitigen Platinen da wieder die doppelseitige Version "E" billiger, weil Lattice das so will und notgedrungen noch einseitige MIL-Versionen fertigt / fertigen muß, sonst können die nämlich ihren nächsten Auftrag bei der Schweinehundeswehr oder, (die leben ja von AMI-Land) also NASA z.B. oder (England auch; die RAF); nein nicht!!! RoteArmeeFraktion (Bader Meinhof etc.); RoyalAirForce nennt sich der Verein; na ja...???
Der Spruch stammt übrigens aus einem James-Bond Film!!!
sieht übrigens Scheiße aus!
Frage mich wozu Fixed-SYS Zeichensatz da ist?
Standard Courier mit 80 Zeichen a 25 Zeilen hätte es auch getan.
Bin ich aber nicht der Einzige, der hier im Forum über solchen Schrott stolpert.
probier ich´s halt mal in Comic-Sans-Serif
Guten Tag; sind Sie MAC-Seck, oder spreche ich mit Donald Duck? (Harry Potter fehlt noch)...
Thaoma läßt grüßen... Einladung zur Browservergewaltigung ist angekommen.
Werde mich dann doch mit Chips beschäftigen.
hi MacSeck,
Glueckwunsch zu Deiner Abhandlung hier.
Mit Opal-jun.(National Semiconductor) hab ich auch mal gespielt, bei Synario hats nur noch zum Ausdrucken der "ABEL-HDL Reference - Universal FPGA Design System - Synario is a Data I/O Product" gereicht. Falls jemand Interesse hat: meinen GALEP2 bin ich immer noch nicht losgeworden :
L i n k (http://dianu.de/prh/phpBB/phpBB2/viewtopic.php?t=104)
@Rudo: Null Problemo, den Galep2 wirst Du locker los an mich.
06441 - 981514. Ruf mich einfach mal kurz an, oder Mail an
A.Seck@asd-seck.de.
Schönen Dank für die Blumen...; ich hab das Thema mal aufgegriffen und ein bisschen (viel) dazu geschrieben, aber geht halt nicht anders. Verstanden will das sein, und das ist ein langer Weg vom 7400 über 20V10 bis ISP1016/1032 oder Xilinx-Virtex.
Das ist halt eine Domäne der EDA-Tool-Hersteller. Habe angefangen mit einem GAL in ORCAD, bin dann auf Eagle umgestiegen (Orcad ist nicht zu bezahlen), Cad-Soft (Eagle-Hersteller) schickte mir ein Fax: "...das ist bei uns nicht in Planung..."
also Gal / CPLD / FPGA Unterstützung mit Pinswap im Router, geschweige denn wenigstens die "Einfach-Integration" eines Assemblers.
Wahrscheinlich würde Eagle dann auch > 10.000,- Euros kosten.
Aber Cad-Soft nicht schlecht reden; Protel und andere, z.B. dieser Dr.xxx mit seinem schönen Pascal Buggy-Layout Prog --> die haben einfach nicht genug Man-Power, sowas zu implementieren; das muß man denen nachsehen; und für "M$" lohnt es sich auch nicht. XtremeProfessional bezieht sich da auf XtremeUser-mit fliegenden Datei-Icons von hier nach da zu nerven; halt Xtreme-Professional; Hauptsache es ist ein Multi-Internet-Reversi-Spiel dabei (im Service Pack 25 dann)... gg:)
surf_andre
26.10.2005, 18:23
Hallo,
das paßt ja gerade gut mitr dem neuen Forumsteil....
Mir stellt sich immer noch die frage wie bekommt man das mühsam geschriebene programm oder die logik in den kleinen Käfer gefeuert...
gibt es nur den den Galep?
Für den hobbysten reichen doch die gal 16 oder 20 oder?
Welche Programme sind zum programmieren zu gebrauchen.
Gibt es günstige hardware zum brennen
mfg andré
Etwas anders gefragt :
welche Chips soll man als Neuling ( Hobbybastler ! ) nehmen ?
Hauptsache billig , und keine teuere Programmiergeräte erforderlich .
Am besten über UART oder SPI .
@buz11,
ich kann dir nur sagen, wies bei mir gelaufen ist:
mit dem GAL22V10 hab ich sowas wie Adressdekodierung oder exotische programmierbare Zaehler locker bewaeltigt, manchmal musste man auch groessere Anwendungen auf mehrere GALs verteilen.
Anfangs hab ich dann auch immer kleine u. billige Programmiergeraete gekauft, z.B. f. GALs, 8751 oder 2051 und entsprechende Adapter. Jetzt habe ich Einen Allesprogrammierer, der ist zwar nicht billig gewesen, aber nun habe ich schon viele Jahre absolut kostenlose Updates gezogen fuer die neuesten Chips - ich hoffe, das geht noch lange so weiter -->>
http://www.elnec.com/index.php
@surf Andre:
natürlich gibt es nicht nur den GALEPxxx, auf dem Prommer-Markt tummeln sich etliche, die das können.
Ich habe angefangen mit einer ISA-Karte aus C´t, da gab es dann einen mordsmäßigen Umbau auf diverse Programmierspannungen usw.
Aber wie singt Ina Deter so schön: "ohhh hooo ist Jahre schon her, ich glaub es fast schon selber nicht mehr..."
Heute (sollte) es jeder x-beliebige Prommer schaffen, zumindest die Standard GALs genauso zu bearbeiten wie Eproms.
Ich bin halt bei Conitec Galep2 hängengeblieben, weil der tut.:)
Zum Flashen (hatte ich ja schon gesagt, habe ich mir di Karte aus C´t gebaut; C´t - Flasher; tut; aalglatt:) , kommt sogar meine Freundin mit klar;
(die ist auch so Computerspezimäßig drauf... Gleiches zu Gleichem...)
Ansonsten heißt die Devise heute ISP; "in system programmable" via Kabel.
Frage ist nur, wie oft man es nutzt. Für zwei/drei GALs pro Jahr???
Wobei wir dann bei der Software wären, ich hatte es bereits angekündigt...
Nächster Artikel.
viele softe Ware!!! (und nur ein begrenztes Hirn).
Wie hieß denn gleich noch der Parameter? /a /n oder so?
Bei wem?
Uhhh??? 95/98/XP/MAC
usw. usw.
Heute beschränkt sich das auf "fortschrittliches Ankreuzen"
--> in welcher Karteikarte???
aalsooooo: Programme-->Systemsteuerung-->Optionen-->Einstellungen--> erweitertertes Kontextmenue-->User-defaults-->System....
Mußt natürlich als Admin eingeloggt sein, sonst erscheint das Menue nicht!
Admin oder Administrator?
Probier mal Supervisor oder root!
Also "Affe" kommt immer gut!!!:)
Will sagen: 1/2 Jahr draußen, dann fängt´s wieder an: Meeeensch, wie war denn das?
Einschießen auf ein Produkt, auch wenn es Schwächen hat, mit denen kann man leben. Meist haben die Produkte die Schwächen garnicht, man weiß nur nicht, sie zu umschiffen oder richtig zu bedienen.
Ein Beispiel: (gleich)
Das Beispiel:
Pimmeliger 4-Bit Zähler:
Man nehme 4 D-FFs; "Q-nicht an D" (jeweils), "Q an Clock" des anderen.
Einfach.. TTL oder C-Mos-Serie; Null Problemo; Drahtbrücke (Leiterbahn) Pin 5 zu Pin 7, Pin 8 zu Pin 13 usw.
Geht im GAL / CPLD genauso.
Aaaaaaber... Pro Bit auf diese Art wird ein Ausgangs-Logicblock verbraten, denn in diesem steckt ja das Flip-Flop.
Ratz fatz ist Sense!!!
Sinniger: Gemeinsamer Clock (an einen Logic-Block) und den Rest die Logik (die bis dato unbenutzt war mit zu verwenden).
Qx := Qy & /Qx
Qz := QY & / Qx & /Qz usw.
Qw := alls andere oder alles andere davor (nicht)!
Ausschnitt aus einem Abel-Counter, daß man das mal sieht (auch worauf man sich da einläßt) --> nämlich nicht Lötkolben, sondern Hirnschmalz!!!
MODULE c_bcd_r
TITLE 'BCD_Counter mit Reset (0..f)'
QA, QB, QC, QD Pin istype 'reg';
TAKT,RESET PIN ;
EQUATIONS
QA := !QA & !RESET;
QB := !QB & QA & !RESET
# QB & !QA & !RESET;
QC := !QC & QA & QB & !RESET
# QC & !QA & !RESET
# QC & !QB & !RESET;
QD := !QD & QA & QB & QC & !RESET
# QD & !QA & !RESET
# QD & !QB & !RESET
# QD & !QC & !RESET;
[QA.C,QB.C,QC.C,QD.C] = TAKT;
END
Hier noch einmal !!! (das ist die US-Schreibweise), also
UND = & (kaufmännisches Und)
OR = # (Hash)
NOT = ! (Ausrufezeichen)
Deutsch:
Und = * (Sternchen)
OR = + (Plus-Zeichen)
NOT = / (Vorwärts-Slash)
Nur mal so zur Einstimmung, sind halt auch Sachen die Compiler-abhängig sind und etwas Hirn-gewöhnungsbedürftig.
gleich weiter...
Der schöne Zähler...
ist natürlich, wenn man es dann mal gerafft, hat locker auf 8 Bit aufzublasen.
QE := !QD & ABCD
oder der Schrump darunter +1 jeweils, also letztenendes ein Dreieck, das nach unten wächst und immer eine Zeile "Oder" mit dranhängen hat.
Geil, Gell...
Sooooo schnell sind 1000 Gatter verbaut;
Cut-Copy-Paste, Zeile dran, fertig!
und deswegen gehen den ach so hochgelobten CPLDs ratz fatz die Gatter aus.
Wir erinnern uns: GAL 20V8 hat 8 Output-Zellen, also bei einem 8-Bit Counter ist dann Sense. Die unterste Zeile dieses Dreiecks hat dann 8 Terme (Zeilen); Fini!!!
Größere Chips:
Ja!!! GAL22V10 --> weiter so, bei 10 ist FINI.
Lattice ISP1016 (16 Macrocells) - der macht schon mal auf diese Tour das doppelte eines 16V8, und jetzt !!! heißt, er kann einen 2hoch(das eines 16V8), also einen 32bit-Counter und dann fini!!! Danach paßt nichts mehr rein, abgesehen davon hätte er auch nicht genügend Pins (hat nur 44); geht aber, mit bisschen Hirnschmalz, aber dann ist echt ENDE!
Immerhin besser als 4 TTL-8Bit-Counter-Chips; alleine des Platinenlayouts wegen.
Was ich aber damit sagen will: Man sollte es abschätzen lernen, größer und immer größer geht zwar, nur wie???
Heißer Stoff!!! (zumindest zum Angewöhnen)...
Aber laßt Euch bitte nicht abschrecken davon, es geht noch eine Nummer besser und komplexer.
:) oder warum glaubt ihr jetzt, daß NvideaXYZ 400..500 Millionen Transistoren für den Z-Buffer verbaut?
klar, erstmal ist der 64-bit breit, 8 bit tief usw. (ist jetzt gelogen/geschätzt; ich weiß es nicht), aber da werden dann mal die Dimensionen klar, um die es dann geht.:)
muss jetzt erstmal sehen, ob das geht (PDF), weil dieser bescheuerte Forum-Editor trotz Courier wieder alles zerrissen hat.
http://www.progforum.com/images/attach/pdf.gif
versuch mal den Admin hier zu ueberreden, dass er im Bereich "code" die Schriftart Courier einstellt.
Das hab ich in meinem Forum auch so gemacht:
Beispiel:
http://dianu.de/prh/phpBB/phpBB2/viewtopic.php?t=134
sieht schon ganz brauchbar aus;
Also nächstes Goodie (dies ist ein Beispiel aus Synario) (ABEL), geht auch mit GAL; einfache Wahrheitstabelle; 7 Segmentanzeige:
Pins definieren, wo die Segmente angeschlossen sind und dann
einfach Wahrheitstabelle;
also bei einer 0 soll Segment A (sa) leuchten, Segment B (sb) usw.
Rest macht der Compiler; Ende Gelände!!!
Der baut die Logikgleichungen schon passend hin, also die ganze And und Or Geschichte, die zu sowas gehört. Im Prinzip entspricht das Teil einem TTL - 7447, nur halt als Modul.
Sowas macht dann echt Spaß:
Zuhausebleiben -> (Chefda, Meisterda, FirmaPleite, Streik, Erdbeben)
0,0,1,1,1
also Chef nicht da, Meister nicht da, FirmaPleite und Streik und Erdbeben
OK. meistens werden als Beispiele gerne Ampeln benutzt;
Fussgängergrün -> (rechtsRot, linksRot...)
1,1
END
hier bitte nicht vertun oder mehr eintragen sonst gibt´s ggf. Tote:(
@Rudo: Sag das doch mal dem Andre´
Ich habe bereits öfters darauf hingewiesen, und einige (gutgemeinte) Schaltungsvorschläge gingen ja bereits zu Bruch.
Ich habe keinen Streß damit, alles in Courier zu schreiben, so es denn eine ist.
Andernfalls: Morsen!!! tidi daaa di da didiee da; echt zeitgemäß im Pentium Zeitalter...:)
ach so, Internet habe ich vergessen, mittlerweile bis 3Kbit/sec von der
Tööö lee comm, die nie da, [EOC]...
aaa len vi el sp ass mi t pen ti um un d hy per thre ding tech no lo gie
..-. ..-. ..-. usw.
SOS!!!
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.