Uitgebreide ASIC Ontwerpstroom: Van Vereisten tot Productie
Een typische ontwerpstroom volgt een structuur zoals hieronder getoond en kan worden opgebroken in meerdere stappen. Sommige van deze faseren gebeuren parallel en sommige sequentieel. We zullen kijken hoe een typische projectontwerpcyclus eruitziet in de industrie vandaag.
Vereisten
Een klant van een halfgeleiderbedrijf is typisch een ander bedrijf dat van plan is de chip in hun systemen of eindproducten te gebruiken. Dus, de vereisten van de klant spelen ook een belangrijke rol in het beslissen hoe de chip moet worden ontworpen. Natuurlijk zou de eerste stap zijn om de vereisten te verzamelen, de marktwaarde van het eindproduct te schatten, en het aantal benodigde resources voor het project te evalueren.
Specificaties
De volgende stap zou zijn om "specificaties" te verzamelen die abstract de functionaliteit, interface en algemene architectuur van de te ontwerpen chip beschrijven. Dit kan iets zijn in de lijnen van:
- Vereist computationele kracht om imaging-algoritmen te draaien ter ondersteuning van virtuele realiteit
- Vereist twee ARM A53 processors met coherente interconnect en moet draaien op 600 MHz
- Vereist USB 3.0, Bluetooth en PCIe 2de generatie interfaces
- Moet 1920x1080 pixel display ondersteunen met geschikte controller
Architectuur
Nu komen de architecten met een systeemniveau-visie van hoe de chip moet opereren. Ze zullen beslissen welke andere componenten vereist zijn, welke klokfrequenties ze moeten draaien, en hoe de stroom- en prestatievereisten te bereiken. Ze beslissen ook over hoe de data door de chip moet stromen. Een voorbeeld zou de dataflow zijn wanneer een processor imagingdata ophaalt uit de systeem-RAM en ze uitvoert. Ondertussen zal de graphics engine post-verwerkte data van de vorige batch die in een ander deel van het geheugen is gedumpt, uitvoeren, enz.
Digitaal Ontwerp
Vanwege de complexe aard van moderne chips, is het niet mogelijk om iets vanaf nul te bouwen, en in veel gevallen zullen veel componenten hergebruikt worden. Stel bedrijf X vereist een FlexCAN-module om te interacteren met andere modules in een automobile. Ze kunnen het FlexCAN-ontwerp van een ander bedrijf kopen om tijd en moeite te besparen of resources besteden om er zelf één te bouwen. Ook is het niet praktisch om zo'n systeem te ontwerpen vanaf 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 high-level kwesties met behulp van een Hardware Description Language zoals Verilog of VHDL. Dit wordt meestal gedaan door een digitale ontwerper en is een beetje vergelijkbaar met een high-level computerprogrammeur uitgerust met vaardigheden in digitale electronica.
Verificatie
Zodra het RTL-ontwerp klaar is, moet het geverifieerd worden op functionele correctheid. Bijvoorbeeld, een DSP-processor wordt verwacht bus-transacties te initiëren om instructies uit het geheugen op te halen, maar hoe weten we dat dit zal gebeuren zoals verwacht? Dus, functionele verificatie is op dit moment vereist, wat gedaan wordt met de hulp van EDA-simulators die de capaciteit hebben om het ontwerp te modelleren en verschillende stimuli toe te passen. Dit is het werk van een pre-silicon verificatie-ingenieur.
Om tijd te besparen en functionele afsluiting te bereiken, opereren zowel het ontwerp- als het verificatie-team parallel waar de ontwerpers een "release" van een RTL-versie doen, en het verificatie-team ontwikkelt een testbench-omgeving en testcases om de functionaliteit van die RTL-versie te testen. Als een van deze tests faalt, kan dit wijzen op een probleem met het ontwerp en een "bug" zal op dat ontwerpelement gehaald worden. Deze bug moet worden opgelost in de volgende versie van de RTL-release van het ontwerptteam. Dit proces gaat door tot er een goed niveau van vertrouwen is in de functionele correctheid van het ontwerp.
Logische Synthese
Nu we tevreden zijn met het ontwerp, is het tijd om dit om te zetten in een hardware-schema met echte elementen zoals combinatorische poorten en flip-flops. Deze stap heet synthese. Logische synthese-tools maken de conversie van RTL-beschrijving in HDL naar een gate-level netlist mogelijk. Deze netlist is niets anders dan een beschrijving van het circuit in termen van poorten en verbindingen tussen hen. 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));
Logische synthese-tools waarborgen dat de netlist voldoet aan timing, oppervlakte en stroomspecificaties. Typisch hebben ze toegang tot verschillende technologieknopen en bibliotheken van digitale elementen en kunnen intelligente berekeningen maken om aan al deze verschillende criteria te voldoen. Deze bibliotheken worden verkregen van halfgeleiderfabs die data-eigenschappen voor verschillende componenten leveren zoals rise/fall tijden voor flip-flops, input-output tijd voor combinatorische poorten, etc.
Logische Equivalentie
De gate-level netlist wordt dan gecontroleerd op logische equivalentie met de RTL, en soms wordt een "gate-level verificatie" uitgevoerd waar verificatie van bepaalde elementen opnieuw wordt gedaan, het verschil zijnde dat dit op gate-level is en op een lager abstractieniveau. Simulatietijden neigen ertoe langzamer te zijn vanwege het enorme aantal elementen betrokken bij het ontwerp in deze fase samen met back-geannoteerde vertragingsinformatie.
Plaatsing en Routing
De netlist wordt dan ingevoerd in de fysieke ontwerpstroom, waar automatische plaatsing en routing (APR of PnR) wordt gedaan met de hulp van EDA-tools. Een goed voorbeeld van dergelijke tools is Cadence Encounter en Synopsys IC Compiler. Dit zal standaardcellen in rijen selecteren en plaatsen, balkaarten voor input-output definiëren, verschillende metallagen creëren, en buffers plaatsen om timing te halen. Eenmaal dit proces gedaan is, wordt een layout gegenereerd en meestal naar fabricage gestuurd. Deze fase wordt meestal afgehandeld door het fysieke ontwerptteam die goed op de hoogte is van de technologieknoop en fysieke implementatiedetails.
Validatie
Het eindigt hier niet. Een sample-chip zal geproduceerd worden ofwel door hetzelfde halfgeleiderbedrijf ofwel gestuurd naar een third-party foundry zoals TSMC of Global Foundries. Deze sample gaat nu door een post-silicon validatieproces waar een ander team ingenieurs verschillende patronen op een tester draait. Het is veel moeilijker om te debuggen in post-silicon validatie dan pre-silicon verificatie simpelweg omdat het zichtbaarheidsniveau in de interne knopen van een chip drastisch verminderd is. Bovendien zouden een miljoen klokcycli in een seconde zijn voltooid en terugtraceren naar het exacte moment van de fout zal tijdrovend zijn. Als er echte problemen of ontwerpfouten in deze fase worden gevonden, dan moet dit in RTL worden opgelost, reverifiëerd, en alle stappen die dit volgen, moeten opnieuw worden uitgevoerd.
Hoewel er meerdere stappen in de ontwerpstroom zijn, is een groot deel van de ontwerpactiviteit meestal geconcentreerd op de optimalisatie en verificatie van de RTL-beschrijving van het circuit. Het is belangrijk om te noteren dat hoewel EDA-tools beschikbaar zijn om de processen te automatiseren, onjuist gebruik zal leiden tot inefficiënte ontwerpen en dus moet een ontwerper bewuste keuzes maken tijdens het ontwerpproces.
Verilog
- 4 sleutelfactoren voor effectief control paneel ontwerp
- Essentiële Ontwerprincipes voor Control Behuizingen in Industriële Automatisering
- Beheersing van Elektrisch Controlepaneel-ontwerp: Sleutelprincipes & Best Practices
- Snelle expertantwoorden op essentiële PCB-ontwerpvragen
- PCB-ontwerp Verbeteren: Bewezen Strategieën om Anti-interferentie Prestaties te Verhogen
- PCB-storingbestrijding beheersen: Een professionele gids voor EMC-naleving
- Drie sleutelontwerpstrategieën voor optimale EMC in laptop PCB's
- Architectuuropwerp Begrijpen: Principes, Praktijken en Impact
- Wanneer een stroomprofiel aanmaken? Atlas Copco expert advies
- Verilog beheersen: Complete tutorial voor digitale schakelingontwerp
- Ontwerpabstractielagen: Duidelijke gids voor chip-architectuur