Difference between revisions of "CDS LAB1"

From ATI public wiki
Jump to: navigation, search
(Cadence digital schematic & simulation)
 
((by SublimeText.Mediawiker))
 
(66 intermediate revisions by one other user not shown)
Line 1: Line 1:
Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid
+
[[CDS_LAB1/en|English page]] [[File:United Kingdom.png | 32px | link=CDS_LAB1/en]]
  
  
: kõigepealt sätime paika oma töökeskkonna
+
<big>Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid</big>
:* selleks loome uue alamkataloogi '''lab1'''
+
 
 +
__TOC__
 +
==Sätime paika oma töökeskkonna==
 +
''kõik selles ja järgmises lõigus olevad tegevused toimuvad käsurealt''
 +
 
 +
:* loome uue alamkataloogi '''lab1'''
 
:* liigume sinna alamkataloogi
 
:* liigume sinna alamkataloogi
 
:* kasutades käsku ''''''cad'''''' ja sealt valikuga ''''1'''' väärtustame kõik vajalikud keskkonnamuutujad '''Cadence''' jaoks
 
:* kasutades käsku ''''''cad'''''' ja sealt valikuga ''''1'''' väärtustame kõik vajalikud keskkonnamuutujad '''Cadence''' jaoks
 
:* seejärel vahetame ümber tekstiredaktori vaikeväärtuse, valides uueks tekstiredaktoriks '''SciTE''', vaikimisi on tekstiredaktoriks '''vi'''
 
:* seejärel vahetame ümber tekstiredaktori vaikeväärtuse, valides uueks tekstiredaktoriks '''SciTE''', vaikimisi on tekstiredaktoriks '''vi'''
  
 +
::[[File:Cds lab1 1.png|Töökeskkonna paika sättimine]]
 +
 +
==Käivitame Cadence==
 +
: [[C_16_EDA|Cadence 2016 EDA ver.]] juhist jälgides
 +
:* kui on tegemist esmakordse käivitamisega siis kasutame käsurida
 +
:: <pre>ams_cds -64 -tech c18a6 -add CORELIB -add IOLIB_6AM -add GATES_ANA</pre>
 +
:: siin me valisime tehnoloogiaks AMS 0.18μm tehnoloogia 6 metallikihiga ja lisasime elementbaaside kataloogide nimistusse kolm täiendavat kataloogi
 +
:* kui on tegemist järgmiste käivitamiskordadega siis kasutame käsurida
 +
:: <pre>ams_cds</pre>
 +
 +
:[[File:Cds lab1 2.png|Cadence käivitus]]
 +
 +
: ''peale ülevalpool oleva pildi teateid võib käsurida ignoreerida, edasised tegevused toimuvad läbi Cadence graafilise kasutajaliidese''
 +
 +
: avaneb mitmeid akneid, ühel neist küsitakse täpsustavat informatsiooni meil kasutatava '''''designkit'i''''' kohta
 +
:[[File:Cds lab1 3.png|Designkit'i küsimus]]
 +
: siin õnneks on ainult üks valik ja tuleks vajutada nupule '''OK'''
 +
 +
: avaneb ka Cadence põhiaken mis vaikimisi paikneb töölaual vasakul alumise nurga juures
 +
:[[File:Cds lab1 4.png|Cadence põhiaken]]
 +
: siia kogunevad Cadence teated , sealhulgas ka veateated
 +
 +
: ja avaneb ka Cadence Library Manager aken
 +
:[[File:Cds lab1 5.png|Library Manager]]
 +
: siin aknas on mõistlik valida checkbox '''Show Categories'''
 +
 +
==Tekitame oma library==
 +
:Library Manager aknas valine menüüst '''File''' valiku '''New''' ja '''Library'''
 +
:[[File:Cds lab1 6.png|Loome uue library]]
 +
 +
 +
:avaneb uus aken kuhu sisestame nime '''labor_1''' ja vajutame nupule '''OK'''
 +
:[[File:Cds lab1 7.png|Loome uue library]]
 +
 +
 +
:avaneb uus väike aken küsimusega ja valikvastustega, valime '''Attach to an existing technology library''' ja vajutame '''OK'''
 +
:[[File:Cds lab1 8.png|uue library tehnoloogia]]
 +
 +
:järgmises uues aknas tuleks valida tehnoloogiaks '''TECH_C18A6''' ja vajutada nupule '''OK'''
 +
:[[File:Cds lab1 9.png|uue library tehnoloogia]]
 +
 +
==Tekitame uue skeemi oma library'sse==
 +
 +
:selleks tuleb '''Library Manager''' aknas ära valida library millele me andsime nime '''labor_1''' ja valida menüüst '''File''' valik '''New''' ning '''Cell View'''
 +
:[[File:Cds lab1 10.png|uue skeemi tekitamine]]
 +
 +
 +
:avanevas aknas täidame välja '''Cell''' andes oma uuele skeemile nimeks '''poolsummaator'''
 +
:[[File:Cds lab1 11.png|uue skeemi tekitamine]]
 +
:'''Application''' valikute osas valime '''Schematics XL''' ja märgime ära checkbox'i '''Always use this application for this type of file'''
 +
:ja vajutame '''OK''' , selle peale avaneb meile skeemiredaktori aken
 +
 +
==Poolsummaatori skeemi redigeerimine==
 +
 +
:eelnevate tegevuste tulemusena on meil nüüd lahti skeemiredaktori aken
 +
:[[File:Cds lab1 12.png|Cadence skeemiredaktori aken]]
 +
 +
 +
:siinkohas on mõislik meelde jätta mõned skeemiredaktori lühikäsud
 +
:* ''''i'''' - '''''instance''''' , uue skeemielemendi lisamiseks
 +
:* ''''w'''' - '''''wire''''' , uue ühenduse loomiseks
 +
:* ''''l'''' - '''''label''''' , ühendusele nime panemine
 +
:* ''''p'''' - '''''pin''''' , uue sisendi/väljundi loomiseks
 +
:* ''''f'''' - '''''fit to view''''' , mahutab kogu seni joonistatud skeemi meie vaatevälja
 +
:* ''''u'''' - '''''undo''''' , viimase tegevuse tühistamine
 +
:* ''''X'''' - '''''Check and Save'''' , teostab skeemile veakontrolli ja salvestab skeemi
 +
 +
::hiire paremat klahvi all hoides saab tirida piirkonna mida suurendatakse, et suurendusest kiirelt välja minna vajutada '''f'''
 +
::igast sisestusrežiimist (instance/wire/pin/jms.) saab kiirelt väljuda klahviga '''ESC'''
 +
::olles '''wire''' režiimis saab kindlaid ühendusi luua klahviga ''''s'''' ehk '''''snap''''' , selleks liikuda hiirekursoriga sobiliku ühenduspunkti lähedale ja Cadence pakub võimalikku ühenduse loomist kollase rombi kujulise kastiga selle punkti ümber
 +
::'''NB!''' '''''undo''''' töötab kuni viimase salvestuseni, peale salvestust ei ole võimalik skeemi tehtud muudatusi tagasi võtta
 +
 +
===Kirjanurgaga raami lisamine===
 +
:vajutame klahvi '''i''' ja avanevas aknas nuppu '''Browse'''
 +
:[[File:Cds lab1 13.png|Cadence add instance aken]]
 +
:avaneb '''Library Browser''' kus valime '''Library''' alt '''BORDERS''' ja sealt '''Cell''' alt '''A5'''
 +
:täindavalt avanenud '''Library Manager''' akna võime sulgeda vajutades nupule '''Close'''
 +
:'''Add Instance''' akna saame ajutiselt ära peita vajutades nupule '''Hide'''
 +
 +
:seejärel liikudes hiirekursoriga skeemiredaktori akna mustale alale saame valitud elemendi paika panna
 +
:[[File:Cds lab1 14.png|Cadence skeemiredaktor]]
 +
:Cadence pakub kollase raamiga võimalikku asukohta, sobival kohal elemendi paigutamiseks vajutame hiire vasakut klahvi
 +
:antud juhul on suvaline asukoht sobiv nii, et vajutame hiire vasakut klahvi
 +
:seejärel tuleks '''fit to view''' teha ehk vajutame klahvi '''f'''
 +
 +
===Poolsummaatori skeemielementide lisamine===
 +
:vajutame klahvi '''i''' ja avanevas aknas nuppu '''Browse'''
 +
:avaneb '''Library Browser''' kus valime '''Library''' alt '''CORELIB'''
 +
:meile vajalikud skeemielemendid asuvad siis '''library''' nimega '''CORELIB''' all
 +
 +
 +
:kõigepealt on meil vaja mõned AND elemendid paika panna
 +
:[[File:Cds lab1 15.png|Cadence Library Manager, AND element]]
 +
:selleks valime '''Category''' alt '''AND''' ja '''Cell''' alt '''AND2X1'''
 +
:tähe-numbri kombinatsioon elemendi nime taga näitab mitu sisendit sellel on ning mis võimsusega on väljund (mitu järgmist sisendit on väljund suuteline ära toitma)
 +
:antud juhul on tegemist kahe sisendiga '''AND''' elemendiga mille väljundvõimsus on '''1'''
 +
 +
 +
:poolsummaatori jaoks on meil vaja 3  AND elementi, 2 inverterit ja 1 OR element
 +
:[[File:Cds lab1 16.png|Cadence skeemiredaktor, poolsummaatori elemendid]]
 +
 +
===Poolsummaatori skeemi sisendite ja väljundite lisamine===
 +
:lisame skeemile sisendid ja väljundid ehk '''pin''''id , selleks vajutame klahvi '''p'''
 +
:[[File:Cds lab1 17.png|Cadence skeemiredaktor, sisendite lisamine]]
 +
:esimeseks nimeks ('''Pin Name''') valime '''A''' ja suunaks ('''Direction''') valime '''input'''
 +
:'''pin''''ide paigutamine toimub sama moodi nagu elementide paigutamine
 +
 +
 +
:poolsummaatori jaoks on meil vaja 2 sisendit (A ja B) ning 2 väljundit (Sum ja Carry)
 +
:[[File:Cds lab1 18.png|Cadence skeemiredaktor, sisenditega]]
 +
 +
===Poolsummaatori skeemielementide vaheliste ühenduste loomine===
 +
:tekitame skeemielementide vahelised ühendused, selleks vajutame klahvi '''w''' ning '''snap''''i kasutades ühendame elemendid omavahel
 +
:[[File:Cds lab1 19.png|Cadence skeemiredaktor, poolsummaatori skeem]]
 +
:skeemi parema jälgitavuse huvides võib ühendustele paigutada nimed nagu ülevalpool oleval pildil, selleks vajutada klahvi '''l'''
 +
 +
===Poolsummaatori skeemi salvestamine===
 +
:salvestamiseks vajutame klahvi '''X'''
 +
:[[File:Cds lab1 20.png|Cadence põhiaken, check-and-save]]
 +
:Cadence põhiaknast võib jälgida vigade kontrolli ja salvestuse tulemust
 +
 +
===Poolsummaatori sümboli loomine (makro tegemine)===
 +
:et meie valminud skeemi kasutada muude skeemide joonistamisel makrona, tuleb teha skeemile uus ''''symbol'''' vaade
 +
:[[File:Cds lab1 21.png|Cadence Skeemiredaktor]]
 +
:selleks valime menüüst '''Create''' valiku '''Cellview''' ja alamvaliku '''From Cellview'''
 +
 +
:[[File:Cds lab1 22.png|Cellview from Cellview]]
 +
:avaneb popup, milles olevad vaikeväärtused meile sobivad ja vajutame nupule '''OK'''
 +
 +
:[[File:Cds lab1 23.png|Symbol Generation Options]]
 +
:uues popup aknas on võimalik meil määrata kuidas hakkavad paiknema sisendid ja väljundid
 +
 +
:avaneb '''Cadence Symbol Editor''' aken
 +
:[[File:Cds lab1 24.png|Cadence Symbol Editor]]
 +
:automaatselt tekitatud sümbol on kastikujuline , kasutajal on võimalik tööriistaribal olevate primitiivide kaudu seda kujundada endale sobivaks
 +
 +
==Täissummaator kahest poolsummaatorist==
 +
 +
:eelnevas peatükis koostatud poolsummaatori primitiivi kasutades saame luua täissummaatori
 +
:[[File:Cds lab1 25.png|Cadence Schematic Editor]]
 +
:ka sellest teeme makro ehk loome sümboli et saaksime seda kasutada edasistes skeemides
 +
 +
:skeemi sees saab vajadusel laskuda makro sisse, selleks kas
 +
:* teeme makroelemendi peal hiirega topeltkliki
 +
:* valime makroelemendi ja kasutame käsklust '''Descend Edit''' mille lühikäskluseks on klahvikombinatsioon '''Shift + E'''
 +
:et tagasi eelmisele tasemele tulla kasutame käsklust '''Return''' mille lühikäskluseks on klahvikombinatsiooon '''Ctrl + E'''
 +
 +
:skeemi sees laskumine võib osutuda vajalikuks näiteks juhul kui meil on vaja muuta makro väljundite väljundvõimsust
 +
 +
:'''NB!''' muutes ühe makro sisu muutub see kohe igal pool kus seda makrot kasutatud on
 +
 +
==4 bitine liitja==
 +
 +
:et meil on kõik vajalikud komponendid nüüd olemas, siis saame asuda 4 bitise liitja koostamise juurde
 +
 +
:komponentidena läheb meil vaja ühte poolsummaatorit ja kolme täissummaatorit
 +
 +
 +
:ülekandeahela lahendame antud skeemis jadaülekandega ehk ''ingl.'' '''Riple Carry'''
 +
:et tegemist on pisikese 4-bit liitjaga siis jadaülekanne on meile sobiv, suuremate liitjate juures on mõistlik kasutada rööpülekannet, näiteks '''Lynch-Swartzlander Spanning Tree Carry Lookahead'''
 +
 +
 +
:selle skeemi juures kasutame juba andmesiine, antud juhul 4-bitiseid
 +
:et andmesiinid oleks paremini nähtavad kasutame nende joonistamiseks jämedat ühendust
 +
:andmesiinidelt eraldi bittide väljatoomine ja ühendamine toimub läbi ühendustele nimede andmise
 +
 +
:[[File:Cds lab1 26.png|Cadence Schematic Editor, 4bit adder]]
 +
 +
==4bit liitja simulatsioon==
 +
 +
:nüüd kus meil on skeem valmis ja kontrollitud ning salvestatud, hakkame seda simuleerima digitaalsimulatsiooniga
 +
 +
===NC-Verilog avamine===
 +
 +
:selleks avame vahendi '''NC-Verilog'''
 +
:Cadence põhiaknas olevast menüüst '''Tools''' võtame valiku '''NC-Verilog'''
 +
:[[File:Cds lab1 27.png|Cadence main window, Tools menu]]
 +
 +
 +
:avaneneb uus aken
 +
:[[File:Cds lab1 28.png|Cadence NC-Verilog window]]
 +
:siin tuleb mõned asjad paika sättida:
 +
:* '''Run Directory''' - vajutame kolme punktiga nupule ja valime endale sobiva töökataloogi (antud juhul tuleb meil töökataloog alles tekitada , antud näites '''lab1_simu''')
 +
::[[File:Cds lab1 29.png|Cadence NC-Verilog window]]
 +
:* disain valida, selleks vajutame '''Browse''' peale ning avanevast '''Library Browser''''ist valime oma skeemi ja '''schematic''' vaate
 +
 +
===NC-Verilog initsialiseerimine ja sätted===
 +
 +
:nüüd jääb üle ainult esimese ikoonile vasakul ribal vajutada '''Initialize Design'''
 +
:[[File:Cds lab1 30.png|Cadence NC-Verilog window]]
 +
 +
:avaneb uus popup aken kus vajutame '''OK''' nupule
 +
:[[File:Cds lab1 31.png|Cadence NC-Verilog window]]
 +
 +
 +
:korrigeerime mõningaid parameetreid, selleks võtame menüüst '''Setup''' valiku '''Netlist'''
 +
:[[File:Cds lab1 32.png|Cadence NC-Verilog window]]
 +
 +
 +
:avaneb menüü
 +
:[[File:Cds lab1 33.png|Cadence NC-Verilog Netlist Setup]]
 +
:siin sätime järgnevat
 +
:* '''Netlist These Views''' valime '''schematic symbol'''
 +
:* valime '''Single Netlist File'''
 +
:* '''Global Sim Time''' valime 1 ja ühikuks '''ps'''
 +
:* '''Global Sim Precision''' valime 1 ja ühikuks '''fs'''
 +
 +
 +
:järgmiseks võtame '''Setup''' ja valik '''Record Signals'''
 +
:[[File:Cds lab1 34.png|Cadence NC-Verilog Record Signals Setup]]
 +
:siin valime valiku '''All'''
 +
 +
===NC-Verilog Netlist'i tekitamine===
 +
 +
:järgmise sammuna tuleb meie skeemile netlist tekitada, selleks vajutame '''NC-Verilog''' põhiakna vasakul ribal järgmist nuppu '''Generate Netlist'''
 +
:[[File:Cds lab1 35.png|Cadence NC-Verilog Generate Netlist]]
 +
 +
:Cadence põhiaknast saab jälgida kas netlist tekkis vigadeta
 +
:[[File:Cds lab1 36.png|Cadence Main Window, netlist generation output]]
 +
 +
===NC-Verilog simulatsiooni sisendandmed===
 +
 +
:et simulaatoril oleks mida simuleerida on meil vaja sisendandmeid
 +
:selleks võtame '''NC-Verilog''' põhiakna '''Commands''' menüüst valiku '''Edit Test Fixture'''
 +
:[[File:Cds lab1 37.png|Cadence NC-Verilog Edit Test Fixture]]
 +
 +
 +
:[[File:Cds lab1 38.png|Cadence NC-Verilog Edit Test Fixture]]
 +
:avanenud aknas on kaks jaotust : '''TestBench''' ja '''Stimulus'''
 +
:lihtsama simulatsiooni puhul huvitab meid vaid '''Stimulus''' sektsioon ning vajutame seal '''Edit''' nuppu
 +
 +
:avaneb meie tutoriali alguses määratud tekstiredaktor failiga '''testfixture.verilog'''
 +
:[[File:Cds lab1 39.png|SciTE edit Test Fixture]]
 +
:siin on näha '''NC-Verilog''' poolt vaikimisi genereeritud koodi mis ainult algväärtustab simulatsiooni
 +
 +
:järgmiseks lisame omi väärtusi, 4..5 sisendarvude paari, iga muutust laseme simuleerida 10 simulatsiooniühikut
 +
:[[File:Cds lab1 40.png|SciTE edit Test Fixture]]
 +
 +
:peale muudatusi on mõistlik veakontroll teha, seda '''Edit Test Fixture''' aknast nupuga '''Check Syntax'''
 +
:kui kõik on korras kuvatakse teade
 +
:[[File:Cds lab1 41.png|Edit Test Fixture Check Syntax]]
 +
 +
===NC-Verilog Simulatsioon===
 +
 +
:järgmise sammuna käivitame simulatsiooni, selleks vajutame '''NC-Verilog''' põhiaknas vasakul ribal nuppu '''Simulate'''
 +
:käivitatakse Cadence alampakett '''SimVision''' ning avaneb kaks uut akent - '''Console - SimVision''' ja '''Design Browser - SimVision'''
 +
 +
:[[File:Cds lab1 42.png|Cadence SimVision]]
 +
 +
 +
==Simulatsiooni tulemused, SimVision==
 +
 +
===Simulatsiooni tulemuste vaatamine===
 +
 +
:avanenud akendest võtame tähelepanu alla '''Design Browser''''i
 +
 +
:[[File:Cds lab1 43.png|Cadence SimVision Design Browser]]
 +
:siin akna vasakus pooles valime '''-simulator-test+top'''
 +
:ja akna paremas pooles valime sisendid-väljundid mille väärtusi tahame graafikul näha
 +
:seejärel vajutame üleval tööriistaribal nupule '''Send to Waveform'''
 +
 +
:avaneb uus aken '''Waveform - SimVision'''
 +
:[[File:Cds lab1 44.png|Cadence SimVision Waveform]]
 +
 +
 +
:siin vajutame '''Run''' nupu kõrval väikesele allasuunas kolmnurga sümbolile et saame nupu kõrvale ajavälja
 +
:ajaväljale sisestame simulatsiooniühikute arvu mis meie algväärtuse ja viie täiendava väärtusega teeb kokku '''60'''
 +
:ja vajutame '''Run''' nupule
 +
:[[File:Cds lab1 45.png|Cadence SimVision Waveform, run run run]]
 +
 +
 +
:et suurt pilti ette saada tuleks waveform välja zoomida, selleks vajutame <big>'''='''</big> nuppu tööriistariba paremas ääres
 +
:[[File:Cds lab1 46.png|Cadence SimVision Waveform, zoooooooom]]
 +
 +
 +
:kui meil on mitu väljundit mis on omavahel seotud, antud juhul '''Carry''' signaal ja summa väljund, siis on mõistlik need parema loetavuse huvides koos vaadata
 +
:selleks kõigepealt kopeerime need kaks signaali - valime signaalid SHIFT + vasem hiireklikk ja siis parema hiireklahvi alt menüüst '''Copy'''
 +
:[[File:Cds lab1 47.png|Cadence SimVision Waveform, copy]]
 +
:ja kleebime need sinnasamasse allapoole, mustalt taustalt ja parema hiireklahvi alt '''Paste'''
 +
 +
 +
:seejärel valime need kopeeritud signaalid ja võtame parema hiireklahvi alt menüüst '''Create''' ja '''Bus'''
 +
:[[File:Cds lab1 48.png|Cadence SimVision Waveform, create bus]]
 +
 +
===Simulatsiooni tulemused, lõplik pilt===
  
[[File:Cds lab1 1.png|Töökeskkonna paika sättimine]]
+
:nüüd on meil lihtne järge ajada ja liitmistulemuste õigsusi kontrollida
 +
:[[File:Cds lab1 49.png|Cadence SimVision Waveform, lõppvaatus]]

Latest revision as of 16:50, 15 June 2016

English page United Kingdom.png


Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid

Sätime paika oma töökeskkonna

kõik selles ja järgmises lõigus olevad tegevused toimuvad käsurealt

  • loome uue alamkataloogi lab1
  • liigume sinna alamkataloogi
  • kasutades käsku 'cad' ja sealt valikuga '1' väärtustame kõik vajalikud keskkonnamuutujad Cadence jaoks
  • seejärel vahetame ümber tekstiredaktori vaikeväärtuse, valides uueks tekstiredaktoriks SciTE, vaikimisi on tekstiredaktoriks vi
Töökeskkonna paika sättimine

Käivitame Cadence

Cadence 2016 EDA ver. juhist jälgides
  • kui on tegemist esmakordse käivitamisega siis kasutame käsurida
ams_cds -64 -tech c18a6 -add CORELIB -add IOLIB_6AM -add GATES_ANA
siin me valisime tehnoloogiaks AMS 0.18μm tehnoloogia 6 metallikihiga ja lisasime elementbaaside kataloogide nimistusse kolm täiendavat kataloogi
  • kui on tegemist järgmiste käivitamiskordadega siis kasutame käsurida
ams_cds
Cadence käivitus
peale ülevalpool oleva pildi teateid võib käsurida ignoreerida, edasised tegevused toimuvad läbi Cadence graafilise kasutajaliidese
avaneb mitmeid akneid, ühel neist küsitakse täpsustavat informatsiooni meil kasutatava designkit'i kohta
Designkit'i küsimus
siin õnneks on ainult üks valik ja tuleks vajutada nupule OK
avaneb ka Cadence põhiaken mis vaikimisi paikneb töölaual vasakul alumise nurga juures
Cadence põhiaken
siia kogunevad Cadence teated , sealhulgas ka veateated
ja avaneb ka Cadence Library Manager aken
Library Manager
siin aknas on mõistlik valida checkbox Show Categories

Tekitame oma library

Library Manager aknas valine menüüst File valiku New ja Library
Loome uue library


avaneb uus aken kuhu sisestame nime labor_1 ja vajutame nupule OK
Loome uue library


avaneb uus väike aken küsimusega ja valikvastustega, valime Attach to an existing technology library ja vajutame OK
uue library tehnoloogia
järgmises uues aknas tuleks valida tehnoloogiaks TECH_C18A6 ja vajutada nupule OK
uue library tehnoloogia

Tekitame uue skeemi oma library'sse

selleks tuleb Library Manager aknas ära valida library millele me andsime nime labor_1 ja valida menüüst File valik New ning Cell View
uue skeemi tekitamine


avanevas aknas täidame välja Cell andes oma uuele skeemile nimeks poolsummaator
uue skeemi tekitamine
Application valikute osas valime Schematics XL ja märgime ära checkbox'i Always use this application for this type of file
ja vajutame OK , selle peale avaneb meile skeemiredaktori aken

Poolsummaatori skeemi redigeerimine

eelnevate tegevuste tulemusena on meil nüüd lahti skeemiredaktori aken
Cadence skeemiredaktori aken


siinkohas on mõislik meelde jätta mõned skeemiredaktori lühikäsud
  • 'i' - instance , uue skeemielemendi lisamiseks
  • 'w' - wire , uue ühenduse loomiseks
  • 'l' - label , ühendusele nime panemine
  • 'p' - pin , uue sisendi/väljundi loomiseks
  • 'f' - fit to view , mahutab kogu seni joonistatud skeemi meie vaatevälja
  • 'u' - undo , viimase tegevuse tühistamine
  • 'X' - Check and Save' , teostab skeemile veakontrolli ja salvestab skeemi
hiire paremat klahvi all hoides saab tirida piirkonna mida suurendatakse, et suurendusest kiirelt välja minna vajutada f
igast sisestusrežiimist (instance/wire/pin/jms.) saab kiirelt väljuda klahviga ESC
olles wire režiimis saab kindlaid ühendusi luua klahviga 's' ehk snap , selleks liikuda hiirekursoriga sobiliku ühenduspunkti lähedale ja Cadence pakub võimalikku ühenduse loomist kollase rombi kujulise kastiga selle punkti ümber
NB! undo töötab kuni viimase salvestuseni, peale salvestust ei ole võimalik skeemi tehtud muudatusi tagasi võtta

Kirjanurgaga raami lisamine

vajutame klahvi i ja avanevas aknas nuppu Browse
Cadence add instance aken
avaneb Library Browser kus valime Library alt BORDERS ja sealt Cell alt A5
täindavalt avanenud Library Manager akna võime sulgeda vajutades nupule Close
Add Instance akna saame ajutiselt ära peita vajutades nupule Hide
seejärel liikudes hiirekursoriga skeemiredaktori akna mustale alale saame valitud elemendi paika panna
Cadence skeemiredaktor
Cadence pakub kollase raamiga võimalikku asukohta, sobival kohal elemendi paigutamiseks vajutame hiire vasakut klahvi
antud juhul on suvaline asukoht sobiv nii, et vajutame hiire vasakut klahvi
seejärel tuleks fit to view teha ehk vajutame klahvi f

Poolsummaatori skeemielementide lisamine

vajutame klahvi i ja avanevas aknas nuppu Browse
avaneb Library Browser kus valime Library alt CORELIB
meile vajalikud skeemielemendid asuvad siis library nimega CORELIB all


kõigepealt on meil vaja mõned AND elemendid paika panna
Cadence Library Manager, AND element
selleks valime Category alt AND ja Cell alt AND2X1
tähe-numbri kombinatsioon elemendi nime taga näitab mitu sisendit sellel on ning mis võimsusega on väljund (mitu järgmist sisendit on väljund suuteline ära toitma)
antud juhul on tegemist kahe sisendiga AND elemendiga mille väljundvõimsus on 1


poolsummaatori jaoks on meil vaja 3 AND elementi, 2 inverterit ja 1 OR element
Cadence skeemiredaktor, poolsummaatori elemendid

Poolsummaatori skeemi sisendite ja väljundite lisamine

lisame skeemile sisendid ja väljundid ehk pin'id , selleks vajutame klahvi p
Cadence skeemiredaktor, sisendite lisamine
esimeseks nimeks (Pin Name) valime A ja suunaks (Direction) valime input
pin'ide paigutamine toimub sama moodi nagu elementide paigutamine


poolsummaatori jaoks on meil vaja 2 sisendit (A ja B) ning 2 väljundit (Sum ja Carry)
Cadence skeemiredaktor, sisenditega

Poolsummaatori skeemielementide vaheliste ühenduste loomine

tekitame skeemielementide vahelised ühendused, selleks vajutame klahvi w ning snap'i kasutades ühendame elemendid omavahel
Cadence skeemiredaktor, poolsummaatori skeem
skeemi parema jälgitavuse huvides võib ühendustele paigutada nimed nagu ülevalpool oleval pildil, selleks vajutada klahvi l

Poolsummaatori skeemi salvestamine

salvestamiseks vajutame klahvi X
Cadence põhiaken, check-and-save
Cadence põhiaknast võib jälgida vigade kontrolli ja salvestuse tulemust

Poolsummaatori sümboli loomine (makro tegemine)

et meie valminud skeemi kasutada muude skeemide joonistamisel makrona, tuleb teha skeemile uus 'symbol' vaade
Cadence Skeemiredaktor
selleks valime menüüst Create valiku Cellview ja alamvaliku From Cellview
Cellview from Cellview
avaneb popup, milles olevad vaikeväärtused meile sobivad ja vajutame nupule OK
Symbol Generation Options
uues popup aknas on võimalik meil määrata kuidas hakkavad paiknema sisendid ja väljundid
avaneb Cadence Symbol Editor aken
Cadence Symbol Editor
automaatselt tekitatud sümbol on kastikujuline , kasutajal on võimalik tööriistaribal olevate primitiivide kaudu seda kujundada endale sobivaks

Täissummaator kahest poolsummaatorist

eelnevas peatükis koostatud poolsummaatori primitiivi kasutades saame luua täissummaatori
Cadence Schematic Editor
ka sellest teeme makro ehk loome sümboli et saaksime seda kasutada edasistes skeemides
skeemi sees saab vajadusel laskuda makro sisse, selleks kas
  • teeme makroelemendi peal hiirega topeltkliki
  • valime makroelemendi ja kasutame käsklust Descend Edit mille lühikäskluseks on klahvikombinatsioon Shift + E
et tagasi eelmisele tasemele tulla kasutame käsklust Return mille lühikäskluseks on klahvikombinatsiooon Ctrl + E
skeemi sees laskumine võib osutuda vajalikuks näiteks juhul kui meil on vaja muuta makro väljundite väljundvõimsust
NB! muutes ühe makro sisu muutub see kohe igal pool kus seda makrot kasutatud on

4 bitine liitja

et meil on kõik vajalikud komponendid nüüd olemas, siis saame asuda 4 bitise liitja koostamise juurde
komponentidena läheb meil vaja ühte poolsummaatorit ja kolme täissummaatorit


ülekandeahela lahendame antud skeemis jadaülekandega ehk ingl. Riple Carry
et tegemist on pisikese 4-bit liitjaga siis jadaülekanne on meile sobiv, suuremate liitjate juures on mõistlik kasutada rööpülekannet, näiteks Lynch-Swartzlander Spanning Tree Carry Lookahead


selle skeemi juures kasutame juba andmesiine, antud juhul 4-bitiseid
et andmesiinid oleks paremini nähtavad kasutame nende joonistamiseks jämedat ühendust
andmesiinidelt eraldi bittide väljatoomine ja ühendamine toimub läbi ühendustele nimede andmise
Cadence Schematic Editor, 4bit adder

4bit liitja simulatsioon

nüüd kus meil on skeem valmis ja kontrollitud ning salvestatud, hakkame seda simuleerima digitaalsimulatsiooniga

NC-Verilog avamine

selleks avame vahendi NC-Verilog
Cadence põhiaknas olevast menüüst Tools võtame valiku NC-Verilog
Cadence main window, Tools menu


avaneneb uus aken
Cadence NC-Verilog window
siin tuleb mõned asjad paika sättida:
  • Run Directory - vajutame kolme punktiga nupule ja valime endale sobiva töökataloogi (antud juhul tuleb meil töökataloog alles tekitada , antud näites lab1_simu)
Cadence NC-Verilog window
  • disain valida, selleks vajutame Browse peale ning avanevast Library Browser'ist valime oma skeemi ja schematic vaate

NC-Verilog initsialiseerimine ja sätted

nüüd jääb üle ainult esimese ikoonile vasakul ribal vajutada Initialize Design
Cadence NC-Verilog window
avaneb uus popup aken kus vajutame OK nupule
Cadence NC-Verilog window


korrigeerime mõningaid parameetreid, selleks võtame menüüst Setup valiku Netlist
Cadence NC-Verilog window


avaneb menüü
Cadence NC-Verilog Netlist Setup
siin sätime järgnevat
  • Netlist These Views valime schematic symbol
  • valime Single Netlist File
  • Global Sim Time valime 1 ja ühikuks ps
  • Global Sim Precision valime 1 ja ühikuks fs


järgmiseks võtame Setup ja valik Record Signals
Cadence NC-Verilog Record Signals Setup
siin valime valiku All

NC-Verilog Netlist'i tekitamine

järgmise sammuna tuleb meie skeemile netlist tekitada, selleks vajutame NC-Verilog põhiakna vasakul ribal järgmist nuppu Generate Netlist
Cadence NC-Verilog Generate Netlist
Cadence põhiaknast saab jälgida kas netlist tekkis vigadeta
Cadence Main Window, netlist generation output

NC-Verilog simulatsiooni sisendandmed

et simulaatoril oleks mida simuleerida on meil vaja sisendandmeid
selleks võtame NC-Verilog põhiakna Commands menüüst valiku Edit Test Fixture
Cadence NC-Verilog Edit Test Fixture


Cadence NC-Verilog Edit Test Fixture
avanenud aknas on kaks jaotust : TestBench ja Stimulus
lihtsama simulatsiooni puhul huvitab meid vaid Stimulus sektsioon ning vajutame seal Edit nuppu
avaneb meie tutoriali alguses määratud tekstiredaktor failiga testfixture.verilog
SciTE edit Test Fixture
siin on näha NC-Verilog poolt vaikimisi genereeritud koodi mis ainult algväärtustab simulatsiooni
järgmiseks lisame omi väärtusi, 4..5 sisendarvude paari, iga muutust laseme simuleerida 10 simulatsiooniühikut
SciTE edit Test Fixture
peale muudatusi on mõistlik veakontroll teha, seda Edit Test Fixture aknast nupuga Check Syntax
kui kõik on korras kuvatakse teade
Edit Test Fixture Check Syntax

NC-Verilog Simulatsioon

järgmise sammuna käivitame simulatsiooni, selleks vajutame NC-Verilog põhiaknas vasakul ribal nuppu Simulate
käivitatakse Cadence alampakett SimVision ning avaneb kaks uut akent - Console - SimVision ja Design Browser - SimVision
Cadence SimVision


Simulatsiooni tulemused, SimVision

Simulatsiooni tulemuste vaatamine

avanenud akendest võtame tähelepanu alla Design Browser'i
Cadence SimVision Design Browser
siin akna vasakus pooles valime -simulator-test+top
ja akna paremas pooles valime sisendid-väljundid mille väärtusi tahame graafikul näha
seejärel vajutame üleval tööriistaribal nupule Send to Waveform
avaneb uus aken Waveform - SimVision
Cadence SimVision Waveform


siin vajutame Run nupu kõrval väikesele allasuunas kolmnurga sümbolile et saame nupu kõrvale ajavälja
ajaväljale sisestame simulatsiooniühikute arvu mis meie algväärtuse ja viie täiendava väärtusega teeb kokku 60
ja vajutame Run nupule
Cadence SimVision Waveform, run run run


et suurt pilti ette saada tuleks waveform välja zoomida, selleks vajutame = nuppu tööriistariba paremas ääres
Cadence SimVision Waveform, zoooooooom


kui meil on mitu väljundit mis on omavahel seotud, antud juhul Carry signaal ja summa väljund, siis on mõistlik need parema loetavuse huvides koos vaadata
selleks kõigepealt kopeerime need kaks signaali - valime signaalid SHIFT + vasem hiireklikk ja siis parema hiireklahvi alt menüüst Copy
Cadence SimVision Waveform, copy
ja kleebime need sinnasamasse allapoole, mustalt taustalt ja parema hiireklahvi alt Paste


seejärel valime need kopeeritud signaalid ja võtame parema hiireklahvi alt menüüst Create ja Bus
Cadence SimVision Waveform, create bus

Simulatsiooni tulemused, lõplik pilt

nüüd on meil lihtne järge ajada ja liitmistulemuste õigsusi kontrollida
Cadence SimVision Waveform, lõppvaatus