Cadence-Tutorial

From Nanoelektronikk

Jump to: navigation, search

Denne siden gir en innføring i bruk av Cadence IC med STMs 90nm design kit. Hele prosessen fra oppstart til simulering på utlegg vil bli presentert.

Contents

Oppstart

Følg lenken for oppsett og oppstart av Cadence med STMs 90nm design kit: STM 90nm

Skjema

Oppretting av bibliotek

Det første man må gjøre er å lage et eget bibliotek.

  • I icfb, velg Tools->Library Manager
  • Vinduet Library Manager åpnes: Velg File->New->Library
  • Vinduet New Library åpnes: Skriv inn et passende navn på det nye biblioteket og trykk OK
    • I denne guiden heter biblioteket mittbibl
  • Vinduet Technology File for New Library åpnes: Velg Attach to an existing techfile og trykk OK
  • Vinduet Attach Design Library to Technology File åpnes: Velg tsmcN90rf fra Technology Library-menyen og trykk OK
    • Biblioteket mittbibl er nå opprettet.

Oppretting av skjema

  • I Library Manager velg først mittbibl og deretter File->New->Cell View
  • Vinduet Create New File åpnes: Skriv inn et passende navn
    • I denne guiden heter cellen inverter
  • Velg Composer-Schematic fra Tool-menyen og trykk OK
    • Vinduet Virtuosos Schematic Editing åpnes

Tegning av skjema

  • For å hente inn nye komponenter, velg Add->Instance eller trykk i
  • Vinduet Add Instance åpnes: Trykk Browse for å finne tilgjengelige komponenter
  • Vinduet Library Browser åpnes. Det vil først og fremst være komponenter fra bibliotekene tsmcN90rf og analogLib som benyttes. tsmcN90rf inneholder komponenter spesifikt for design kitet, som transistorer, motstander, dioder og kondensatorer, mens analogLib er et generelt bibliotek som er uavhengig av design kit. I tillegg er det en del biblioteker som begynner med CLOCK, COR og IO90, disse inneholder standardceller som logiske porter, registre, tellere, padder osv. I første omgang kan man konsentrere seg om de to førstnevnte bibliotekene.
  • Velg tsmcN90rf-nch_mac-symbol og plasser komponenten i skjematikk-vinduet.
  • Gjenta dette med følgende komponenter og plasser de som vist i figuren under:
    • tsmcN90rf-pch_mac-symbol
    • analogLib-vdd-symbol
    • analogLib-gnd-symbol
      • nch_mac og pch_mac er henholdsvis nmos-transistor og pmos-transistor med standard terskelspenning
  • Velg Add->wire (narrow) eller trykk w for å strekke ledninger mellom komponentene
  • Velg Add->pin eller trykk p for å lage pinner
  • Vinduet Add Pin åpnes: Skriv inn Vin og Vout i feltet Pin Names og velg henholdsvis Input og Output under Direction-menyen før pinnen plasseres i designet.
  • Velg Design->Check and Save eller trykk X

Image:Inv-skjema.gif

Utlegg

  • I Library Manager velg først mittbibl og velg så File->New->Cell view
  • Vinduet Create New File åpnes: Skriv inn riktig navn, i dette tilfellet inverter, velg Virtuoso fra Tool-menyen og trykk OK
  • To nye vinduet åpnes
    • Vinduet LSW viser alle tilgjengelige lag eller materialer som man kan bruke til å tegne strukturer med
    • Vinduet Virtuosos Layout Editing tegnes selve utlegget.
  • I utleggsvinduet, trykk i. Legg til cmos090-nsvt-layout og cmos090-psvt-layout.
    • Trykk shift-f for å se alle lagene.
  • Plasser komponentene og tegn opp koblinger som vist under
  • Legge til kontakt til power og jordplan
    • Velg Create->Contact eller trykk o
    • Vinduet Create Contact åpnes: I Contact Type-menyen, velg M1_sub for nmos-transistorer og M1_NW for pmos-transistorer.
    • Plasser som i figuren under
  • Legg til pinner
    • Velg Create->Pin eller trykk Ctrl-p
    • Vinduet Create Symbolic Pin åpnes: Skriv inn Vin, Vout, vdd og gnd og feltet Terminal Names
    • Velg sym pin under Mode
    • Hak av for Display Pin Name og trykk på Display Pin Name Options
    • Vinduet Pin Name Display åpnes: Hak av for Pin Layer under Layer og trykk OK
    • Velg riktig type pinne under I/O Type: vdd og gnd er inputOutput.
    • Plasser pinnene på korrekt nett. Navnet på pinnen plasseres på selve pinnen og være av samme lag som pinnen selv. Dette skal være iorden hvis oppskriften følges
  • Noen tips:
    • Velg først riktig lag i 'LSW-vinduet
      • PO-drawing velges for å tegne polysilisium
      • M1-drawing, M2-drawing osv. velges for å tegne metalllag 1,2 osv.
      • NW-drawing velg for å tegne NWELL
      • NP-drawing velges for å tegne N-dopet substrat
      • PP-drawing velges for å tegne P-dopet substrat
    • Trykk r for å tegne et rektangel
    • Trykk p for å tegne en path
    • Trykk m for å flytte
    • Trykk c for å kopiere
    • Trykk q for å endre
  • Her må man bare prøve seg litt frem. Etterhvert lærer man seg flere funksjoner og selve utleggsfasen vil gå kjappere.
  • Underveis er det også mulig å teste om designregler er opprettholdt. Gå til DRC

Image:layout-tegne.gif

Simulering

Når man vil simulere på designet sitt, er det fornuftig å lage seg en egen testbenk å simulere på.

  • I Skjematikk-vinduet, velg Design->Create Cellview->From Cellview
  • Vinduet Cellview from Cellview åpnes: Trykk OK
  • Vinduet Symbol Generation Options åpnes: Velg plassering for pinnene i designet. I dette tilfellet er Vin på venstre side, mens Vout er på høyre side. Trykk OK
  • Symbolet genereres og vinduet Virtuoso Symbol Editing åpnes: Her kan man endre utseende til symbolet hvis ønskelig
  • Velg Design->Check and Save og lukk vinduet
  • I Library Manager, velg File->New->Cell View.
  • Vinduet Create New File åpnes: Skriv inn navnet inverter_sim i Cell Name og velg Composer-Schematic fra Tool-menyen og trykk OK
  • Vinduet Virtuoso Schematic Editing åpnes: Trykk i og importer mittbibl-inverter-symbol

Transient simulering

  • I denne guiden skal det utføres en enkel transientanalyse, hvor inngangen Vin svitsjes fra logisk 0 til logisk 1 og utgangen Vout observeres og plottes. I dette design kitet er forsyningsspenningen (vdd) 1V.
  • Først må de nødvendige kildene legges til designet.
  • Trykk i og legg til analogLib-vdc-symbol og analogLib-vpulse-symbol som vist i figuren under

Image:Sim-skjema.gif

  • Velg vdc-symbolet og velg Edit->Properties->Objects eller trykk q
  • Vinduet Edit Object Properties åpnes: Skriv inn 1 i feltet DC voltage og trykk OK
  • Velg vpulse og trykk q
  • Fyll ut som vist i figuren under og trykk OK

Image:Sim-objects.gif

  • I Skjematikk-vinduet, velg Tools->Analog Environment
    • Vinduet Virtuosos Analog Design Environment åpnes
  • Velg Analysis->Choose
  • Vinduet Choosing Analysis åpnes: Velg tran under Analysis, skriv inn 1u i feltet Stop Time og trykk OK
  • Velg Outputs->To Be Plotted->Select on Schematic og trykk på de nodene eller nettene i skjematikken som ønskes å plottes, i dette tilfellet Vin og Vout.
  • Velg Variables->Copy from Cellview. Variablene pulse og width blir lagt til i simuleringsvinduet.
  • Velg Variables->Edit.
  • Vinduet Editing Design Variables åpnes: Skriv inn 200n og 400n for henholdsvis width og period og trykk Change for å endre verdiene. Trykk OK.

Image:Sim-vindu.gif

  • Velg Simulation->Run eller trykk på trafikklyssymbolet med grønt lys
    • Simuleringen starter og plotter valgte grafer etter endt simulering
  • Husk å lagre før du kjører simuleringen
  • Etter å ha simulert ferdig, kan det lønne seg å lagre innstillingen til en senere anledning: Velg Session->Save State, skriv inn et passende navn i Save as-feltet og trykk OK

DC simulering

  • For å kjøre en DC simulering er stegene veldig like som for transient analyse.
  • Man kan enten bruke komponenten "vpulse" slik som vist over eller bytte denne ut med "vdc" fra samme bibliotek som kilde.
  • Merk kilden og trykk "q"
  • Vinduet Edit Object Properties åpnes: Skriv inn VIN i feltet DC voltage og trykk OK. "VIN" er et variabelnavn som man kan velge selv.
  • I vinduet "Analog Enviroment" velger du "Variables->Copy From Cellview",
  • velg Analyses->Choose og du får opp vinduet "Choosing Analyses". Der velger du "Analyses" til "dc" og velger "Sweep Variable" til "Design Variable" og velger "Vin".
  • For "Sweep Range" setter du "Start" og "Stopp" og f.eks. antall step.

Image:ChooseAnalysis1.png

  • Tilbake i vinduet "Analog Environmnet" bruker du knappen med "x y z" og gir "Vin" en tilfeldig verdi.
  • Til slutt velger du hvilke signaler med som skal plottes med "Outputs->To Be Plotted->Select On Schematic". Disse blir nå plottet mot "Vin". Hvis du velger en ledning, får du spenningen. Hvis du velger en terminal på en komponent, får du strømmen.
  • Med "Tools->Result Browser.." kan du velge ut spenninger og strømmer som du kan plotte og lage tabell av for å lagre og hente inn i Matlab.

Simulering på utlegg

Fremgangsmåte finnes her: Post Layout Simulation

Verifisering

Design Rule Checker

DRC kjøres for å sjekke at alle designparametre er overholt

  • I layout-vinduet, velg Calibre-Run DRC
  • To vinduer åpnes, Custumization Settings og Calibre Interactive - DRC
  • I Custumization Settings trykk OK
  • I Calibre Interactive - DRC, trykk Run DMC [sic]
  • DRC kjøres og man vil ved endt kjøring få opp en rapport over eventuelle feilmeldinger.
  • Her må man igjen bare prøve seg litt frem og prøve å tyde de forskjellige feilmeldningene som oppstår. Noen er selvforklarende, mens andre er mer kryptiske.

Layout versus Schematic

Når DRC kjører uten feil, kan man kjøre en LVS. Som navnet tilsier, vil skjema blir sammenliknet med utlegg og eventuelle misforhold bli rapportert.

  • I layout-vinduet, velg Calibre->Run LVS
  • To vinduer åpnes, Custumization Settings og Calibre Interactive - LVS
  • I Custumization Settings trykk OK
  • I Calibre Interactive - LVS, trykk Run LVS
  • DRC kjøres og man vil ved endt kjøring få opp en rapport over eventuelle feilmeldinger.
  • Her må man igjen bare prøve seg litt frem og prøve å tyde de forskjellige feilmeldningene som oppstår. Noen er selvforklarende, mens andre er mer kryptiske.
Personal tools