Forum: FPGA, VHDL & Co. Was braucht man um einfache Gatter zu ersetzen?


von Dirk (Gast)


Lesenswert?

Hallo,

ich muss einfache Gatter ersetzen und habe da ein paar Probleme.

Zu den Gattern:
Ich habe 4 Eingangssignale und 3 Ausgangssignale.
Ein Eingang wird invertiert zu einem Ausgang.
Aus den restlichen Eingängen muss ich mit RS-Flipfops die beiden anderen 
Ausgänge bauen.
Das ganze ist mit ca.22MHz auch nicht besonders flott, aber einen Takt 
habe ich nicht. Muss alles mit 3,3Volt laufen.

So nun habe ich bei Reichelt mir die ganzen 74XX Bauteile angesehen und 
komme irgendwie immer auf Teile die nicht mit 3V3 arbeiten.
Also habe ich mir überlegt das man das wohl besser mit einem CPLD machen 
sollte.
Als Typen sollten mir "XC 9536XL VQ44", "M4A3 32/32-10VNC" oder 
"LC4032V-75TN44C" reichen.

SO nur was braucht man alles dafür?
Sollte nicht besonders Teuer sein!

Dirk

von (prx) A. K. (prx)


Lesenswert?

Dirk schrieb:
> Das ganze ist mit ca.22MHz auch nicht besonders flott, aber einen Takt
> habe ich nicht. Muss alles mit 3,3Volt laufen.

Die alten TTLs sind wirklich nicht für 3,3V gebaut. Die dazu kompatiblen 
74xCT auch nicht. Aber jeder andere 74xC Kram ist normalerweise dazu in 
der Lage.

Reichelt ist aber auch nicht das Mass der Dinge. So sind beispielsweise 
Darisus und TME deutlich besser bestückt.

von DH1AKF W. (wolfgang_kiefer) Benutzerseite


Lesenswert?

Hallo Dirk,

wenn Du den Einarbeitungsaufwand nicht scheust, dann kann ich die PSoC4- 
Controller empfehlen. Da hast Du einen ganzen Werkzeugkasten voll 
digitaler (und analoger) Baugruppen. Stichwort CY8CKIT-049-42XX. Die 
Baugruppen laufen auch ohne ein Programm des Controllers. Verdrahtung 
erfolgt im Chip.

Beitrag "Schon mal jemand das CY8CKIT-049 4200 in der Hand gehabt?"

von Dirk (Gast)


Lesenswert?

Ich tendiere auch mehr zu den VHC & LVX Typen, die machen 3v3.
Aber auch mit diesen Angeboten Typen komme ich Preislich immer auch auf 
ca. 2Euro. Aber habe deutlich mehr Platz verbraucht und darf die 
ca.22MHz kreuz und quer durch die Teile jagen.

Diese CPLD Typen wären da wirklich eine gute Alternative, wenn ich mich 
damit auskennen würde.
Aber das kann ja nicht SO schwer sein, wenn man mir zum einstieg etwas 
beratend hilft.

von Dirk (Gast)


Lesenswert?

Die PSoC4 Controller sind garantiert nicht schlecht.
Aber ich habe schon 2 STM32F4 Typen drauf und muss jetzt nur noch etwas 
"TTL" Kleinkram dran bauen.

von (prx) A. K. (prx)


Lesenswert?

Dirk schrieb:
> Aber auch mit diesen Angeboten Typen komme ich Preislich immer auch auf
> ca. 2Euro.

Wenn der Preis eine grosse Rolle spielt, und das keine grössere Serie 
ist...

> Diese CPLD Typen wären da wirklich eine gute Alternative, wenn ich mich
> damit auskennen würde.

...dann solltest du den Kostenaufwand des für die Programmierung 
erforderlichen Krams mit einrechnen. Vom Knowhow-Aufwand ganz abgesehen.

von Dirk (Gast)


Lesenswert?

Da hast Du mich etwas falsch verstanden.
Im Einkauft ist es einfach egal ob ich 6 74XXX oder 1 CPLD nehme.
Macht alles immer ca. 2 Euro.

Nur ich will den Aufwand!

Brauche da nur etwas Starthilfe.

Nachher beim umsetzen brauche ich weniger Hilfe, hatte vor vielen Jahren 
mit dem alten 22V16 viel gemacht.

von Falk B. (falk)


Lesenswert?

@ Dirk (Gast)

>Nur ich will den Aufwand!

>Brauche da nur etwas Starthilfe.

>Nachher beim umsetzen brauche ich weniger Hilfe, hatte vor vielen Jahren
>mit dem alten 22V16 viel gemacht.

Na das klingt doch gut. Lad dir das aktuelle Xilinx Webpack runter, 
viiiiiel GB! Installieren, los.

Ein Programmierklabel brauchst du dazu, gibt es für einen brauchbaren 
Preis bei Ebay.

http://www.ebay.de/itm/Xilinx-Platform-USB-Download-Cable-Jtag-Programmer-for-FPGA-CPLD-C-Mod-NEW-/171008779562?pt=Wissenschaftliche_Ger%C3%A4te&hash=item27d0eae52a

Damit kann man fast alle Xilinxe programmieren.

Um 6 TTL-Ics zu ersetzen reicht ein kleiner CPLD mit 32 Macrozellen 
locker!

XC 9536XL VQ44 reicht.

Beschreiben kannst du deine Logik mit VHDL, Verilog oder graphischer 
Eingabe.

Viel Spaß.

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


Lesenswert?

Dirk schrieb:
> So nun habe ich bei Reichelt mir die ganzen 74XX Bauteile angesehen und
> komme irgendwie immer auf Teile die nicht mit 3V3 arbeiten.
Auch andere Mütter haben schöne Töchter...
Ich würde da erst mal bei Kandidaten wie Farnell, Mouser und Digikey 
nach LV (Low Voltage) TTL suchen.

Und die Lösung mit TTL Bausteinen wird in diesem simplen Fall hier 
garantiert billiger. Denn die TTL ICs werden sicher unter 2 Euro 
liegen, das CPLD genauso sicher deutlich drüber...

Aber wenn du es unbedingt willst, dann fang gleich mit einer HDL an.

von Dirk (Gast)


Lesenswert?

Ich habe es wirklich durchgerechnet und ich komme auf eine 
Preisdifferenz von 10Cent zugunsten der 74XX.
Aber ich brauche mehr Platz und was ich schon sagte 22MHz über viele 
Steilfankige Bauteile ist nicht besonder klug (Störsender).
Was auch für den CPLD  spricht ist das ich hier einfacher was Ändern 
kann wenn ich merke das ich was vergessen habe. BZW lege ich einfach 
etliche Pins da noch drauf ohne das die jetzt gebraucht werden.
Um ganz ehrlich zu sein wollte ich zu erst einen XMOS Prozessor dafür 
nehmen.
Und der kostet so ca. 10Euro, dafür hätte ich aber auch alle Tools hier 
liegen.

Das Xilinx Webpack mir 1,5GB geht doch, wenn meine Platte da noch mit 
macht.
Der Brenner ist jetzt auch nicht überteuert, ist so gut wie gekauft
Dann bestelle ich mir mal ein paar CPLDs und werfe den Download an.

Mal sehen vielleicht brenne ich den CLPD vom M4 aus dann kann ich sogar 
später ein einfaches Ethernet Update machen. Für die Entwicklung benutzt 
ich logischerweise den Brenner.

Danke Dirk

von Dirk (Gast)


Lesenswert?

Den Brenner brauche ich womöglich gar nicht kaufen.

Ich habe eine breite Auswahl an JTAG Brenner (J-LINK, Amontec JTAGkey, 
Olimex USB-JTAG adapter, ftdijtag, USBPROG3.0, ...) halt alles was man 
so braucht.

Jetzt muss nur noch einer davon mit der IDE oder CMD/DOS arbeiten.

von Helmut S. (helmuts)


Lesenswert?

Nimm zwei single gate Bauteile 74AHCTxx. Für das RS-FF nimmst due ein 
xx74 D-FF mit set und reset Eingang.

http://www.nxp.com/parametrics/group/12607/#/p=1,s=0,f=,c=,rpp=,fs=0,sc=,so=,es=

Dagegen kannst du vom Aufwand her jedes CPLD vergessen. Vergiss nicht 
beim CPLD kommen eine Menge Dokumentations- und Archivierungsaufwand 
hinzu damit man das auch nach x Jahren noch ersetzen kann, wenn es 
abgekündigt wird Die CPLDs sind übrigens auch richtige Stromfresser. Da 
kann es schnell notwendig werden einen "dickeren" Spannungsregler zu 
wählen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ Dirk (Gast)

>Den Brenner brauche ich womöglich gar nicht kaufen.

naja.

>Ich habe eine breite Auswahl an JTAG Brenner (J-LINK, Amontec JTAGkey,
>Olimex USB-JTAG adapter, ftdijtag, USBPROG3.0, ...) halt alles was man
>so braucht.

Schön, das Problem ist nur, dass man es bis heute NICHT geschafft hat, 
eine einheitliche Lib für den Low Level JTAG Zugriff zu schaffen. Denn 
die unterste Ebene von JTAG ist bei allen ICs gleich, nur die höheren 
Protokollschichten sind verschieden.

>Jetzt muss nur noch einer davon mit der IDE oder CMD/DOS arbeiten.

Eben, das ist das Problem!

Wegen 30 Euro lohnt sich kein tagelanges Rumgebastel!

von (prx) A. K. (prx)


Lesenswert?

Helmut S. schrieb:
> Nimm zwei single gate Bauteile 74AHCTxx.

Bei 3,3V vielleicht doch lieber ohne "T".

von Lattice User (Gast)


Lesenswert?

A. K. schrieb:
> Helmut S. schrieb:
>> Nimm zwei single gate Bauteile 74AHCTxx.
>
> Bei 3,3V vielleicht doch lieber ohne "T".

Oder die 74LVC, oder NC7W von Fairchild ....

Auch preislich sind Einzelgatter für diesen einfache Anwendung auch kaum 
zu schlagen,

Ein D-FF liegt z.B. im unteren 2 stelligen €-Cent Bereich.

http://www.mouser.de/Search/Refine.aspx?Keyword=74LVC1G74

Ein Inverter kostet auf der Rolle ganze 0.074 €
http://www.mouser.de/Search/Refine.aspx?Keyword=74LVC1G74

von Dirk (Gast)


Lesenswert?

Das kleine Programm xc3sprog soll mit den meisten meiner Debugger 
arbeiten und auch mit dem Xilinx XC95X.

Wie schon gesagt sind 1,8 Euro nicht wirklich viel, würde auch das 
3-fache zahlen.

Klar wenn ich die Teile auf der Rolle (1000-5000) kaufe und nicht im 25 
Pack dann ist das einzel Zeug billiger. Der Xilinx würde aber auch bei 
1000 Stück nicht mehr viel kosten.
Aber es geht nicht wirklich um den Preis, sondern um Platz, EMV und 
Änderbarkeit.
Wenn ich jemals die Stückzahl von 100 Stück überschreite dann ist sogar 
der Aufwand umgerechnet nur noch Kleinkram.

Mir schadet es außerdem nicht mal wieder was zu lernen.

von Lattice User (Gast)


Lesenswert?

Dirk schrieb:
> Aber es geht nicht wirklich um den Preis, sondern um Platz, EMV und
> Änderbarkeit.

Platz, ne ne, die Single Gate Logik gibt es im fliegenschiess Gehäuse, 
der XC 9536XL VQ44 braucht 12x12 mm, ohne drumrum wie z.B. Anschluss für 
den JTAG Programmer.

Ich glaube auch nicht dass er besser im EMV dasteht.

Änderbarkeit ist ein Argument, ob es bei deinen 3 Signalen wirklich 
notwendig ist, muss du wissen.

> Wenn ich jemals die Stückzahl von 100 Stück überschreite dann ist sogar
> der Aufwand umgerechnet nur noch Kleinkram.

Du hast auch noch Aufwand bei der Produktion.

>
> Mir schadet es außerdem nicht mal wieder was zu lernen.

Das schadet nie, man muss allerdings Hinterfragen was man beim Schiessen 
mit Kanonen auf Spatzen wirklich lernt.

Schau dir den LCMXO2-256HC-4SG32C als Alternative zu dem XC 9536XL VQ44 
an.

Braucht nur ca 5x5 mm, ist auch mit I2C programmierbar, was leichter als 
JTAG in die Applikation zu intergrieren ist, vor allem wenn man ohnehin 
schon I2C hat.

Die Lattice Software unterstützt FTDI2232H basierende Programmer.

von Helmut S. (helmuts)


Lesenswert?

Ich habe den Eindruck Dirk geht hier gar nicht um eine wirtschaftliche 
Lösung sondern Dirk will ein CPLD programmieren.
Dann sollte man aber das auch gleich sagen und hier nicht um die 2€ 
diskutieren.

von Dirk (Gast)


Lesenswert?

Nachhaltigkeit und Änderungsmöglichkeit sind da die besseren Argumente 
als Billig.
Ich habe auch nie gesagt das es um den Preis geht, sonder immer nur das 
beide Lösungen in etwa das selbe kosten.

Der FPGA sieht auf dem 1. Blick recht brauchbar aus. Klein ist er auf 
jeden Fall und Preislich sind wir Oh wunder wieder bei ca. 2Euro. Werde 
ich mir heute Abend mal durchlesen.

Das die Single Gate Logik sehr klein sind und nicht mit den normalen 
Typen vergleichbar sind habe ich auch gesehen.

Nun Ihr habt mir etliche Möglichkeiten gezeigt und jetzt muss ich wohl 
entscheiden was besser passt.

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


Lesenswert?

Dirk schrieb:
> sonder immer nur das beide Lösungen in etwa das selbe kosten.
Das glaube ich noch immer nicht. Ich hin normalerweise derjenige, der 
sofort ein FPGA nimmt, aber genau hier ist die "flexiblere" CPLD-Lösung 
der diskreten TTL-Lösung vermutlich in allen relevanten Belangen 
unterlegen...

von Falk B. (falk)


Lesenswert?

Mensch Lothar, nun lass ihn doch ein bisschen mit dem CPLD spielen.
Effizienz ist nicht alles.

von Lattice User (Gast)


Lesenswert?

Falk Brunner schrieb:
> Mensch Lothar, nun lass ihn doch ein bisschen mit dem CPLD spielen.
> Effizienz ist nicht alles.

Du bekommst die Aufgabe ihm bei der Implementierung eines robusten R&S 
Flipflops auf einem FPGA/CPLD zu helfen.

Evil Grin.

von Dirk (Gast)


Lesenswert?

Hi,

nach etwas lesen (bin noch nicht ganz durch) und nochmaligen ausgiebigen 
simulieren meiner Schaltung habe ich mich tatsächlich für diesen FPGA 
entschieden oder den mit mehr Pins. Freue mich schon aufs löten.

Ich habe zwar noch nicht zu 100% kapiert wie der von mir den Code per 
I2C oder SPI bekommt aber das richtige Dokument oder C-Code dafür finde 
ich hoffentlich auch bald.

Meine Entscheidung für einen FPGA war jetzt nicht nur der Preis oder die 
Fläche sonder auch die Update Möglichkeit und die flexible 
Konfiguration.

Ich habe, wie schon gesagt, meine Logik noch mal überarbeitet.
Dabei habe ich dank FPGA deutlich bessere Möglichkeiten meine Signale zu 
generieren.  Benutzte nun auch einen Counter, 18 INV, 15 AND, 12 OR und 
6 D-Flipflops mehr als im ersten Ansatz. Will ich aber noch mal 
überarbeiten ist mir etwas zu viel geworden (Laufzeit). Lasse jetzt auch 
noch etwas mehr Leitungen da durch laufen.
Das Hauptproblem ist nicht eine einfache Umsetzung der Signale sondern 
das ich auf Fehler im den Eingangssignale reagieren muss und die M4 
Schnittstellen (SPI) das nicht ohne hilfs Signale mitbekommen und 
fehlerhafte Daten einlesen würden.

Dirk

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


Lesenswert?

Dirk schrieb:
> Benutzte nun auch einen Counter, 18 INV, 15 AND, 12 OR
Dir ist schon klar, dass es diese Bausteine im FPGA nicht gibt? Da drin 
gibt es (neben "fertiger" Hardware wie RAM und Taktmanagern) zur freien 
Verfügung nur LUT und D-FF...

> Benutzte nun auch einen Counter
Sieht nach Glatteis aus. Womit wird der getaktet?

: Bearbeitet durch Moderator
von Dirk (Gast)


Lesenswert?

Da ich jetzt alle Signale und nicht nur die Steuersignale nehme habe ich 
auch einen Takt. Solange die Internen Zellen reichen, was ich noch 
prüfen muss, sollte ein Counter doch nicht so schwer sein zu bauen. Und 
wenn es nicht passt dann wird halt Lösung 1 wieder genommen oder eine 
abgespeckte Variante ohne Counter. Irgendwie wird eine Lösung meines 
Problems da schon rein passen. Wenn es ganz schlimm kommt dann muss halt 
der nächst größere drauf.

Ich finde aber ums verrecken nicht wie der FPGA über I2C hochfährt.
Die Pins zum Boot Auswahl habe ich aber ab da ist Dokumentationsebbe.

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


Lesenswert?

Dirk schrieb:
> diesen FPGA
"Diesen" Array oder "dieses" Array?

Dirk schrieb:
> der FPGA
"Der" Array oder "das" Array?

> wie der FPGA über I2C hochfährt.
Vorneweg: welches FPGA meinst du denn konkret?

Ich vermute aber, dass das FPGA gar nicht vom I2C booten kann, sondern 
dass bestenfalls das interne Flash über die I2C Schnittstelle gebrannt, 
und dann vom internen Flash gebootet wird.

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:

>
> Ich vermute aber, dass das FPGA gar nicht vom I2C booten kann, sondern
> dass bestenfalls das interne Flash über die I2C Schnittstelle gebrannt,
> und dann vom internen Flash gebootet wird.

Ich bin sicher es ist vom MachXO2 die Rede,
Das ist so, und gilt auch für Slave SPI.

Nur im JTAG Mode kann man den MachXO2 ohne den Umweg über den internen 
Flash laden. Ist aber IMO keine Einschränkung, es sei denn man macht den 
Fehler den I2C Config zu disablen.

@Dirk

Wenn du die MachXO2 Variante weiter verfolgen willst, beschaff dir ein 
XO2 Breakout Board zum spielen und damit vertraut machen.
http://www.mouser.de/new/Lattice-Semiconductor/lattice-machxo2-breakoutboard/

von Dirk (Gast)


Lesenswert?

Entschuldigung.
Da mir hier der LCMXO2-256HC-4SG32C also ein MachXO2 empfohlen wurde, 
habe ich auch von genau diesem FPGA gesprochen.

Wenn ich das richtig verstanden habe dann kann der über I2C booten, aber 
wenn ich den nur darüber flashen kann ist auch nicht schlimm. Hauptsache 
ich kann den, wenn ich es brauche, mal ein Update verpassen. Wobei mir 
ein Booten logischerweise besser gefallen würde. Ansonsten: JTAG spielen 
wäre ja nicht so kompliziert.

Ein Demoboard und eine Handvoll Muster ist schon bestellt.
Bin dann mal gespannt wie ich damit zurecht komme.
Bastel schon mit der Designer Software meine Anwendung.


Dir

von Dirk (Gast)


Lesenswert?

Den C Code zum I2C brennen habe ich gerade gefunden.
Muss den jetzt nur anpassen.

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.