Hallo allerseits. Es handelt sich hierbei um meine erste Erfahrung mit einem CPLD. In einem XC95144XL sollen vier DDS Generatoren Platz finden. Die Inkrementwerte sollen Byteweise aufgenommen werden und die aktuellen Werte der Phasenregisters sollen Mit einer Wortbreite von 24 Bit parallel nacheinander Ausgegeben werden um in einem nachgeschaltetem CPLD mit ext. ROM eine Lookuptable durchlaufen. Das ganze soll der Grundstock für einen Oscillator eines Synthesizers werden. Nun zum eigendlichem Problem. Das ganze ist an sich recht speicherintensiv. Und Register bzw. Speicherzellen verbrauchen Makrozellen, wenn ich es recht verstanden habe. 144 MC sind also zu wenig. Ich arbeite mit dem Schematic Editor. Um die Makrozellen zu umgehen bin ich den Umweg gegangen und habe mir aus NAND Gattern ein D-Fliplop aufgebaut, und das ganze 24mal für ein Phasenregister. Vier davon gehen nun mit ihren Ausgängen au ein 24faches vierfach ODER. Bei der synthetisierung (Ist zwar noch nicht fertig, aber lerning by doing) wird angemeckert, dass Die Schaltung Glitch gefärdet ist. Mit den Laufzeiten ansich läutet mir schon ein. Nur wenn der "Systemtakt" verhältnismäßig langsam ist, haben doch die Signale der einzelnen Arbeitsschritte ausreichend Zeit ihr Zustände zu erreichen, oder? Desweiteren, bin ich auf dem Holzweg mit der Lösung von Registern aus "NAND Flip Flops"? Sicherlich könnte man ein externes SRAM nutzen, aber bei 3200 Logic-Cells die da drin sind wäre das ja Perlen vor die Säue. Vielen dank schonmal und euch allen einen guten Start ins Wochenende. Christian
> Nur wenn der "Systemtakt" verhältnismäßig langsam ist, haben doch die > Signale der einzelnen Arbeitsschritte ausreichend Zeit ihr Zustände zu > erreichen, oder? Ja, aber was, wenn deine Schaltung allergisch auf diesen Glitch reagiert, weil daraus z.B. ein asynchrones Reset-Signal generiert wird? Sobald du irgendwelche asynchrone Schweinereien machst (und dieses NAND-FF ist sowas) kann dir fast alles passieren... Deshalb ist man heutzutage sehr erpicht, ein Design komplett synchron zu halten. Nur dann ist es wirklich berechenbar. > XC95144XL Der hat eben nur 144 Flipflops, das ist recht wenig... > Desweiteren, bin ich auf dem Holzweg mit der Lösung von Registern aus > "NAND Flip Flops"? Ja, so geht das nicht auf Dauer gut. Nimm leichter ein kleines FPGA (Lattice MachXO oder Spartan 3AN). > Sicherlich könnte man ein externes SRAM nutzen, aber > bei 3200 Logic-Cells die da drin sind wäre das ja Perlen vor die Säue. Wo drin sind die 3200 LC?
Du machst gerade erste Erfahrungen in der Welt der programmierbaren Logik? Na dann zunächst mal "Herzlich Willkommen". Die Tatsache, dass Du ein Forum besuchst, zeigt, dass Du dir auch gern mal die Meinung von langjährigen Entwicklern anhören möchtest. Du musst ja nicht tun, was die sagen, aber interessant kann es trotzden sein. Nundenn, mein Beitrag dazu: -----(snip)----- Ich arbeite mit dem Schematic Editor. -----(snap)----- Lass das lieber bleiben. Lerne eine Hardwarebeschreibungssprache (Verilog oder VHDL), beschreibe die Logik als Modell und, um Himmels willen, schreibe immer auch ein Testprogramm dafür. -----(snip)----- Um die Makrozellen zu umgehen bin ich den Umweg gegangen und habe mir aus NAND Gattern ein D-Fliplop aufgebaut.... -----(snap)----- Also mal abgesehen davon, dass Du mit NANDs wahrscheinlich RS-Flipflops gebaut hast: No. Never. Never ever. Wenn Du etwas speichern musst, nimm ein D-Flipflop. Und betreibe alle D-Flipflops deines Designs mit dem gleichen Takt. Das nennt man dann ein synchrones Design, und so soll es sein. Im übrigen könnte, je nach Baustein ein mit zwei NANDs aufgebautes Flipflop mehr Ressourcen belegen als ein D-Flipflop. -----(snip)----- wird angemeckert, dass Die Schaltung Glitch gefärdet ist. -----(snap)----- Asynchrone Logik ist nunmal gefährdet, ganz egal, mit welcher Frequenz man arbeitet. -----(snip)----- Desweiteren, bin ich auf dem Holzweg mit der Lösung von Registern aus "NAND Flip Flops"? -----(snip)----- Auf jeden Fall, ganz egal wie die Aufgabe aussieht. Ich muss zugeben, dass ich die Aufgabe nicht verstanden habe, weil mir einige Abkürzungen nichts sagen. Wenn Du erklären würdest, was das Ganze tun soll am Ende der Tage, können die vielleicht auch noch andere Teilnehmer Ratschläge geben. Ach ja, und Lothar, hast Du schonal etwas von der Firma Altera gehört? Ich finde, Du berätst die Novizen immer ertwas einseitig.
Harald Flügel schrieb: > Ach ja, und Lothar, hast Du schonal etwas von der Firma Altera gehört? > Ich finde, Du berätst die Novizen immer ertwas einseitig. Ich zitiere mich (ungern) selbst: >> (Lattice MachXO oder Spartan 3AN) Was kommt da zuerst? Wie auch immer: wenn Altera auch Bausteine mit integriertem Config-Flash hat: ich habe auf jeden Fall nicht davon abgeraten. Nur kann ich nicht zu etwas raten, von dem ich nicht ausreichend viel weiß. BTW: warum hast du die Firmen Actel, QuickLogic, SiliconBlue... nicht erwähnt? > Ich finde, Du berätst die Novizen immer ertwas einseitig. Kommend von einem Xilinx CPLD XC95144XL ist doch immer noch der kürzeste Weg der zu Xilinx... ;-) Und wenn schon das CPLD keinen Config-PROM braucht, dann ist der nächste Weg zu einem FPGA ohne Config-PROM. Nur zu meiner Weiterbildung: wie heißt die entsprechende Non-Volatile-FPGA Serie von Altera?
für jemanden der mit Schematic arbeitet und grosseres CPLD sucht ist Altera und Max II mit z.b EPM1270 doch perfekt, die 1270 LEs sollten reichen.
Hallo Lothar, wie brauchen uns jetzt hier keinen Flammenkrieg zu liefern. Ich stimme dir ja zu, dass die Aufgabe vermutlich mit einem FPGA am besten zu lösen ist. Und ich ziehe meinen Hut vor dir, wenn Du anhand des ersten Posts herausgefunden hast, dass der Mann keinen Platz für ein Config-Prom auf der Platine hat. Und keinen Microcontroller, der das FPGA konfigurieren könnte. Reife Leistung! Die Non-Volatile-FPGA von Altera nennen sich übrigens Max II. Schreib jetzt bitte nicht zurück, dass das keine echten FPGA wären weil sie keine PLLs und keine RAM-Module haben. Oder kannst Du den Bedarf hierfür auch anhand des ersten Posts erkennen. Dann knie ich wirklich nieder!
> Und ich ziehe meinen Hut vor dir, wenn Du anhand des ersten Posts > herausgefunden hast, dass der Mann keinen Platz für ein Config-Prom auf > der Platine hat. Und keinen Microcontroller, der das FPGA konfigurieren > könnte. @ Christian Das soll heißen: SRAM basierte FPGAs müssen beim Einschalten kofiguriert werden. Sie brauchen daher einen Konfigurationsspeicher, wie z.B. ein serielles SPI-Flash. Diese Konfigurationsdaten könnten aber auch von einen uC z.B. aus einer SD-Karte ins FPGA geschrieben werden. Damit wäre ein Firmware-Upgrade ziemlich einfach: Karte tauschen --> andere Hardware... @ Harald Nein, ich habe das nicht herausgefunden, sondern "nur" den logischen Schritt der Fa. Lattice nachvollzogen. Dort ist der Migrationspfad vom CPLD zum FPGA der MachXO. Und das ist ein FPGA mit eingebautem Config-PROM.
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.