Guten Morgen! Ich hab mal vor 20 Jahren kurze Zeit was mit VHDL gemacht und alles wieder vergessen. Im Moment versuche ich, wieder alles auf die Reihe zu bekommen. Deshalb 2 Fragen. 1. Frage: Wenn ich 200MHz zählen will, welche max. Frequenz sollte ein CPLD haben? Min. 200MHz oder das doppelte (falls es solche CPLD überhaupt gibt)? 2. Frage: Der Counter soll freilaufend sein und der Zählerstand mit einer asychronen Sample-Flanke gespeichert(gelatched) werden. Der Counter darf aber nicht gestört werden und soll immer weiterzählen. Ist das überhaupt möglich, da nach 5ns schon der nächste Zählimpuls kommt.
Verwendet nicht z.B. der Racal Dana 1991 auch einen CLPD für den Reziprogzähler? Wie sieht es mit den aktuellen Keysight Zählern aus? Ralph Berres
Vielleicht könnte das für dich interessant sein: https://hackaday.com/2014/06/29/counting-really-really-fast-with-an-fpga/
Ein MachXO2 von Lattice ist mit 400 MHz am Eingangspin spezifiziert. Das hatte ich mal getestet und das passte auch (unter Laborbedingungen und mit Anpassung des DC-Offsets ging auch etwas über 600 MHz noch). Duke
Hallo, danke für die Links. Mit dem Thema kratzt man wirklich am Rand der DIY-Physik. Das Problem ist nicht, die hohen Frequenzen zu zählen, sondern den Zählerstand in ein Latch zu bekommen. Wenn das z.B. 20ns braucht, ist man schon verloren, weil der Zähler bei 200MHz um 4 Ticks weiter gezählt hat. Ich hab auf Mouser mal einen abgekündigten Motorola-Zähler-Chip gesehen, der hatte 800ps Durchlaufzeit. Evtl. muss ich auch meinen Anwenundsfall umstellen und den Zähler gaten, dann kann ich den Stand in Ruhe auslesen.
Warum sollte man denn bei einem cpld mit klasischen Makrozellen nicht direkt mit dem Eingangssignal FF schalten können? Leuchtet mir nicht ganz ein. Ein FPGA basiertes 'cpld' außen vor gelassen.
Anarchist schrieb: > Um mit 200 MHz zählen zu können musst du den CPLD mit mindestens 400 MHz > takten. Wieso? Der Clock ist doch das Eingangssignal. Oder hab ich was nicht verstanden? Ist das vielleicht bei FPGA so? Ich will ja einen CPLD.
Ralf S. schrieb: > Wenn ich 200MHz zählen will, welche max. Frequenz sollte ein > CPLD haben? Das hängt unter anderem auch von der Zählerbreite ab (ab einer gewissen Zählerbreite werden mehr Logikstufen fällig). Am einfachsten entwirfst du den Zähler und ein 200 MHz Takt-Constraint und lässt dein Entwicklungssytem prüfen, ob ein bestimmtes CPLD noch ausreicht oder ob ein schnelleres nötig wird. Erst wenn das Entwicklungssystem dir die ausreichende Geschwindigkeit bestätigt brauchst du die Hardware zu besorgen. Ralf S. schrieb: > und der Zählerstand mit > einer asychronen Sample-Flanke gespeichert(gelatched) werden. Dann musst du unbedingt zuerst die asynchrone Flanke eintakten und dann mit dem daraus entstehenden synchronen Signal den Zählerstand in ein Register abspeichern. Wenn du direkt mit asynchronen Eingängen arbeiten würdest wäre die Wahrscheinlichkeit sehr hoch, dass unterschiedliche Stellen deines Zählers in unterschiedlichen Taktperiode gespeichert würden (der gespeicherte Zählerstand also unsinnige Werte annehmen würde). Anarchist schrieb: > Um mit 200 MHz zählen zu können musst du den CPLD mit mindestens 400 MHz > takten. Wenn der Takt selbst gezählt werden soll (das Ganze also quasi einen Timer bildet, der die Zeitstamps der Sample-Flanken bestimmen soll), reichen auch die 200MHz.
Achim S. schrieb: > Dann musst du unbedingt zuerst die asynchrone Flanke eintakten und dann > mit dem daraus entstehenden synchronen Signal den Zählerstand in ein > Register abspeichern. Wenn du direkt mit asynchronen Eingängen arbeiten > würdest wäre die Wahrscheinlichkeit sehr hoch, dass unterschiedliche > Stellen deines Zählers in unterschiedlichen Taktperiode gespeichert > würden (der gespeicherte Zählerstand also unsinnige Werte annehmen > würde). Klingt interessant. D.h. erstmal mit einen D-FF synchronisieren. Bleibt aber vermutlich das Problem, dass ich den Zählerstand nicht rechtzeitig ins Register bekomme. Aber erstmal Danke!
Ralf S. schrieb: > Ich will ja einen CPLD. Da ist die Auswahl in den letzten 20 Jahren halt massiv ausgedünnt worden. Also entweder nehmen, was du von damals schon kennst (z. B. CoolRunner 2) oder Lattice: https://www.latticesemi.com/Products/FPGAandCPLD/ispMACH4000VZ Alles andere sind FPGAs
Ralf S. schrieb: > Klingt interessant. D.h. erstmal mit einen D-FF synchronisieren. richtig Ralf S. schrieb: > Bleibt > aber vermutlich das Problem, dass ich den Zählerstand nicht rechtzeitig > ins Register bekomme. kommt darauf an, wie du "rechtzeitig" definierst. Bei einem asynchronen Steuersignal hast du ja immer Fälle, bei denen unklar ist, ob die Flanke des Steuersignal im n-ten Takt n oder im n+ersten Takt auftritt. Wenn du das Steuersignal zunächst einsynchronisierst, verschiebst du halt die Wirkung des Signals definiert um einen Takt nach hinten. Dafür haben dann alle Bits des Speicherregisters ausreichende 5ns Zeit, um den korrekten Zählerwert zu übernehmen. http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren Ein Problem entsteht daraus höchstens, wenn du den Zählerstand wirklich schon 5ns "früher" verwenden musst.
Ralf S. schrieb: > 1. Frage: Wenn ich 200MHz zählen will, welche max. Frequenz sollte ein > CPLD haben? Min. 200MHz oder das doppelte (falls es solche CPLD > überhaupt gibt)? Nimm einen kleinen Coolrunner von Xilinx, die gibt es recht billig und die können bis über 600 MHz schnell zählen. Ich habe in meinen Eigenbau-Zählern so etwas drin. Auch für die Referenz, dort habe ich 200 MHz werkeln. Was da frequenzmäßig begrenzt, ist die Analogtechnik davor. Das habe ich beim Benutzen der Zähler gemerkt. Am ehesten geht als Komparator vor dem CPLD ein FIN1002 ggf. mit externer Mitkopplung, um eine kleine Hysterese zu erzeugen. W.S.
200 MHz habe ich in einem Coolrunner2 mit 128 Macrozellen schon hinbekommen, mit Torzeit-Generator und SPI-Interface. Ich glaube, 64 Zellen hätte gerade so gereicht. Die kleinen Coolrunners sind deutlich schneller. Bei 200 MHz muss der Takt "schön" sein. Gerhard
W.S. schrieb: > Ralf S. schrieb: >> 1. Frage: Wenn ich 200MHz zählen will, welche max. Frequenz sollte ein >> CPLD haben? Min. 200MHz oder das doppelte (falls es solche CPLD >> überhaupt gibt)? > > Nimm einen kleinen Coolrunner von Xilinx, die gibt es recht billig und > die können bis über 600 MHz schnell zählen. Ich habe in meinen > Eigenbau-Zählern so etwas drin. Auch für die Referenz, dort habe ich 200 > MHz werkeln. > > Was da frequenzmäßig begrenzt, ist die Analogtechnik davor. Das habe ich > beim Benutzen der Zähler gemerkt. Am ehesten geht als Komparator vor dem > CPLD ein FIN1002 ggf. mit externer Mitkopplung, um eine kleine > Hysterese zu erzeugen. > > W.S. Die Coolrunner sind ja wirklich kleine Teufel. Nochmal zur Vergewisserung: CPLD haben ihr Programm im eigenen Flash und FPGA müssen ihr Programm erst extern reinladen?
Thomas L. schrieb: > Im Funkamateur 2005-02 war genau so eine Schaltung. Danke für den Bericht. Der Autor hat auch eine Site: https://dl1dsn.de/projects/counter/counter.htm
Ralf S. schrieb: > Die Coolrunner sind ja wirklich kleine Teufel. > Nochmal zur Vergewisserung: CPLD haben ihr Programm im eigenen Flash und > FPGA müssen ihr Programm erst extern reinladen? Ja, die Coolrunner haben eigenes Flash auf dem Chip. Es gibt aber auch FPGAs, die zumindest den FlashChip mit im Gehäuse haben. Die eigentliche Unterscheidung ist, dass CPLDs vor jedem FlipFlop eine riesige Summe-von-Produkten-Matrix haben während FPGAs einfachere Blöcke haben, aber viel mehr davon. Bei > 128 FlipFlops werden CPLDs rasch uninteressant weil die einzelnen Blöcke quadratisch komplizierter werden während es beim FPGA nur mehr Blöcke werden. Zum Programmieren des CPLDs braucht man einen Dongle von Xilinx für ~ €250. Es soll aber auch chinesische für 1/10 geben. Im Prinzip kann man das auch für einen uController selber schreiben. Für einen Anfänger vergrössert sich aber der Fehlersuchraum beträchtlich. Die Entwicklungssoftware ist ISE V14 oder so. Die neue Software Vivado kennt die Coolrunner nicht mehr. Die Software kann man kostenfrei von Xilinx runterladen. Gruß, Gerhard
Gerhard H. schrieb: > > Zum Programmieren des CPLDs braucht man einen Dongle von Xilinx > für ~ €250. Es soll aber auch chinesische für 1/10 geben. > Im Prinzip kann man das auch für einen uController selber schreiben. > Für einen Anfänger vergrössert sich aber der Fehlersuchraum > beträchtlich. > > Die Entwicklungssoftware ist ISE V14 oder so. Die neue Software > Vivado kennt die Coolrunner nicht mehr. Die Software kann man > kostenfrei von Xilinx runterladen. > > Gruß, Gerhard Guter Punkt: In dem Projekt oben wurde mit einer Centronic-Schnittstelle programmiert. Braucht man wirklich diesen Dongle? Oder lassen sich die alten CPLD/FPGA noch mit einfachen Mitteln programmieren und die neuen mit Dongle? https://www.fischl.de/thomas/elektronik/cpld/index.html
:
Bearbeitet durch User
Ralf S. schrieb: > Oder lassen sich die > alten CPLD/FPGA noch mit einfachen Mitteln programmieren und die neuen > mit Dongle? Der Coolrunner 2 zählt nicht zu denn alten CPLD wie der verlinkte XC9500. Und der Coolrunner wurde auch nicht von Xilinx entwickelt sonder von philips.
Auch die modernen, großen FPGAs lassen sich noch simpel programmieren. Wenn man was falsch macht, bekommt man als diagnostics aber meist nur: "nö, ich will nicht!" Es gibt APP-notes von Xilinx dazu. Gerade als Anfänger kommt man mit "Teile und herrsche" schneller weiter. Wenn man sich das Programmieren des Chips aus der eigenen Umgebung / uC antun will, kann man sich auch ein Spartan leisten, das kostet auch nicht mehr und ist nicht vom Aussterben bedroht.
Gerhard H. schrieb: > Zum Programmieren des CPLDs braucht man einen Dongle von Xilinx > für ~ €250. Ähem... nicht unbedingt. Wer noch ein Windows XP hat, der kann sich aus dem Bodensatz seiner Bastelkiste ein "Parallelkabel #3" bauen und damit sein CPLD brennen. Voraussetzung ist allerdings eine alte Centronics-Schnittstelle am PC. Es geht aber auch an neueren PC deutlich billiger. Ich habe auch einen Brenner aus China, der am USB werkelt und (wimre) so um die 20..30€ gekostet hat. W.S.
W.S. schrieb: > Gerhard H. schrieb: >> Zum Programmieren des CPLDs braucht man einen Dongle von Xilinx >> für ~ €250. > > Ähem... nicht unbedingt. Wer noch ein Windows XP hat, der kann sich aus > dem Bodensatz seiner Bastelkiste ein "Parallelkabel #3" bauen und damit > sein CPLD brennen. Voraussetzung ist allerdings eine alte > Centronics-Schnittstelle am PC. Ein oder zwei parallel cables habe ich noch neulich in irgendeiner Kiste im Keller gesichtet. Ich glaube nicht, dass ich die noch jemals brauche. Wer noch einen Parallelport und XP hat, der kann sich gerne melden. Wann's gschei macht... > Es geht aber auch an neueren PC deutlich billiger. Ich habe auch einen > Brenner aus China, der am USB werkelt und (wimre) so um die 20..30€ > gekostet hat. Das schrub ich doch im hier nicht zitierten Teil. Added value wäre gewesen "Der XYZZY funktioniert bei mir" Gerhard
Wir haben einige von den Digilent USB Programmern im Einsatz, die kosten auch relativ wenig und klappen wunderbar. Mit XC3Sprog kann man auch ein billiges FTDI Board nutzen.
W.S. schrieb: > Gerhard H. schrieb: >> Zum Programmieren des CPLDs braucht man einen Dongle von Xilinx >> für ~ €250. > > Ähem... nicht unbedingt. Wer noch ein Windows XP hat, der kann sich aus > dem Bodensatz seiner Bastelkiste ein "Parallelkabel #3" bauen und damit > sein CPLD brennen. Voraussetzung ist allerdings eine alte > Centronics-Schnittstelle am PC. > > Es geht aber auch an neueren PC deutlich billiger. Ich habe auch einen > Brenner aus China, der am USB werkelt und (wimre) so um die 20..30€ > gekostet hat. > > W.S. Die letzte Centronics habe ich beerdigt, als mein 24-Nadel-Drucker von Epson 1994 den Geist aufgegeben hat. Die Karte müsste sogar noch einen ISA-Slot gehabt haben. Gibt es eigentlich USB zu Centronics-Adapter?
Ralf S. schrieb: > Gibt es eigentlich USB zu Centronics-Adapter? Ja aber die funktionieren AUSSCHLIESSLICH mit Druckern.
Christian R. schrieb: > Ralf S. schrieb: >> Gibt es eigentlich USB zu Centronics-Adapter? > > Ja aber die funktionieren AUSSCHLIESSLICH mit Druckern. Bei Reichelt gibt es noch PCI Einsteckkarten..
Hab' ich was verpasst? Die CoolRunner und CoolRunner II lassen sich doch mit dem Xilinx Platform Cable programmieren, oder nicht? Und das gibt's für 25€ aus China.
Ralf S. schrieb: > Bei Reichelt gibt es noch PCI Einsteckkarten.. Das nützt nix. Habe selber noch sowas. Das ging noch unter Windows XP, aber schon bei Windows 7 kommt man da vom Programm aus nicht mehr heran. Das einzige, was da noch geht, ist das Einrichten eines Druckers an diesem Port. W.S.
W.S. schrieb: > Ralf S. schrieb: >> Bei Reichelt gibt es noch PCI Einsteckkarten.. > > Das nützt nix. Habe selber noch sowas. Das ging noch unter Windows XP, > aber schon bei Windows 7 kommt man da vom Programm aus nicht mehr heran. > Das einzige, was da noch geht, ist das Einrichten eines Druckers an > diesem Port. > > W.S. MS hat da vermutlich die Sicherheitsrichtlinien verschärft und Ports defaultmäßig gesperrt.
drauf geschissen schrieb: > Und der Coolrunner wurde auch nicht von Xilinx entwickelt sonder von > philips. Quelle? René F. schrieb: > Vielleicht könnte das für dich interessant sein: > https://hackaday.com/2014/06/29/counting-really-really-fast-with-an-fpga/ Spartan 6 mit 900 MHz. Na prima. "Being a bit more clever turns the task into a cakewalk, with a low-end FPGA being able to count clocks over 500 MHz." Mti seinem Gray-Counter zählt er aber nur bis 31, d.h. er hat beim sampeln +/-0.5 Unsicherheit -> 1.5%. Dann lieber serielles Schieberegister.
HF-Techniker schrieb: > drauf geschissen schrieb: >> Und der Coolrunner wurde auch nicht von Xilinx entwickelt sonder von >> philips. > Quelle? Das weiß jeder der in den letzten Jahrzehnten mit CPLD's arbeitete https://www.wirelessdesignonline.com/doc/xilinx-completes-acquisition-of-philips-cpld-0001
Jiri R. schrieb: > Es geht auch ohne CPLD, jedoch mit ECL... und zugehörigen Stromversorgungen und Pegelwandlern. Da ist ein simples kleines CPLD ganz gewiß einfacher in der Handhabung. W.S.
Ohne alles erneut gelesen zu haben (der Eröffnungsbeitrag ist ja schon ein paar Tage alt): Geht es um die Entwicklung eines 200 MHz Zählers, wobei sich ein CPLD angeboten hat, oder geht es primär darum, etwas mit einem CPLD zu machen? Wenn es nur darum geht, einen reziproken 200 MHz Zähler zu erhalten, kann man auch STM32F4/F7/H7 einsetzen. Ein STM32F429 schafft allein mit seinen internen Zählern >= 400 MHz, wenn man diese asynchron betreibt. Bei mir läuft soetas auf einem Disco-Board mit TFT-Anzeige. xxH750 habe ich noch nicht getestet, dürfte aber weit über 500 MHz schaffen. Weder CPLD oder ECL wären erforderlich.
m.n. schrieb: > 400 MHz, wenn man diese asynchron betreibt. > Bei mir läuft soetas auf einem Disco-Board "Discovery"? Da kann man mal sehen, was die modernen Microcontroller so alles onboard haben. Allerdings geht mit FPGAs immer noch mehr: Artix 7, OSC 1024 MHz / 4 -> 256 MHz, 8 Ausgänge mit 1/8 Phase -> 2Gsps, ohne Serdes / GTP, einfach mit eintrainierten 8 IO-Ports sampeln und registrieren. Geht bei Nutzung der BRAMs (keine DDR-Anbindung nötig) mit 16 Kanälen. Wenn man noch ein bissl schnelle Analogtechnik mit genauen Komparatoren davor hängt, hätte man entweder einen 16 Kanal Logic Analyzer oder ein 4 Bit Scope mit 2Gsps.
:
Bearbeitet durch User
MC100E137NG arbeitet mit +5V , positive ECL logik. siehe Datenblatt. https://www.onsemi.com/pdf/datasheet/mc10e137-d.pdf Ausserdem, MC100E137NG arbeitet weit über 2200 MHz ...
:
Bearbeitet durch User
Jiri R. schrieb: > MC100E137NG arbeitet mit +5V , positive ECL logik. siehe > Datenblatt. > https://www.onsemi.com/pdf/datasheet/mc10e137-d.pdf > Ausserdem, MC100E137NG arbeitet weit über 2200 MHz ... Schon nett zu sehen, was man mit ECL so erreichen kann und das ja auch schon seit längerer Zeit. Türlich zahlt man das mit dem Stromverbrauch: max. 145 mA bei 5 V und 85°C.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.