Cadence ICÉè¼ÆÊµÑé
Öйú¿Æ¼¼´óѧ
µç×Ó¿ÆÑ§Óë¼¼ÊõϵIC½ÌÑÐ×é
»ÆÂ³ ºúÐÂΰ °×Ñ©·É
2005Äê10ÔÂ
£¨ÊµÑéÀýÌâÓÉCadence ¹«Ë¾Ìṩ£©
Ö л£¡
µç×Ó¿ÆÑ§¼¼ÊõϵÁõÌþº£¡¢½ÃÒÝÊé¡¢×£³¬¡¢Ã·ÍôÉúµÈͬѧ°ïÖú±àдÁ˲¿·ÖʵÑéÕ½ڣ»ÐÅϢʵÑéÖÐÐÄÇüÓñ¹óÖ÷Èκͷ½Òã¡¢ÖÜÔ¶Ô¶¡¢Áõ¹óÓ¢µÈÀÏʦ²»½öΪʵÑéÌṩÁ˼¼ÊõÖ§³Ö£¬×¼±¸ºÃEDAÈí¼þlicence¡¢ÅäÖÃÁ˼ÆËã»úºÍÈí¼þÔËÐл·¾³£¬¶øÇÒÈÈÇé²ÎÓëÁ˱¾ÊµÑé½Ìѧ¡£¶ÔÓÚÉÏÊöÀÏʦºÍͬѧÃǵÄÐÁÇÚ¹¤×÷ºÍËù×ö³öµÄ¹±Ï×£¬ÔÚ´ËÒ»²¢±íʾÖÔÐĵظÐл£¡
Ô¤±¸ÖªÊ¶£ºUNIX
ÄãÕÆÎÕUNIX²Ù×÷ϵͳµÄ»ù±¾ÃüÁîÂð£¿ÏÂÃæ¼¸Ìõ³£ÓÃÃüÁî¿ÉÄÜ»á¶ÔÄãÓÐÓô¦¡£ÌáÐÑһϣ¬UNIXÃüÁîÊÇÇø·Ö´óСдµÄ¡£
²éÎļþ£ºls (²»ÏÔʾÒþº¬Îļþ)¡¢la (»òls ¨Ca£¬ÏÔʾËùÓÐÎļþ)¡¢ls |mpre£¨Ö¡ÏÔ£©¡¢la |more ɾÎļþ£ºrm ÎļþÃû
½¨ÐÂĿ¼£ºmkdir Ŀ¼Ãû
ɾĿ¼£º\\rm ¨CrĿ¼Ãû ( É÷Óã¡£¡£¡)
¿½±´£ºcp Ô´ÎļþÃû£¨º¬Â·¾¶£©Ä¿±êÎļþÃû£¨º¬Â·¾¶£©£¬
Àý ½«iscÓû§µÄabc.suf Îļþ¿½±´µ½×Ô¼ºµÄµ±Ç°Ä¿Â¼Ï£ºcp ~isc/abc.suf . ½â.tar´ò°üÎļþ£ºtar vxf ´ò°üÎļþÃû ½â.tar.ZѹËõÎļþ£ºtar vxfZ ѹËõÎļþÃû Îļþ¸ÄÃû£º mv ÔÎļþÃû ÐÂÎļþÃû ²éÃüÁîÓë²ÎÊý¹¦ÄÜ£ºman ÃüÁî
***************************************************************************
¹æ¶¨£º±¾ÊµÑé½Ì²ÄÖкìɫΪ¼üÈëÃüÁî»ò×Ö·û£¬À¼É«Îª²Ëµ¥Ï×ÏɫΪ¹¦Äܼü£»¡°µ¥»÷¡±Ö¸Êó±ê×ó¼ü°´ÏÂÒ»´Î¡£
****************************************************************************
1
ʵÑéÒ»¡¢Virtuoso Schematic Editor
ʵÑéÄ¿µÄ£ºÕÆÎÕµçÔÀíͼ£¨schematic£©Éè¼ÆÊäÈë·½·¨¡£
±ßѧ±ß×ö
[1]Æô¶¯IC Design Èí¼þ:
¿ª»úºóÔËÐÐExceed½øÈë·þÎñÆ÷SOLARISµÇ¼½çÃæ£¬ÊäÈëÓû§ÃûºÍÃÜÂë £¨ÓÉϵͳ¹ÜÀíÔ±Ìṩ£©£»
µã»÷Ò»ÏÂcpu disk ²Ëµ¥ÏîÉÏ·½µÄÈý½Ç¼ýÍ·£¬µã»÷This Host³öÏÖTerminal´°¿Ú,(»òµã»÷Console³öÏÖConsole´°¿Ú)£»
cp /eva01/cdsmgr/ training_IC_data/SchemEd.tar . £¨ÌáÐÑ£º×îºóÊǸöСµã£¬ÉԵȣ© tar vxf SchemEd.tar £¨ÉԵȣ© cd adelabic5
icfb & (»òicms &£¬ÄãÖªµÀºó׺&µÄ×÷ÓÃÂð£¿ÔÚUNIXÃüÁîºó¼Ó&±íʾºǫ́ÔËÐÐ)
Èô³öÏÖ¡°What¡¯s New¡±´°¿Ú£¬¹ØµôËü¡£
³öÏÖ¡°icfb-log£º/¡¡±´°¿Ú£¨CIW£ºCommand Interpreter Window£©ÁËÂð£¿
[2]½¨Á¢Ð¿⡢е¥ÔªÒÔ¼°ÐÂÊÓͼ£¨view£©: ÔÚCIWÖУ¬File->New->Library£¬
ÔÚµ¯³öµÄ¡°New Library¡±´°¿Ú£¬NameÀ¸ÖУºmylib Ñ¡ÖÐÓÒÏ·½£º* Don¡¯t need techfile OK
²é¿´CIW´°¿Ú£ºTools->Library Manager£¬ÔÚLibraryÖÐÓ¦ÓÐmylib£¬µ¥»÷Ëü¡£ ÔÚLibrary Manager ´°¿Ú£¬File->New->Cellview£¬
ÔÚµ¯³öµÄ¡°Create New File¡±´°¿ÚCell NameÀ¸ÖУ¬nand2 ToolÀ¸ÖУ¬Ñ¡Composer-Schematic OK
[3]Ìí¼ÓÔª¼þ£¨ÊµÀýinstance£©
ÔÚµ¯³öµÄ¡°Virtuoso Schematic Editing:¡¡±´°¿ÚÖУ¬×ó±ßΪ¹¤¾ßÀ¸£¬Ñ¡instance ͼ±ê£¨»òi£© µ¥»÷¡°Add instance¡±´°¿ÚLibraryÀ¸×îÓÒ²àBrowser,
µ¯³ö¡°Library Browser-¡¡±´°¿Ú£¬LibraryÑ¡analogLib£¬CellÑ¡nmos4, ViewÑ¡symbol Êó±ê»Øµ½¡°Add instance¡±´°¿Ú£¬Model nameÀ¸£ºtrnmos, width: 3.0u , Length: 0.5u£¬Hide ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿Ú, Êó±ê×ó¼üµ¥»÷Ò»´Î£¬¼ä¸ôÒ»¶¨¾àÀëÔÙµ¥»÷Ò»´Î£¬ÕâÑù¾ÍÔö¼ÓÁË2¸önmos4Ôª¼þ£¬ESC£¨ÊÔÒ»ÊÔ£ºÏÈÑ¡ÖÐÒ»¸öÔª¼þ£¬ÔÙq £¬²é¿´/¸Ä±äÊôÐÔ£©¡£
·ÂÕÕÉÏÊö·½·¨£¬Ôö¼Ópmos4Ôª¼þ¡£ÔÚ¡°Add instance¡±´°¿Ú£¬Model nameÀ¸£ºtrpmos, width: 2.0u , Length: 0.5u£»·ÅÖÃ2¸öpmos4£¬ESC¡££¨ÊÔÒ»ÊÔÈȼüf£¬[£¬]µÄ¹¦ÄÜ£©
[4]Ìí¼Ó¹Ü½Å£¨PIN£©
2
Ñ¡¡°Virtuoso Schematic Editing:¡¡±´°¿Ú×ó±ß¹¤¾ßÀ¸ÖеÄPinͼ±ê£¨»òp£©
ÔÚ¡°Add Pin¡±´°¿ÚÖУ¬Pin Names£ºINA INB£¬DirectionÑ¡input, UsageÑ¡schematic£¬Hide ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿Ú, Êó±ê×ó¼üµ¥»÷Ò»´Î£¬¼ä¸ôÒ»¶¨¾àÀëÔÙµ¥»÷Ò»´Î£¬·ÅÖÃ2¸öÊäÈëPIN£¬ p£¬ÔÚ¡°Add Pin¡±´°¿ÚÖУ¬Pin Names£ºOUT£¬DirectionÑ¡output, UsageÑ¡schematic£¬ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿Ú·ÅÖÃÊä³öPIN£¬
[5]Ìí¼ÓµçÔ´ºÍµØ£º
i (»òµ¥»÷instance¹¤¾ßͼ±ê)
µ¯³ö¡°Add instance¡±´°¿Ú£¬Browse£¬LibraryÑ¡analogLib£¬CellÀ¸£ºvdd, ViewÑ¡symbol ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿Ú·ÅÖÃvdd£¬
»Øµ½¡°Add instance¡±´°¿Ú£¬Browse£¬CellÀ¸£ºgnd, ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿Ú·ÅÖÃgnd£¬
ESC , Cancelµô¡°Add instance¡±´°¿Ú¡£
[6]°Ú·ÅÔª¼þ²¢¼ÓÍøÏߣº
²ÎÕÕÏÂͼ·ÅºÃÔª¼þ£¨symbol£©£º£¨Òƶ¯ÓÃm¼ü£¬É¾³ýÓÃDelete¼ü£¬È¡ÏûÃüÁîÓÃESC¼ü£©
Ñ¡¡°Virtuoso Schematic Editing:¡¡±´°¿Ú×ó±ß¹¤¾ßÀ¸ÖеÄWire(narrow)£¬Á¬ºÃÍøÏߣ¬ESC
[7]±£´æÎļþ£º¡°Virtuoso Schematic Editing:¡¡±´°¿Ú×óÉϽÇCheck and Save ¹¤¾ß¡£
DIY£¨Do It Yourself£©
3
ÔÚmylib¿âÖн¨Á¢amplifierµ¥Ôª£¨Cell£©ÈçÏÂͼËùʾ¡£
ͼÖÐËùÓе¥ÔªÀ´×Ôanaloglib¿â£¬²ÎÊýÈçÏÂ±í£º Cell Name
ÊôÐÔproperties
npn For Q0,Q1£ºModel Name=trnpn pnp For Q2,Q3,Q4£ºModel Name=trpnp pmos4 nmos4 pmos4 cap vdd, vss
PIN¹Ü½Å£º Wire Name
ÊäÈë¹Ü½Å: iref, inm, inp, Êä³ö¹Ü½Å: out vdd! , gnode
For M1: Model Name=trpmos, Length=8u, Width=iPar(¡°l¡±)*16 For M2,M5: Model Name=trnmos, Length=10u, Width=100u For M3: Model Name=trpmos, Length=iPar(¡°w¡±)/16, Width=128u Capacitance=CAP (Éè¼Æ±äÁ¿) ×¢Òâ vssÊǸºµçÔ´£¬²»ÊÇgnd
res Resistance=2.5K
×¢Ò⣺Ä㻵Äschematicµç·ÖУ¬Ë«¼«¾§Ìå¹ÜQºÍFET¹ÜMµÄϱê±àºÅ¿ÉÄÜÓëÉÏͼ²»Í¬£¬¿ÉÓÃq ²é¿´/¸Ä±äÊôÐÔ£¬ÁíÍâ¿ÉÄÜʹÓà m (ÒÆ¶¯)£¬r£¨Ðýת£©£¬f£¨È«ÆÁ£©£¬ÏÈm ÔÙ shift + r (×óÓҷת)£¬ÏÈm ÔÙ Ctrl + r (ÉÏÏ·ת)µÈÃüÁî¡£ ESC£¨ÖÕÖ¹²Ù×÷£©
±ê×¢ÏßÍøÃû£ºÓÃWire Name ¹¤¾ß£¨»òl£©½«M1ÓëM3µÄ³Äµ×Á¬Ïß¡¢M2ÓëM5µÄÕ¤¼«Á¬Ïß
4
·Ö±ð±êעΪvdd!ºÍgnode¡£
Èç·¢ÉúÁË´íÎóɾ³ý£¬Óá°Virtuoso Schematic Editing:¡¡±´°¿Ú×ó±ßÖмäµÄundo¹¤¾ß£¨»òu£©£¬×¢Ò⣺ֻÄָܻ´Ç°Ò»¸ö±»É¾³ýµÄ¶ÔÏó¡£×îºócheck and save.
²ã´Î»¯Éè¼Æ¡ª¡ªsymbolÉú³É [1]symbolÉú³É
½øÈë¡°Virtuoso Schematic Editing£ºmylib nand2 schematic¡±´°¿Ú¡£
Design -> Create Cellview->From Cellview
ÔÚCellview From Cellview´°¿Ú£¬From View NameÀ¸Îª£ºschematic£¬Tool / Data TypeÀ¸ÎªComposer-Symbol¡£ OK
ÔÚ¡°Symbol Generation Options¡±´°¿Ú£¬µ¥»÷Load/Save°´Å¦£¬OK
³öÏÖ¡°Virtuoso Schematic Editing£ºmylib nand2 symbol¡±´°¿Ú£¬Design->Check and Save
¸Ä±äsymbolÐÎ×´£ºÓÃmÃüÁSymbolµÄÉϱ߽çλÖúÍINA¹Ü½ÅÏòÉÏÒÆ¶¯Ò»Íø¸ñ£¬µÃµ½ÏÂͼ£º
ÓÃmÃüÁ3¸öcdsParam(n)ÒÆµ½·½¿òÍâÃæµÄÏ·½£¬½«cdsName()ÒÆµ½·½¿òÍâÃæÉÏ·½£¬½«×Ö·ûOUTÒÆµ½·½¿òÍâÃæÓÒ·½£¬É¾³ýÄÚ²¿ÂÌÉ«·½¿ò¡£
²ÎÕÕÏÂͼ£¬µ¥»÷²Ëµ¥Add -> Shape -> Circle£¬¼Ó¸öСԲȦ£¬Add -> Shape -> Arc£¬¼Ó¸öÔ²»¡£¨ÏÈÈ·¶¨ÉÏÏÂ2µã£¬Èç³öÏÖangle not allowed²»±Ø½ôÕÅ£¬ÉÔÎ¢ÒÆ¶¯Êó±êÊÔÒ»ÊÔ£¬Äã»á·¢ÏÖÈçºÎ»»¡£©£¬ÓÃm½«×ó±ßµÄºìÉ«Íâ¿òÓÒÒÆ£¨Ëõ¶ÌÔsymbolÍâ¿ò£©£¬2¸öPINÒÔ¼°Á¬Ïߣ¨INAºÍINB£©Í¬ÑùÓÒÒÆ£¬ÓÃLine¹¤¾ß»³öȱÉÙµÄ3±ß¡£ÉÏÊö²½ÖèÖУ¬¾ùʹÓÃESCÈ¡Ïû²Ù×÷ÃüÁî¡£ »ºÃºó£¬Design -> Check and Save
5
[2]´´½¨amplifierµÄsymbol£º
·ÂÕÕǰÊö²½Ö裬µÃµ½ÈçÏÂsymbol£º
Ìáʾ£ºÔÚ¡°Symbol Generation Options¡±´°¿Ú£¬½«iref ¹Ü½Å£¨Pin£©ÉèÖÃΪBottom Pin¡£
È»ºóɾ³ýcdsParam(3), rÐýתpinÃûiref£¬
£¨Ñ¡×ö£©É¾³ýºìÉ«Íâ¿ò£¬Ñ¡ÔñSelection Box¹¤¾ß£¬ÔÚ¡°Add Selection Box¡±ÖУ¬Automatic
Ìí¼ÓText£ºAdd -> Note -> Note Text£¬ÔÚ¡°Add Note Text¡±´°¿ÚµÄNote TextÎı¾¿òÖУºAmp ½«Êó±êÒÆÖÁ¡°Virtuoso Symbol Editing£ºmylib amplifier symbol¡±´°¿Ú£¬ÔÚÄãÏ£ÍûµÄλÖõ¥»÷£¬»Øµ½¡°Add Note Text¡±´°¿Ú£¬Cancel¡£ Save¡£
£¨Èç¹ûÄãÎÞ·¨»Ð±Ïߣ¬Êó±êÓÒ¼üµã»÷1¡¢2´Î¾Í¿ÉÇл»³É¹¦£©
6
½á¹ûÈçÏÂͼËùʾ£º
ʵÑé½á¹û²éÑ飺
1£®ÉêÇë½ÌÔ±»òÖú½Ì²éÑéÄã×öµÄʵÑé½á¹û¡£
2£®Close ËùÓд°¿Ú¡£
×¢Ò⣺ÄãËù»µÄ²¿·Öµç·£¬ÒÔºóÔÚspectre·ÂÕæÊµÑéʱ»áÓõ½¡£Òò´Ë²»ÒªÉ¾³ý£¡
7
Cadence ICÉè¼ÆÊµÑé
ʵÑé¶þ¡¢ Spectre Simulation
ʵÑéÄ¿µÄ£ºÕÆÎÕµçÂ·ÌØÐÔ·ÂÕæ·½·¨
½øÈëCadenceϵͳ£º
cd adelabic5
icfb &
ʵÑéÄÚÈÝÓë²½Ö裺 Ò»¡¢nand2µç··ÂÕæ
[1]¡¢´´½¨¼¤ÀøÐźŵç·ģ¿é£º
ÔÚCIW´°¿Ú£¨icfb-Log:/¡£©£ºTools->Library Manager£¬µ¯³öLibrary Manager ´°¿Ú£¬ÔÚLibraryÖÐÓ¦ÓÐmylib£¬µã»÷Ëü¡£
File->New->Cellview£¬
ÔÚµ¯³öµÄ¡°Create New File¡±´°¿ÚCell NameÀ¸ÖУ¬testnand2 ToolÀ¸ÖУ¬Ñ¡Composer-Schematic£¬ OK
ÔÚ¡°Virtuoso Schematic Editing:¡¡±´°¿ÚÖУ¬°´ÏÂͼ¼ÓÈëµ¥Ôª£¨Instance£©¡¢Pin²¢Á¬Ïß¡£
µã»÷Check and Save
ͼÖÐËùÓе¥ÔªÀ´×Ôanaloglib¿âsymbol£¬²ÎÊýÈçÏ£º Cell Name vpulse vpulse cap
Pin¹Ü½Å£º
Name: INA INB OUT, Direction: inputoutput
[2]¡¢±àд·ÂÕæÎļþ
1£®ÉèÖ÷ÂÕæ»·¾³¡£µã»÷Tools->Analog Environment
2£®ÉèÖ÷ÂտģÐÍÎļþ·¾¶¡£ÔÚµ¯³öµÄ¡°Analog Design Environment¡±£¨ADE£©´°¿Ú£¬µã»÷Setup->Simulation Files
ÔÚInclude PathÖмÓÉÏ ./Models £¬ ->OK
CDF Parameter
V0: Volt 1:0, Volt2:3, Delay:10n, Rise:500p,Fall:500p,width:10n,Period:20n V1: Volt 1:0, Volt2:3, Delay:15n, Rise:500p,Fall:500p,width:20n,Period:40n For C0: Capacitance: 100f
vdc For V2: DC votlage£º3£¬ Number of noise:0 (Ç°ÃæËùÓеçÔ´´ËÏî¾ùΪ0) vdd£¬gnd
3£®ÊäÈëÄ£ÐÍÎļþÃû¡£ÔÚADE´°¿Ú£¬µã»÷Setup->Model Libraries ÔÚModel Library FileÀ¸ÖУºallModels.scs,->add->OK
4£®Ñ¡ÔñÐèÒª²é¿´µÄÐźš£ADE´°¿Ú£¬µã»÷Outputs->To Be Plotted->Select On Schematic ÔÚSchematicÔÀíͼÖеã»÷3¸öPinµÄÁ¬Ïߣ¨Ïß»á±äÑÕÉ«£©¡£ÏàÓ¦µØ£¬´ËʱADE´°¿ÚOutputs¿òÖоÍÓÐÁËÄãËùÒª¹Û²ìµÄÐźš£
5. ±£´æ·ÂÕæ¼¤ÀøÎļþ¡£µã»÷ADE´°¿ÚµÄSession->Save State
Save AsÀ¸£ºstate1 OK
£¨¿ÉÒԹصô¡°Analog Design Environment¡±´°¿Ú£©¡£
[3]¡¢½«¼¤ÀøÄ£¿é¼ÓÈë±»·ÂÕæµç·¡£
1£®»Øµ½Schematic´°¿Ú£¬Éú³Étestnand2µ¥ÔªµÄsymbol Design -> Create Cellview->From Cellview
ÔÚCellview From Cellview´°¿Ú£¬From View NameÀ¸Îª£ºschematic£¬Tool / Data TypeÀ¸ÎªComposer-Symbol¡£ OK
ÔÚ¡°Symbol Generation Options¡±´°¿Ú£¬½«¡°Top Pins¡±À¸Öеġ°OUT INB INA¡±¿½±´µ½Right PinsÀ¸ÖУ¬É¾³ýTop PinsÀ¸ÖеÄÔÀ´ÄÚÈÝ£¬OK
³öÏÖ¡°Virtuoso Schematic Editing£ºmylib testnand2 symbol¡±´°¿Ú£¬Design->Check and Save£¬ Í˳ötestnand2µÄsymbol´°¿Ú¡£
2£® ÔÚ¡°Library Manager¡±´°¿Ú£¬´ò¿ªmylibÖÐÄãÔÚʵÑéÒ»»ºÃµÄnand2ÔÀíͼ£¬Ìí¼Ó
testnand2Ôª¼þ£¬°´ÏÂͼÁ¬Ïß¡£
±£´æÎļþCheck and Save¡£ £¨²»ÒªÍ˳öSchematic´°¿Ú£©
[4]¡¢·ÂÕæ 1£®¡°Virtuoso Schematic Editing:¡¡±´°¿Ú£¬Tools ->Analog Envienment
2£®¼Ó¼¤Àø¡£µ¯³öADE£¨Cadence Analog Design envirnment£©´°¿Ú£¬Session -> Load State¡£ ÔÚ¡°Loading State¡±´°¿Ú£¬LibraryÑ¡mylib£¬CellÑ¡testnand2, SimulatorÑ¡spectre£» State Name ¿òÖÐÑ¡£ºstate1, OK
3£®ÉèÖ÷ÖÎöģʽºÍ·ÂÕæÊ±¼ä¡£µã»÷ADE´°¿ÚµÄAnalyses->Choose AnalysisÑ¡ÏîÖÐtranÓ¦ÓÐЧ£»Stop Time: 200n EnabledÓÐЧ£¬ OK
4£®¼ÆËã¡£µã»÷ADE´°¿ÚÓÒ±ßNetlist and Run£¬µ¯³ö¡°Welcome to Spectre¡±´°¿Ú£¬OK ÄãÓ¦¸Ã¿´µ½spectre.outÎļþºÍ·ÂÕæ²¨ÐÎWaveform¡£
5£®Ñ¡ÔñWaveform´°¿ÚÉÏ·½²Ëµ¥Axes->Strips, ¸÷ÐźŲ¨ÐηֿªÏÔʾ¡£ 6£®ÓÃÊó±êÍÏWaveform WindowµÄ±ß½ç£¬·Å´óÏÔÊ¾ÇøÓò¡£ 7£®ÊÔÒ»ÊÔ£¬ÔõÑù¿´²¨ÐÎÊý¾Ý£¿
Íê³Éºó£¬ÔÚADE´°¿Ú£¬Session -> Quit
¶þ¡¢amplifierµç·£¨ÔËËã·Å´óÆ÷£©·ÂÕæ
[1]¡¢´ò¿ªÄãÔÚʵÑéÒ»»ºÃµÄamplifierÔÀíͼ£¬Ñ¡ÖеçÈÝ£¬Q£¬CapacitanceÖµÉèΪ800f£¬Save and CheckÍ˳ö¡£
[2]¡¢Ð½¨testamplifierµ¥Ôª
1¡¢²é¿´CIW´°¿Ú£ºTools->Library Manager£¬ÔÚLibraryÖÐÓ¦ÓÐmylib£¬µã»÷Ëü¡£ ÔÚLibrary Manager ´°¿Ú£¬File->New->Cellview£¬
ÔÚµ¯³öµÄ¡°Create New File¡±´°¿ÚCell NameÀ¸ÖУ¬testamplifier ToolÀ¸ÖУ¬Ñ¡Composer-Schematic OK
2¡¢Ìí¼ÓÔª¼þÈçÏÂͼ£ºAmp µ¥Ôª£¨Cell£©ÊÇÄãÔÚʵÑéÒ»»ºÃµÄamplifier CellµÄSymbol£¬ÆäÓ൥ԪÔÚanalogLib¿âÖС£
ͼÖгýamplifierÍâËùÓе¥ÔªÀ´×Ôanaloglib¿âsymbol£¬²ÎÊýÈçÏ£º Cell Name
CDF Parameter
vdc For V0¡¢V1£ºDC votlage£º5
vsin For V2£º AC phase:0,Offset:0,Amplitude:100m,Frequency:1M, delay:0 idc For I0£ºDC current£º500u,
res For R0¡¢R1£ºresistance·Ö±ðΪ10KºÍ100K vdd,gnd,vss Õý¸ºµçÔ´¡¢µØ
Pin¹Ü½Å£º Wire Name
Name: out, Direction: output
Inm, inp, ref (Ä¿µÄÊDz鿴·ÂÕæ²¨ÐÎʱ£¬Ò»Ä¿ÁËÈ»£»·ñÔòÐźÅΪnetXX)
3£®½«ÔÀíͼcheck and save! 4£®£¨Ñ¡×ö£©Ñ¡AmpÄ£¿é£¬e£¬Descend´°¿ÚOK£¬½øÈëAmpÄ£¿é(amplifier)£¬×Ôѡһ¸öÄãÏ£
Íû¼ì²éµÄÍøÏߣ¬q²é¿´ÍøÏßÊôÐÔ£¬Èç¹ûnet NameÊÇnetXX, ÈçºÎ½«Ëü¸ÄΪtst?
Design ->Make Editable£¬×ó±ß¹¤¾ßͼ±êÈ«ÓÐЧÁË£¬¹§Ï²Äã¸ã¶¨ÁË£¡ Save and Check
CTRL+e£¬Í˻ص½ÉÏÒ»²ã¡£Save and Check
[3]¡¢ÉèÖ÷ÂÕæ»·¾³
1£®µã»÷Tools->Analog Environment£¬µ¯³öADE´°¿Ú 2£®µã»÷Setup->Simulation Files ÔÚInclude PathÀ¸ÖÐ ./Models ->OK 3£®µã»÷Setup->Model Libraries
ÔÚModel Library FileÏÂÊäÈ룺allModels.scs->add->OK 4.µã»÷Outputs->To Be Plotted->Select On Schematic
ÔÚÔÀíͼÖеã»÷ÓëAmpµ¥Ôª4¸ö¹Ü½ÇÏàÁ¬µÄÐźÅÏߣ¨¼ÙÉèÊÇÄãÏ£Íû¹Û²ìµÄÐźţ©£¬Ïß»á±äÑÕÉ«£¬¶Ë¿Ú±»È¦£»Ñ¡AmpÄ£¿é£¬e£¬Descend´°¿ÚOK£¬½øÈëAmpÄ£¿é(amplifier)£¬µã»÷gnodeÏߣ¬ÔÙÑ¡ÖÐÒ»¸öÄãÏ£Íû¼ì²éµÄÍøÏߣ»
5£®´ËʱADE´°¿ÚOutputsÏÂÒÑÓÐÄãÐèÒª¹Û²ìµÄÐźţ¬µã»÷Session->Save State Save As£ºstate2->OK
[4]¡¢·ÂÕæÔËËã·Å´óÆ÷µÄ±Õ»·ÔöÒæ 1£®£¨ÈçδÍ˳öADE£¬±¾²½¿ÉÒÔ²»×ö£©ÔÚADE£¨Cadence Analog Design envirnment£©´°¿Ú£¬Session -> Load State¡£
ÔÚ¡°Loading State¡±´°¿Ú£¬LibraryÑ¡mylib£¬CellÑ¡testampifier, State NameΪstate2, OK 2£®µã»÷Analyses->choose ½«stop time´Ó100n¸ÄΪ10u ->OK
3£®µã»÷ADE´°¿ÚÓÒ±ßNetlist and Run£¬µ¯³ö¡°Welcome to Spectre¡±´°¿Ú£¬OK ÄãÓ¦¸Ã¿´µ½spectre.outÎļþºÍ·ÂÕæ²¨ÐÎWaveform¡£
4£®ÔÚWaveform´°¿Ú£¬²é¿´²¨ÐΣ¬Axes -> Strips, ¸÷ÐźŲ¨ÐηֿªÏÔʾ¡£
Èý¡¢DIY
]1]£®·ÂÕæÔ˷ŵĿª»·¹²Ä£ÔöÒæ
£¨Çë²»ÒªÏÈ¿´ÏÂÃæµÄÌáʾ£¬×Ô²éÒ»ÏÂ×Ô¼ºµÄÕÆÎճ̶ȣ© Ìáʾ£º
1¡£½«testamplifierµ¥Ôª£¨Cell£©copy ³Éamptest Cell¡£
2£®ÐÞ¸Äamptest£¬É¾³ýR0ºÍR1£¬AmpÄ£¿éµÄ2ÊäÈë¶Ì½Ó£» 3£®½«ÕýÏÒµçѹԴ¸ÄΪvpwl£¬ÀàËÆHSPICE£¬µÚ1¸öʱ¼äµçѹ¶ÔΪ£¨0,-5£©£¬µÚ2¶ÔΪ£¨10u,5£©¡£ [2]¡££¨Ñ¡×ö£©Ô˷ŵĿª»·²îÄ£ÔöÒæÈçºÎ·Â£¿
Cadence ICÉè¼ÆÊµÑé
ʵÑéÈý¡¢ Virtuoso Layout Editor
ʵÑéÄ¿µÄ£ºÊ¹ÓÃEDA¹¤¾ß½øÐаæÍ¼Éè¼Æ¡£
ÔËÐÐCadence°æÍ¼Éè¼ÆÈí¼þ£º
cp /eva01/cdsmgr/training_IC_data/VLE_5_0.tar . £¨ÌáÐÑ£º×îºóÊǿոñºÍСµã£© tar -vxf VLE_5_0.tar cd Layout
µã»÷ÆÁÄ»×óÏ·½Home Folder£¬ÔÚµ¯³öµÄ¡°File Manager¡±´°¿ÚÒ»Ö±ÕÒµ½Äã¸öÈËLayoutĿ¼ÏµÄ.cdsinit Îļþ £¨ÏÈÒª½«View²Ëµ¥ÖеÄShow Hidden ObjectÉèÖÃÓÐЧ£©£¬ ɾµôÏÂÁÐ2ÌõÖ¸ÁîÇ°ÃæµÄ·ÖºÅ¡°£»¡±Ê¹µÃÄã¿ÉÒÔʹÓÿì½Ý¼ü£º £»load(prependInstallPath(¡°samples/local/schBindKeys.il¡±)) £»load(¡°leBindKeys.il¡±)
layoutPlus & £¨×¢Òâ×ÖĸµÄ´óСд£¡ »òicfb &£©
ʵÑéÄÚÈÝÓë²½Öè
±ßѧ±ß×ö£º»INV°æÍ¼
Ò»¡¢¸ù¾ÝÉè¼Æ¹æÔò»nmos°æÍ¼£º
[1]¡¢ÔÚCIW´°¿ÚÖУ¬Ñ¡ÔñFile->Open, £¨ÈôÎÞnmos Cell£¬Ôò½¨Á¢New£© Library Name design Cell Name nmos View Name layout
OK¡£
[2]¡¢»poly£ºÔÚLSW´°¿ÚÖÐÑ¡Ôñpoly drawing²ã×÷Ϊµ±Ç°²ã
(LSWÉÏ·½ÓÐÒ»À¸Ìáʾ£¬»Èκβã֮ǰ±ØÐ뽫¸Ã²ãÉèΪµ±Ç°²ã¡£µ±Ç°²ã±ØÐë¿É¼û¡£ LSWÌáʾ£ºAV£ºÈ«¿É¼û£¬NV£ºÈ«²»¿É¼û£»AS£ºÈ«¿ÉÑ¡£¬NS£ºÈ«²»¿ÉÑ¡¡£ ¶ÔÓÚijһ²ã£¬Êó±êÖмü£º¿É¼û/²»¿É¼û£¬Êó±êÓÒ¼ü£º¿ÉÑ¡/²»¿ÉÑ¡£©
[3]¡¢µã»÷ Create->PathÃüÁ£¨±¾ÊµÑéʹÄãÕÆÎղ˵¥ÃüÁʵ¼ÊÉÏÄã¿ÉÒÔʹÓÃͼ±ê¹¤¾ßºÍ¿ì½Ý¼üÍê³ÉºÜ¶à²Ù×÷£©
[4]¡¢µ¥»÷×ó¼üÑ¡ÔñÒ»¸öÆðµã¡££¨´Ëʱ´°¿ÚÉÏ·½ÖмäµÄDX, DY×ø±ê±ä³É0£¬0£©
ËÉ¿ª×ó¼ü£¬ÏòÉÏÒÆ¶¯Êó±êÖÁDX, DY×ø±ê±ä³É0£¬4.8£»°´»Ø³µ¼ü»òÕßË«»÷Êó±êÍê³ÉËü¡£
Ìáʾ£ºÄã¿ÉÒÔÓñê³ßÈ·¶¨³¤¶È£¬µã»÷Windows->Create Ruler£»Èç¹ûÄãÏëɾ³ý±ê³ß£¬
Windows->Clear All Rulers¡£ËüÃǵĿì½Ý¼üÊÇʲô£¿
[5]¡¢»ndiff£ºLSWÖÐÑ¡Ôñndiff drawing²ã×÷Ϊµ±Ç°²ã£¬µã»÷Create->RectangleÃüÁî¡£ [6]¡¢µ¥»÷×ó¼üÑ¡ÔñÒ»¸öÆðµã£¨×¢Ò⣺´Ëʱ´°¿ÚÉÏ·½µÄDX, DY×ø±ê±ä³É0£¬0£©£» ËÉ¿ª×ó¼ü£¬Òƶ¯Êó±êÖÁDX, DY×ø±ê±ä³É4.8£¬3.6£»°´»Ø³µ¼ü£¬»òÕßË«»÷Êó±ê¡£ESC [7]¡¢Edit->MoveÒÆ¶¯ndiff²ã£¬²ÎÕÕÏÂͼ£¨DRC¹æÔò£©°ÑËü·ÅÔÚºÏÊʵÄλÖᣠnmosÉè¼Æ¹æÔò£¨ÔÊÐíµÄ×îС³ß´ç£©£º
(1) ndiff overlap of contact 0.9u
(2) contact minimum width 0.6u (3) contact spacing 0.6u
(4) contact to gate spacing 0.6u (5) poly extension 0.6u
(6) metal overlap of contact 0.4u (7) Device length 0.6u
Èç¹û»µÄ³ß´ç²»¶Ô£¬Ñ¡ÔñEdit->Stretch¿ÉÒԸıä´óС¡£
ÒÔÉϸ÷¸ö²Ù×÷ÃüÁî¶¼¿ÉÒÔÑ¡Óá°Virtuoso Layout Editing¡±´°¿Ú×ó±ß¹¤¾ßͼ±êÍê³É¡£
˵Ã÷£º±¾Éè¼Æ¹æÔò½öÊǰæÍ¼ÊµÑéµÄ¼ÙÉèÊý¾Ý£¬²¢·Ç0.6umÕæÊµ¹¤ÒÕ¡£
ÏÖÔÚ£¬ÄãÍê³ÉµÄ°æÍ¼Ó¦ÈçÏÂͼËùʾ£º
[8]¡¢»nmosÆ÷¼þÔ´¡¢Â©¼«µÄÍâÁ¬½Ócontact£º
metal1 drawing²ã×÷Ϊµ±Ç°²ã£¬ÔÚÔ´¡¢Â©¼«»³ß´çΪ1.4um*2.6umµÄ¾ØÐΣ¬
contact drawing²ã×÷Ϊµ±Ç°²ã£¬ÔÚÔ´¡¢Â©¼«¸÷»Á½¸ö³ß´çΪ0.6um*0.6umµÄcontact£¬ £¨ÄãÒ²¿ÉÒÔÏȻһ±ß£¬ÔÙÓÃ×ó±ß¹¤¾ßÀ¸ÖÐcopyÍê³ÉÁíÒ»±ß£©
[9]¡¢Save´æÅÌ£¬¹Ø±Õnmos°æÍ¼´°¿Ú¡£
¶þ¡¢¸ù¾ÝÉè¼Æ¹æÔò»pmos°æÍ¼¡£ Éè¼Æ¹æÔò£ºpmos
(1) nwell overlap of pdiff 0.4u (2) pdiff overlap of contact 0.9u (3) contact minimum width 0.6u (4) contact spacing 0.6u
(5) contact to gate spacing 0.6u (6) poly extension 0.6u
(7) metal overlap of contact 0.4u (8) Device length 0.6u
ÔÚCIW´°¿ÚÖУ¬Ñ¡ÔñFile->New-> Cell View,È»ºóÊäÈëÒÔÏÂÄÚÈÝ Library Name design Cell Name pmos Tool Virtuoso ÕâʱView NameÀ¸ÖÐ×Ô¶¯Îª£ºlayout
OK¡£
²ÎÕÕÏÂͼ»pmos°æÍ¼¡£
²¿·Ö¾ØÐεÄ×îС³ß´çΪ£¨×îºÃ°´×îС³ß´ç»£¬ËäÈ»Äã¿ÉÒÔ»µÃÉÔ΢´óһЩ£©£º nwell =5.6um*8.0um pdiff=4.8um*7.2um metal1=1.4um*6.2um
Èý¡¢Íê³ÉINV(inverter Cell )°æÍ¼¡£ Éè¼Æ¹æÔò£ºinverter
[1]´ò¿ª£¨ÈôÎÞ£¬Ôò½¨Á¢£©inverterµ¥Ôª£¬·ÅÖÃ(instance)Ä㻺õÄnmosºÍpmos°æÍ¼£¨ÔÚCreate Instance´°¿Ú£¬BrowseÑ¡Ôñ£©, Á¬ºÃpolyºÍmetal1¡£
É裺metal1×îС¿í¶È=0.8um
ndiffÓënwell×îС¼ä¸ô=1um£¬±¾Àý¼ä¸ôÒÑ×ã¹»¡£
ÔÙ»Ò»¸önwell½«ÉÏÃæmetal1£¨vdd£©¸²¸Ç£¨ÒªÓëpmosµÄnwellÏཻµþ£©¡£
[2]¡¢MOS³Äµ×¼ÓµçÔ´£¨nwell£©ºÍµØ¡£
Instance£¬ÔÚpcells¿âÖÐÕÒµ½PTAPºÍNTAP£¬PTAP·ÅÔÚÉÏͼgnd½ðÊôÏßÉÏ£¬NTAP·ÅÔÚÉÏͼvdd½ðÊôÏßÉÏ¡£PTAPµÄ×÷ÓÃÊÇÁ¬½ÓgndºÍp³Äµ×£»NTAPµÄ×÷ÓÃÊÇÁ¬½ÓvddºÍnwell¡£
[3]¡¢polyÁ¬½Ómetal1¡£
Instance£¬ÔÚpcells¿âÖÐÑ¡M1_POLY·ÅÔÚpolyÊʵ±Î»ÖÃÉÏ£¨¼ûÉÏͼ£©¡£
[4]¡¢Ìí¼ÓÊäÈëºÍÊä³öPIN
1£®Ñ¡ÔñCreate->Pin,ÔÚCreate Shape Pin ´°¿ÚTerminal Names À¸£¬ÊäÈ룺
A Y gnd vdd
È»ºóÑ¡ÖÐDisplay Pin Name °´Å¦£¬ÈçÏÂͼ¡£
Hide
2£®Ñ¡ÔñLSW´°¿Úmetal1 pin(»òpoly pin)Ϊµ±Ç°²ã£¬ÔÚM1_POLYÉÏÓÃÊó±êÖ±½Ó»Ò»¸ö¾ØÐΣ¨²»ÒªÑ¡Ôñ×ó±ßµÄRectangle¹¤¾ßͼ±ê¡£ÈôÔÚLSWÖÐÑ¡Ôñpoly pinΪµ±Ç°²ã£¬Ôò»ÔÚpolyÉÏ£©£¬´ËʱA×Ö·û»á³öÏÖ£¬²¢ÇÒÓÐÒ»¸úÏßÁ¬½ÓA×Ö·ûºÍ¾ØÐοò£»°ÑA×Ö·û·Åµ½ºÏÊʵÄλÖá£
3£®Ñ¡Ôñmetal1 pin»Ò»¸ö¾ØÐÎÔÚÊä³öµÄºÏÊÊλÖ㬽«³öÏÖµÄ×Ö·ûY·Åµ½ºÏÊʵÄλÖᣠ4£®Í¬ÑùµÄ²½ÖèÒÀ´Î·ÅºÃgndºÍvdd.¡£
SaveÍ˳öinverter layout¡£
DIY£º
¸ù¾ÝÔÀíͼ»NOR2°æÍ¼
ÒªÇó£º1¡¢·ûºÏÉè¼Æ¹æÔò£» 2¡¢°æÍ¼Ãæ»ý¾¡Á¿Ð¡¡£
MOS³ß´ç£º(W/L)p=14.4um/0.6um£¬ (W/L)n=2.4um/0.6um¡£
Cadence ICÉè¼ÆÊµÑé
ʵÑéËÄ¡¢Diva Interactive Verification
ʵÑéÄ¿µÄ£ºÕÆÎÕDRCºÍLVSÑéÖ¤·½·¨
°æÍ¼»æÖƺóÒª¸ù¾Ýfoundry³§µÄ¹¤ÒÕÒªÇó½øÐÐDRC£¨Design Rule Checker£©¼ì²é£¬±à¼ºÃµÄ°æÍ¼±ØÐëͨ¹ýLVS£¨Layout Versus Schematic£©ÑéÖ¤£¬¼ì²éÊÇ·ñÓëschematicµçÔÀíͼÍêȫһÖ£»°æÍ¼Öл¹¿ÉÄÜ´æÔÚһЩÐü¿ÕµÄÆ÷¼þºÍÏßÍø£¬Í¨¹ýµçÆø¹æÔò¼ì²éERC(Electrical Rule Check)¿ÉÒÔ·¢ÏÖÕâЩ´íÎó¡£½øÐÐLVSºÍERC֮ǰ£¬ÐèÒªÓÃDivaÑéÖ¤¹¤¾ßÖеÄExtract³ÌÐò¶Ô°æÍ¼½øÐÐÆ÷¼þÌáÈ¡£»Extract»¹¿ÉÒÔ½øÐмÄÉú²ÎÊýÌáÈ¡£¬µç··ÂÕæ³ÌÐò¿ÉÒÔµ÷ÓÃÕâ¸öÊý¾Ý½øÐкó·ÂÕæ¡£
DIVA¹¤¾ß¼¯°üÀ¨ÒÔϲ¿·Ö£º 1£® Éè¼Æ¹æÔò¼ì²é£¨DRC£©
2£® ÌáÈ¡Extractor£º°üÀ¨Æ÷¼þÌáÈ¡¡¢°æÍ¼¼ÄÉú²ÎÊýÌáÈ¡£¨LPE£©¡¢¼ÄÉúµç×èÌáÈ¡£¨PRE£© 3£® µçÆø¹æÔò¼ì²é£¨ERC£© 4£® °æÍ¼ÓëÏß·ͼ±È½Ï£¨LVS£©
Ô¤±¸¹¤×÷£º
cp /eva01/cdsmgr/ training_IC_data/DivaInt_5_0.tar . tar -vxf DivaInt _5_0.tar cd diva
ʵÑéÄÚÈÝÓë²½Ö裺
µÚÒ»²¿·Ö£ºDRCÉè¼Æ¹æÔò¼ì²é
Ò»¡¢½øÈëDRC²Ëµ¥£º
[1]¡¢ icfb &
[2]¡¢ ÔÚCIW ´°¿Ú£¨icfb-Log:/¡£©,µã»÷Tools->Library Manager£» [3]¡¢LibraryÁбí¿òÖеã»÷design£»
CellÁбí¿òÖеã»÷peakDetect£»
ViewÁбí¿òÖÐË«»÷layout£» £¨»òÓÃÊó±êÓÒ¼üopen£©
(×¢£ºÕâÊÇ·åÖµ¼ì²âÆ÷µç·°æÍ¼£¬Äã¿ÉÒԲ鿴ÏàÓ¦µÄschematic Á˽âµç·ÔÀí) [4]¡¢ÔÚ³öÏÖµÄVirtuoso Layout Editing´°¿Ú£¬µã»÷Verify->DRC¡²Ëµ¥¡£
³öÏÖÏÂͼDRC´°¿Ú£º
¶þ¡¢²éÕÒij²ã£¨poly1²ã£©DRC´íÎó
[5]¡¢ÔÚDRC´°¿Ú£¬µã»÷ÓұߵÄSet Switches°´Å¥£¬ÔÚµ¯³öÁбíÖÐÑ¡Ôñpoly1£¬µã»÷OK£¬ÔÙµã»÷DRC´°¿ÚOK¡£
ÔÚlayout´°¿ÚÖиßÁÁÉÁ˸ÏÔʾpoly1´íÎó£¬ÄãÒ²¿ÉÔÚCIW´°¿Ú²é¿´DRCÖ´Ðнá¹û¡£ [6]£®ÔÚVirtuoso Layout Editing´°¿Ú£¬µã»÷Verify->Markers->Find¡¡£µ¯³öFind Marker¿ò¡£
[7]¡¢ÔÚFind Marker´°¿ÚÖÃZoom to Markers°´Å¦ÓÐЧ£¬µã»÷Next¡£
µ¯³ömarker text ´°¿ÚÏÔʾ´íÎóÐÅÏ¢£¬Èç¹û¿´²»µ½´íÎóÐÎ̬£¬°´ÏÂshift+f¡£
[8]¡¢µã»÷Virtuoso Layout Editing´°¿Ú×óÏ·½ Ruler¹¤¾ß»òk£¨°´ESCÈ¡Ïû¹¤¾ß£©£¬
²âÁ¿¸ßÁÁ±ß¿òpoly1¿í¶È£¬±È½Ïmarker text ´°¿ÚÏÔʾµÄ´íÎóÐÅÏ¢£¬°´shift+kÈ¡Ïû°æÍ¼Éϵijߴç±ê¼Ç¡£ ÔÚFind Marker´°¿Ú£º
µã»÷NextѰÕÒÏÂÒ»¸ö´íÎófλÖã¨PreviousÊDz鿴ǰһ¸ö´íÎ󣩡£ Á¬Ðøµã»÷Delete£¬Ö±µ½²»ÏÔʾ´íÎóΪֹ£¨ÆÁÄ»²»Ôٸı䣩£¬ µã»÷Cancel£¬fÈ«ÆÁ£¬¸ßÁÁÉÁ˸µÄ´íÎóÌáʾÏûʧÁË¡£
×¢Ò⣺Ä㲢û¸ÄÕý°æÍ¼´íÎó£¬Ö»Êǽ«´íÎóÌáʾdeleteµôÁË£¬ÈôÔÙ´Î×öDRC»á·¢ÏÖ´í
ÎóÒÀ¾É¡£
Èý¡¢ÁíÒ»ÖÖ²éÕÒDRC´íÎóµÄ·½·¨
[9]¡¢Ñ¡ÔñVerify->DRC¡£
[10]¡¢µã»÷Set switchs °´Å¥
ÔÚÁбíÖÐÑ¡ÔñallInterconnect£¬->OK£¬DRC´°¿Ú OK¡£ [11]¡¢DRC½áÊøºó£¨³öÏÖ¸ßÁÁÉÁ˸µÄ´íÎóÌáʾ£©£¬Ñ¡ÔñEdit->search¡£ ÔÚSearch´°¿Ú£º
ÉèÖÃZoom To Figure °´Å¦ÓÐЧ
ÔÚSearch for ²Ëµ¥£ºany shape£¬ ÔÚ in ²Ëµ¥£º current cellView [12]¡¢µã»÷Add Criteria, Search´°¿ÚÖмä³öÏÖÒ»ÐÂÑ¡ÔñÐС£
λÓÚSearch forÏÂÃæ×î×ó±ßµÄÑ¡¿òÄÚÈݸÄÖÃΪproperty£¬Íê³É±í¸ñÈçÏ£º
property name£ºdrcWhy = = metal1
µã»÷Apply¡£ÆÁÄ»½«ÏÔʾһ¸ömetal1´íÎó£¬ÓÉÓÚÄãµÄÉ趨£¬SearchÃüÁֻ²éÕÒmetal1 ´íÎó£¬×ܵĴíÎóÊýÔÚFigure countÀ¸ÏÔʾ¡£ [13]¡¢µã»÷¼¸´ÎNext
[14]¡¢ µã»÷Cancel, fÈ«ÆÁ¡£
ËÄ¡¢±ê×¢²»½øÐÐDRC»òExtractingµÄµ¥Ôª
[15]¡¢ÔÚlayout´°¿ÚÕÒµ½µ¥Ôªfiducial £¨¼ÙÉèËüÊǸö²âÊÔ»ù×¼µ¥Ôª£©
Ctrl+f£¨½öÏÔʾ¶¥²ãCell£©£¬Ôڵײ¿ÇøÓòÕÒµ½fiducialµ¥Ôª(²»ÒªÓëÓұߵÄfiducialdµ¥ÔªÅª»ìÁË)£»
[16]¡¢µã»÷Ñ¡ÖÐfiducialµ¥Ôª£¬shift+x½øÈëfiducialµ¥Ôª£»£¨ÉԵȣ©
[17]¡¢Í¨¹ýÌí¼ÓivIncludeValueÐÔÖÊ×èÖ¹DRC¶Ôfiducialµ¥Ôª½øÐмì²é£º
A£® ÔÚlayout´°¿ÚÖа´ÏÂshift+q£¬µ¯³öEdit Cellview Properties´°¿Ú B£® ÖÃproperty°´Å¥ÓÐЧ£¨ºÚ£© C£® µã»÷Edit Cellview Properties´°¿ÚÖеÄ×óÏ·½Add°´Å¥ D£® ÔÚµ¯³öµÄAdd property±í¸ñÉèÖÃÈçÏ£º Name ivIncludeValue
Type Int
Value2
E£® OK
F£® µã»÷Edit Cellview Properties´°¿ÚÖеÄOK£» G£® Save ±£´æfiducialµ¥Ôª°æÍ¼£» H£® shift+b£¬·µ»Øµ½ÉÏÒ»²ã°æÍ¼¡££¨ÉԵȣ© [18]¡¢ÔÚLayout Editing´°¿Ú£¬Verify¡ª>DRC£» [19]¡¢½«DRC±íÖеÄInclusion LimitÉèÖÃΪ0¡£ [20]¡¢OK¡£
²é¿´fiducialµ¥Ôª£¬²»ÔÙÓдíÎóÌáʾ³öÏÖ¡£
(×¢£ºfiducialµ¥ÔªÊÇÒ»¸ö°üº¬ÁËÐí¶à²»·ûºÏÉè¼Æ¹æÔòµÄ²âÊÔµ¥Ôª£¬Õâ¸öµ¥ÔªÓëµç·ûÓÐ
ÈκÎÁªÏµ£¬ÔÚʵ¼ÊµÄÐ¾Æ¬ÖÆÔì¹ý³ÌÖУ¬»áÓÐÕâÑùµÄµ¥Ôª´æÔÚ£¬ÕâÑùµÄµ¥ÔªµÄ×÷ÓÃÊÇʲô£¬ÄãÄÜÏëµ½Âð£¿)
ÊÔÒ»ÏÂf£¬Shift+f£¬Ctrl+fÓÐÊ²Ã´Çø±ð£¿
Îå¡¢¸ÄÕýDRC¼ì²é³öÀ´µÄ´íÎó
[21]¡¢¸ù¾ÝÇ°Ãæ½éÉܵĵÚÒ»ÖÖ·½·¨ÕÒµ½poly1µÄ´íÎó¡£ [22]¡¢Ctrl+£¨f½öÏÔʾ¶¥²ãCell£©£¬ÕÒµ½controlµ¥Ôª£¬µã»÷Ñ¡ÖÐcontrolµ¥Ôª£¬shift+x½øÈëcontrol
µ¥Ôª¡£
£¨×¢£º´íÎóÔÚin2ºÍvcapÖмäµÄcontrolµ¥ÔªÖУ¬±ØÐë½øÈëcontrolµ¥Ôª²ÅÄÜÐ޸ĴíÎó£© [23]¡¢ÔÙ´ÎVerify->DRC, ´íÎóÔÒòÊÇʲô£¿
CIWÖÐÌáʾÄãÓÐÏÂÁдíÎó£º
Minimum poly1 width = 0.6 (µ¥Î»um) Minimum poly1spacing = 1.0 Poly1 extension past pdiff = 0.4 Óñê³ßÁ¿Ò»Ï£¬´íÎóÔÒòÊÇʲô£¿ [24]¡¢Êó±ê×ó¼üÑ¡ÖиßÁÁµÄpoly1£¬q
[25]¡¢ÔÚEdit Path Properties´°¿Ú£¬½«WidthÀ¸0.4£¨u£©¸ÄΪ0.6¡£OK [26]¡¢Save
[27]¡¢CIWµÚ3¸ö´íÎóÌáʾÊÇÖ¸£¬poly1³¬¹ýpdiffµÄ×î¶Ì¶ͷӦΪ0.4u m£¬¶øNAND2µ¥Ôª
ÖÐ×ó±ßpoly1³¬¹ýpdiffµÄ¶ͷ½öΪ0.3um£¬ÐèÒª¸ÄÕýËü¡£
Õâ¸ö´íÎó³öÏÖÔÚcontrolµ¥ÔªÖеÄNAND2µ¥ÔªÖУ¬ËùÒÔ±ØÐë½øÈëNAND2µ¥ÔªÐ޸ġ£
1£©¡£f(È«ÆÁ)£¬È»ºóCtrl+f£¨½öÏÔʾ¶¥²ãCell£©£¬ÕÒµ½NAND2µ¥Ôª£¬µã»÷Ñ¡ÖÐNAND2µ¥Ôª£¬shift+x½øÈëNAND2µ¥Ôª¡£ 2£©¡£Ñ¡Öгö´ípoly1£¬q¡£ÔÚEdit Rectangle Properties´°¿Ú£¬½«TopÀ¸µÄÊý¾ÝÔö¼Ó0.1¡£ OK¡£ 3£©¡£Óñê³ß£¨k£©Á¿Ò»ÏÂpoly1¶ͷÊÇ·ñÔö¼Óµ½0.4ÁË¡£Shift+kÈ¡Ïû±ê³ß¡£ [28]¡¢Save ±£´æµ¥Ôª°æÍ¼£»
[29]¡¢shift+b£¬·µ»Øµ½ÉÏÒ»²ã°æÍ¼(controlµ¥Ôª)¡£Shift + f¡£ [30]¡¢Verify->DRC£¬£¨ÈÔÈ»ÊDzépoly1£©£¬´ËʱCIWÖ»Ìáʾ»¹ÓÐ1¸ö´íÎó£º
Minimum poly1spacing = 1.0¡£
Óñê³ßÁ¿Ò»Ï³ö´í´¦µÄÁ½¸öpoly1Ö®¼äµÄ¼ä¾à½öÓÐ0.4¡£
[31]¡¢Óñê³ß±ê³öPathÒÆ¶¯µÄλÖã¬ESC£¬½«³ö´ípoly1 PathÖÐÐÄÏßÍùÉÏÀ£¨s£©µ½ÕýȷλÖá£
×¢Ò⣺ѡÖÐÐÄÏßÊǼþ²»ÈÝÒ×µÄÊ£¬Äã¿ÉÒÔÏȽ«µã»÷poly1 drawingΪLSWµ±Ç°²ã£¬È»ºóµã»÷NSÖÃËùÓÐLSW²ã²»ÄÜÑ¡£¬ÔÙÓÃÊó±êÓÒ¼üµã»÷poly1 drawingʹÆä¿ÉÑ¡¡£ÔÚlayout´°¿Ú£¬shift+r£¬µã»÷³ö´ípoly1Ö±µ½Ëü±ßÑØ±ä³É´ÖéÙºìÉ«£¨²»Êǰ×É«£©£¬s£¬Òƶ¯Êó±êµ½ÖÐÐÄÏßÉϾͿÉÒÔÍ϶¯ÁË¡£
LSWÖÐAS¡£
ÒªÌØ±ðµ±ÐÄ£¬»òÐíÄã»á²úÉúеĴíÎ󣬱ÈÈçÒÆ¶¯ÁËÆäËü¶ÔÏ󣬾ÍÓÃESCÈ¡Ïû¡£ shift+k£¨È¡Ïû±ê³ß£©-> Verify/Marker/Find/Delete(È¡Ïû´íÎóÌáʾ)->Save
[32]¡¢£¬shift+b»Øµ½¶¥²ãÔÀíͼ£¬ÔÙ¶Ôpoly1½øÐÐDRC,£¬CIW´°¿ÚÌáʾ£ºTotal errors found: 0 Save
DIY
¶Ômetal1ºÍmetal2½øÐÐDRC²¢¸ÄÕý´íÎó¡£
£¨Ìáʾ£ºmetal1ÓÐÒ»¸ö´íÎó£¬metal2ÓÐÁ½¸ö´íÎó£©
µÚ¶þ²¿·Ö£º Extraction
Ò»¡¢ÔËÐÐextraction
[1]¡¢ÔÚpeakDetect°æÍ¼´°¿ÚÑ¡ÔñVerify->Extract¡ [2]¡¢ÉèÖÃExtractor±í¸ñ£º
ExtractMethodflat [3]¡¢µã»÷OK¡£Extraction¿ªÊ¼£¬ÔÚÔËÐйý³ÌÖÐÄã¿ÉÒÔÔÚCIW´°¿Ú¿´µ½ÔËÐÐÇé¿ö£¬Äã¿´µ½µÄ×îÖÕÐÅϢΪ£º
Total errors found : 0
Éú³ÉpeakDetectµ¥Ôªextracted View¡£
[4]¡¢½«peakDetect°æÍ¼´°¿Ú×îС»¯£¬Áô×÷ÒÔºóʹÓá£
¶þ¡¢²é¿´ExtractedÊÓͼ
[5]¡¢´ò¿ªpeakDetect µ¥ÔªextractedÊÓͼ
[6]¡¢½«in2ºÍvcapѹº¸¹Ü½Å£¨PIN·½¿é£©Ö®¼äµÄcontrolµ¥Ôª·Å´ó£¬·½·¨ÊÇÓÃÊó±êÓÒ¼ü°´×¡ÍϳöÒ»³¤·½ÇøÓò£¬È»ºóËÉ¿ªÊó±ê¡£Äã¿ÉÒÔ¿´µ½pmos£¬nmosÆ÷¼þ·ûºÅ£¬±íÃ÷Éè¼ÆÒѾ±»ÌáÈ¡£¬½øÒ»²½·Å´ó·ûºÅ£¬¿ÉÒÔ¿´µ½Æ÷¼þµÄ²ÎÊýÒ²ÒѾ±»ÌáÈ¡£» [7]¡¢°´ÏÂe [»òOptions->Display¡£¡£¡£]
[8]¡¢ÔÚDisplay Options±íÖУ¬Ñ¡ÖÐDisplay Control¶ÎµÄNets£¬µã»÷Apply
´ÓÆ÷¼þÒý½Å³ö·¢µÄ·ÉÏß˵Ã÷Æ÷¼þµÄÁ¬½ÓÒ²ÒѾ±»ÌáÈ¡
[9]¡¢Èç¹ûÒѾ¿´µ½·ÉÏߣ¬¹Øµô¸Õ²ÅÑ¡ÖеÄNetsÑ¡Ïµã»÷OK [10]¡¢f È«ÆÁ
[11]¡¢Ñ¡ÔñVerify->Probe¡£¬
×¢Ò⣺ֻÓÐExtractedºÍschematicÊÓͼ¿ÉÒÔ½øÐÐprobe [12]¡¢ÓÃÊó±ê½øÐÐÍøÂç̽²â£¨·½·¨Ò»£©
1£© ¡£ÔÚµ¯³öµÄProbing´°¿ÚÖеã»÷Ò»ÏÂAdd Net 2£© ¡£µã»÷extractedÊÓͼÖÐvinputѹº¸¹Ü½Å£¬Õû¸övinputÍøÂç±»¸ßÁÁÏÔʾ³öÀ´ [13]¡¢ÓÃÃû×Ö½øÐÐÍøÂç̽²â£¨·½·¨¶þ£©£º
1£©¡£µã»÷Add net 2£©¡£ÔÚCIW´°¿Ú(icfb-log£º/¡£¡£¡£)¼üÈë¡°vdd£¡¡±£¨°üÀ¨ÒýºÅ£©,Enter
Õû¸övdd£¡ÍøÂç±»¸ßÁÁÏÔʾ³öÀ´
[14]¡¢ ½âÊÍ̽²â½á¹û a£®Ñ¡ÔñOn CIWÑ¡Ïî½øÐнâÊÍ£¬ËùÓеĽâÊͽ«ÏÔʾÔÚCIW´°¿Ú b£®µã»÷Probing´°¿ÚÖÐ×óÏ·½Explain
c£®µã»÷vdd£¡Ñ¹º¸¹Ü½Å CIW´°¿ÚÖÐÏÔÊ¾ÍøµãµÄÃû³Æ£º Object type : net Object name : /vdd! [15]¡¢É¾³ý̽²â½á¹û a£®µã»÷Probing´°¿Ú Remove Nets b£®µã»÷vdd£¡£¬ËùÓйØÓÚvdd£¡µÄÏÔʾ±»È¡Ïû c£®µã»÷Remove all£¬ËùÓеĸßÁÁÏÔʾ±»È¥³ý [16]¡¢Probing ´°¿ÚCancel¡£
µÚÈý²¿·Ö£º LVS
Ò»¡¢ÔËÐÐLVS
[1]¡¢´ò¿ªpeakDetectµ¥ÔªµÄschematic£¬ÔÚextractedÊÓͼѡÔñVerify->LVS£¬ ΪÁË·½±ãÄã²Ù×÷£¬½«ÏÂÁм¸¸ö´°¿ÚÅÅÁгɣº
Schematic extracted CIW LVS ±í¸ñ
[2]¡¢ÔÚLVS ±í¸ñ
ÔÚschematicºÍextractedÏÂÃæ£¬ÓÃBrowseÉèÖúÃÄã´ò¿ªµÄLabrary¡¢CellºÍ
View¡£
¼ì²éLVS±í¸ñÊÇ·ñÈçÏÂÉèÖãº
Run Directory£ºLVS
Rules File £ºdivaLVS.rul
Rules library £º design
[3]¡¢µã»÷Run£¬ÉԵȣ»µ¯³öAnalysis Job Succeeded¶Ô»°¿ò£¬µã»÷OK¡£
¶þ¡¢²ì¿´LVSÔËÐнá¹û
[4]¡¢ÔÚLVS±í¸ñÖеã»÷Info£¬µ¯³öDisplay Run Information±í¸ñ¡£
[5]¡¢µã»÷Log File¡£³öÏÖÒ»¸öÎı¾Îļþsi.log£¬ÔÚÎļþµÄ×îºóÓдíÎ󱨸档 [6]¡¢¹ØµôLog File£¬²¢½« Display Run Information±í¸ñcancel¡£
£¨ÒÔÏÂÑ¡×ö£©
Èý¡¢²éÕÒUnmatched Device ºÍ Terminals ´íÎó
[7]¡¢ÔÚLVS±í¸ñµã»÷Error Display
[8]¡¢°Ñ¹â±êÒÆµ½Extracted°æÍ¼´°¿Ú£¬°´ÏÂEsc£¬½«extracted´°¿ÚÉèÖÃΪ»î¶¯´°¿Ú [9]¡¢ÔÚLVS Error Display±í¸ñ£º
1)¡£Ñ¡ÖÐ×óϽÇNone£¬Çå³ýÔÑ¡Ïî 2£©¡£Unmatched À¸£ºinstancesºÍterminalsÖÃΪÓÐЧ 3£©¡£Display À¸£ºall
ÔÚextracted°æÍ¼Öв»Æ¥ÅäµÄPIN£¨terminals£©ºÍÆ÷¼þvss£¡£¬gnd!ºÍvdd!£¬ÒÔ¼°fiducialdµ¥ÔªÖеÄnmosºÍpmos±»¸ßÁÁÏÔʾ£»
×¢£ºÔÚ²»Æ¥Åä´íÎóÖУ¬Óй¤ÒÕ²âÊÔ»ù×¼µ¥Ôª£¨fiduciald£©¶øÒýÆðµÄÐé¼Ù´íÎó¡£ [10]¡¢ÔÚLVS Error Display±í¸ñÖеã»÷Explain£¬È»ºóµã»÷ÈÎÒ»¸ö¸ßÁÁÏÔʾÆ÷¼þ£» [11]¡¢µã»÷InfoÔÚLVS±í¸ñ£¬µ¯³öDisplay run information±í¸ñ¡£
[12]¡¢µã»÷Extracted¶ÎÖеÄBad Terminals£»³öÏÖÒ»¸öº¬Óлµ½ÓÏß¶ËÐÅÏ¢µÄÎı¾Îļþ¡£
[13]¡¢ä¯ÀÀÒ»ÏÂÎı¾£¬È»ºó¹ØµôËü¡£
[14]¡¢ÔÚLVS Error Display±íÖУ¬µã»÷Clear Display
[15]¡¢½«LVS Error Display ºÍDisplay Run Information±í¸ñCancel¡£
ËÄ¡¢Åųý¶Ôfiduciald»ù×¼²âÊÔµ¥ÔªµÄ¼ì²â£¬¸üÕýÐé¼ÙµÄ²»Æ¥Åä´íÎó
¶Ôfiducialdµ¥ÔªÌí¼ÓivIncludeValueÊôÐÔ
[16]¡¢´ò¿ªfiduciald°æÍ¼
[17]¡¢±à¼´Ëµ¥ÔªµÄÊôÐÔ£¬½«ivIncludeValueÊôÐÔÖµÉèΪ2£º
a£® ÔÚ°æÍ¼´°¿Ú°´ÏÂshift+q
b£® ÔÚEdit Cell Properties±í¸ñÖеã»÷Property°´Å¥ c£® µã»÷Add
d£® ÉèÖÃAdd Property ±í¸ñ£º
Name ivIncludeValue
Type int
Value2
e£®ÔÚAdd PropertyºÍEdit Cell PropertiesÁ½¸ö±í¸ñÖзֱðµã»÷OK [18]¡¢±£´æ²¢¹Øµôfiduciald°æÍ¼¡£
Îå¡¢ÖØÐ½øÐÐExtracting ºÍ LVS
[19]¡¢´ò¿ªpeakDetect °æÍ¼
[20]¡¢Ñ¡ÔñVerify->Extract,½«Inclusion LimitÉèÖÃΪ0£¬ËùÓÐivIncludeValue´óÓÚÁãµÄµ¥Ôª¶¼½«±»Åųý£¬²»±»¼ì²â£¬µã»÷OK¡£
[21]¡¢¹ØµôpeakDetect µ¥ÔªLayout°æÍ¼´°¿Ú¡£
[22]¡¢ÔÚpeakDetect µ¥Ôªextracted´°¿Ú£¬Ñ¡ÔñWindow¡ª>Redraw£¬Ë¢ÐÂextracted´°¿Ú£¬È·¶¨fiducialºÍfiducialdµ¥Ôª²»ÔÙÏÔʾ£»
[23]¡¢ÔÚLVS±íÖеã»÷Run£¬³öÏÖ¶Ô»°¿ò£¬ OK¡£
[24]¡¢ÓÃLVS±íµÄInfoÀ´²é¿´ÔËÐнá¹û£¬µã»÷Log file£¬²é¿´½á¹û£¬ÓÐ1¸ömergedÀàÐ͵Änet£¨´íÎ󣩡£
¹Øµôsi.logÎļþ¡£
Áù¡¢ÔÚÔÀíͼÖвéÕÒmerged net
ÔÀíͼÖеÄmerged errorÊÇÓÉÓÚ°æÍ¼ÖÐÓжÌ·¡£
[25]¡¢ÔÚLVS±í¸ñµã»÷Error Display¡£ [26]¡¢ÔÚÔÀíͼ´°¿Úµã»÷£¬°´ÏÂEsc¼¤»î¡£
[27]¡¢ÔÚLVS Error Display±í¸ñ£¬µã»÷None£¬È»ºóMerged ÏîÑ¡Ôñnets£¬µã»÷DisplayÀ¸ First£¬×ó±ßµÄ·Å´óÆ÷ºÍÊä³ö net±»¸ßÁÁÏÔʾ£¬ÔÚ LVS Error Display±í¸ñÓнâÊÍ£º
Net /I32/net18 merged with /net12.
×¢£ºÕâ¸ö´íÎóÊÇÓÉÓÚamplifierµ¥Ôª°æÍ¼Éϲ»Ð¡ÐÄ·ÅÁËÒ»¿é¾ØÐεÄmetal1ÒýÆðµÄ¡£ËüÒýÆðÁËÔË·ÅÊä³önet12ºÍamplifier£¨Æ÷¼þÃûI32£©ÖÐnet18µÄ¶Ì·£¨´íÎóÁ¬½Ó£©¡£Äã¿ÉÒÔÓÃq²é¿´Ò»ÏÂÍøÏß±êºÅ¡£
[28]¡¢ÔÚÔÀíͼ´°¿ÚÑ¡Ôñ³ö´íamplifier£¬°´ÏÂshift+x£¨ÉԵȣ©£¬½øÈëÏÂÒ»²ã¡£ [29]¡¢½«LVS Error Display±í¸ñCancel¡£
Æß¡¢ÔÚschematicÔÀíͼºÍExtractedÊÓͼ֮¼ä½øÐн»»¥Ì½²é£¨Cross Probe£©
[30]¡¢ÔÚpeakDetectµ¥Ôªextracted ÊÓͼ£¬Ñ¡ÔñVerify-Probe£¬ÔÚÔÀíͼÖа´ÏÂEsc¡£ [31]¡¢Ñ¡ÖÐProbing±í¸ñÖеÄcross probe matched£¬µã»÷Add net,ÔÚschematicÔÀíͼÖÐÓÃÊó±êÑ¡Ôñ³ö´íµÄÊä³ö net£¬ÔÚextracted ÊÓͼÖеÄÏàÓ¦net±»¸ßÁÁÏÔʾ¡£ [32]¡¢ÓÃÏÂÁз½·¨ÕÒ³ö´íÎó£º
·ÖÎöһϴíÎóλÖ㺲ÎÕÕschematicËüÓ¦¸ÃÔÚ¾§Ìå¹ÜQ0µÄ¼¯µç¼«ºÍ»ù¼«Ö®¼ä¡£ ½«extracted³ö´íÇøÓò·Å´ó¡£µã»÷Add Dev£¬ÔÚÔÀíͼÖеã»÷Q0£»ÓÃͬÑù·½·¨Ïȵã»÷Add dev£¬ÔÙµã»÷Æ÷¼þC0£¬R0£¬ÄãÄܹ»Åжϳöextracted°æÍ¼ÖÐQ0µÄ¼¯µç¼«ºÍ»ù¼«Â𣿠ÔÚextractedÊÓͼÖÐÕÒµ½¶Ì·´íÎóÁËÂ𣿣¨µçÈÝÏÂÃæ£©
[33]¡¢µã»÷Probing±í¸ñÖÐRemove All£¬È»ºócancel probing±í¸ñ¡£ÔÚamplifierÔÀíͼÖа´ÏÂshift+b£¬·µ»Øµ½peakDetectÔÀíͼ¡£
°Ë¡¢¸üÕý°æÍ¼ÖжÌ·´íÎó
[34]¡¢ÔÚpeakDetectµ¥ÔªlayoutÊÓͼÖÐɾµô¸Õ²ÅÕÒµ½µÄ¾ØÐÎmetal1²¢Save£¬ÖØÐ¶Ôlayout½øÐÐextract£¬extracted°æÍ¼ÖеĶÌ·metal1ÏûʧÁË£»Save extracted °æÍ¼¡£
[35]¡¢¶Ôextracted°æÍ¼½øÐÐVerify->LVS->Run£¬²é¿´info->Log file£¨ÔÚDisplay Run
Information±í¸ñÖУ©£¬·¢ÏÖschematicÔÀíͼÖеÄmerged netÒѾûÓÐÁË¡£
ÔÚ°æÍ¼Öл¹ÓÐ1¸ömerged net£¬2¸örewiredºÍ1¸ösize errors¡£ ¹Øµôsi.logÎļþ¡£
¾Å¡¢ÕÒµ½ layoutÖÐ ¿ªÂ·´íÎó
°æÍ¼ÖеÄmerged netµäÐÍ´íÎóÊǰæÍ¼ÖÐÓпªÂ·¡£ [36]¡¢ÔÚLVS±í¸ñµã»÷Error Display¡£ [37]¡¢ÔÚExtracted´°¿Úµã»÷£¬°´ÏÂEsc
[38]¡¢ÔÚLVS Error Display±í¸ñ£¬µã»÷None£¬È»ºóÑ¡ÔñMerged À¸ÖÐnets£¬µã»÷Display
À¸ÖÐAll£¬extracted°æÍ¼ÖÐÉÏ·½controlµ¥ÔªÖз´ÏàÆ÷µÄÊäÈë±»¸ßÁÁÏÔʾ¡£ LVS Error Displa±í¸ñÖгöÏÖÏÂÃæµÄ½âÊÍ£¨ÄãµÄnetÃû×Ö¿ÉÄܲ»Ò»Ñù£©£º
Net /25 merged with /19 [39]¡¢Ñ¡ÖÐLVS Error Display´°¿ÚÖеÄAuto-zoom£¬ÔÙµã»÷DisplayÀ¸First£¬ Extracted °æÍ¼ÖÐNand2 µÄÊä³öºÍinvÊäÈë¶¼±»ÏÔʾ³ö´í£¬ËµÃ÷ÕâÁ½¸öÆ÷¼þµÄÁ¬½Ó±»¶Ï¿ªÁË¡£
[40]¡¢ÔÚpeakDetectµ¥ÔªlayoutÊÓͼÖнøÈëcontrol µ¥Ôª£¨shift + x£©£¬
1£© ÉèLSW´°¿Ú AS£¬AVÓÐЧ£¬É赱ǰ²ãΪpoly1 drawing£¬µã»÷Path¹¤¾ßͼ±ê»Ò»polyl1£¨ÉèΪ0.8um¿í¶È£¬²»µÍÓÚ0.6um¶¼¿É£©½«invÊäÈëpoly1Á¬µ½Nand2 µÄÊä³ömetal1ÉÏ£¬
2£©Instance£¬ÔÚdesign¿âÖÐÑ¡M1_POLY1·ÅÔÚpoly1Óëmetal1½»µþλÖÃÉÏ¡£ ÕýÈ·½á¹ûÈçÏÂͼËùʾ£º
Save.
shift + b·µ»Ø¶¥²ã°æÍ¼¡£
[41]¡¢¸ÄÕýºóÖØÐ½øÐÐextractºÍLVS£¬²é¿´log file£¬merged net ´íÎóûÓÐÁË¡£ ¹Øµôsi.logÎļþºÍDisplay Run Information±í¸ñ¡£
Ê®¡¢²éÕÒ size errors
[42]¡¢ÔÚschematic»òÕßextracted´°¿ÚÖа´ÏÂEsc£¬ÔÚLVS ±í¸ñµã»÷Error Display£»
[43]¡¢ÔÚError Display±íÖУ¬µã»÷None£¬Unmatched Ñ¡parameters£¬È»ºóDisplayÑ¡All¡£
Size error ½«ÔÚÁ½¸öÊÓͼÖÐÏÔʾ³öÀ´£¬extracted ÖмäµÄnmosºÍÔÀíͼÖеÄnmos¶¼±»¸ßÁÁÏÔʾ¡£
[44]¡¢µã»÷Auto-zoom£¬first£¬ÔÚLVS error Display Öн«ÏÔʾÏà¹ØµÄ½âÊÍ£º Gate width error: Sch=2e-06 Lay=4e-06,Gate length: Sch=1e-05 lay=1e-05 [45]¡¢Cancel LVS Error Display ±í¸ñ¡£
[46]¡¢ÔÚpeakDetect layout°æÍ¼ÖÐÕÒµ½´íÎóµÄnmosµ¥Ôª£¬Êó±ê×ó¼üµã»÷Ñ¡ÖУ¬°´q½øÈë±à¼ÊôÐÔ£¬µã»÷Parameter£¬½«width¸ÄΪ2u£¬OK¡£
[47]¡¢´ËʱnmosµÄ¹µµÀ¿í¶ÈÒѾ¸ÄºÃ£¬½«nmosÒÆ¶¯µ½ºÏÊʵÄλÖᣠ[48]¡¢Save¡£¹Ø±ÕËùÓеĴ°¿Ú¡£
ICÉè¼ÆÊµÑé
ʵÑéÎå¡¢Active HDLµ÷ÊÔ¡¢·ÂÕæVerilog HDL
ʵÑéÄ¿µÄ£ºÊìϤActive HDL·ÂÕæÈí¼þµÄʹÓ㬳õ²½ÕÆÎÕÀûÓÃVerilog HDLÉè¼ÆÊý×ÖϵͳµÄ»ù±¾²½Öè¡£ ʵÑéÄÚÈݺͲ½Ö裺 Ò»¡¢´´½¨¹¤³ÌÓë±àÒë 1¡¢ ´´½¨¹¤³Ì
File-New-Workspace£¬´´½¨Ò»¸ö¿ÕµÄ¹¤³Ì¡£
½«ÐµĹ¤³ÌÃüÃûΪtutorial£¬²¢Ö¸¶¨±£´æÂ·¾¶¡£Îñ±Ø±£Ö¤Add New Design to WorkspaceÉèÖÃÓÐЧ£¬µãOK£¬Æô¶¯Éè¼ÆÏòµ¼New Design Wizard¡£
2¡¢ Ñ¡ÖÐCreate an empty design£¬Next¡£
3¡¢ ΪÉè¼ÆÖ¸¶¨×ۺϡ¢Æ÷¼þÀàÐÍ¡¢±à³ÌÓïÑÔµÈÆäËüÐÅÏ¢£¬±¾ÊµÑéÉè
ÖÃÈçÏ£¬Next¡£
4¡¢ ´ò¿ª´´½¨Ô´Îļþ´°¿Ú£¬design nameȡΪtutorial_Verilog£¬Éè¼Æ
·¾¶µÈ½ÓÊÜActiveµÄĬÈÏÉèÖᣵãÏÂÒ»²½£¬Ïòµ¼×îºóÒ»²½£¬µãÍê³É¡£
5¡¢
ÏÖÔÚ£¬Äã¿ÉÒÔ¿´µ½Éè¼Æä¯ÀÀÆ÷£¨Design Browser£©ÀïÓÐÉÏÃæ´´
½¨µÄÉè¼Ætutorial_VerilogÁË¡£
ÔÚÉè¼Æä¯ÀÀÆ÷ÖÐÕ¹¿ªtutorial_Verilog£¬Ë«»÷Add New Files,Æô¶¯Ïòµ¼£¬µã»÷Verilog Source Codeͼ±ê£¬ÎļþÃûcnt_10b,È·¶¨¡££¨cnt_10bµÄ´úÂë¼û¸½1£©¡£
ÔÚHDL EditorÊäÈëcnt_10b Verilog´úÂë.
6¡¢ ±àÒëÄãµÄÔ´´úÂ룬ÓÐÓï·¨´íÎó¼´¸ÄÕýÖ®¡£ÓÒ¼üµã»÷Éè¼Æä¯ÀÀÆ÷
µÄcnt_10b.v£¬Ñ¡Compile£¬ÈçÏÂͼ¡£
±àÒë½á¹û³öÏÖÔÚÏÂÃæµÄ¿ØÖÆÌ¨´®¿Ú£¬ÏÖÔÚÄãµÄ±àÒë½á¹ûÓ¦¸ÃÈçÏ£º
ÌÈÈôÄãûÓз¢ÏÖ¿ØÖÆÌ¨£¨Console£©£¬µã»÷²Ëµ¥À¸µÄConsoleͼ±ê×¢ÒâÏÖÔÚÄãµÄÉè¼Æä¯ÀÀÆ÷Ó¦¸Ã°üº¬±àÒëºóÄ£¿é¡£
¡£
¶þ¡¢·ÂÕæ
´úÂë±àÒëÍê³ÉûÓÐÓï·¨´íÎóºó£¬¿ÉÒÔÀûÓÃActive HDLµÄ²¨ÐÎ±à¼Æ÷£¨Waveform Editor£©×ö¹¦ÄÜ·ÂÕæ¡£
1¡¢ ÉèÖö¥²ãÄ£¿é(Top-Level)¡£ÓÉÓÚÉÏÃæµÄÀý×ÓÖ»ÓÐÒ»¸ömodule£¬
¹ÊÒѾÊÇTop£LevelÁË¡£
2¡¢ µã²Ëµ¥À¸µÄSimulation²Ëµ¥£¬ÏÂÀ²Ëµ¥ÖÐÑ¡ÔñInitialize
SimulationÑ¡Ïî
×¢Òâ´ËʱÉè¼Æä¯ÀÀÆ÷µÄStructure tab±»×Ô¶¯µ÷µ½Ç°Ì¨¡£
3¡¢ µã»÷¹¤¾ßÀ¸ÉϵÄNew Waveform°´Å¥
ÒÔ´ò¿ªWaveform
Editor¡£´ËʱÉè¼Æä¯ÀÀÆ÷µÄ´®¿ÚÏÔʾģ¿éÖеĴúÂëÖÐÉùÃ÷µÄËùÓÐÐźţ¬
4¡¢ Ñ¡ÔñÐèÒª·ÂÕæµÄÐźŲ¢½«ÆäÍϵ½²¨ÐÎ±à¼Æ÷´®¿Ú¡£
±¾ÀýÑ¡ÔñËùÒÔÐźţ¬µãCLK£¬°´×¡ShiftµãFULL_I,ÈçÉÏͼ£¬°´×¡Êó±ê×ó¼ü½«ËùÒÔÐźÅÍϵ½ÓұߵÄWaveform Editor¡£
5¡¢ ΪÊäÈëÐźÅÌí¼Ó²âÊÔʸÁ¿¡£±¾ÊµÑéÊÇÏÈͨ¹ý»²¨ÐÎÌí¼Ótest
vectors£¬¶øÃ»Óбàдtestbench¡£ÓÒ¼üµã»÷RESET£¬Ñ¡Stimulators
ÔÚµ¯³öµÄStimulators´°¿ÚÖУ¬µãSignals±êÇ©£¬ÔÚÓұߵÄTypeÀïÑ¡f(t) Formula£¬ÔÚValue fieldÀàÐÍÀΪRESET¸³Öµ£º £¨1£¬0ns£©£¬£¨0£¬200ns£©¡£
½ÓÊÜÆäËüÉèÖ㬵ãApply¡£
6¡¢ ²»ÐèÒª¹ØµôStimulators´°¿Ú£¬ÔÚWaveform Editor´°¿ÚµÄµã
CLOCK£¬CLOCKÐźÅ×Ô¶¯¼Óµ½Stimulators¡£CLOCKµÄÖÜÆÚÉèΪ10nsÈçÏÂͼ£º
7¡¢ ½«ENABLEÐźÅÒ»Ö±ÖÃΪÓÐЧ£¬Èçͼ¡£Apply£¬Close¡£
8¡¢ ½«·ÂÕæÊ±¼äÉèΪ2000 ns£¬
£¬µãRun For°´
Å¥£¬·ÂÕæµ½Ö¸¶¨Ê±¼ä£¬Í¬Ê±·ÂÕæ½á¹û²¨ÐÎÏÈÉúÔÚWaveform EditorÀï¡£
²é¿´²¨ÐοÉÄÜ»áÓõ½ÏÂÃæ¼¸¸ö¹¤¾ßͼ±ê£º
9¡¢ ¿ÉÒÔ°Ñ·ÂÕæ½á¹û±£´æÎª.awf¸ñʽµÄÎļþ¡£µã±£´æ£¬½«½á¹û±£´æ
Ϊvectors.awf¡£½«Éè¼Æä¯ÀÀÆ÷µÄ±êÇ©Çл»µ½Files£¬×¢Òâvectors.awfÒѾ¼Óµ½¹¤³ÌÖС£
Èý¡¢ÀûÓÃtestbench·ÂÕæ
1¡¢Ç°Ãæ±£´æµÄvectors.awf¿ÉÒÔÀûÓÃÏòµ¼À´Éú³ÉÒ»¶Îtestbench´úÂë¡£Õ¹¿ªcnt_10b.v£¬ÓÒ¼üµã»÷cnt_10bÄ£¿é£¬Ñ¡Generate Testbench£¬´ò¿ªtestbenchÉú³ÉÏòµ¼¡£
2¡¢ÔÚÏòµ¼µÄµÚÒ»²½ÖУ¬Ñ¡Ôñ¶¥²ãÄ£¿é£¬±¾ÊµÀýÒòΪ¾ÍÒ»¸ömodule£¬¹ÊÔÚÏÂÀ²Ëµ¥ÖÐÑ¡cnt_10b£¬Test Bench TypeÑ¡ÔñSimple£¬ÏÂÒ»²½¡£
2¡¢Ñ¡Test vectors from file¸´Ñ¡¿ò£¬µãBrows°´Å¥Ö¸¶¨²âÊÔÏòÁ¿ÎļþµÄλÖá£
3¡¢Ö¸¶¨Ç°Ãæ±£´æ¹ýµÄvectors.awf£¬Èç¹ûûÓÐvectors.awf£¬Çë×¢Òâ¼ì²éÎļþÀàÐͱØÐëÊÇwaveform files£¨*.awf£©¡£´ò¿ªvectors.awf¡£
7¡¢ Active HDL»á×Ô¶¯°Ñvectors.awfÖеÄÐźÅ×Ô¶¯¼Óµ½Signal
found in file´°¿Ú£¬²¢ÇÒ»á¼ì²é.awfµÄÐźÅÊDz»ÊǸúcnt_10bµÄÐÅºÅÆ¥Å䣬Èô²»£¬Ôò»á±¨´í¡£¿ØÖÆÌ¨ColeÏÔʾno errors£¬µãÏÂÒ»²½
8¡¢ ÕâÒ»²½Ö¸¶¨test benchµÄmoduleÃûµÈµÈ£¬½ÓÊÜËùÓеÄĬÈÏÉèÖã¬
µãÏÂÒ»²½£º
9¡¢ µãÍê³É½áÊøtest bench²úÉúÏòµ¼¡£
10¡¢ ×¢ÒâÉè¼Æä¯ÀÀÆ÷Àï´Ëʱ¶àÁËÒ»¸öÃûΪTestBenchµÄÎļþ¼Ðͼ±ê£¬
µãÎļþ¼ÐÇ°ÃæµÄ¡°£«¡±Õ¹¿ªÖ®£¬¿ÉÒÔ·¢ÏÖ´ËÎļþ¼Ð°üº¬ÏÂÃæÁ½¸öÎļþ£º
z cnt_10b_TB.v: Test Bench Ô´Îļþ£»
z cnt_10b _TB_runtest.do£º×Ô¶¯Ö´ÐзÂÕætestbenchµÄºêÃüÁî¡£
11¡¢ ÓÒ¼üµã»÷cnt_10b _TB_runtest.do£¬Ñ¡ÔñExecute£¬Õâ¸öÃüÁî°üÀ¨
Á˱àÒëtest benchÎļþºÍÔËÐзÂÕæ¡£ÔËÐк󣬷ÂÕæ²¨Ðλá³öÏÖÔÚWaveform Editor´°¿Ú¡£
ÉÏÃæ¾ÍÊÇÒ»¸öÀûÓÃActive HDL×öVerilog HDLµ÷ÊÔ·ÂÕæµÄ´ó¸ÅÁ÷³Ì¡£
ËÄ¡¢·ÂÕÕÉÏÃæ²½Ö裬×öÒ»¸ö¼òµ¥µÄÓÐÏÞ״̬»ú(verilog´úÂë¼û¸½2)µÄµ÷ÊÔ·ÂÕæ£¬µ÷ÊÔ¡£
¡¾DIY¡¿±àдһ¸öDFF£¨D Flip-Flop£©¹¤³Ì£¬Ð´³öD´¥·¢Æ÷verilog»òÕß VHDL´úÂ룬²¢·ÂÕæ£¬±È½ÏÓëD latchµÄÒìͬµã¡£
¸½1 cnt_10b.vµÄverilog´úÂë
module cnt_10b(CLK,COUNT,ENABLE,FULL,RESET); input CLK;
input ENABLE; input RESET;
output [9:0]COUNT; output FULL;
reg [9:0]COUNT_I; reg FULL_I;
always @ (posedge CLK or posedge RESET) begin
if (RESET) // asynchronous reset begin
COUNT_I = 10'b0000000000; FULL_I = 1'b0; end
else // active clock edge begin
if (ENABLE) begin if (COUNT_I == 10'b1111111111) FULL_I = 1'b1; else
COUNT_I = COUNT_I + 1; end end end
assign COUNT = COUNT_I; assign FULL = FULL_I;
endmodule
¸½2 ÓÐÏÞ״̬»úµÄVerilog´úÂë
// a simple state machine
module stm(clk, in, reset, out); input clk, in, reset; output [3:0] out;
reg [3:0] out; reg [1:0] state;
parameter s0=0, s1=1, s2=2, s3=3;
always @(state) begin
case (state) s0:
out = 4'b0000; s1:
out = 4'b0001; s2:
out = 4'b0010; s3:
out = 4'b0100; default:
out = 4'b0000; endcase end
always @(posedge clk or posedge reset) begin
if (reset)
state = s0; else
case (state) s0:
state = s1; s1:
if (in)
state = s0; else
state = s2; s2:
state = s3; s3:
state = s0; endcase end
endmodule
// end of state machine
Cadence ICÉè¼ÆÊµÑé
ʵÑéÁù NC-Verilog SimulatorʵÑé
ʵÑéÄ¿µÄ£ºNC_verilog·ÂÕæÆ÷µÄʹÓ㬰üÀ¨±àÒë¡¢ÔËÐкͷÂÕæ¡£
Ô¤±¸¹¤×÷£º
cp /eva01/cdsmgr/ training_IC_data/NCVlog_5_0.tar . tar -vxf NCVlog_5_0.tar
Lab1¡£ÔËÐÐÒ»¸ö¼òµ¥µÄVerilogÉè¼Æ
[1]¡¢ÉèÖÃÉè¼Æ»·¾³
1£®cd NCVlog_5_0/lab1-mux
ÔÚSolaris´°¿Ú£¬µã»÷×óÆðµÚ3¸öͼ±êHome Folder, ÔÚFile Manager´°¿Ú½øÈ룺ÄãµÄѧºÅ/NCVlog_5_0/lab1-muxĿ¼£»
Õâ¸öĿ¼°üº¬ÁËÓÃÀ´ÃèÊöÒ»¸ö¶à·ѡÔñÆ÷ºÍÆä²âÊÔÆ½Ì¨µÄverilog Ä£¿é¡£ÒÔÏÂÊÇmux_test.vÄ£¿éÄÚ¹¦ÄÜÄ£¿éµÄ¶Ë¿Ú¿òͼ¡£
½¨Ò飺Èç¹ûÓÐʱ¼ä£¬Äã×îºÃ¿´Ò»¿´¸÷Ä£¿é£¨module£©µÄVerilog´úÂ룡 2£®´´½¨cds.libÎļþ£¬
ÔÚFile Manager´°¿Ú£¬Ñ¡ÔñFile->New File£¬ÎļþÃûΪ£ºcds.lib£¬OK ´ò¿ªcds.libÎļþ(Ë«»÷)£¬ÔÚÆäÖÐдÈ룺 Define lab1muxlib ./lab1-mux.lib ´æÅÌÍ˳ö
3£®´´½¨£¨¿â£©Îļþ¼Ð£¨¼´Ä¿Â¼£©£º
ÔÚFile Manager´°¿Ú£¬File->Folder£¬Îļþ¼ÐÃû£ºlab1-mux.lib£¬OK £¨ÄãÒ²¿ÉÒÔÔÚTerminal´°¿Ú mkdir lab1-mux.lib£© 4£®ÀàËÆ²½Öè1£¬´´½¨hdl.varÎļþ£¬ÔÚÆäÖÐдÈ룺
Define WORK lab1muxlib ´æÅÌÍ˳ö
5£®²é¿´verilogÔ´Îļþ¡£mux.vÊÇ2Ñ¡1¶à·ѡÔñÆ÷MUX2_1 µÄÃż¶½¨Ä£Ô´Îļþ£¬mux_test.vÊÇmux.vµÄ²âÊǪ̂£¬°üº¬ÁËÊäÈ뼤ÀøÐÅºÅºÍ¼à¿Ø³ÌÐòÔËÐеÄÈÎÎñÓï¾ä¡£
[2]¡¢±àÒëÔ´Îļþ£¨ncvlogÃüÁ£º
Êó±ê»Øµ½ÄãÔÏÈ´ò¿ªµÄTerminal(»òConsole)´°¿Ú£¬Ä¿Â¼Ó¦Îª¡£¡£¡£/ÄãµÄѧºÅ/NCVlog_5_0/lab1-mux¡£µã»÷£¨¼¤»î´°¿Ú£©¡£ 1£® ncvlog mux.v ¨Cmessages £¬ÕâÌõÖ¸ÁîÊDZàÒëmux.v¡£ 2£®´ò¿ªhdl.varÎļþ£¬ÔÚÆäºóÌí¼Ó£ºDefine NCVLOGOPTS ¨Cmessages
´æÅÌÍ˳ö
×¢£ºÓÃNCVLOGOPTS±äÁ¿¶¨Òå³£ÓõÄncvlogÃüÁîÐвÙ×÷£¬´Ó¶ø±ÜÃâÿ´Î¶¼ÇÃÈëͬÑùµÄÃüÁîÐС£
3£®±àÒë²âÊÔÆ½Ì¨Ô´Îļþ£º
ncvlog mux_test //¿ÉÒÔ²»¼Óºó׺.v 4£® ncls ¨Call
ÕâÒ»²½Ä¿µÄÊÇ¿´Ò»¿´Ç°ÃæÁ½¸öncvlogÉú³ÉÁËÄÄЩlibrary objects£¿ ´ð°¸ÊÇ£ºmodule lab1muxlib.MUX2_1:module (VST) module lab1muxlib.mux_test:module (VST)
ÏÖÔÚÄãÃ÷°×lab1muxlibµÄ×÷ÓÃÁËÂð£¿ncvlog±àÒëºóÉú³ÉµÄÄ£¿é·ÅÈëlab1muxlib¹¤×÷¿âÖС£
[3]¡¢À©Õ¹ÓëÁ¬½Ó£¨elaborationÏêϸÃèÊö£©¶¥²ãÉè¼Æ£¨ncelabÃüÁ£º 1£®ncelab mux_test
2£®ncls ¨Call £¬²é¿´ncelabÉú³ÉÁËÄÄЩlibrary object¡£
[4]¡¢·ÂÕæ£º
ncsim mux_test
¹Û²ì·ÂÕæÆ÷µÄÊä³öÇé¿ö¡£Ä㻹¿ÉÒԲ鿴ncls.log, ncelab.log, ncsim.log, ncvlog.logÎļþÄÚÈÝÁ˽â¸ü¶àµÄÐÅÏ¢¡£
ÒÔÏÂLab2ÖÁlab4ÊDZàÒë¡¢À©Õ¹ÓëÁ¬½Ó£¨ÏêϸÃèÊö£©ºÍ·ÂÕæ²½ÖèµÄ¸ß¼¶²Ù×÷¡£
Lab2¡£±àÒëµÄ¸ß¼¶¼¼Êõ
Ò»¡¢Lab2-1:¼Ä´æÆ÷Éè¼Æ
ʵÑéÄ¿µÄ£ºÑ§Ï°ÈçºÎʹÓÃhdl.varÖеÄWORK¡¢VIEW¡¢LIB_MAPºÍVIEW_MAP ±äÁ¿¡£
Ä㽫ѧ»áʹÓãº
1.·Ö±ðÓÃhdl.varÖеÄWORK±äÁ¿ºÍÓãworkÑ¡ÏîºöÂÔWORK±äÁ¿½øÐбàÒë¡£ 2.·Ö±ðÓÃhdl.varÖеÄVIEW±äÁ¿ºÍÓãviewÑ¡ÏîºöÂÔVIEW±äÁ¿½øÐбàÒë¡£ 3.ÓÃhdl.varÖеÄLIB_MAPºÍVIEW_MAP±äÁ¿½øÐбàÒë¡£ 4.ÓÃhdl.varÖеÄLIB_MAPºÍVIEW_MAP±äÁ¿½øÐвûÊö¡£
ÏÂͼÊÇLab2ʵÑéÓõ½µÄregisterºÍcounterµÄ¶Ë¿Ú¿òͼ¡£
[1]£®·Ö±ðÔÚFile Manager´°¿ÚºÍTerminal´°¿Ú½øÈ룺NCVlog_5_0/lab2-regĿ¼£» [2]£®²ÎÕÕlab1²½Ö裬´´½¨cds.libÎļþ£¬ÊäÈëÈçÏÂÄÚÈÝ£º
Define lab2reglib ./lab2-reg.lib
Define projectlib ../project.lib ×¢Ò⣺Á½¸öµã Define techlib ../technology.lib ×¢Ò⣺Á½¸öµã
´æÅÌÍ˳ö¡£
[3]£®´´½¨¹ØÁªÄ¿Â¼¡£
ÔÚ£ºNCVlog_5_0/lab2-regĿ¼Ï£¬´´½¨lab2-reg.libĿ¼£¨Folder£©£¬ ÔÚ£ºNCVlog_5_0Ŀ¼Ï£¬´´½¨project.lib ºÍtechnology.lib Ŀ¼¡£
[4]¡¢Ê¹ÓÃhdl.var ÖÐWORK±äÁ¿: 1£®½øÈëNCVlog_5_0/lab2-regĿ¼£¬
2£®´´½¨hdl.varÎļþ£¬´ò¿ª£¬ÊäÈëÈçÏÂÄÚÈÝ£º
Define WORK lab2reglib ´æÅÌÍ˳ö
3£®±àÒëregister_test.v°üº¬messageÑ¡Ï
ncvlog register_test ¨Cmess
ÎÊÌ⣺ncvlog±àÒëºómodule·ÅÈëÁËÄĸö¿âÖУ¿
Ìáʾ£ºncls ¨Call , ´ð°¸£ºmodule lab2reglib.register_test£ºmodule (VST)
[5]¡¢Ê¹ÓÃ-workÃüÁîÐÐÑ¡Ïî±àÒ룺
ncvlog register ¨Cmess ¨Cwork projectlib
×¢£º-workÃüÁîÐÐÑ¡ÏîʹµÃprojectlibÌæ´úÁËÔÀ´ÔÚhdl.varÎļþÖÐlab2reglib WORK¿â¡£ ÓÃncls ¨Call ÃüÁî²éÒ»ÏÂncvlog½«±àÒëºÃµÄregister module·ÀÔÚÄĸö¿â£¿ ´ð°¸£º module projectlib.register£ºmodule (VST)
[6]¡¢Ê¹ÓÃhdl.varÖÐVIEW±äÁ¿±àÒ룺 1£®´ò¿ªhdl.var£¬¼ÓÈëÈçÏÂÄÚÈÝ£º
Define VIEW behav
Define NCVLOGOPTS ¨Cmessages ´æÅÌÍ˳ö
2£®±àÒëclockgen.vb£º
ncvlog clockgen.vb ¨Cwork projectlib
ÓÃncls -all²é¿´Ò»Ï£¬´ð°¸£ºmodule projectlib.clockgen£ºbehav (VST)
[7]¡¢±È½Ï£ºÊ¹Óà -viewÃüÁîÐÐÑ¡Ïî±àÒ룺 1£®±àÒëclockgen.vg
ncvlog clockgen.vg ¨Cwork projectlib ¨Cview module
˵Ã÷£ºclockgen.vbÊÇÐÐΪ¼¶½¨Ä££¬clockgen.vgÊÇÐÐΪ¼¶ºÍÃż¶»ìºÏ½¨Ä££¬¶þÕßÐÐΪÏàͬ¡£ 2£®ÓÃncls -all ²é¿´ncvlog±àÒë½á¹û£¬Õâ¸ömoduleÐÂÔöÌíÁËmodule ÀàÐÍview¡£Èç¹ûÄãûÓÐÖ¸¶¨£¬ncvlog»á½«°´hdl.varÎļþÖеÄÃüÁÕâ¸ömodule´æÈëbehav view¡£
[8]¡¢Ê¹ÓÃhdl.var ÖÐLIB_MAPºÍVIEW_MAP±äÁ¿£º 1. ±à¼hdl.varÎļþÈçÏ£º
££Define WORK lab2reglib £¨#×¢Ê͵ô£© ££Define VIEW behav
Define NCVLOGOPTS -messages Define LIB_MAP ( . => projectlib, ./cell_lib => techlib) Define VIEW_MAP ( .vg => gate, .vr => rtl, .vu => udp) ´æÅÌÍ˳ö