mikrocontroller.net

Forum: FPGA, VHDL & Co. (C)PLD Anfängerfrage(n)


Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe in Zusammenhang mit einem Bussystem eine rel. einfache 
Adresslogik umzusetzen und bekam den Tip, es doch mit GAL16V8, bzw. M4A5 
von Lattice zu versuchen.
Nach den üblichen Anfangsschwierigkeiten habe ich meine Logik mit einem 
M4A5 hinbekommen. Da das Teil jedoch rel. häufig eingesetzt wird, suchte 
ich nach einem Weg, es noch auf einem günstigeren Chip umsetzen zu 
können.

Leider stellte sich heraus, dass die GALxx von Lattice zu klein sind, 
ich brauche nämlich 18 Ein- und 6 Ausgänge.

Dann entdeckte ich den EPM3032 von Altera, der genügend Pins zu haben 
scheint und preislich eher akzeptabel wäre.
Also lud ich mir die (1Gb) Webedition von Altera runter, nur um dann 
festzustellen, dass anscheinend kein grafischer Editor für die Logik 
dabei ist.

Fragen:
- gibt es die Möglichkeit, von dem, in Lattice-SW erstellten, Schematic 
eine Datei zu generieren, die die Altera Software verarbeiten kann? Die 
Sprachen (Abel, bzw. VHDL unterstützen scheinbar alle, aber das 
Schematic scheint binär zu sein)
- gibt es (alternativ) freie Software, die mit Chips verschiedener 
Hersteller zusammenspielt?

Bin für jeden Dip tankbar (auch für Links zum Selbststudium).

Gruß Santi

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, was in so einen kleinen Chip passt, scheint nicht sehr komplex zu 
sein. Schreib es am besten gleich in VHDL. Da lernst du noch was dabei.

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Altera hat beim Max II plus, einen grafischen Editor dabei. Aber bei mir 
kackt das Teil oft ab, wenn ich copy and paste mache.
Für Adressumsetzung ist doch aber VHDL wesentlichh einfacher, oder? Also 
mir würde es in VHDL einfacher fallen, als da was zusammenzuklicken 
(ausserden ist es auch portabler ;) )

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Software, die verschiedene Hersteller unterstützt gibts sicher, aber das 
dürfte dan von Firmen wie Mentor (oder so) stammen, und sicher nicht 
ganz in deinem Budget liegen.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Santiago m. H.:

Eventuell kannst Du Dir von ISP-Lever generisches VHDL aus Deinem 
Schematic erzeugen lassen (ggf. als Simulationsmodell). Das sollte dann 
in anderen Synthesizern zu verarbeiten sein.

Altium Designer hat einen brauchbaren Schematic-Editor, der m.W. mit 
allen gängigen PLDs zusammenspielt.

Der ist aber auch nicht frei und für privat immer noch viel zu teuer, 
auch wenn er nicht ganz so viel kosten dürfte wie Mentor.

Bei Xilinx ist der Schematic-Editor so schlecht (speichert aber als 
ASCII), das man lieber gleich VHDL oder Verilog lernt.

Duke

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für Eure Unterstützung!

> Altera hat beim Max II plus, einen grafischen Editor dabei. Aber bei mir
> kackt das Teil oft ab, wenn ich copy and paste mache.

OK, vielleicht nochmal installieren.
Ich wurde am Anfang gefragt, ob ich die Oberfläche vom Max II haben 
wolle und die hatte ich verneint.

> Für Adressumsetzung ist doch aber VHDL wesentlichh einfacher, oder? Also
> mir würde es in VHDL einfacher fallen, als da was zusammenzuklicken

Das mag wohl stimmen. Ich bin nur aus einem anderen Weg gekommen.
Ursprünglich hatte ich in eagle das Leitungshandling mit 15 Bausteinen 
aus der 74er Reihe gepinselt - hatte die Logik also schon, als ich den 
Tip mit den PLDs bekam (ich kannte bis dahin noch keine PLDs).
So lag es also nahe, die Logik erstmal 1:1 zu übernehmen.

Erst als der erste Test durch war und ich nach erhältlichen Chips und 
deren Preisen suchte, kam ich dazu, über Optimierungen nachzudenken.

Jetzt ist es einfach so, dass ich die investierte Zeit ungern völlig 
abschreiben würde.

Mit VHDL händisch schreiben müsste ich wieder bei Null anfangen.

Kostenpflichtige SW kommt nicht in Frage, dann kann ich eher die 4A5er 
Chips von Lattice nehmen. Da die Variante zu funktionieren scheint, 
sollte die Optimierung nicht zu resourcenaufwändig sein (wobei in diesem 
Falle meine Zeit mit als Resource zählt).

Bei einem Lattice-Model habe ich eine vhd-Datei gefunden.
Wie sieht das denn mit den Bibliotheken aus? Schätze die werden 
lattice-spezifisch sein?!?
Also die Datei geht so los:
LIBRARY vanmacro;
USE vanmacro.components.ALL;
LIBRARY ieee;
LIBRARY generics;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
USE generics.components.ALL;

Gruß Santi

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... eine rel. einfache Adresslogik ...

Im Zweifel könntest du den Schematic auch in der Altera-Software 
abzeichnen. Ist zwar ein einmaliger Aufwand, könnte aber trotzdem 
letztendlich günstiger sein.

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> Im Zweifel könntest du den Schematic auch in der Altera-Software
> abzeichnen.

Öhm, aus dem Grunde habe ich doch den Thread hier geschrieben.
Kennst Du die kostenlose Variante von Altera?
Gibt es dort auch was zum Zeichnen? - Wenn ja, wie finde ich da hin?

Ich habe leider noch nix zum Zeichnen gefunden.

Gruß Santi

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
File->New->Design Files->Block Diagram/Schematic File

Bleibe bei QuartusII und vergiss das alte MAX II plus wieder.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roger,

Danke Dir für den Hinweis!

Das war der Durchbruch :) - und es hat wunderbar geklappt.

Auch wenn das Alterateil nicht ohne Macken ist, gefällt es mir doch viel 
besser, als die Lattice-Variante!
Nachdem ich mich schon fast an die kryptische Bedienung bei Lattice 
gewöhnt hatte, war ich verblüfft, die Funktionen nicht bei Altera zu 
finden.
Bis ich merkte, dass es ja auch intuitiver geht (auch wenn es kein 
Vergleich zu eagle ist. Letzteres ist mal wirklich ein proggy von einem 
Praktiker) ;)

Das Schema wurde fehlerfrei übersetzt und die Pinbelegung hat auch gut 
geklappt, dann kann ich den Lötkolben ja anschmeißen :)

Nochmals Danke an alle, die mir geholfen haben.

Gruß Santi

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Öhm, aus dem Grunde habe ich doch den Thread hier geschrieben.

Oh... okay, dachte es geht darum den Aufwand beim Abzeichnen einzusparen 
:/

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>> Öhm, aus dem Grunde habe ich doch den Thread hier geschrieben.

> Oh... okay, dachte es geht darum den Aufwand beim Abzeichnen einzusparen
> :/

Erst in zweiter Lesung. Wie man unschwer an meinem Nick erkennen kann, 
bin ich GUI-Fetischist - nur habe ich den Schema-Editor nicht (im Menü) 
gefunden (siehe erster Beitrag). Da ich aber erst anfange, mich mit den 
Kartoffelscheibchen zu beschäftigen, pinsle ich den Plan gerne nochmal - 
so kann man sich schließlich am besten mit der SW anfreunden.
Auf den ersten Blick ist die Anwendung so überladen, dass man fast 
erschlagen wird. Erst auf den zweiten Blick wird es sinnvoll und ergibt 
ein stimmiges Bild.

- Eins fehlt mir aber noch:
Die "primitives" und "megafunctions" sind sehr schön über die 
Hilfefunktion erklärt. Leider fand ich keine Hilfe zu den 
"maxplus2"-Elementen.
Gut, für die 74er Teile kann ich mir ein Datenblatt suchen, aber wo 
finde ich erklärt, was sich hinter den anderen (teilweise kryptischen) 
Bezeichnern verbirgt, bzw. wie das Teil sich verhält?
Gibt es irgendeine detailierte Hilfe analog zu den "megafunctions"?

Gruß Santi

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> Die "primitives" und "megafunctions" sind sehr schön über die
> Hilfefunktion erklärt. Leider fand ich keine Hilfe zu den
> "maxplus2"-Elementen.

Der maxplus2 Haufen - speziell die 74er Teile - ist nur zur 
Kompatibilitaet mit alten Designs.
Konzentriere dich soweits geht auf die megafunctions. Die sind aktuell 
und lassen sich parametrieren.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roger,

die megafunctions sind wirklich eine feine Sache - könnt ich mich glatt 
dran gewöhnen :)

Jetzt habe ich versuchsweise einen Protokollumsetzer von seriell auf 
parallel gemacht und bekomme "combinational loop" Warnungen für alle 
Pins des Latches, welches ich mir über die megafunction erstellt habe.
Info: Started post-fitting delay annotation
Info: Delay annotation completed successfully
Warning: Timing Analysis does not support the analysis of latches as synchronous elements for the currently selected device family
Warning: Found combinational loop of 1 nodes
  Warning: Node "BLatch:inst17|lpm_latch:lpm_latch_component|latches[7]~143"

Wenn ich auf die Warnung klicke, öffnet sich der Editor mit dem Code der 
megafunction "lpm_latch" - aber da bin ich aufgeschmissen.
Die Warnungen kommen doch bestimmt nicht ohne Grund - was soll ich 
machen?

Dann habe ich den Pin für den seriellen Takt 'SCK' genannt und bekomme 
folgende Warnung:
Warning: Found pins functioning as undefined clocks and/or memory enables
  Info: Assuming node "SCK" is an undefined clock
Ich habe nix gefunden, um dem Pin eine erweiterte Einstellung zu 
verpassen.

Für weitere Nachhilfe wäre ich sehr dankbar.

Gruß Santi

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ohne den Schaltplan kann man nicht sagen, wo der Fehler liegt. 
Aber so eine Loop ist, wenn man den Ausgang nur über kombinatorische 
Logik auf den Eingang zurück führt.

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,

das ist ja der Punkt - ich habe garkeinen Loop gemacht (zumindest nicht 
wissentlich). Bei der Umsetzung gibt es ein Schieberegister, ein Latch 
und einen Zähler, das war's schon.
Also die Ausgänge der Schieberegister führen (natürlich) über das Latch 
zu den Ausgangspins und ein Zählerausgang wird für den Trigger des 
Latches genommen.

Also es sind schon Ausgänge mit Eingängen verbunden - aber nicht im 
(zumindest nach meinem Verständnis) Loop.

Gruß Santi

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hm, zeig doch mal den Schaltplan. Das im Anhang wäre z.B. eine solche 
kombitional feddback loop.

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der "combinational loop" kommt daher weil du ein transparentes latch 
verwendest. Dieses fuehrt zum Speichern den Ausgang auf den Eingang 
zurueck, hat also einen impliziten loop.

Ob das in deinem Fall aktzeptabel ist kommt auf die Anwendung an. Wenn 
moeglich lpm_ff anstelle lpm_latch verwenden.

Die Clocks in deinem Design solltest du spezifizieren, das hilft dem 
Fitter, und der Timing Analyzer sagt dir dann ob es laufen wird. Daher 
die Warning.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roger,

anscheinend kennst Du Dich nicht nur gut mit Altera aus, sondern hast 
auch noch meinen Beitrag gelesen und verstanden. Ich danke Dir!

> ... hat also einen impliziten loop.

Das hatte ich auch vermutet, wußte aber keine Abhilfe.

> Ob das in deinem Fall aktzeptabel ist kommt auf die Anwendung an. Wenn
> moeglich lpm_ff anstelle lpm_latch verwenden.

OK, ich wußte garnicht, dass es eine Alternative gibt. Ohne PLD hätte 
ich nen 595er genommen und weil bei den 74er Steinchen die Haltefunktion 
üblicherweise Latch heißt, habe ich genau danach auch in Altera gesucht.

Schätze das ist wie beim Erlernen einer Fremdsprache. Solange man 
Synonyme nur mit Hilfe eines Lexikons findet, beherrscht man die Sprache 
nicht wirklich.

> Die Clocks in deinem Design solltest du spezifizieren

nochmal auf die Suche gehen. Vielleicht finde ich ja die Stelle, wo man 
das tun kann.

Das lpm_ff werde ich mir anschauen. Wäre doch gelacht, wenn so ne 
einfache Aufgabe nicht zu knacken wäre ;)

Danke für Deine Unterstützung.

Gruß Santi

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> OK, ich wußte garnicht, dass es eine Alternative gibt. Ohne PLD hätte
> ich nen 595er genommen und weil bei den 74er Steinchen die Haltefunktion
> üblicherweise Latch heißt, habe ich genau danach auch in Altera gesucht.

Stimmt beides. Latches sind Pegelgesteuert, d.h. sie übernehmen neue 
Werte, solange der Pegel 1 ist (oder 0 bei active-low). FFs sind 
Flankengesteuert, d.h. sie übernehmen den neuen Wert nur beim Wechsel 
0->1 (oder 1->0 bei active-low).

Beim Latch gibt es in deinem Beispiel einen Loop, solange der Pegel 
aktiv ist, d.h. das Latch übernimmt ständig neue Werte, die es selbst 
produziert, was dann wieder zu einem neuen Wert führt usw. Wenn dabei 
immer wieder dasselbe Ergebnis produziert wird, ist das okay. Falls aber 
nicht (z.B. Schleife mit einem einzigen Inverter), dann flippert der 
Latch-Wert ständig hin und her (mit einer dir nicht genau bekannten 
Frequenz), und merkt sich später, wenn der Steuerpegel inaktiv wird, den 
Wert der dann gerade zufällig anliegt - wenn du Glück hast und das Latch 
nicht in einen Metastabilen Zustand wechselt. Das solltest du also 
vermeiden.

Bei FFs ist die Sache einfach: Es wird zu dem einen Festen Zeitpunkt, wo 
die Flanke kommt, der neue Wert übernommen, davor und danach nicht, also 
kann es keine asynchrone Schleife geben.

Autor: Santiago m. H. (mausschubser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

jetzt stelle ich doch mal ein Bild rein.
Ein ff statt einem latch zu nehmen hat wunderbar geklappt. Die Warnungen 
sind weg :)

Das einzige, was ich fand, um einen Takt eingeben zu können ist der 
Clocklock-Baustein. Der scheint jedoch bei den kleine Baureihen nicht 
unterstützt zu werden. Also kann ich den auch wieder rausnehmen.

1. Wo kann ich sonst einen Parameter definieren? Bei den Eigenschaften 
von ClockLock hat es ihm anscheinend nicht gefallen.

2. Kann/muss ich dann die Warnungen akzeptieren, im Wissen darauf, dass 
der Chip auf jeden Fall schnell genug ist?

3. Die nicht verwendeten Ausgänge scheinen der Anwendung nicht zu 
gefallen. Legt man die besser an ein Bauteil (welches?), oder ist es ok, 
nicht verwendete Ausgänge offen zu lassen?

Gruß Santi

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Morin,

> Latches sind Pegelgesteuert

Danke für den wertvollen Hinweis. Das erklärt natürlich alles.
Ich wußte nicht, dass Latches pegelgesteuert sind. Dann muss ich mein 
Verständnis gehörig umkrempeln. Grmpf...

Wunderbar - wieder was dazu gelernt :)

Gruß Santi

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> OK, ich wußte garnicht, dass es eine Alternative gibt. Ohne PLD hätte
> ich nen 595er genommen und weil bei den 74er Steinchen die Haltefunktion
> üblicherweise Latch heißt, habe ich genau danach auch in Altera gesucht.

Hier nicht, beim 595 nennt sich das Register, nun kann man 
philosophieren ob Register grundsaetzlich flankengesteuert sind, beim 
595 ist es so.

> Das lpm_ff werde ich mir anschauen. Wäre doch gelacht, wenn so ne
> einfache Aufgabe nicht zu knacken wäre ;)

Im wesentlich ein parametrierbares Flipflop.
Zusammen mit dem lpm_shiftreg kannst du die Funktionalitaet eines 74595 
nachbilden. Mit dem feinen Unterschied dass du die Breite deines 
Registers frei bestimmen kannst, vorausgesetzt es passt in deinen 
Baustein.

Cheers, Roger

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> jetzt stelle ich doch mal ein Bild rein.
> Ein ff statt einem latch zu nehmen hat wunderbar geklappt. Die Warnungen
> sind weg :)

yep, bloss ein counter output als clock zu verwenden ist ein no-no.
Besser fuer die Register den selben clock und clock-enables verwenden.
Siehe Taktung FPGA/CPLD

> Das einzige, was ich fand, um einen Takt eingeben zu können ist der
> Clocklock-Baustein. Der scheint jedoch bei den kleine Baureihen nicht
> unterstützt zu werden. Also kann ich den auch wieder rausnehmen.

Clocklock klingt nach PLL der aelteren FPGAs, passt wohl kaum zu deinem 
Baustein. Du kannst die clocks in den Project-Steiings->Timing 
Analysis->Classic Timing Analyzer->Individual Clocks  eintragen.

> 3. Die nicht verwendeten Ausgänge scheinen der Anwendung nicht zu
> gefallen. Legt man die besser an ein Bauteil (welches?), oder ist es ok,
> nicht verwendete Ausgänge offen zu lassen?

Project-Steiings->Device->Device and Pin options->Unused Pins da kannst 
du definieren was mit unbenutzten I/Os geschehen soll. "As input 
tri-stated" dann musst du die unbenutzten pins auf einen definierten 
Pegel legen, bei allen anderen Einstellungen kannst du die unbeschaltet 
lassen.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roger,

danke für Deine Unterstützung.

> nun kann man philosophieren ob Register grundsaetzlich flankengesteuert sind

Hm, also ich hatte Latches als flankengesteuert verstanden. Einen 
pegelgesteuerter Latch würde ich eher mit den analogen Switches ala 
4051/4053 vergleichen. Aber sei's drum. Philosophieren muss nüchtern 
nicht sein :)

> ein counter output als clock zu verwenden ist ein no-no.

Verstehe ich das richtig: nicht die Verwendung des Zählers ist der 
Fehler, sondern das Fehlen eines FF als Puffer?

Gruß Santi

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> Verstehe ich das richtig: nicht die Verwendung des Zählers ist der
> Fehler, sondern das Fehlen eines FF als Puffer?

Zaehler ist natuerlich okay. FF als Register hast du auch schon. Nur 
sollten die auch von SCK getaktet werden, wie der Zaehler. Mittels eines 
clock enables (den gibts bei lpm_ff) steuerst du nun in welchem cycle 
die Daten uebernommen werden. Dieses enable kannst du aus dem Zaehler 
Ausgang ableiten.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Roger,

habe es mal kurz umgestellt.

Die Warnungen bezüglich der nicht verwendeten Ausgänge von 
Schieberegister und  Zähler bekomme ich nicht weg - egal mit welcher 
Einstellung bei Device/unused pins.

Dann habe ich entdeckt, dass Pin 37 wohl als globaler Takteingang 
vorgesehen ist. Habe also die Pinbelegung angepasst. Durch die nicht 
verwendeten Ausgänge kann er die Durchlaufzeiten nicht mehr bestimmen 
und dann wird das Ergebnis bei Eingabe einer gewünschten Frequenz (auch 
wenn die noch so gemütlich ist) nur noch schlimmer.

Schätze die Einstellungen werden erst bei FPGAs wirklich unterstützt.

Ist die jetzige Variante so OK?

Gruß Santi

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, du benutzt ja immer
noch FF-Ausgänge als
Clock (Byte Latch, inst 5).

Gruß

Ralf

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> habe es mal kurz umgestellt.
> Ist die jetzige Variante so OK?

noch nicht ganz, ByteLatch sollte auch wie das dffc via clock enable 
gesteuert werden.

> Dann habe ich entdeckt, dass Pin 37 wohl als globaler Takteingang
> vorgesehen ist. Habe also die Pinbelegung angepasst. Durch die nicht
> verwendeten Ausgänge kann er die Durchlaufzeiten nicht mehr bestimmen
> und dann wird das Ergebnis bei Eingabe einer gewünschten Frequenz (auch
> wenn die noch so gemütlich ist) nur noch schlimmer.

korrigier zuerst das design, falls du dann immer noch Timing Fehler 
bekommst, dann nimm die Pin zuweisungen weg und lass den Fitter das Pin 
assignment machen. Ist ein kleines CPLD da hast du nicht unendlich viel 
Freiheitsgrade.

> Schätze die Einstellungen werden erst bei FPGAs wirklich unterstützt.

Timing? Geht natuerlich auch bei CPLDs

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Scheint als hätte ich den Artikel Taktung FPGA/CPLD nicht richtig 
verstanden.

In der Grafik sind doch 3 verschiedene Taktarten aufgeführt und der 
letzte (Clock Enable) wird empfohlen. dffc in meinem Plan entspricht 
doch dem FF2 aus dem Artikel - ich bin davon ausgegangen, dass der 
Ausgang von FF2 der zu verwendende (empfohlene) langsame Takt wäre.
Das scheint nicht der Fall zu sein. Also könnte FF2 ein beliebiges 
Gatter sein, welches auf die gezeigte Art und Weise anzusteuern ist?

Ist die jetzige Variante besser?

Gruß Santi

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Santiago m. H. wrote:
> doch dem FF2 aus dem Artikel - ich bin davon ausgegangen, dass der
> Ausgang von FF2 der zu verwendende (empfohlene) langsame Takt wäre.

Nein, die Idee ist das ja alles mit dem 'schnellen" Takt laeuft.

> Das scheint nicht der Fall zu sein. Also könnte FF2 ein beliebiges
> Gatter sein, welches auf die gezeigte Art und Weise anzusteuern ist?

Genau.

> Ist die jetzige Variante besser?

ja, mindestens solltest du jetzt keine Timing verletzungen mehr haben.

Cheers, Roger

Autor: Santiago m. H. (mausschubser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich denke, dass ich das mit der Taktsteuerung soweit verstanden habe. 
Muss man halt etwas um die Ecke denken, wenn man verschiedene Takte 
braucht.

... und schon hänge ich am nächsten Punkt :P

In der Schaltung ist ja der /Reset-Pin mit 5 Gatter-Eingängen verbunden.
Wenn ich in einer anderen Anwendung einen Pin an 8 Logik-gatter hänge, 
bekomme ich die Warnung:
Warning: Macrocell buffer inserted after node "/xy"

Ist das auch ein Timing-Problem, oder geht es eher um 
Spannungsversorgung?
Wenn ich nach dem NOT ein lCell-Element einfüge, ist die Warnung weg.

Leider verstehe ich die Hilfe zu dem LCELL-Element nicht wirklich.
Was ist das?
 ... und wie wird es getriggert?
Über Pegel, oder Flanke, oder ist es noch wieder was anderes?
... und wann muss ich sowas einsetzen, wann geht es ohne?

Gruß Santi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.