Forum: FPGA, VHDL & Co. FPGA zu ASIC - wie funktioniert das?


von Bronco (Gast)


Lesenswert?

Hallo Freunde,

ich hab mal eine eher theoretische Frage:
Ist in einem fertigen ASIC der VHDL-Code eigentlich festverdrahtet, oder 
gibt es dort auch wie beim FPGA einen variablen Logikteil, der aus einem 
Flash o.ä. geladen wird?

Ich hab nämlich schon mehrfach gesehen, daß bei der Entwicklung eines 
ASICs zuvor ein Prototyp aus diskreter Hardware und FPGA aufgebaut wird.
Nun wird hier im Forum ja regelmäßig diskutiert, daß es zwischen FPGA 
und ASIC einige wesentliche Unterschíede gibt, insbesondere der Umgang 
mit Clocks.
Jetzt frag ich mich:
Wie kann es denn funktionieren, daß man auf einem FPGA einen VHDL-Code 
entwickelt, der dann im ASIC in Hardware gegossen werden soll, wenn es 
solch wichtige Unterschiede gibt?
Man müßte doch eigentlich den VHDL-Code auf dem ASIC selbst (mit all 
seinen Eigenheiten) entwickeln.

von SuperWilly (Gast)


Lesenswert?

Such mal nach "HardCopy ASIC" von Altera.

VG, SuperWilly

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


Lesenswert?

Bronco schrieb:
> Wie kann es denn funktionieren, daß man auf einem FPGA einen VHDL-Code
> entwickelt, der dann im ASIC in Hardware gegossen werden soll, wenn es
> solch wichtige Unterschiede gibt?
Es ist einfacher, ein synchrones FPGA-Design auf ein ASIC abzubilden, 
als ein asynchrones ASIC-Design auf ein FPGA. Das ist der 
Hauptunterschied. Super ASIC-Entwickler können nicht auch automatisch 
mit FPGAs umgehen, und ein tolles FPGA-Design ist nicht automatisch gut 
auf ein FPGA übertragbar.

Hier spielen zuallererst die angesprochenen Taktübergänge oder lokale 
Takte eine Rolle, dann aber auch der Reset: in einem FPGA gibt es schon 
einen "Reset-Controller", auf einem ASIC muss ich den erst mal 
implementieren.

SuperWilly schrieb:
> Such mal nach "HardCopy ASIC" von Altera.
Dabei kommt dann kein "richtiges" ASIC raus, sondern "nur" ein hart 
verdrahtetes FPGA, das aber den ganzen "All-Inclusive-Komfort" (Reset, 
Takt, PLL, Multiplier, usw.) eines FPGAs hat...

von G.A. (Gast)


Lesenswert?

bei der asicentwicklung, wird nen fpga nur zur verifikation der 
logischen funktionen genutzt wenn es um interaktion mit anderen geräten 
geht die man nicht so gut modellieren kann. da nutzt man dann ewigkeiten 
lange testvektoren mit etlichen eingangsvektoren um sicher zustellen das 
bei deinen gesamtsystem nicht irgendwelche zustände eintreten die nicht 
mit "einberechnet" wurden. der ganze rest bei der asic entwicklung bzw 
des digitalteil eines asic da braucht man keinen fpga. für timing-, 
verbrauchsanalyse, emv etc da musste mit teuren simulationstools (ich 
glaub die waren fast alle von cadance...irgendwie virtuoso xl oder so) 
arbeiten.
die simulieren dir dann deine netzliste die aus deinem layout erstellt 
wurde durch (sogar mit parasitären effekten die selbstständig aus dem 
layout berechnet wurden)... also is ne analoge simulation einer 
digitalen schaltung. dauert auch und braucht viel rechenpower.
naja und die rein logische funktion vom asic wird eh erstmal ausgiebig 
mit simulation verifiziert.

von Bronco (Gast)


Lesenswert?

Lothar Miller schrieb:
> und ein tolles FPGA-Design ist nicht automatisch gut
> auf ein FPGA übertragbar.

Stimmt, das erlebe ich jeden Tag ;)

von DIETER (Gast)


Lesenswert?

NOCH EINER DIESER kleinschreiber :-(((

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


Lesenswert?

Bronco schrieb:
>> und ein tolles FPGA-Design ist nicht automatisch gut
>> auf ein FPGA übertragbar.
> Stimmt, das erlebe ich jeden Tag ;)
Hmmm...
Stimmt zwar, war aber nicht echt nicht so gemeint. Man darf eher ein 
beliebiges "FPGA" in diesem Satz durch "ASIC" ersetzen... ;-)

von ex-Asicer (Gast)


Lesenswert?

G.A. schrieb:
> bei der asicentwicklung, wird nen fpga nur zur verifikation der
>
> logischen funktionen genutzt wenn es um interaktion mit anderen geräten
>
> geht die man nicht so gut modellieren kann.

nicht ganz, man kann auch die Timing-Simulation sowie die asynchronen 
Vorgänge in Form einer compilierten Simulation sehr gut untersuchen. Die 
Sim läuft dann zwar nicht in Echtzeit, das tut die FPGA-Platform 
meistens aber ohnehin nicht.

von G.A. (Gast)


Lesenswert?

ich hab auch nicht behauptet, das man nen asic vom asynchronen bishin 
zum kompletten analogen verhalten nicht gut durchsimulieren kann...ich 
schrieb doch auch am ende, das man dafür gerade keinen fpga braucht 
sondern gute rechner und simulationstools.
nein es ging darum, das es zum teil schwer sein kann eine reale 
gegenschnittstelle mit möglichst hoher testabdeckung zu modellieren. 
wenn man das gegenstück als reale hardware aber zur hand hat, ist es 
manchmal sinnvoller die logischen funktionen (also den reinen 
digitalteil) auf nen fpga zu packen und sich das zusammenspiel der 
beiden über nen längeren zeitpunkt anzugucken, als zu versuchen 
möglichst präzise und komplett das gegenstück zu modellieren. beispiel 
du hast nen großen bus zu nem anderen chip über den dynamische 
daten,steuersignale, w/e kommen die ebenfalls dynamische prozess in der 
asiclogik steuern... nun kann man sich sicher gedanken über mögliche 
testvektoren für die eingänge machen, aber der aufwand steigt 
exponentiell mit der dynamik der asiclogik. da ist es manchmal einfacher 
die reale hardware als testvektor-erzeuger zu benutzen und an nen fpga 
anzuschliessen.
man beachte es geht hier gerade nur um äußere " einflüße" auf nen asic. 
man kann aber ebenso durch nen fpga das spiel auch in die andere 
richtung betrachten.

von FPGA-Programmierer (Gast)


Lesenswert?

SuperWilly schrieb:
> Such mal nach "HardCopy ASIC" von Altera.

Das ist aber eine andere Schiene, als klassische ASIC-Entwicklung.

von Chris (Gast)


Lesenswert?


von user (Gast)


Lesenswert?

on-semi hat auch ein fpga->asic Verfahren im angebot

http://www.onsemi.com/PowerSolutions/content.do?id=16621

von ugur (Gast)


Lesenswert?

in prinzip ist es gleich man muss nur mehr simulieren und verfizieren 
damit man sicher ist das auch wirklich keine fehler drinnen sind!

von bko (Gast)


Lesenswert?

>in prinzip ist es gleich man muss nur mehr simulieren und verfizieren
>damit man sicher ist das auch wirklich keine fehler drinnen sind!

Naja, um den Produktionstest muss man sich auch selbst kümmern;
Scan-ketten und generierte Testpattern und auch Analogtest
machen ein wenig Arbeit...

Hier ein  asic-flow in Stichpunkten..
http://asic-interview.blogspot.de/2010/01/asic-flow.html

und die englische Wikipeida hat diese Artikel dazu:
http://en.wikipedia.org/wiki/Physical_design_(electronics)
http://en.wikipedia.org/wiki/Design_for_testing
http://en.wikipedia.org/wiki/ATPG

von Josef G. (bome) Benutzerseite


Lesenswert?

Als ASIC-Laie und FPGA-Halbgebildeter habe ich mir dies überlegt
(vielleicht wurde es hier mit anderen Worten bereits gesagt):

Nicht alle Flipflops/Latches müssen einen definierten Startwert
haben, weil sie ohnehin vor dem ersten Lesen mindestens einmal
beschrieben werden. Bei einem ASIC wird man in diesem Fall den
Reset einsparen wollen. Die Startwerte sind dann zufällig.
Man muss durch Simulation sicherstellen, dass alle FFs/Latches
ohne Reset tatsächlich vor dem ersten Lesen beschrieben werden.

Beim FPGA dagegen haben alle Flipflops definierte Startwerte,
auch wenn man sie nicht explizit initialisiert. Wenn man ein
Flipflop übersieht, welches man hätte initialisieren müssen,
kann es sein, dass die Konfiguration trotzdem zuverlässig
funktioniert, weil der implizite Initialwert passt.

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.