Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Verilog

ASIC-ontwerpstroom

Een typische ontwerpstroom volgt een onderstaande structuur en kan in meerdere stappen worden opgesplitst. Sommige van deze fasen gebeuren parallel en sommige opeenvolgend. We zullen bekijken hoe een typische projectontwerpcyclus er vandaag de dag in de industrie uitziet.

Vereisten

Een klant van een halfgeleiderbedrijf is meestal een ander bedrijf dat van plan is de chip in hun systemen of eindproducten te gebruiken. De eisen van de klant spelen dus ook een belangrijke rol bij het bepalen van het ontwerp van de chip. Natuurlijk zou de eerste stap zijn om de vereisten te verzamelen, de marktwaarde van het eindproduct te schatten en het aantal middelen te evalueren dat nodig is om het project uit te voeren.

Specificaties

De volgende stap zou zijn om "specificaties" te verzamelen die de functionaliteit, interface en algehele architectuur van de te ontwerpen chip abstract beschrijven. Dit kan iets zijn in de trant van:

  1. Vereist rekenkracht om beeldalgoritmen uit te voeren om virtual reality te ondersteunen
  2. Vereist twee ARM A53-processors met coherente verbinding en moet werken op 600 MHz
  3. Vereist USB 3.0, Bluetooth en PCIe 2e generatie interfaces
  4. Moet een weergave van 1920x1080 pixels ondersteunen met de juiste controller

Architectuur

Nu komen de architecten met een systeemniveau van hoe de chip zou moeten werken. Ze zullen beslissen welke alle andere componenten nodig zijn, welke klokfrequenties ze moeten draaien en hoe ze zich richten op de vermogens- en prestatie-eisen. Ze beslissen ook over hoe de gegevens in de chip moeten stromen. Een voorbeeld is de gegevensstroom wanneer een processor beeldgegevens ophaalt van de systeemram en deze uitvoert. In de tussentijd voert de grafische engine naverwerkte gegevens uit van de vorige batch die in een ander deel van het geheugen zijn gedumpt, enzovoort.

Digitaal ontwerp

Vanwege de complexe aard van moderne chips is het niet mogelijk om iets helemaal opnieuw te bouwen en in veel gevallen zullen veel componenten worden hergebruikt. Stel dat bedrijf X een FlexCAN-module nodig heeft om te communiceren met andere modules in een auto. Ze kunnen het FlexCAN-ontwerp van een ander bedrijf kopen om tijd en moeite te besparen of middelen besteden om er zelf een te bouwen. Het is ook niet praktisch om zo'n systeem te ontwerpen vanuit basisbouwstenen zoals flip-flops en CMOS-transistors. In plaats daarvan wordt een gedragsbeschrijving ontwikkeld om het ontwerp te analyseren in termen van functionaliteit, prestaties en andere problemen op hoog niveau met behulp van een hardwarebeschrijvingstaal zoals Verilog of VHDL. Dit wordt meestal gedaan door een digitale ontwerper en lijkt een beetje op een computerprogrammeur op hoog niveau die is uitgerust met vaardigheden op het gebied van digitale elektronica.

Verificatie

Als het RTL-ontwerp klaar is, moet het worden geverifieerd op functionele correctheid. Van een DSP-processor wordt bijvoorbeeld verwacht dat hij bustransacties uitvoert om instructies uit het geheugen op te halen, maar hoe weten we dat dit zal gebeuren zoals verwacht? Op dit punt is dus functionele verificatie vereist, wat wordt gedaan met behulp van EDA-simulators die het ontwerp kunnen modelleren en er verschillende prikkels op kunnen toepassen. Dit is de taak van een pre-siliciumverificatie-engineer.

Om tijd te besparen en functionele afsluiting te bereiken, werken zowel het ontwerp- als het verificatieteam parallel, waarbij de ontwerpers een RTL-versie "uitbrengen", en het verificatieteam een ​​testbench-omgeving en testcases ontwikkelt om de functionaliteit van die RTL-versie te testen. Als een van deze tests mislukt, kan dit duiden op een probleem met het ontwerp en wordt er een "bug" op dat ontwerpelement gemeld. Deze bug zal in de volgende versie van RTL-release van het ontwerpteam verholpen moeten worden. Dit proces gaat door totdat er een goed niveau van vertrouwen is in de functionele juistheid van het ontwerp.

Logische synthese

Nu we tevreden zijn met het ontwerp, is het tijd om dit om te zetten in een hardwareschema met echte elementen zoals combinatorische poorten en flip-flops. Deze stap wordt synthese genoemd. Hulpprogramma's voor logische synthese maken de conversie van RTL-beschrijving in HDL naar een netlijst op poortniveau mogelijk. Deze netlijst is niets anders dan een beschrijving van het circuit in termen van poorten en verbindingen daartussen. Het kan er ongeveer zo uitzien:

  
  
and_2_0     u_and2_0 ( .in_a (_net_112),
                       .in_b (_net_56),
                       .out  (_net_222));

ff_lt       u_ff_lt_122 (.d   (_net_222),
                         .clk (_net_11),
                         .q   (_net_76));

  

Hulpmiddelen voor logische synthese zorgen ervoor dat de netlijst voldoet aan de specificaties voor timing, oppervlakte en vermogen. Meestal hebben ze toegang tot verschillende technologieknooppuntprocessen en bibliotheken met digitale elementen en kunnen ze intelligente berekeningen maken om aan al deze verschillende criteria te voldoen. Deze bibliotheken worden verkregen uit halfgeleiderfabrieken die gegevenskenmerken leveren voor verschillende componenten, zoals stijg-/daaltijden voor flip-flops, invoer-uitvoertijd voor combinatiepoorten, enz.

Logische equivalentie

De netlijst op gate-niveau wordt vervolgens gecontroleerd op logische equivalentie met de RTL en soms wordt er een "gate-level-verificatie" uitgevoerd waarbij de verificatie van bepaalde elementen opnieuw wordt gedaan, met dit verschil dat het deze keer op gate-niveau is en op een lager niveau van abstractie. Simulatietijden zijn meestal langzamer vanwege het enorme aantal elementen dat in dit stadium bij het ontwerp betrokken is, samen met vertragingsinformatie aan de achterkant.

Plaatsing en routering

De netlijst wordt vervolgens ingevoerd in de fysieke ontwerpstroom, waar met behulp van EDA-tools automatisch plaats en route (APR of PnR) wordt gedaan. Een goed voorbeeld van dergelijke tools is Cadence Encounter en Synopsys IC Compiler. Dit selecteert en plaatst standaardcellen in rijen, definieert balkaarten voor invoer en uitvoer, creëert verschillende metaallagen en plaatst buffers om aan de timing te voldoen. Zodra dit proces is voltooid, wordt een lay-out gegenereerd en meestal verzonden voor fabricage. Deze fase wordt meestal afgehandeld door het fysieke ontwerpteam dat goed thuis is in het technologieknooppunt en de details van de fysieke implementatie.

Validatie

Het eindigt hier niet. Een voorbeeldchip wordt vervaardigd door hetzelfde halfgeleiderbedrijf of verzonden naar een externe gieterij zoals TSMC of Global Foundries. Dit monster doorloopt nu een post-siliciumvalidatieproces waarbij een ander team van ingenieurs verschillende patronen op een tester uitvoert. Het is veel moeilijker om fouten op te sporen in post-siliciumvalidatie dan pre-siliciumverificatie, simpelweg omdat het niveau van zichtbaarheid in de interne knooppunten van een chip drastisch wordt verminderd. Bovendien zouden een miljoen klokcycli in een seconde zijn voltooid en het terugleiden naar het exacte tijdstip van de fout zal tijdrovend zijn. Als er in dit stadium echte problemen of ontwerpfouten worden gevonden, moet dit in RTL worden opgelost, opnieuw worden geverifieerd en moeten alle volgende stappen worden uitgevoerd.

Hoewel er meerdere stappen in de ontwerpstroom zijn, is veel van de ontwerpactiviteit meestal geconcentreerd op de optimalisatie en verificatie van de RTL-beschrijving van het circuit. Het is belangrijk op te merken dat hoewel EDA-tools beschikbaar zijn om de processen te automatiseren, oneigenlijk gebruik zal leiden tot inefficiënte ontwerpen en daarom moet een ontwerper bewuste keuzes maken tijdens het ontwerpproces.


Verilog

  1. Verilog-zelfstudie
  2. Ontwerp abstractielagen
  3. Top vier aspecten van een goed ontwerp van een bedieningspaneel
  4. Ontwerpbasis van besturingsbehuizingen in machines, automatisering en industrie
  5. Basisprincipes van het ontwerp van het bedieningspaneel
  6. Korte antwoorden op grote vragen over PCB-ontwerp
  7. Methoden om het anti-interferentievermogen in PCB-ontwerp te versterken
  8. Hoe interferentie in PCB-ontwerp te verslaan
  9. Drie ontwerpoverwegingen die EMC van laptop-PCB's garanderen
  10. Wat is architectuurontwerp?
  11. Vraag Atlas Copco:wanneer moet ik een stroomprofiel ontwikkelen?