Difference between revisions of "CDS LAB1"
From ATI public wiki
((by SublimeText.Mediawiker)) |
|||
(60 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | [[CDS_LAB1/en|English page]] [[File:United Kingdom.png | 32px | link=CDS_LAB1/en]] | ||
+ | |||
+ | |||
<big>Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid</big> | <big>Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid</big> | ||
__TOC__ | __TOC__ | ||
− | == | + | ==Sätime paika oma töökeskkonna== |
''kõik selles ja järgmises lõigus olevad tegevused toimuvad käsurealt'' | ''kõik selles ja järgmises lõigus olevad tegevused toimuvad käsurealt'' | ||
Line 10: | Line 13: | ||
:* 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]] | + | ::[[File:Cds lab1 1.png|Töökeskkonna paika sättimine]] |
− | == | + | ==Käivitame Cadence== |
: [[C_16_EDA|Cadence 2016 EDA ver.]] juhist jälgides | : [[C_16_EDA|Cadence 2016 EDA ver.]] juhist jälgides | ||
:* kui on tegemist esmakordse käivitamisega siis kasutame käsurida | :* kui on tegemist esmakordse käivitamisega siis kasutame käsurida | ||
Line 20: | Line 23: | ||
:: <pre>ams_cds</pre> | :: <pre>ams_cds</pre> | ||
− | [[File:Cds lab1 2.png|Cadence käivitus]] | + | :[[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 | + | : ''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 | : avaneb mitmeid akneid, ühel neist küsitakse täpsustavat informatsiooni meil kasutatava '''''designkit'i''''' kohta | ||
− | [[File:Cds lab1 3.png|Designkit'i küsimus]] | + | :[[File:Cds lab1 3.png|Designkit'i küsimus]] |
: siin õnneks on ainult üks valik ja tuleks vajutada nupule '''OK''' | : 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 | : avaneb ka Cadence põhiaken mis vaikimisi paikneb töölaual vasakul alumise nurga juures | ||
− | [[File:Cds lab1 4.png|Cadence põhiaken]] | + | :[[File:Cds lab1 4.png|Cadence põhiaken]] |
: siia kogunevad Cadence teated , sealhulgas ka veateated | : siia kogunevad Cadence teated , sealhulgas ka veateated | ||
: ja avaneb ka Cadence Library Manager aken | : ja avaneb ka Cadence Library Manager aken | ||
− | [[File:Cds lab1 5.png|Library Manager]] | + | :[[File:Cds lab1 5.png|Library Manager]] |
− | : siin aknas on | + | : 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=== | ||
− | + | :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
Tutoriali eesmärk on viia läbi digitaalskeemi koostamine ja simulatsioon kasutades Cadence vahendeid
Contents
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
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
- 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
- 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
- siia kogunevad Cadence teated , sealhulgas ka veateated
Tekitame oma library
- avaneb uus väike aken küsimusega ja valikvastustega, valime Attach to an existing technology library ja vajutame OK
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
- avanevas aknas täidame välja Cell andes oma uuele skeemile nimeks poolsummaator
- 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
- 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
- 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 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
- 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 skeemi sisendite ja väljundite lisamine
- lisame skeemile sisendid ja väljundid ehk pin'id , selleks vajutame klahvi p
- esimeseks nimeks (Pin Name) valime A ja suunaks (Direction) valime input
- pin'ide paigutamine toimub sama moodi nagu elementide paigutamine
Poolsummaatori skeemielementide vaheliste ühenduste loomine
- tekitame skeemielementide vahelised ühendused, selleks vajutame klahvi w ning snap'i kasutades ühendame elemendid omavahel
- 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õ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
- selleks valime menüüst Create valiku Cellview ja alamvaliku From Cellview
- avaneb Cadence Symbol Editor aken
- 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
- 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
4bit liitja simulatsioon
- nüüd kus meil on skeem valmis ja kontrollitud ning salvestatud, hakkame seda simuleerima digitaalsimulatsiooniga
NC-Verilog avamine
- avaneneb uus aken
- 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)
- disain valida, selleks vajutame Browse peale ning avanevast Library Browser'ist valime oma skeemi ja schematic vaate
NC-Verilog initsialiseerimine ja sätted
- avaneb menüü
- 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
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
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
- 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
- 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
- peale muudatusi on mõistlik veakontroll teha, seda Edit Test Fixture aknast nupuga Check Syntax
- kui kõik on korras kuvatakse teade
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
Simulatsiooni tulemused, SimVision
Simulatsiooni tulemuste vaatamine
- avanenud akendest võtame tähelepanu alla Design Browser'i
- 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
- 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
- et suurt pilti ette saada tuleks waveform välja zoomida, selleks vajutame = nuppu tööriistariba paremas ääres
- 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
- ja kleebime need sinnasamasse allapoole, mustalt taustalt ja parema hiireklahvi alt Paste