Forum: FPGA, VHDL & Co. FPGA Entwurfsrichlinie


von rhood (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Die im angehängten Bild dargestellte Schaltung ist den 
Entwurfsrichtlinien des ASIC- und FPGA-Herstellers Atmel entnommen.

Nun muss ich folgende Frage beantworten:
Laut Atmel soll die Schaltung beim Entwurf eines ASIC oder FPGA nicht 
verwendet werden. Begründen Sie diese
Vorschrift. Wie steht es um die Funktionssicherheit eines 
Gesamtentwurfs, wenn die Schaltung dennoch verwendet wird?

Das Einzige was mir einfällt ist:
Ausgang Q des ersten FlipFlops geht in den asynchronen Reset des zweiten 
FlipFlops, auch bei einem Reset kann ein metastabilier Zustand eintreten

was kann ich da noch dazuschreiben?

von Selbständiger (Gast)


Lesenswert?

rhood schrieb:
> auch bei einem Reset kann ein metastabilier Zustand eintreten

nein, sondern es wird mit hoher Wahrscheinlichkeit ständig solche 
Effekte geben. Zudem ist es ja kein asynchroner Reset mehr.

von rhood (Gast)


Lesenswert?

Selbständiger schrieb:
> nein, sondern es wird mit hoher Wahrscheinlichkeit ständig solche
> Effekte geben. Zudem ist es ja kein asynchroner Reset mehr.

weshalb mit hoher Wahrscheinlichkeit?

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


Lesenswert?

rhood schrieb:
> Nun muss ich folgende Frage beantworten: ...
Diese Frage kannst du nur dann exakt beantworten, wenn du den genauen 
Aufbau und die zeitlichen Anforderungen des zweiten Flipflops kennst. 
Urigerweise ist nämlich nicht das Eintreten in den Resetzustand 
kritisch (irgendwann hat es jedes Flipflop mitbekommen, dass da ein 
Reset anliegt), sondern das Verlassen des Resetzustandes. Denn wenn da 
1 Flipflop nicht mitbekommt, dass der Reset weg ist, dann laufen z.B. 9 
Flipflops einer FSM schon mal los, und eines komt erst einen Takt 
später...

> Ausgang Q des ersten FlipFlops geht in den asynchronen Reset des zweiten
> FlipFlops
Woher weißt du, dass das ein asynchroner Reset ist?

> auch bei einem Reset kann ein metastabilier Zustand eintreten
Warum?

> Laut Atmel soll die Schaltung beim Entwurf eines ASIC oder FPGA nicht
> verwendet werden. Begründen Sie diese Vorschrift.
Die Begründung würde mich auch interessieren. Da fiele mir bestenfalls 
ein, dass die Resettimings bei dem zweiten Flipflop oder die 
Taktverteilung des FPGAs extrem ungünstig sein könnten, und deshalb 
diese übliche Art eines einsynchronisierten Resets nicht möglich ist. 
Aber wenn man sich den zeitlichen Ablauf beim Verlassen des Resets 
ansieht, dann kann da nichts passieren. Der Eintritt in den Reset ist 
wie gesagt erst mal uninteressant.
Ich kann mir bestenfalls vorstellen, dass das Ganze irgendwie mit einem 
globalen Resetnetz vs. lokalem Reset zu tun haben könnte...
Oder es könnte damit zu tun haben, dass vor das erste Flipflop nochmal 
eines müsste (das nullte quasi), dass auch tatsächlich an diesem ersten 
Flipflop kein metastabiler Zustand den Reset des zweiten Flipflops "so 
halb" ansteuern könnte...
Aber da sind wir schon sehr im Konjunktiv unterwegs und bräuchten mehr 
Informationen zum drumrum...

> Wie steht es um die Funktionssicherheit eines
> Gesamtentwurfs, wenn die Schaltung dennoch verwendet wird?
Sie wurde in zigtausenden VHDL-Büchern so gelehrt und wird weltweit in 
zigmillionen Hardwareaufbauten so verwendet. Interessant wäre allerdings 
die Antwort auf die Frage: was schlägt Atmel denn als Alternative vor?

: Bearbeitet durch Moderator
von Fpgakuechle K. (Gast)


Lesenswert?

Wahrscheinlich überdeckt die STA solche Pfade nicht. Angenommen R ist 
asynchron, dann fasst ein Period constraint dies nicht, der Pfad ist 
also unconstrained und kann irgendwie lang sein. Man muss also für 
diesen Pfad (oder Pfadklasse) ein eigenes constraint definieren (oder 
per Hand routen).

Ferner ist der R-Eingang dann "verbraucht" und kann nicht für seine 
"eigentliche" Aufgabe (wenn er denn eine hat) benutzt werden.

Insgesamt kann man diese Frage nur dann vollständig beantworten, wenn 
Details der Atmel-Technologie genannt werden.

Aus der Aufgabenstellung wird schon mal nicht klar ob FPGA oder ASIC. 
Das ist von Bedeutung wenn es um die Initialisierung nach PowerUp geht. 
Bei FPGAs ist durch die Konfiguration der Intit-Wert eindeutig 
festgelegt, bei ASIC's dagegen muß der Init-Zustand durch das globale 
Reset-Netzwerk und den PowerUp reset gesetzt werden (was in diesem Fall 
die "eigentliche" Aufgabe des R-Inputs ist).


MfG,

von Trundle Trollkönig (Gast)


Lesenswert?

Lothar Miller schrieb:
> Ich kann mir bestenfalls vorstellen, dass das Ganze irgendwie mit einem
> globalen Resetnetz vs. lokalem Reset zu tun haben könnte...

ganz schwache Erinnerung an mein ASCI-Entwurfs-Projekt an der Uni von 
2007/2008 ... bringen irgendwie die Worte Clock und globaler Reset und 
den Satz von Lothar in Verbindung.
Sowas wie globaler Reset darf das einzige asynchrone Signal im Design 
sein und wird speziell vom Synthesetool behandelt wie die Clock... das 
ist mir auch noch in Erinnerung.

von rhood (Gast)


Lesenswert?

Lothar Miller schrieb:
> Aber da sind wir schon sehr im Konjunktiv unterwegs und bräuchten mehr
> Informationen zum drumrum...

Lothar Miller schrieb:
> Interessant wäre allerdings
> die Antwort auf die Frage: was schlägt Atmel denn als Alternative vor?

Problem ist, dass das ein Beispiel von einer Musterklausur ist und ich 
daher nicht weiß von welchem Datenblatt,... der Professor das übernommen 
hat, und kann somit euch keine weiteren Infos liefern.

Ich glaub ich werd den Professor nach den Ferien mal fragen :)

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


Lesenswert?

rhood schrieb:
> Ich glaub ich werd den Professor nach den Ferien mal fragen :)
Lass uns dann bitte die Antwort wissen.

von Fpgakuechle K. (Gast)


Lesenswert?

Ich hab mal 3 Minuten nach "design rules atmel reset FPGA" gegoogelt und 
bin auf dieses gestossen:

http://www.google.de/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=7&cad=rja&ved=0CGAQFjAG&url=http%3A%2F%2Fwww.springer.com%2Fcda%2Fcontent%2Fdocument%2Fcda_downloaddocument%2F9781461403968-c1.pdf%3FSGWID%3D0-0-45-1223841-p174125174&ei=aDkMU7byEav-ygPco4CgCw&usg=AFQjCNHesyN88vQrE_TMs09VDg1szu1l_A&bvm=bv.61725948,d.bGQ

Da wird auch das beispiel des TO diskutiert, als Vermeidungsgrund 
race-condition zwischen clock und async reset angegeben. Unter reference 
ist ein Atmel doc " ASIC design guidelines" genannt, das sich auch 
schnell per google finden lässt:

http://www.dannicula.ro/pasic/docs/doc1205.pdf

Bild 4 ist genau das Prüfungsbeispiel. Druckst deinem Prof aus und in 
die Hand. ;-)

MfG,

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


Lesenswert?

Fpga Kuechle schrieb:
> als Vermeidungsgrund race-condition zwischen clock und async reset
> angegeben.
Das sollte für ein anständig desgintes FPGA heutzutage aber nicht mehr 
gelten...

> ein Atmel doc " ASIC design guidelines"
Für ASICs ist das generell anders, weil da der Designer selber für 
Laufzeiten verantwortlich ist. Aber in einem FPGA muss der Taktbaum und 
das Taktnetz so aufgebaut sein (und nicht nur in Bezug auf den 
D-Eingang, sondern besonders auch in Bezug auf die Set, Reset, Load, 
Clear oder sonstwelche Flipflop-Steuereingänge), dass es nie zu einer 
race-condition kommt. Denn sonst ist ein synchrones Design per se nicht 
möglich...

von Fpgakuechle K. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Fpga Kuechle schrieb:
>> als Vermeidungsgrund race-condition zwischen clock und async reset
>> angegeben.
> Das sollte für ein anständig desgintes FPGA heutzutage aber nicht mehr
> gelten...

Ja. Leider sind nach meiner Erfahrung "Uni-Prüfungsaufgaben" und "Praxis 
heutzutage" zwei verschiedene Dinge.

MfG,

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


Lesenswert?

Fpga Kuechle schrieb:
> Leider sind nach meiner Erfahrung "Uni-Prüfungsaufgaben" und "Praxis
> heutzutage" zwei verschiedene Dinge.
So wie Atmel FPGAs den technischen Stand etwa zur Jahrtausendwende 
wiederspiegeln...

von The Expert (Gast)


Lesenswert?

Lothar Miller schrieb:
> So wie Atmel FPGAs den technischen Stand etwa zur Jahrtausendwende
> wiederspiegeln.
das ist was Wahres dran...

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.