ÐOPS m:m:D€‚For:tonysÿ‚Printed on:Fri, Jan 2, 1998 14:27:45ÿ‚From book:dspcÿ‚Document:Coverÿ‚Last saved on:Wed, Dec 10, 1997 14:39:05ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°-wst:timsps8±-:									
				!!!°0wst:helvps8±0:							!								!									!!!!°1wst:helvps22±1:::::::::::::::::::::::::::::::::33R=$6333333333336663]==BB=8HB.=3MBH=HB=8B=W==8+333.3333.M3333.3.B...6:::::::::::::::::::::::::::::::::3333:3:"3:::::::::1::"3:::8======\B====:BHHHHH:HBBBB::8333333R.3333:333333:83333::.:3.\3::\:::::::::33::::::\:::::::::::::::3::::\:::W°2wst:helvps24b±2:????????????????????????????????!288YH!!':88888888888!!:::=bHHHHC=NH8H=SHNCNHC=HC^CC=!!:88=8=8!==8Y===='8!=8N882'':2?????????????????????????????????!8888?8!?%8???!??????8??%8???=HHHHHHdHCCCC?HNNNNN?NHHHH??=888888Y88888?======?=====??8?82d!8??d?????????88!!2??????d???????????????8????d???^°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°5wst:helvps22b±5:::::::::::::::::::::::::::::::::.33RB$6333333333336668ZBBBB=8HB3B8MBH=HB=8B=W==86338383883R8888$383H33.$$6.:::::::::::::::::::::::::::::::::3333:3:"3:::::::::3::"3:::8BBBBBB\B====:BHHHHH:HBBBB::8333333R33333:888888:88888::3:3.\3::\:::::::::33.::::::\:::::::::::::::3::::\:::W°6spsb:symbb10±6)))*! * 
#,!!!! %,  #!  )) ! #°7wst:helvps10i±7:%	+!#!!(				#*!!!!!!%****(åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’'/¢D“I501ileaf_page_string1:i¥	öä²-â¡®¡Ï®¡ž®¥	öä²5¡À¡À¡4À¡¤Ã²4¡ü\²2C¤ÿüO¤ÿüS¤ÿüS¤ÿüA¤ÿüP´µD¤ÿüS¤ÿüPµC¤ÿüo¤ÿüd¤ÿüe¡üÙG¤ÿüe¤ÿün¤ÿüe¤ÿür¤ÿüa¤ÿüt¤ÿüo¤ÿür¡üU²U¤ÿüs¤ÿüe¤ÿürµG¤ÿüu¤ÿüi¤ÿüd¤ÿüe¥	öäÁÊËÃ¡Ä±‡‡ÆÃ¡üá²V¤ÿýersion´µ1998.02,µFebruaryµ1998¡ü	„Comments?¡ü	ÊE³mailµyourµcommentsµaboutµSynopsys¡ü
documentationµtoµdoc@synopsys.com¥	öäÒÓÐþ
-Y¥Y¥Z¦ ûÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüäšÉäÕÛÚÁäüãÿÏäãääÀ‡ääääãáÚ
ääääÚÕÖáÿäÕäÞãÿÏü88ˆÄäÕpãKÈJÏˆÈ8<>ü	ÏÈŠÈKÈÏÏ8ŠÄÁÏKÈIÀÁÕüu
ŽÁÏZ8ˆØrT+Wu)ü)-Ä.ŠÆjUˆÂ	ÈAc-aÒËü1%‰ÁˆÌ:ˆÁF‰ÅÆ%ãÈü9CŽÃBFˆÈÃ>"?#äÀbüAÃ6ŠÂ	?ˆÇÄ6ÇC9ÁüÁüŒÂŠÂ>3ˆÆÅÏŒó|
ÌÅüÉÏ	;‰âäÞ
ÀÁÚ*ÞpØ*‰ÐÀƒÏ#ÃÆü+1>Ï#jÞÈÉ3‹ÌiCüÂ2)‹Ã6>	ˆÊ‹Ã:ŠðÈüˆÈ2ŒÌF$3D!2!Bü;FŽÁC“Å“Çü‘Ä‰ÈÅÅ‹ÄB:.Èü%-ŒÃ‰ÇF?‹Ã$Aü‰È¬Ä“ÈüŽÁ­Å‹çÃìü‹Ä-§ÈŠÂüˆD1ü‰Ç§Ã5‹ÂÀáéü‹Ã5§Ç‰óÈÈüˆ)âÃü‰Æ§Â=‹Ëaü‹Â=§Æ‰Â1üˆ	äÏü‰Å$§ÁEüääÈˆÈžÃ?äÞˆÄ;IääÈü;­Åü‰Ä,¨ÈüÁÆŠÁ*Â2üÂ2ˆÈ£ÁˆÄˆÅü+4¨ÇüÂÅB‰Â2Á"üÁ"ˆÇ¤ÇˆÃü<ŸÄ25ˆÈüAŒÃÃ*‰Ã:9	ü9	È7¡Â"6Bü1:‰ÈŸÁRŽÅrü)2&žÈ	-#B!*ü!*/¢ÇB"ü"ˆÁ¡Æ:ÂüRE-šÈ+2$+	
ü	È	' Å!*GF	ü:B¡ÊZŽÎzü2:<5™Á3+2ü*2ÊE	?&*ü"bœÞ=BÃ"ü4=—Ûä6:üJ Æ*26ÇüC	§Ç"bŽÈ	Èü;B+"ŸÈŠÇ:ü3rC›ÁK6È!l2ü+*¥ÂD	ŽÄ*ü#"#*žØ<BC‰Ã"ü
›ÁÏ4:A*üK¤ã-jÁJüD	È5šÛää&"ŽÈBü<:¡Ã;2=:ü42$¤ÂEˆÆ2ü,*=£ÁÈ	ŽÌ*ü$"¢ÇB2:"üT/¥Æ:‰ÂüE¤Å2ÁüE
$¢Ä**DF	ü=	4¥ÃÄ‰Çü5¥Â‘Æü‹È+¢Á""/Bü-B;¬ÃÅü%¦ÈÄü‹Ç3¥ÃŠÇüˆÇC¬ÄÆüŒÃüÖää5;žâäÚ:ääüºÇü‹ÁÄ¬Åü‹ÅC¨Á#üºÈü‹ÂÅ¬Æü‹Ä
ªÈ*ü‹Ã­ïüüŒÆüŽÂ­Æü¹ÂüŒÇüŽÃ­Çü¢Ç”ÃüFüˆÇ%Å	”ÇF:üCžÈÄˆÄˆÈüÄ:!“È$‰ÇB‹Ã:!ü3)B-ÎIŽÂ	"6)Bücq–ÄbYŽÁÏÊ.ˆÒqüÃäÈÃäÚ*ŒßÞÉäÈü6Â7‰Æ.üÉV”Á?‰Å63üA%‘ÈF‰Ä~ŠÈ]ü9->ŽÇŠÃ<-ü15•ÓŠÉ<n5üLÏ#‘Êp‹Õ‹ÑÏüIÏGŽÁÏKÈ‹ÒÕ&Ïü8JÕ‹ÐääÈJääÈ>|
ääÕNÈØ
Õüääá-’ÁäääÈâääÕEOääãüÁ­Åüü‹Æ¬ÁüÂ­Æüü‹Ç¬ÂüÃ­Çüü¸Ãü‹ÈüÄ­Èü¸ÄüŠÁüÅ¬ÁüüŠÂ­ÅüÆ¬ÂüüŠÃ­ÆüÇ¬ÃüüŠÄ­ÇüÈ¬ÄüüŠÖää«âäÚüüüüüÿ’¢ZD“I501ileaf_page_string1:ii¥	öä¥	öäâ²¡,ii¡,Ã²Copyright´µNoticeµandµProprietaryµInformation¡,ó²Copyright´µ²6{²µ1998µSynopsys,µInc.µAllµrightsµreserved.µThisµsoftwareµandµdocumentationµareµownedµby¡, Synopsys,µInc.,µandµfurnishedµunderµaµlicenseµagreement.µTheµsoftwareµandµdocumentationµmayµbeµused¡,Norµcopiedµonlyµinµaccordanceµwithµtheµtermsµofµtheµlicenseµagreement.µNoµpartµofµtheµsoftwareµandµdocu·³¡,|mentationµmayµbeµreproduced,µtransmitted,µorµtranslated,µinµanyµformµorµbyµanyµmeans,µelectronic,µme·³¡,©chanical,µmanual,µoptical,µorµotherwise,µwithoutµpriorµwrittenµpermissionµofµSynopsys,µInc.,µorµasµexpressly¡,×providedµbyµtheµlicenseµagreement.¡,²Right´µtoµCopyµDocumentation¡,L²The´µlicenseµagreementµwithµSynopsysµpermitsµlicenseeµtoµmakeµcopiesµofµtheµdocumentationµforµitsµinter·³¡,znalµuseµonly¤ÿý.µEachµcopyµshallµincludeµallµcopyrights,µtrademarks,µserviceµmarks,µandµproprietaryµrights¡,§notices,µifµany¤ÿý.µLicenseeµmustµassignµsequentialµnumbersµtoµallµcopies.µTheseµcopiesµshallµcontainµthe¡,Õfollowingµlegendµonµtheµcoverµpage:¡ÂThisµdocumentµisµduplicatedµwithµtheµpermissionµofµSynopsys,µInc.µforµtheµexclusive¡ÂHuseµofµ__________________________________________µandµitsµemployees.µThis¡Âuisµcopyµnumberµ__________."¡,Ò²Destination´µControlµStatement¡,²All´µtechnicalµdataµcontainedµinµthisµpublicationµisµsubjectµtoµtheµexportµcontrolµlawsµofµtheµUnitedµStatesµof¡,/America.µDisclosureµtoµnationalsµofµotherµcountriesµcontraryµtoµUnitedµStatesµlawµisµprohibited.µItµisµthe¡,]reader¤'¤ÿÿsµresponsibilityµtoµdetermineµtheµapplicableµregulationsµandµtoµcomplyµwithµthem.¡,¢²Disclaimer¡,Ò²SYNOPSYS,µINC.,µANDµITSµLICENSORSµMAKEµNOµW¤ÿþARRANTYµOFµANYµKIND,µEXPRESSµORµIM·³¡,PLIED,µWITHµREGARDµT¤ÿÿOµTHISµMA¤ÿýTERIAL,µINCLUDING,µBUTµNOTµLIMITEDµT¤ÿÿO,µTHEµIMPLIED¡,-W¤ÿþARRANTIESµOFµMERCHANT¤ÿýABILITYµANDµFITNESSµFORµAµP¤ÿýAR¤ÿÿTICULARµPURPOSE.¡,s²T¤ÿýrademarks¡,¢²Synopsys,µtheµSynopsysµlogo,µArcadia,µBiNMOS³CBA,µCMOS³CBA,µCOSSAP¤ÿû,µDESIGNµ(ARROWS),¡^ÐDesignPower¤ÿþ,µDesignW¤ÿþare,µdont_use,µEPIC,µExpressModel,µin³Sync,µLM³1000,µLM³1200,µLogic¡^þModeling,µLogicµModelingµ(logo),µMemoryµArchitect,µModelAccess,µModelT¤ÿûools,µPathMill,µ²7PL²debug,¡^,RailMill,µSmartLicense,µSmartLogic,µSmartModel,µSmartModels,µSNUG,µSOL¤ÿýV¤ÿþ³IT!,µSourceModel¡^YLibrary¤ÿý,µStreamµDrivenµSimulator¤ÿþ,µSynopsys,µSynopsysµ(logo)µSynopsysµVHDLµCompiler¤ÿþ,µSynthetic¡^‡Designs,µSyntheticµLibraries,µT¤ÿûestBenchµManager¤ÿþ,µandµT¤ÿþimeMillµareµregisteredµtrademarksµof¡^µSynopsys,µInc.¡,â3³DµDebugging,µAMPS,µBehavioralµCompiler¤ÿþ,µCBAµDesignµSystem,µCBA³Frame,µcharacterize,µChip¡^Architect,µCompiledµDesigns,µCoreµNetwork,µCoreµStore,µCyclone,µDataµPathµExpress,µDataPath¡^>Architect,µDCµExpert,µDCµExpertµPlus,µDCµProfessional,µDelayMill,µDesignµAdvisor¤ÿþ,µDesignµAnalyzer¤ÿþ,¡^kDesignµCompiler¤ÿþ,µDesignSource,µDesignT¤ÿþime,µDesignW¤ÿþareµDeveloper¤ÿþ,µDirectµR¤ÿÿTL,µDirectµSilicon¡^™Access,µdont_touch,µdont_touch_network,µECLµCompiler¤ÿþ,µECOµCompiler¤ÿþ,µEmbeddedµSystem¡^ÇPrototype,µFloorplanµManager¤ÿþ,µFormality¤ÿý,µFoundryModel,µFPGAµCompiler¤ÿþ,µFPGAµ²7Express²,µFrame¡^ôCompiler¤ÿþ,µGeneralµPurposeµPost³Processor¤ÿþ,µGPP¤ÿû,µHDLµAdvisor¤ÿþ,µHDLµCompiler¤ÿþ,µIntegrator¤ÿþ,µInteractive¡^	"W¤ÿþaveformµV¤ÿÿiewer¤ÿþ,µLibraryµCompiler¤ÿþ,µLM³1400,µLM³700,µLM³family¤ÿý,µLogicµModel,µModelSource,¡^	PModelW¤ÿþare,µModuleµCompiler¤ÿþ,µMS³3200,µMS³3400,µPowerµCompiler¤ÿþ,µPowerArc,µPowerGate,¡^	}PowerMill,µPrimeT¤ÿþime,µR¤ÿÿTLµAnalyzer¤ÿþ,µShadowµDebugger¤ÿþ,µSiliconµArchitects,µSimuBus,µSmartCircuit,¡^	«SmartModelµWindows,µSource³LevelµDesign,µSourceModel,µSWIFT¤ÿû,µSWIFTµInterface,µSynopsys¡^	ÙGraphicalµEnvironment,µT¤ÿûestµCompiler¤ÿþ,µT¤ÿûestµCompilerµPlus,µT¤ÿûestµManager¤ÿþ,µT¤ÿûestSim,µT¤ÿþimingµAnnotator¤ÿþ,¡^
T¤ÿþrace³On³Demand,µVHDLµSystemµSimulator¤ÿþ,µV¤ÿÿisualyze,µV¤ÿÿivace,µVSSµExpert,µandµVSSµProfessional¡^
4areµtrademarksµofµSynopsys,µInc.¡,
bAllµotherµproductµorµcompanyµnamesµmayµbeµtrademarksµofµtheirµrespectiveµowners.¡,
½PrintedµinµtheµUSA¡,
ëDocumentµOrderµNumberµ00154-000µEA¡,COSSAPµDSPµCodeµGeneratorµµUserµGuide,µV¤ÿþersionµ1998.02’ZÐOPS m:m:D€‚Document:Aboutÿ‚Last saved on:Fri, Jan 2, 1998 14:25:27ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:timsps11i±:&$*!!!&!!!&!)!!!!!!!!!!.).+°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:courps12b±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°"wst:newcsps12i±":                                *+
%#$$'$!'*%!/)'!'%!")#.#"!
,'                                            !     ######,$$$$$ )''''' '))))  $     2  2               2                   1   '°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°:wst:helvps10b±::%)!#!!(%!*!!!!!!%****(°;wst:helvps9±;:

!




&
#






%



!




%%%%#°<wst:helvps20±<:44444444444444444444444444444444..J7 0...........000.T77<<73A<*7.E<A7A<73<7N773'...*....*E....*.*<***0444444444444444444444444444444444....4.4.444444444-44.4443777777S<77774<AAAAA4A<<<<443......J*....4......43....44*4.*S.44S444444444..444444S444444444444444.4444S444N°Bwst:timsps14i±B:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0-''''5##'*##**' 0'*#*# *#0#  *' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%######4'####%'*****%*****%%'%%%%%:%%4%%%%%%%%% %%%%%%:
%%%%%%%%%%%%%%%%%%%7%%%'°Ewst:courps14±E:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################################################################################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%##%##%%%#%%%%%%##%%##%%%#################%######%#####%%#################%######%#####%%#%##:##%%#%%%%%%%%%#####%%%%%%##%%%%%%%%%%%%%%%#%%%%#%%%#°Wwst:helvps14bi±W:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿå®åÿÿ‘hˆå™™ÿÿNîÍá@@à  @@@à  @áàààààààà±±±±±±±±áªªªªªªªªªªªªªªªªáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáððððððððððððððððáýýßßßßßßýýýýýýßßßßßßýýýýÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’Df2D“I501ileaf_page_string1:iii¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öäÃÁÊË¡Ä,},g¡Ä,g	cg¡Ä	cg	c}¡Ä	c},}ÆÃÁÊËÃ¡Ä,gÊgÆÃ¥	öäÃÁÊË¡Ä,	ä,	Î¡Ä,	Î	c	Î¡Ä	c	Î	c	ä¡Ä	c	ä,	äÆÃÁÊËÃ¡Ä,	ÎÊ	ÎÆÃ¥	öä²¡¾¡Ï¾¡ž¾¥	öä²¡Ô¤ÿáiii¡,m²¥	öä¡JmAbout²<²´µThisµManual¡þ²This´µmanualµcontains¡þ˜²S¡X˜²AnµoverviewµofµtheµCOSSAPµDSPµCodeµGeneratorµ(DCG)¡þ²S¡X²Aµdescriptionµofµtheµmenusµandµdialogµboxesµofµtheµxdcgµtool¡þm²S¡Xm²InformationµaboutµtheµfilesµrequiredµbyµtheµDCGµandµtheµfilesµthat¡X´areµgeneratedµbyµtheµDCG¡,½²Audience¡þe²The²µCOSSAPµDSPµCodeµGeneratorµUserµGuideµ²isµwrittenµforµlogic¡þ­designersµandµelectronicµengineersµdesigningµsystemsµthatµare¡þöspecifiedµasµaµmixµofµhigh³levelµinstancesµandµhardwareµinstances¡þ	?writtenµinµC.¡,
$²Supported´µVersions¡þ
Ì²This´µdocumentµisµwrittenµforµtheµCOSSAPµDSPµCodeµGenerator¡þversionµ1998.02.’2½D“I501ileaf_page_string1:iv¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä²¡,iv¡,Õ²Manual´µContents¡þ¬²The´µ²COSSAPµDSPµCodeµGeneratorµUserµGuide²µconsistsµof:¡þ<²Chapterµ1:µDCGµOverview¡þº²DescribesµtheµCOSSAPµuserµenvironmentµandµtheµDSPµCode¡þGenerator,µandµintroducesµrelatedµconceptsµandµterminology.µCode¡þLgenerationµstrategiesµareµalsoµdiscussedµinµdetail.¡þÜ²Chapterµ2:µTheµxdcgµUtility¡þZ²ListsµtheµstepsµtoµfollowµwhenµgeneratingµCµorµgenericµCµcodeµusing¡þ£theµDCG.µDescribesµhowµtoµstartµxdcg.µContainsµaµreferenceµsection¡þìtoµtheµxdcgµmenusµandµdialogµboxes.¡þ|²Chapterµ3:µUsingµxdcg¡þú²ExplainsµtheµfundamentalµconceptsµbehindµtheµDCGµandµdescribes¡þChowµtoµuseµtheµDCGµtoµgenerateµDSPµcode.µIncludesµthreeµpractical¡þŒexamplesµofµuseµofµtheµDCG,µstartingµfromµaµsimpleµcodeµgeneration¡þÔexample,µexaminingµvariousµcodeµoptimizationµstrategies,µand¡þconcludingµwithµaµcomplexµmulti³DSPµcodeµgenerationµexample.¡þ­²Chapterµ4:µUsingµxdspint²W¡þ	,²DescribesµhowµtoµuseµtheµDSPµInteractorµutility,µxdspint,µwhichµcan¡þ	tbeµusedµtoµinteractµandµcontrolµaµrunningµDSPµprogram.¡þ
²Chapterµ5:µFilesµRelatedµtoµDSPµModels²W¡þ
ƒ²ListsµtheµfilesµnecessaryµtoµdescribeµaµDSPµmodel,µandµgives¡þ
ÌinformationµaboutµaµnetlistµdescriptionµofµaµDSPµsystemµandµDSP¡þmodelµlibraries.’½ðD“I501ileaf_page_string1:v¥	öä¥	öäâ²¡Ô¤ÿév¡þÉ²Chapter´µ6:µFilesµGeneratedµbyµtheµDCG¡þ?²DescribesµtheµfilesµgeneratedµbyµtheµDCG.µContainsµexampleµCµand¡þ‡genericµCµcodeµthatµillustratesµtheµcodeµgeneratedµbyµtheµDCG.¡þÐListsµadditionalµfilesµthatµareµgeneratedµbyµtheµDCGµduringµcode¡þgeneration,µorµcompiling,µassembling,µandµlinkingµcode.¡þ²Chapterµ7:µMultiprocessorµDSPµCodeµGeneration¡þ²Describesµtheµfilesµassociatedµwithµgeneratingµcodeµforµa¡þ\multiprocessorµsystem,µincludingµdetailsµofµtheµkeywordµsyntax.µAlso¡þ¤providesµexamplesµofµgeneratingµmultiprocessorµDSPµcode.¡þ)²Chapterµ8:µInstallingµaµNewµTarget¡þŸ²DescribesµhowµtoµinstallµaµnewµtargetµprocessorµforµtheµDCG.’ðÓD“I501ileaf_page_string1:vi¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‡,q¡Ä,q	cq¡Ä	cq	c‡¡Ä	c‡,‡ÆÃÁÊËÃ¡ÄþqÊqÆÃ¥	öä¥	öä²¡,vi¡,Õ²Other´µSourcesµofµInformation¡þ”²For´µmoreµinformationµaboutµtheµCOSSAPµDSPµCodeµGeneratorµand¡þÝSynopsysµproducts,µreferµtoµtheµfollowingµsections.¡þÁ²
Related´µPublications¡þ`²Use´µtheµfollowingµmanualsµwithµthisµmanual:¡þå²S¡Xå²²COSSAPµOverviewµandµDocumentationµRoadmap¡þX²²S¡XX²²COSSAPµTutorials¡þÌ²²S¡XÌ²²COSSAPµModelµUserµGuide¡þ@²²S¡X@²²COSSAPµBlockµDiagramµEditorµUserµGuide¡þ³²²S¡X³²²COSSAPµFilterµDesignµToolµUserµGuide¡þ'²²S¡X'²²COSSAPµMultirateµFilterµDesignµToolµUserµGuide¡þš²²S¡Xš²²COSSAPµSampleµRateµConversionµFilterµDesignµToolµ¡XáUserµGuide¡þT²²S¡XT²²COSSAPµDataµFileµInterfaceµUserµGuide¡þÈ²²S¡XÈ²²COSSAPµModelµLibrariesµ-µVolumesµ1µthroughµ7¡þ	<²²S¡X	<²²COSSAPµReferenceµDesignµKitsµ-µVolumesµ1µandµ2¡þ	¯²²S¡X	¯²²COSSAPµStreamµDrivenµSimulatorµUserµGuide’Ó"D“I501ileaf_page_string1:vii¥	öä¥	öäâ²¡Ô¤ÿÕvii¡þÉ²²S¡XÉ²²COSSAP´µHDLµCodeµGeneratorµUserµGuide¡þ=²²S¡X=²²COSSAPµHDLµSimulationµInterfaceµUserµGuide¡þ°²²S¡X°²²COSSAPµDSPµDeveloperµKitsµUserµGuide¡þ$²²S¡X$²²COSSAPµDAVISµUserµGuide¡þ—²²S¡X—²²COSSAPµManualµIndex¡þ)²TheseµmanualsµareµavailableµonlineµthroughµSynopsysµOnline¡þrDocumentationµ(SOLD),µwhichµisµincludedµwithµtheµsoftware.µTo¡þºstartµSOLD,µenter²´µ²Esold²´µatµtheµUNIXµprompt.’"{D“I501ileaf_page_string1:viii¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Ð,º¡Ä,º	cº¡Ä	cº	cÐ¡Ä	cÐ,ÐÆÃÁÊËÃ¡ÄþºÊºÆÃ¥	öä¥	öä²¡,viii¡þÏ²
SOLV-IT!´µOnlineµHelpµSystems¡þn²SOLV-IT!´µisµtheµSynopsysµelectronicµknowledgeµbase.µItµcontains¡þ¶informationµaboutµSynopsysµandµitsµtoolsµandµisµupdatedµdaily.¡þYForµmoreµinformationµaboutµSOLV-IT!,µviewµtheµSynopsysµWeb¡þ¢pageµat¡X#²http://www.synopsys.com¡þµ²orµsendµe³mailµto¡X7²solvitfb@synopsys.com¡þ
²
Customer´µSupport¡þ©²If´µyouµhaveµproblems,µquestions,µorµsuggestions,µcontactµthe¡þòSynopsysµTechnicalµSupportµCenterµinµoneµofµtheµfollowingµways:¡þw²S¡Xw²Sendµe³mailµto¡Xç²support_center@synopsys.com¡þ[²²S¡X[²Callµ(650)µ694³4200µoutsideµtheµcontinentalµUnitedµStatesµorµcall¡X¢(800)µ245³8005µinsideµtheµcontinentalµUnitedµStates,µfromµ7µAM¡Xètoµ5:30µPMµPacificµStandardµTime,µMondayµthroughµFriday.¡þ	\²S¡X	\²Sendµaµfaxµtoµ(650)µ965³2539.’{ÐOPS m:m:D€‚Document:tocÿ‚Last saved on:Fri, Jan 2, 1998 14:23:49ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›UD“I501ileaf_page_string1:ix¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿßix¡,m²¥	öä¡JmTable´µofµContents¡,£²1.¡†£DCG´µOverview¡†6COSSAPµDSPµCodeµGenerator¡46¡w61³2¡Ì6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à‹Design´µPhasesµforµGeneratingµDSPµCode¡4‹¡w‹1³2¡(‹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àáConceptual´µandµAlgorithmµDesign¡4á¡wá1³3¡]á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à7Implementation¡47¡w71³3¡7.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¤DSP´µCodeµGeneratorµEnvironment¡4¤¡w¤1³4¡#¤.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àùPrimitive´µModels,µHierarchicalµModels,µandµLibraries¡4ù¡wù1³4¡-ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡àOCOSSAP´µBlockµDiagramµEditor¡4O¡wO1³4¡#O.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¥Parameterized´µHierarchicalµModels¡4¥¡w¥1³5¡z¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àûDSP´µCodeµGenerationµfromµHierarchicalµBlockµDiagrams¡4û¡wû1³5¡¡û.´µ.µ.µ.µ.µ¡†	gDSP´µCodeµGeneratorµT¤ÿúools¡4	g¡w	g1³6¡X	g.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	½COSSAP´µBlockµDiagramµEditor¡4	½¡w	½1³6¡#	½.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
DSP´µCodeµGenerator¡4
¡w
1³6¡
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
iGenerated´µCµandµGenericµCµCode¡4
i¡w
i1³7¡´
i.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
¾Performance´µMeasures¡4
¾¡w
¾1³8¡¯
¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Input´µSpecification¡4¡w1³9¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’UëD“I501ileaf_page_string1:x¥	öä¥	öäâ²¡,x¡:É²Modeling´µConstraints¡4É¡WÉ1³10¡uÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Executing´µBlockµDiagrams¡4¡W1³14¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àlDSP´µInteractorµ(xdspint)¡4l¡Wl1³17¡Xl.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÎCOSSAP´µDSPµCodeµGenerationµStrategies¡4Î¡WÎ1³17¡îÎ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àCode´µGenerationµStrategiesµatµtheµBlockµDiagramµLevel¡4¡W1³18¡„.´µ.µ.µ.µ.µ.µ¡:qGlobal´µBlockµFactor¡4q¡Wq1³18¡Xq.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÂScheduling¡4Â¡WÂ1³19¡pÂ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Flat´µScheduling¡4¡W1³21¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:eDetect´µSequencesµScheduling¡4e¡We1³24¡]e.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:·Hierarchical´µScheduling¡4·¡W·1³25¡¯·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Combined´µStrategy¡4¡W1³34¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àZShared´µBuf¤ÿÿfers¡4Z¡WZ1³34¡pZ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à«Code´µGenerationµStrategiesµatµtheµBlockµLevel¡4«¡W«1³34¡œ«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:üCode´µInlining¡4ü¡Wü1³36¡ªü.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:NBlock´µFactorµDependentµZeroµOverheadµLoops¡4N¡WN1³37¡N.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ŸParameter´µDependentµZeroµOverheadµLoops¡4Ÿ¡WŸ1³39¡ÖŸ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,82.¡†8The´µxdcgµUtility¡†µGenerating,µCompiling,µandµDownloadingµCµCode¡4µ¡wµ2³2¡œµ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Generating´µGenericµCµCode¡4¡w2³4¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àhNotes´µonµGeneratingµGenericµCµCode¡4h¡wh2³5¡´h.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÊStarting´µxdcg¡4Ê¡wÊ2³5¡üÊ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	,The´µxdcgµWindow¡4	,¡w	,2³7¡p	,.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	}Menu´µBar¡4	}¡w	}2³8¡ü	}.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÎNetlist´µName¡4	Î¡w	Î2³8¡S	Î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
 Output´µDirectory¡4
 ¡w
 2³9¡ª
 .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
qOutput´µName¡4
q¡W
q2³10¡S
q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÃArchitecture´µFile¡4
Ã¡W
Ã2³10¡ª
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àT¤ÿúarget¡4¡[2³1¤ÿü1¡¥.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ë§D“I501ileaf_page_string1:xi¥	öä¥	öäâ²¡Ô¤ÿßxi¡àÉ²Interactive´µMode¡4É¡WÉ2³12¡ªÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àOptimizations¡4¡W2³13¡S.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡ànMessage´µArea¡4n¡Wn2³15¡pn.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÑThe´µxdcgµMenus¡4Ñ¡WÑ2³16¡SÑ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à$File´µMenu¡4$¡W$2³16¡ü$.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:vSelect´µModelµFile¡4v¡Wv2³16¡v.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÈSelect´µArchitectureµFile¡4È¡WÈ2³18¡¯È.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Exit´µMenuµItem¡4¡W2³18¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àmCode´µMenu¡4m¡Wm2³19¡m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¿Create¡4¿¡W¿2³19¡ü¿.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Compile¡4¡W2³20¡6.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:dDownload¡4d¡Wd2³20¡Sd.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¶Edit¡4¶¡W¶2³20¡Â¶.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àSettings´µMenu¡4¡W2³21¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ZSet´µT¤ÿúarget¡4Z¡WZ2³21¡SZ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:­Set´µOptions¡4­¡W­2³21¡­.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÿExtras¡4ÿ¡Wÿ2³30¡üÿ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àQHelp´µMenu¡4Q¡WQ2³34¡Q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ð3.¡†ðUsing´µxdcg¡†qDCGµConcepts¡4q¡wq3³3¡6q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÃData´µFlowµandµScheduling¡4Ã¡wÃ3³3¡’Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	DSP´µCodeµGenerationµStrategies¡4	¡w	3³5¡]	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	yDSP´µCodeµGeneration¡4	y¡w	y3³6¡ä	y.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ËGetting´µStarted¡4	Ë¡w	Ë3³6¡	Ë.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Loading´µtheµSchematic¡4
¡w
3³7¡;
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
pCreating´µtheµNetlist¡4
p¡w
p3³8¡ä
p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÂGenerating´µtheµCode¡4
Â¡w
Â3³9¡
Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àFinishing´µUp¡4¡[3³1¤ÿü1¡6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’§D“I501ileaf_page_string1:xii¥	öä¥	öäâ²¡,xii¡†É²DSP´µOptimization¡4É¡[É3³1¤ÿü1¡pÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àGetting´µStarted¡4¡W3³13¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡ànLoading´µtheµSchematic¡4n¡Wn3³13¡;n.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÁOptimization´µStrategies¡4Á¡WÁ3³14¡XÁ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Scheduling¡4¡W3³16¡p.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:fLoop´µUnfolding¡4f¡Wf3³30¡äf.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹Zero´µOverheadµLoops¡4¹¡W¹3³31¡’¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àAttributes¡4¡W3³32¡ü.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à^Multi³DSP´µCodeµGeneration¡4^¡W^3³37¡Ì^.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à°Installation´µofµaµNewµT¤ÿúarget¡4°¡W°3³41¡¯°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:T¤ÿúarget´µFile¡4¡W3³42¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†gGeneric´µCµCodeµGeneration¡4g¡Wg3³46¡ug.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àºC´µProgramµ(CompleteµDSPµSystem)¡4º¡Wº3³46¡—º.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àGeneric´µCµCodeµ(OneµBlockµofµaµDSPµSystem)¡4¡W3³47¡œ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à_Getting´µStarted¡4_¡W_3³48¡_.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à²Loading´µtheµSchematic¡4²¡W²3³49¡;².´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,R4.¡†RUsing´µxdspint¡†ÕIntroduction¡4Õ¡wÕ4³2¡ÂÕ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†9Starting´µtheµProgram¡49¡w94³2¡ª9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†žParts´µofµtheµxdspintµWindow¡4ž¡wž4³4¡už.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àðMenu´µBar¡4ð¡wð4³4¡üð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	CCommand´µArea¡4	C¡w	C4³5¡	C.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	–Step,´µContinue,µandµPauseµButtons¡4	–¡w	–4³5¡z	–.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	èMessage´µArea¡4	è¡w	è4³6¡p	è.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
;xdspint´µCommands¡4
;¡w
;4³6¡ä
;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’€D“I501ileaf_page_string1:xiii¥	öä¥	öäâ²¡Ô¤ÿÊxiii¡†É²Menu´µDescriptions¡4É¡wÉ4³7¡É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDspint´µMenu¡4¡w4³8¡6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nConnect¡4n¡wn4³8¡6n.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÁDisconnect¡4Á¡wÁ4³9¡pÁ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Exit¡4¡w4³9¡Â.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àfControl´µMenu¡4f¡Wf4³10¡Sf.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹Stop¡4¹¡W¹4³10¡Â¹.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Abort¡4¡W4³10¡ß.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:^Pause¡4^¡W^4³10¡ü^.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:°Continue¡4°¡W°4³10¡6°.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àV¤ÿÿiew´µMenu¡4¡[4³1¤ÿü1¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:USignal´µMonitors¡4U¡[U4³1¤ÿü1¡äU.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¨Obtaining´µSequenceµNumberµInformation¡4¨¡W¨4³12¡b¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:úW¤ÿþave¡4ú¡Wú4³13¡ßú.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:MScatter¡4M¡WM4³13¡M.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡: Eye¡4 ¡W 4³14¡Â .µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:òLogic¡4ò¡Wò4³14¡ßò.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àEHelp´µMenu¡4E¡WE4³15¡E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,å5.¡†åFiles´µRelatedµtoµDSPµModels¡†hFilesµDescribingµaµDSPµModel¡4h¡wh5³1¡¯h.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àºAttribute´µFile¡4º¡wº5³3¡6º.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	Attribute´µFileµSyntax¡4	¡w	5³4¡X	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	`Stream´µDrivenµSimulatorµSourceµCode¡4	`¡w	`5³7¡Ñ	`.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	²Example´µofµtheµFilesµRequiredµforµaµDSPµModel¡4	²¡w	²5³8¡¹	².´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
Netlist´µDescriptionµofµaµDSPµSystemµorµModel¡4
¡w
5³9¡(
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
{DSP´µModelµLibraries¡4
{¡w
{5³9¡ª
{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’€)D“I501ileaf_page_string1:xiv¥	öä¥	öäâ²¡,xiv¡,É²6.¡†ÉFiles´µGeneratedµbyµtheµDCG¡†MCµProgram¡4M¡wM6³2¡ÂM.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à Structure´µofµtheµGeneratedµCµCode¡4 ¡w 6³3¡z .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Generic´µCµProgram¡4¡w6³7¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àXStructure´µofµtheµGeneratedµGenericµCµCode¡4X¡wX6³7¡bX.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¾Files´µAssociatedµwithµtheµCµandµGenericµCµCode¡4¾¡[¾6³1¤ÿü1¡¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†#Files´µCreatedµafterµCompiling,µAssembly¤ÿü,µandµLinking¡4#¡[#6³1¤ÿü1¡ó#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Æ7.¡†ÆMultiprocessor´µDSPµCodeµGeneration¡†JIntroduction¡4J¡wJ7³2¡ÂJ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àAn´µIntroductoryµExample¡4¡w7³2¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Architecture´µFile¡4¡w7³7¡6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àUProcessor´µDescription¡4U¡wU7³7¡;U.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¨Link´µDescription¡4¨¡w¨7³9¡¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àûDriver´µDescription¡4û¡Wû7³10¡Çû.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†`Partitioning´µtheµBlockµDiagram:µDelayµandµForkµBlocks¡4`¡W`7³13¡`.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à³Delay´µBlocks¡4³¡W³7³13¡S³.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àFork´µBlocks¡4¡W7³13¡6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†kInterprocessor´µCommunicationµ(IPC)¡4k¡Wk7³19¡@k.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¾Interface´µofµIPCµModels¡4¾¡W¾7³20¡X¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	IPC´µModelµLibraryµforµtheµTMS320C40¡4	¡W	7³22¡Ñ	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	vExamples¡4	v¡W	v7³25¡¥	v.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÉDEMUX¡4	É¡W	É7³25¡Â	É.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
Block´µDiagram¡4
¡W
7³25¡Ç
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
oArchitecture¡4
o¡W
o7³26¡
o.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
ÁAttribute¡4
Á¡W
Á7³29¡6
Á.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:V¤ÿýerification¡4¡W7³31¡p.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’)ìD“I501ileaf_page_string1:xv¥	öä¥	öäâ²¡Ô¤ÿÒxv¡àÉ²Route¡4É¡WÉ7³32¡¥É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Block´µDiagram¡4¡W7³32¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nArchitecture¡4n¡Wn7³34¡n.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÁAttribute¡4Á¡WÁ7³37¡6Á.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:V¤ÿýerification¡4¡W7³39¡p.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àfNotch¡4f¡Wf7³40¡ˆf.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹Block´µDiagram¡4¹¡W¹7³40¡Ç¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Architecture¡4¡W7³43¡.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:^Attribute¡4^¡W^7³47¡6^.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:°V¤ÿýerification¡4°¡W°7³51¡p°.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Q8.¡†QInstalling´µaµNewµT¤ÿúarget¡†ÓT¤ÿúargetµFile¡4Ó¡wÓ8³2¡¥Ó.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†8COSSAP_DCG_P¤ÿüA¤ÿüTH´µEnvironmentµV¤ÿüariable¡48¡w88³3¡(8.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†œShell´µScripts¡4œ¡wœ8³3¡ßœ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Optimization´µFiles¡4¡w8³4¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†fProcessor´µArchitectureµFile¡4f¡wf8³5¡Xf.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ìÐOPS m:m:D€‚Document:lofÿ‚Last saved on:Fri, Jan 2, 1998 14:23:50ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›ÈD“I501ileaf_page_string1:xvii¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿ¾xvii¡,m²¥	öä¡JmList´µofµFigures¡,C²Figure 1³1³Block´µDiagramµwithµ(a)µInconsistentµDataµRatesµ¡”Šandµ(b)µConsistentµDataµRates¡4Š¡WŠ1³15¡´Š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ñFigure 1³2³Block´µDiagramµwithµInsuf¤ÿÿficientµDelays¡4ñ¡Wñ1³16¡bñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,YFigure 1³3³Filter¡4Y¡WY1³21¡üY.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÁFigure 1³4³Block´µDiagramµSplitµintoµStrongµComponents¡4Á¡WÁ1³29¡óÁ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,(Figure 1³5³Strong´µComponentµConsistingµofµFeedbackµLoops¡4(¡W(1³30¡„(.´µ.µ.µ.µ.µ.µ¡,Figure 1³6³Hierarchy´µofµFeedbackµLoopsµwithinµtheµ¡”×StrongµComponent¡4×¡W×1³31¡’×.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,>Figure 1³7³Inner´µLoopµBlock¡4>¡W>1³32¡;>.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¦Figure 2³1³xdcg´µWindowµµShowingµT¤ÿúargetµPop-UpµWindow¡4¦¡w¦2³6¡J¦.´µ.µ.µ.µ.µ.µ.µ.µ¡,	Figure 2³2³File´µSelectionµWindow¡4	¡W	2³17¡Ì	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	uFigure 2³3³Set´µOptionsµDialogµBox¡4	u¡W	u2³22¡é	u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÝFigure 2³4³Extras´µWindow¡4	Ý¡W	Ý2³31¡	Ý.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
EFigure 3³1³Schematic´µacc_1.sch¡4
E¡w
E3³7¡¯
E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
­Figure 3³2³Create´µCOSSAPµNetlistµDialogµBox¡4
­¡w
­3³8¡
­.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 3³3³The´µxdcgµWindow¡4¡W3³10¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÈD“I501ileaf_page_string1:xviii¥	öä¥	öäâ²¡,xviii¡,É²Figure 3³4³Schematic´µnotch.sch¡4É¡WÉ3³14¡’É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,*Figure 3³5³Set´µOptionsµDialogµBox¡4*¡W*3³15¡é*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ŒFigure 3³6³T¤ÿúarget´µSpecificµAttributesµDialogµBox¡4Œ¡WŒ3³35¡(Œ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,íFigure 3³7³Setting´µaµT¤ÿúargetµSpecificµAttribute¡4í¡Wí3³36¡Ñí.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,NFigure 3³8³Schematic´µacc_prim.sch¡4N¡WN3³49¡N.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,°Figure 3³9³Starting´µModelµMaker¡4°¡W°3³52¡¯°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 3³10³Model´µMakerµwithµtheµModelµLoaded¡4¡W3³53¡E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,rFigure 3³1¤ÿü1³Schematic´µacc_2.sch¡4r¡Wr3³54¡Ìr.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÔFigure 4³1³xdspint´µWindow¡4Ô¡wÔ4³3¡Ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,5Figure 5³1³COSSAP´µDSPµModelµLibraries¡45¡W55³10¡—5.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,–Figure 5³2³COSSAP´µUserµEnvironment¡4–¡[–5³1¤ÿü1¡]–.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,÷Figure 7³1³Block´µDiagramµofµT¤ÿýwoµBlocks¡4÷¡w÷7³3¡z÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,YFigure 7³2³Architecture´µofµtheµT¤ÿýwo-ProcessorµSystem¡4Y¡wY7³4¡ÖY.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ºFigure 7³3³Merging´µofµForkµBlocksµbyµtheµDCG¡4º¡Wº7³16¡º.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 7³4³Fork´µMappingµWhenµSuccessorsµAreµMappedµ¡”bontoµtheµSameµProcessor¡4b¡Wb7³17¡@b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÃFigure 7³5³Fork´µMappingµWhenµSuccessorsµAreµMappedµ¡”
ontoµDif¤ÿÿferentµProcessors¡4
¡W
7³18¡@
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,kFigure 7³6³Replacing´µaµCutµSignalµwithµanµIPCµModelµPair¡4k¡Wk7³20¡-k.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÌFigure 7³7³DEMUX´µBlockµDiagram¡4Ì¡WÌ7³26¡éÌ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	.Figure 7³8³Architecture´µDiagramµofµExampleµQuad2PE¡4	.¡W	.7³29¡Ö	..´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Figure 7³9³Route´µBlockµDiagram¡4	¡W	7³33¡¯	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ðFigure 7³10³New´µConfigurationµofµExampleµRoute¡4	ð¡W	ð7³34¡b	ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
RFigure 7³1¤ÿü1³Architecture´µDiagramµofµExampleµRoute3PE¡4
R¡W
R7³35¡
R.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
³Figure 7³12³Block Diagram of Notch Design¡4
³¡W
³7³42¡Ñ
³.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 7³13³Architecture´µDiagramµofµExampleµNotch¡4¡W7³43¡œ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÐOPS m:m:D€‚Document:lotÿ‚Last saved on:Fri, Jan 2, 1998 14:23:50ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›+D“I501ileaf_page_string1:xix¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿÈxix¡,m²¥	öä¡JmList´µofµTables¡,6²T¤ÿúable 4³1³T¤ÿúable´µofµxdspintµCommands¡46¡w64³6¡@6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’+ÐOPS m:m:D€‚Document:loeÿ‚Last saved on:Fri, Jan 2, 1998 14:23:50ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›D“I501ileaf_page_string1:xxi¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿÈxxi¡,m²¥	öä¡JmList´µofµExamples¡,K²Example 1³1³Flat´µSchedule¡4K¡WK1³22¡K.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,µExample 1³2³Generated´µDetectµSequencesµSchedule¡4µ¡Wµ1³24¡¹µ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 1³3³Hierarchical´µScheduling¡4¡W1³29¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,‰Example 1³4³T¤ÿúop-Level´µSchedule¡4‰¡W‰1³30¡Ì‰.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,òExample 1³5³Derived´µSchedule¡4ò¡Wò1³33¡’ò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,\Example 1³6³Inner´µLoopµScheduling¡4\¡W\1³33¡\.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÆExample 1³7³Multiplexer´µCodeµT¤ÿúemplate¡4Æ¡WÆ1³35¡zÆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,0Example 2³1³Additional´µDSP³SpecificµCode¡40¡W02³32¡Ñ0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,šExample 2³2³Additional´µBoard³SpecificµCode¡4š¡Wš2³33¡îš.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Example 3³1³Sequence´µDetectionµSchedule¡4	¡W	3³17¡Ñ	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	mExample 3³2³Hierarchical´µScheduling¡4	m¡W	m3³19¡#	m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	×Example 3³3³Global´µBlockµFactorµSchedule¡4	×¡W	×3³23¡´	×.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
AExample 3³4³Function´µCall¡4
A¡W
A3³25¡
A.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
«Example 3³5³Function´µCall¡4
«¡W
«3³26¡
«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 3³6³Inline´µCode¡4¡W3³28¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’oD“I501ileaf_page_string1:xxii¥	öä¥	öäâ²¡,xxii¡,É²Example 3³7³Unfolded´µCode¡4É¡WÉ3³30¡;É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,.Example 3³8³Zero´µOverheadµLoopµCode¡4.¡W.3³31¡z..´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,’Example 3³9³Generated´µSchedules¡4’¡W’3³39¡é’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,÷Example 3³10³Generic´µCµFile¡4÷¡W÷3³50¡X÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,[Example 6³1³Example´µofµCµCodeµStructureµGeneratedµbyµDCG¡4[¡w[6³4¡¾[.´µ.µ.µ.µ¡,ÀExample 6³2³Example´µofµGenericµCµCodeµforµInput/OutputµPorts¡4À¡wÀ6³8¡ÛÀ.´µ.µ.µ¡,%Example 7³1³T¤ÿýwo-Processor´µSystemµCode¡4%¡w%7³4¡´%.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,‰Example 7³2³Mapping´µontoµBlocks¡4‰¡w‰7³6¡é‰.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,îExample 7³3³Using´µIntegers¡4î¡Wî7³12¡;î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,RExample 7³4³Model´µDefinitionµFileµEntries¡4R¡WR7³20¡—R.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,·Example 7³5³IPC´µModelµPair¡4·¡W·7³22¡X·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 7³6³Architecture´µFileµhydra01.dcg_arch¡4¡W7³27¡E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,€Example 7³7³Attribute´µFile¡4€¡W€7³30¡€.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,äExample 7³8³Architecture´µFileµhydra05.dcg_arch¡4ä¡Wä7³36¡Eä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,IExample 7³9³Attribute´µFileµroute.attr¡4I¡WI7³38¡I.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,®Example 7³10³Architecture´µFileµhydra04.dcg_arch¡4®¡W®7³44¡b®.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 7³1¤ÿü1³Attribute´µFileµnotch.attr¡4¡W7³47¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’oÐOPS m:m:D€‚Document:dcg1ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:44ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:timsps11i±:&$*!!!&!!!&!)!!!!!!!!!!.).+°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12i±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7° wst:courps10± :*°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€åÿÿ‘hˆåÿÿ(ˆP+»å™™ÿÿNîÍå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’@›”D“I501ileaf_page_string1:1-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡‹Á²DCG´µOverview¡Ô¤ÿ¾1³1¡,m²²1â²¥	öä¡Õm²â¡,v²DCG´µOverview¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡This´µchapterµprovidesµanµoverallµpictureµofµtheµCOSSAPµDSPµCode¡þéGeneratorµ(DCG)µandµintroducesµtheµconceptsµandµterminology¡þ2usedµthroughoutµthisµmanual.¡þÔThe²µ²DCGµtoolµisµaµcompleteµimplementationµenvironmentµfor¡þgenerating,µcompiling,µandµlinkingµcode,µandµdownloadingµtheµcode¡þfontoµoneµofµtheµboardsµthatµtheµDCGµsupports.µTheµDCGµcanµalso¡þ®generateµcodeµtargetedµforµmultipleµDigitalµSignalµProcessors¡þ÷(DSPs).¡þ	šAnµinteractiveµmodeµisµavailable.µAfterµgeneratingµtheµDSPµcodeµand¡þ	âdownloadingµitµtoµaµprocessorµboard,µuseµtheµxdspintµtoolµtoµinteract¡þ
+withµtheµrunningµDSPµprogram,µforµexample,µforµdebuggingµor¡þ
tmonitoringµpurposes.’”ÛD“I501ileaf_page_string1:1-2¥	öäÃËÁâÊË¡Ä,X,B¡Ä,B	cB¡Ä	cB	cX¡Ä	cX,XÆÃÁÊËÃ¡Ä,BÊBÆÃ¥	öäÃÁÊË¡Ä,ø,â¡Ä,â	câ¡Ä	câ	cø¡Ä	cø,øÆÃÁÊËÃ¡ÄþâÊâÆÃ¥	öä¥	öä¡8Á²DCG´µOverview¡.1³2¡þÉ²This´µchapterµisµorganizedµintoµtheµfollowingµsections:¡þL²S¡XL²COSSAPµDSPµCodeµGenerator¡þ¿²S¡X¿²DSPµCodeµGeneratorµEnvironment¡þ2²S¡X2²DSPµCodeµGeneratorµTools¡þ¤²S¡X¤²COSSAPµDSPµCodeµGenerationµStrategies¡,˜²COSSAP´µDSPµCodeµGenerator¡þU²The´µCOSSAPµDSPµCodeµGeneratorµisµaµhigh³levelµtoolµthat¡þgeneratesµoptimizedµCµorµassemblyµcodeµforµprogrammable¡þæprocessors,µsuchµasµdigitalµsignalµprocessorsµ(DSPs).µDCGµoffersµa¡þ.wideµrangeµofµoptimizationµstrategies,µwhichµallowµyouµtoµadaptµthe¡þwgenerationµofµtheµcodeµtoµapplication³specificµneeds.µTheµcomplete¡þÀDCGµimplementationµenvironmentµallowsµyouµtoµsmoothlyµproceed¡þthroughµcodeµgeneration,µcompilingµandµlinking,µandµdownloading¡þQontoµoneµorµmoreµofµtheµsupportedµboards.¡þ2²
Design´µPhasesµforµGeneratingµDSPµCode¡þÏ²Within´µtheµCOSSAPµenvironment,µyouµdefineµaµsystemµbyµdrawingµa¡þ	blockµdiagramµonµtheµscreenµandµassigningµvaluesµtoµthe¡þ	`parametersµofµindividualµblocks.µCOSSAPµstoresµeachµblock¡þ	©diagramµasµanµIEEEµ1076µVHDLµnetlist.µFromµthisµdescription,¡þ	òCOSSAPµcanµautomaticallyµgenerateµoptimizedµcodeµforµDSPs,µand¡þ
:canµcompileµandµlinkµtheµgeneratedµcodeµtoµanµexecutableµprogram¡þ
ƒ(or,µinµtheµcaseµofµmulti³processorµDSPµcodeµgeneration,µmultiple¡þ
Ìprograms).µFinally,µyouµcanµdownloadµtheµexecutableµprogramµor¡þprogramsµontoµtheµtargetµboard.’ÛD“I501ileaf_page_string1:1-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,´,ž¡Ä,ž	cž¡Ä	cž	c´¡Ä	c´,´ÆÃÁÊËÃ¡ÄþžÊžÆÃ¥	öä¥	öä¡‹Á²DCG´µOverview¡Ô¤ÿ¾1³3¡þÏ²
Conceptual´µandµAlgorithmµDesign¡þn²Most´µsystemµdesignµtasksµstartµfromµaµspecificationµofµtheµrequired¡þ¶systemµperformance.µTheµsystemµengineer'sµtaskµisµtoµdesignµa¡þÿsystemµthatµmeetsµthisµperformanceµspecification.µInµmostµcases,¡þHtheµdesignµproblemµhasµseveralµsolutions,µeachµwithµitsµadvantages¡þandµdisadvantages.µTherefore,µtheµfirstµstepµisµtoµexploreµtheµdesign¡þÙspace,µidentifyingµtheµstrengthsµandµweaknessesµofµeach¡þ"alternative.µInµthisµdesignµphase,µyouµareµnotµconcernedµwithµdetails¡þjofµtheµimplementation,µbutµratherµwithµtheµsystem'sµbehavior.µThe¡þ³mostµefficientµwayµtoµworkµinµthisµphaseµisµatµaµconceptualµlevel.¡þVTheµDCGµprovidesµaµrichµsetµofµcodeµblocks,µforµperforming¡þžoperationsµrangingµfromµbasicµalgorithmsµ(suchµasµmultiplicationµor¡þçsummation)µtoµmoreµcomplexµsignalµprocessingµtasksµ(suchµas¡þ0filteringµorµFourierµtransformation).µFromµtheseµblocks,µyouµcan¡þxquicklyµassembleµaµsystemµandµanalyzeµitsµperformance.µBecause¡þÁyouµdoµnotµwasteµtimeµonµimplementation³specificµdetails,µyouµcan¡þ
concentrateµonµfindingµtheµbestµsolutionsµtoµtheµdesignµproblem.¡þî²
Implementation¡þ²Theµnextµstepµisµtoµimplementµtheµsystemµontoµoneµorµmore¡þÖprogrammableµDSPs.µFromµtheµgraphicalµblockµdiagramµcreatedµin¡þ	theµCossapµBlockµDiagramµEditorµ(BDE),µtheµDCGµcan¡þ	gautomaticallyµgenerateµoptimizedµprogramµcodeµthatµyouµcan¡þ	¯directlyµdownloadµontoµtheµprogrammableµDSP.’<D“I501ileaf_page_string1:1-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,P,:¡Ä,:	c:¡Ä	c:	cP¡Ä	cP,PÆÃÁÊËÃ¡Äþ:Ê:ÆÃ¥	öäÃÁÊË¡Ä,â,Ì¡Ä,Ì	cÌ¡Ä	cÌ	câ¡Ä	câ,âÆÃÁÊËÃ¡ÄþÌÊÌÆÃ¥	öä¥	öä¡8Á²DCG´µOverview¡.1³4¡,Õ²DSP´µCodeµGeneratorµEnvironment¡þ|²This´µsectionµdescribesµtheµvariousµelementsµthatµcollectivelyµform¡þÄtheµenvironmentµofµtheµDSPµCodeµGenerator.¡þŠ²
Primitive´µModels,µHierarchicalµModels,µandµLibraries¡þ²In´µCOSSAP,µtheµlowest³levelµblocksµinµaµhierarchyµareµcalled¡þ_²primitiveµmodels²,µorµ²primitives².µAµmodelµthatµconsistsµofµseveral¡þ¨modelsµisµcalledµaµ²hierarchicalµmodel².µCOSSAPµprovidesµlibrariesµof¡þðmodelsµforµbasicµsignalµprocessingµtasks,µandµeachµmodelµincludes¡þ9itsµownµsourceµcode.µInµaddition,µyouµcanµwriteµyourµownµprimitive¡þ‚models,µasµdescribedµinµtheµ²COSSAPµModelµUserµGuide².µYouµcan¡þÊuseµtheµCOSSAPµBlockµDiagramµEditorµtoµcombineµprimitivesµinto¡þhierarchicalµmodels,µwhichµencapsulateµtheµcombinedµfunctionality¡þ[inµoneµgraphicalµblock.µUsingµtheµBDEµyouµcanµalsoµnestµone¡þ¤hierarchicalµmodelµwithinµanother.¡þ4COSSAPµincludesµutilitiesµtoµcombineµmodelsµintoµyourµown¡þ}libraries.µTheµuniqueµlibraryµlabelingµschemeµinµCOSSAPµletsµyou¡þÆandµotherµusersµfreelyµshareµlibrariesµwithoutµtheµconfusionµthatµcan¡þoccurµwhenµmultipleµmodelsµuseµtheµsameµnameµ(seeµtheµ²COSSAP¡þWModelµUserµGuideµ²forµmoreµinformation).¡þ	²
COSSAP´µBlockµDiagramµEditor¡þ	©²You´µcanµuseµtheµBDEµtoµplaceµandµconfigureµblocksµandµtoµconnect¡þ	òtheµblocksµviaµsignals.µWhileµyouµareµdesigningµaµlayout,µCOSSAP¡þ
:doesµnotµexamineµwhetherµaµblockµrepresentsµaµprimitiveµorµa¡þ
ƒhierarchicalµmodel.µYouµcanµinsert,µconfigure,µcopy,µdelete,µand¡þ
Ìmoveµblocks.µYouµcanµalsoµviewµtheµmodelµdefinitionµfileµofµaµblock¡þforµdetailedµinformationµaboutµtheµmodel.’<’D“I501ileaf_page_string1:1-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,ÿ¡Ä,ÿ	cÿ¡Ä	cÿ	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÿÊÿÆÃ¥	öä¥	öä¡‹Á²DCG´µOverview¡Ô¤ÿ¾1³5¡þÏ²
Parameterized´µHierarchicalµModels¡þn²When´µyouµcombineµmodelsµintoµaµhierarchicalµmodel,µyouµcan¡þ¶assignµeitherµfixedµnumericalµvaluesµorµvariablesµtoµtheµparameters¡þÿofµeachµofµtheµbuildingµblocks,µwhetherµtheµblockµisµaµprimitiveµor¡þHanotherµhierarchicalµmodel.µIfµyouµassignµaµvariable,µCOSSAPµuses¡þtheµvariableµnameµasµtheµvalueµofµtheµparameterµforµtheµhierarchical¡þÙmodel.µYouµcanµthenµpassµparametersµofµprimitivesµupµthe¡þ"hierarchy.µYouµcanµuseµtheµflexibilityµofµparameterµvariablesµto¡þjcreateµappropriateµmodelsµforµyourµapplications.¡þN²
DSP´µCodeµGenerationµfromµHierarchicalµBlock¡þ™Diagrams¡þ8²From´µaµhierarchicalµblockµdiagram,µyouµcanµproduceµDSPµcodeµthat¡þaµprogrammableµDSPµcanµexecute.µVariousµcodeµgeneration¡þÊstrategiesµletµyouµtradeoffµcodeµsize,µthroughput,µandµlatencyµfor¡þdifferentµimplementations.µForµsupportedµplug³inµDSPµboards,¡þ[COSSAPµautomatesµtheµsequenceµofµevents,µsoµyouµcanµspecifyµa¡þ¤simulation,µthenµgenerateµtheµDSPµcodeµandµrunµitµonµtheµactual¡þìprocessorµwithoutµexitingµCOSSAP.’’DD“I501ileaf_page_string1:1-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‡,q¡Ä,q	cq¡Ä	cq	c‡¡Ä	c‡,‡ÆÃÁÊËÃ¡ÄþqÊqÆÃ¥	öäÃÁÊË¡Ä,ò,Ü¡Ä,Ü	cÜ¡Ä	cÜ	cò¡Ä	cò,òÆÃÁÊËÃ¡ÄþÜÊÜÆÃ¥	öä¥	öä¡8Á²DCG´µOverview¡.1³6¡,Õ²DSP´µCodeµGeneratorµTools¡þ”²The´µDCGµtoolsµconsistµofµtheµBDE,µtheµxdcgµtool,µandµtheµDSP¡þÝInteractorµxdspint.¡þÁ²
COSSAP´µBlockµDiagramµEditor¡þ`²Use´µtheµBDEµforµallµdesignµstepsµrequiredµtoµcreateµandµconfigureµa¡þ©blockµdiagramµlayoutµsuitableµforµbothµsimulationµandµDSPµcode¡þñgeneration.µTheµBDEµenablesµyouµtoµcreateµblockµdiagramsµby¡þ:instantiatingµandµconnectingµexistingµprimitiveµandµhierarchical¡þƒmodels.µTheµresultingµdesignsµcanµthemselvesµbeµhierarchical.µAfter¡þËyouµuseµtheµBDEµtoµcheckµaµdesignµforµpossibleµerrors,µyou¡þgenerateµaµnetlistµdescriptionµofµtheµdesign,µwhichµservesµasµinputµto¡þ]theµDCG.¡þÿForµmoreµinformation,µseeµthe²µCOSSAPµBlockµDiagramµEditorµUser¡þHGuide.¡þ,²
DSP´µCodeµGenerator¡þË²The´µDCGµisµaµhigh³levelµsynthesisµtoolµthatµgeneratesµoptimized¡þ	codeµforµprogrammableµprocessors,µsuchµasµDSPs.’D€D“I501ileaf_page_string1:1-7¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¾1³7¡þÏ²
Generated´µCµandµGenericµCµCode¡þn²The´µDCGµcanµgenerateµtheµfollowingµtwoµtypesµofµCµsourceµcode:¡þò²S¡Xò²AµCµprogramµ(.cµfile)µthatµdescribesµaµcompleteµDSPµsystem¡þf²S¡Xf²GenericµCµcodeµ(.gcµfile)µthatµhasµinputµand/orµoutputµportsµwhich¡X­canµthenµbeµusedµtoµcreateµaµblockµwithinµanotherµDSPµsystem¡þ>Theµfollowingµparagraphsµdescribeµthisµcodeµinµmoreµdetail.¡þ²CµProgramµ(CompleteµDSPµSystem)¡þ‰²TheµDCGµcanµcreateµaµDSPµprogramµfromµaµschematic.µThe¡þÒschematicµmustµspecifyµaµcompleteµsystem.µExternalµportsµareµnot¡þallowed.µTheµgeneratedµprogramµisµaµC³frameµmainµprogram,µwhich¡þcmayµcontainµassemblyµcodeµsegments.µAfterµgeneration,µtheµcode¡þ¬canµbeµcompiledµandµdownloadedµontoµtheµtargetµhardware.¡þ‹²GenericµCµCodeµ(OneµBlockµofµaµDSPµSystem)¡þ÷²AµsubblockµdiagramµofµaµDSPµsystemµcanµbeµreplacedµbyµaµprimitive¡þ@modelµwrittenµinµgenericµCµcode,µtherebyµimprovingµtheµruntimeµofµa¡þˆCOSSAPµstreamµdrivenµsimulation.µYouµcanµuseµtheµDCGµto¡þÑgenerateµgenericµCµcodeµfromµthisµsubblockµdiagram.µFirst,µextract¡þ	theµsubblockµdiagramµandµplaceµitµinµitsµownµschematic.µThen,¡þ	bgenerateµtheµgenericµCµfileµandµincludeµtheµresultingµmodelµinµa¡þ	«modelµlibrary.µTheµmodelµcanµthenµbeµplacedµbackµintoµtheµDSP¡þ	ósystem.’€oD“I501ileaf_page_string1:1-8¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³8¡þÉ²Using´µtheµgenericµCµcodeµmodelµimprovesµsimulationµperformance¡þbecauseµthereµisµnoµruntimeµoverheadµdueµtoµdynamicµschedulingµor¡þZdynamicµsignalµbufferµallocation.µAllµfunctionalityµofµtheµformer¡þ£subblockµdiagramµisµhiddenµinµtheµprimitiveµmodelµdescribedµbyµthe¡þìgenericµCµfile.µSubblockµdiagramsµthatµhaveµaµhighµgranularityµor¡þ4containµtime³consumingµfeedbackµloopsµareµtheµmostµlikelyµto¡þ}improveµsimulationµperformanceµwhenµreplacedµbyµaµgenericµCµcode¡þÆprimitiveµmodel.¡þ†TheµsubblockµdiagramµcanµconsistµofµgenericµCµcodedµmodelsµonly.¡þÏItµmustµbeµ²scalableµstatic².µThisµmeansµthatµallµportsµofµitsµblocks¡þhaveµfixedµratesµ(static)µandµallµratesµofµaµblockµcanµbeµanµinteger¡þ`multipleµ(localµblockµfactor)µofµtheµbasicµratesµ(scalable).¡þ!Noteµthatµallµblocks,µports,µandµsignalsµwithinµtheµblockµdiagramµare¡þinoµlongerµvisibleµtoµotherµCOSSAPµtools.µForµexample,µtheµinternal¡þ²signalµbuffersµofµtheµsubblockµdiagramµcannotµbeµmonitoredµwhen¡þûtheµsubblockµisµreplacedµbyµtheµprimitiveµmodel.¡þ²
Performance´µMeasures¡þÎ²When´µdesigningµcodeµforµreal³timeµapplications,µitµisµusefulµto¡þ	assessµtheµcodeµbyµimplementationµperformanceµmeasures.µThe¡þ	_mostµobviousµperformanceµmeasuresµareµthroughput,µlatency,µand¡þ	¨memoryµrequirements.¡þ
A²S¡X
A²²Throughput²µisµtheµnumberµofµsignalµelementsµprocessedµatµa¡X
‡specifiedµportµperµunitµtime.µThisµperformanceµmeasureµhelps¡X
Îyouµtoµdetermineµwhetherµyourµdesignµcanµmeetµsamplingµtime¡Xconstraints.’oëD“I501ileaf_page_string1:1-9¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¾1³9¡þÉ²²S¡XÉ²²Latency²´µspecifiesµtheµtimeµoffsetµbetweenµcorrespondingµinput¡Xandµoutputµsignalµelements.µLatencyµcanµbeµdueµtoµinternal¡XValgorithmicµdelayµoperationsµorµblockµprocessingµ(Forµmore¡Xinformation,µseeµtheµsectionµScalableµStaticµDataµFlow"µlaterµin¡Xãthisµchapter).¡þU²S¡XU²²Memoryµrequirements²µforµtheµprogramµitselfµ(programµmemory)¡Xœandµforµrunningµtheµprogramµ(dataµmemory)µcanµbeµaµserious¡Xâconstraint,µespeciallyµifµnoµexternalµmemoryµisµavailable.¡þqTheseµimplementationµperformanceµmeasuresµdefineµthree¡þºimportantµdimensionsµofµtheµimplementationµspace.µHowever,µthese¡þthreeµperformanceµmeasuresµareµoftenµmutuallyµexclusive.µFor¡þKexample,µincreasingµthroughputµusuallyµalsoµincreasesµmemory¡þ“consumptionµandµlatency.µConversely,µdecreasingµmemory¡þÜrequirementsµusuallyµdecreasesµthroughput.µTherefore,µyouµoften¡þ%cannotµfindµtheµoptimalµcodeµforµaµspecificµblockµdiagram.µYouµcan¡þmuseµtheµDCGµtoµexploreµtheµtradeoffsµamongµtheseµthree¡þ¶performanceµmeasures.¡þUYouµcanµinteractivelyµspecifyµdifferentµcodeµgenerationµstrategies,¡þžeachµhavingµdifferentµeffectsµonµtheµperformanceµmeasures,µand¡þæcombineµstrategiesµtoµgenerateµcodeµthatµbestµmeetsµtheµneedsµof¡þ/yourµapplication.¡þ	²
Input´µSpecification¡þ	©²You´µdescribeµtheµsystemµthatµisµtoµbeµimplementedµonµaµDSPµby¡þ	òcreatingµaµblockµdiagramµ(seeµtheµ²COSSAPµBlockµDiagramµEditor¡þ
:UserµGuide²).µSuchµaµgraphicallyµconfiguredµblockµdiagramµis¡þ
ƒgeneric.µAsµlongµasµnoµhardware³specificµmodelsµhaveµbeenµused,¡þ
Ìyouµcanµuseµtheµblockµdiagramµforµbothµsimulationµandµcode¡þgeneration.’ëåD“I501ileaf_page_string1:1-10¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³10¡þÉ²The´µblockµdiagramµrepresentsµaµdataµflowµgraph,µconsistingµof¡þ²blocks²µandµ²signals²:¡þ‚²S¡X‚²Fromµanµoperationalµpointµofµview,µaµ²block²µtransformsµaµnumber¡XÉofµinputµsignalµelementsµintoµaµnumberµofµoutputµsignalµelements.¡XFromµanµimplementationµpointµofµview,µblocksµareµsoftware¡XVmodulesµsuppliedµbyµtheµCOSSAPµsystemµorµtheµuser.¡XºEachµblockµrepresentsµanµinstantiationµofµaµmodel.µEach¡Xprimitiveµmodelµisµaµpieceµofµcode,µwhereasµaµhierarchicalµmodel¡XHcanµconsistµofµprimitiveµand/orµhierarchicalµmodels.¡X¶Modelsµcanµperformµsimpleµoperationsµsuchµasµarithmetic¡Xýroutinesµasµwellµasµcomplexµoperationsµsuchµasµfilteringµor¡XCFourierµTransformation.¡X²Inµaµblockµdiagram,µthereµcanµbeµseveralµblocksµinstantiatingµthe¡Xøsameµmodel.µTheseµblocksµreferenceµtheµsameµpieceµorµpieces¡X?ofµcode.µAllµblocksµareµinterconnectedµbyµsignals.¡þ­²S¡X­²Aµ²signal²µisµaµFIFOµbufferµinµdataµmemoryµspace.µSignals¡Xôrepresentµtheµstreamingµofµsignalµelementsµfromµoneµblockµto¡X:another.¡þåBlocksµareµorganizedµintoµlibraries.µYouµcanµuseµtheµCOSSAPµBDE¡þ-toµselectµblocksµfromµlibrariesµandµplaceµthemµintoµaµblockµdiagram.¡þvTheµlibraryµprovidedµwithµtheµDCGµcoversµaµwideµspectrumµof¡þ¿algorithms,µbutµifµyouµneedµanµalgorithmµthatµisµnotµavailable,µyou¡þ	canµdevelopµandµintegrateµyourµownµcodedµDSPµprimitiveµmodels,¡þ	Pasµdescribedµinµtheµ²COSSAPµModelµUserµGuide².¡þ
²
Modeling´µConstraints¡þ
ƒ²The´µdifferentµdataµflowµparadigms³
dynamic,µstatic,µand¡þ
Ìscalable³
differµmainlyµinµtheµconstraintsµimposedµonµtheµinputµand¡þoutputµbehaviorµofµtheµmodels.’åüD“I501ileaf_page_string1:1-11¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³11¡þÉ²Dynamic´µDataµFlow¡þ6²Inµtheµ²dynamicµdataµflow²,µtheµnumberµofµsignalµelementsµprocessed¡þ~atµtheµinputµandµoutputµportsµofµaµblockµcanµbeµdifferentµforµeach¡þÇactivationµofµaµspecificµblock.µTheseµnumbersµareµalsoµdenotedµas¡þinputµratesµandµoutputµrates,µrespectively.µTheµCOSSAPµStream¡þXDrivenµSimulatorµobeysµtheµdynamicµdataµflowµparadigm,µwhich¡þ¡offersµaµhighµlevelµofµmodelingµflexibility,µbecauseµtheµinputµand¡þéoutputµbehaviorµofµtheµblocksµisµalmostµarbitrary.µAµcertainµdegreeµof¡þ2runtimeµoverheadµisµnecessaryµtoµofferµthisµflexibilityµbecauseµboth¡þ{schedulingµ(determiningµtheµactivationµorderµofµtheµblocks)µand¡þÃmanagementµofµtheµsignalµbuffersµmustµbeµdoneµdynamically.¡þ¢²StaticµDataµFlow¡þ²Theµ²staticµdataµflow²,µalsoµreferredµtoµasµsynchronousµdataµflowµ(E.¡þWA.µLeeµandµD.µG.µMesserschmitt,µ²SynchronousµDataµFlow²µin¡þ ²ProceedingsµofµtheµIEEE²,µvolumeµ75,µno.µ9,µSeptemberµ1987),µis¡þècharacterizedµbyµfixedµportµrates.µAtµeachµactivation,µtheµnumberµof¡þ1signalµelementsµconsumedµatµtheµinputµportsµandµproducedµatµthe¡þzoutputµportsµofµeachµblockµmustµbeµfixedµandµdeterminableµpriorµto¡þÂexecution.µWithµaµstaticµdataµflowµyouµcanµperformµschedulingµat¡þcompileµtimeµandµcalculateµtheµnumberµandµsizeµofµtheµsignalµbuffers¡þTthatµareµrequiredµforµintermediateµstorage.¡þöTheµnumberµofµsignalµelementsµtoµbeµconsumedµorµproducedµcan¡þ	?notµdependµonµtheµdataµvalueµofµsignalsµitselfµasµisµallowedµwith¡þ	ˆdynamicµdataµflow.µTheµadvantageµofµtheµstaticµdataµflowµparadigm¡þ	Ðisµthatµanyµruntimeµoverheadµdueµtoµschedulingµandµbufferµallocation¡þ
forµtheµsignalsµisµavoided.’ü(D“I501ileaf_page_string1:1-12¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³12¡þÉ²Scalable´µStaticµDataµFlow¡þ6²TheµDCGµisµbasedµonµanµextendedµformµofµstaticµdataµflow,µcalled¡þ~²scalableµstaticµdataµflow²,µalsoµreferredµtoµasµscalableµsynchronous¡þÇdataµflowµ(S.µRitz,µM.µPankert,µV.µZivojnovicµandµH.µMeyr,µ²High¡þLevelµSoftwareµSynthesisµforµtheµDesignµofµCommunication¡þXSystems²,µinµ²IEEEµJournalµonµSelectedµAreasµinµCommunications²,¡þ¡volumeµ11,µno.µ3,µAprilµ1993µandµV.µZivojnovic,µS.µRitz,µH.µMeyr,¡þé²SynchronizerµDesignµUsingµaµSystemµLevelµSimulationµand¡þ2SoftwareµSynthesisµEnvironment²,µinµ²InternationalµConferenceµon¡þ{SignalµProcessingµApplicationsµandµTechnology²,µCambridge,µMA,¡þÃ1992).µEachµblockµhasµaµminimalµdataµrateµassociatedµwithµitsµI/O¡þports,µforµexample,µaµcertainµnumberµofµsamplesµmustµbeµavailable¡þUatµanµinputµportµbeforeµitµcanµbeµactivated.µThisµdataµflowµparadigm¡þallowsµaµblock,µatµeachµactivation,µtoµconsumeµorµproduceµany¡þæintegerµmultipleµofµtheseµminimalµdataµrates.¡þ‰Theµstaticµdataµflowµisµaµpowerfulµparadigmµforµdescribingµreal³time¡þÑsignalµprocessingµapplications.µOneµdrawback,µhowever,µisµthat¡þmodelsµconsistingµofµsimpleµroutinesµthatµprocessµindividualµdata¡þbsamplesµcannotµbeµhandledµefficiently.µAnµadderµmodel,µfor¡þ«example,µrequiresµconsiderableµruntimeµoverheadµforµmemory¡þôoperationsµbecauseµtwoµseparateµinputµdataµsamplesµmustµbe¡þ<fetchedµandµstoredµforµeachµaddµoperationµandµtheµresultµmustµbe¡þ…stored.’(DD“I501ileaf_page_string1:1-13¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³13¡þÉ²Most´µavailableµDSPsµsupportµpipelining,µforµexample,µconcurrently¡þfetchingµanµinstruction,µfetchingµoperands,µperformingµa¡þZmultiply³add³accumulateµoperationµinµoneµcycle,µandµcomputing¡þ£addresses.µWhenµyouµallowµmodelsµtoµprocessµsections,µorµblocks,¡þìofµsignalµelementsµratherµthanµsingleµsignalµelements,µthe¡þ4architecturalµfeaturesµofµtheµhardwareµcanµbeµmoreµefficiently¡þ}utilized.µToµexploitµthis,µtheµDCGµusesµtheµscalableµstaticµdataµflow¡þÆparadigm.µForµeachµportµofµeachµblock,µtheµminimumµnumberµof¡þsamplesµtoµbeµconsumedµandµproducedµisµknown.µAµblockµobeying¡þWtheµscalableµstaticµdataµflowµatµeachµactivationµcanµconsumeµatµits¡þ inputµportsµorµproduceµatµitsµoutputµportsµanyµintegerµmultipleµofµthe¡þèminimalµinputµandµoutputµportµrates,µrespectively.µThisµintegerµisµthe¡þ1so³calledµ²localµblockµfactor²µwhichµisµassociatedµwithµaµspecificµblock¡þyandµcanµvaryµbetweenµdifferentµactivationsµofµthisµblock.¡þ5Theµlocalµblockµfactorsµofµtheµblocksµareµautomaticallyµcomputedµby¡þ~theµDCG.µTheµlocalµblockµfactorµofµaµblockµcanµbeµincreasedµby¡þÆspecifyingµaµglobalµblockµfactor.µThen,µtheµDCGµtriesµtoµmaximizeµall¡þlocalµblockµfactors.µThisµprocessµisµcalledµ²blockµprocessing².µBlock¡þXprocessingµconsolidatesµmultipleµsuccessiveµactivationsµofµaµblock¡þ intoµaµsingleµactivationµwithµtheµsuitableµlocalµblockµfactorµresultingµin¡þéreducedµoverheadµforµtheµactivations.µBlockµprocessingµcanµbe¡þ2limitedµbyµtheµnumberµofµdelaysµpresentµinµfeedbackµloops.¡þíAµblockµcanµprocessµvectorsµofµsignalµelementsµinsteadµofµsingle¡þ	6signalµelements.µIfµtheµmodel'sµalgorithmsµtakeµadvantageµofµvectors¡þ	ofµsignalµelementsµatµtheµports,µDSPµpipeliningµcanµbeµutilized.¡þ
:Scalableµblockµprocessingµcanµleadµtoµenhancedµthroughputµand¡þ
ƒreducedµprogramµmemoryµrequirementµdueµtoµtheµreducedµnumber¡þ
Ìofµactivations.µHowever,µintermediateµstorageµofµsignalµelements¡þincreasesµtheµlatencyµandµdataµmemoryµconsumption.’D{D“I501ileaf_page_string1:1-14¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³14¡þÉ²Because´µtheµDCGµhasµbeenµdesignedµtoµgenerateµreal³timeµcode,¡þanyµruntimeµoverheadµmustµbeµavoided.µTherefore,µtheµdataµflow¡þZparadigmµforµtheµDCGµmustµbeµstaticµtoµcomputeµtheµscheduleµand¡þ£theµbufferµallocationµforµtheµsignalsµatµcompileµtime.µToµallow¡þìincreasedµthroughputµdueµtoµblockµprocessing,µtheµDCGµusesµthe¡þ4scalableµstaticµdataµflowµparadigm.¡þ?²
Executing´µBlockµDiagrams¡þö²In´µtheµgeneratedµprogram,µtheµscheduleµofµtheµsystemµcanµbe¡þ?repeatedµperiodicallyµsuchµthatµanµinfiniteµstreamµofµsignalµelements¡þ‡canµbeµprocessed.µToµkeepµtheµmemoryµallocationµforµtheµsignal¡þÐbuffersµbounded,µafterµtheµindividualµblocksµhaveµbeenµactivated¡þaccordingµtoµoneµperiodµofµtheµschedule,µeveryµsignalµbufferµinµthe¡þasystemµcanµonlyµreserveµintermediateµdataµstorageµspaceµequalµto¡þªitsµinitialµmemoryµrequirement.µIfµthisµpreconditionµisµnotµfulfilled,¡þódataµwillµaccumulateµandµtheµprogramµwillµnotµbeµableµtoµhandleµan¡þ;infiniteµflowµofµinputµdata.¡þõOneµexampleµofµnotµbeingµableµtoµconstructµaµvalidµperiodic¡þ>scheduleµforµaµblockµdiagramµisµdepictedµinµFigure 1³1a.µBlockµM1¡þ†canµbeµtheµfirstµblockµtoµbeµactivatedµbecauseµitµhasµnoµinputµports.¡þÏAfterµactivatingµblockµM1,µblockµM2µandµthenµblockµM3µcanµbe¡þ	activated.µInµthisµexample,µblockµM3µconsumesµonlyµhalfµthe¡þ	`samplesµatµitsµinputµportµthatµareµbeingµproducedµbyµblockµM1.µThis¡þ	©activationµsequenceµcanµbeµrepeatedµperiodicallyµbutµnotµinfinitely,¡þ	òsinceµsamplesµwouldµcontinuouslyµaccumulateµonµtheµsignalµjoining¡þ
:blockµM1µtoµblockµM3.µBecauseµtheµmemoryµrequirementµofµany¡þ
ƒscheduleµforµthisµblockµdiagramµwouldµexceedµreasonableµlimits,µthis¡þ
Ìcouldµnotµbeµusedµpractically.µThisµtypeµofµblockµdiagramµisµsaidµto¡þbeµofµinconsistentµdataµrates.’{	D“I501ileaf_page_string1:1-15¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³15¡,É²Figure 1³1³Block´µDiagramµwithµ(a)µInconsistentµDataµRatesµandµ(b)¡²ConsistentµDataµRates¡²¹¥	öäÃËÁÊË¡ÄŽ:Ž†¡ÄŽ†V†¡ÄV†V:¡ÄV:Ž:âãÇÆÃ²â¡ñK¤ÿ²signal_1²¡òì¤ÿÞM1²¡jH2ÊËÃ¡ÄV
s
ÆÃÃÊË¡ÄVùs
¡Äs
V¡ÄVV
¡ÄV
VùÇÆÃ¡m¤ÿ²signal_2¡j®1²¡Ê&¤ÿêa)¡ÆJ¤ÿêb)Ã¡Ä‚Ô‚ ¡Ä‚ J ¡ÄJ JÔ¡ÄJÔ‚ÔâÇÆÃâ¡æ†¤ÿÞM2Ã¡Äv:v†¡Äv†>†¡Ä>†>:¡Ä>:v:âÇÆÃâ¡Úì¤ÿÞM3ÊËÃ¡Ä
Ž‚ŽÆÃÃÊË¡Äe}‚Ž¡Ä‚ŽeŸ¡ÄeŸeŽ¡ÄeŽe}ÇÆÃÁÊËÃ¡ÄVÂ
ÂÆÃÃ¡Ä
Â
ŽÆÃ²¡JÂ1¡Zº1ÁÊËÃ¡ÄÂ‹J‹ÆÃÃÊË¡ÄV®s¿¡Äs¿VÏ¡ÄVÏV¿¡ÄV¿V®ÇÆÃÁÊËÃ¡Äv¿Â¿ÆÃÃ¡ÄÂ¿Â‹ÆÃ¡2¶1¡6:1¡Âr¤ÿ²signal_3ÃÁÊË¡ÄšPšœ¡Äšœbœ¡ÄbœbP¡ÄbPšPâÇÆÃâ¡ýa¤ÿ²signal_1²¡þ¤ÿÞM1²¡v^1ÊËÃ¡Äb  ÆÃÃÊË¡Äb ¡Ä b1¡Äb1b ¡Äb bÇÆÃ¡ƒ¤ÿ²signal_2¡vÄ1Ã¡ÄŽêŽ6¡ÄŽ6V6¡ÄV6Vê¡ÄVêŽêâÇÆÃ²â¡òœ¤ÿÞM2Ã¡Ä‚P‚œ¡Ä‚œJœ¡ÄJœJP¡ÄJP‚PâÇÆÃâ¡æ¤ÿÞM3ÊËÃ¡Ä¤Ž¤ÆÃÃÊË¡Äq“Ž¤¡ÄŽ¤qµ¡Äqµq¤¡Äq¤q“ÇÆÃÁÊËÃ¡ÄbØØÆÃÃ¡ÄØ¤ÆÃ²¡VØ1¡fÐ1ÁÊËÃ¡ÄÎ¡V¡ÆÃÃÊË¡ÄbÄÕ¡ÄÕbå¡ÄbåbÕ¡ÄbÕbÄÇÆÃÁÊËÃ¡Ä‚ÕÎÕÆÃÃ¡ÄÎÕÎ¡ÆÃ¡>Ì2¡BP2¡Îˆ¤ÿ²signal_3²¡™¹¡þ7²Anµexampleµofµaµblockµdiagramµwithµconsistentµdataµratesµisµgivenµin¡þ€Figure 1³1b.µAµvalidµactivationµorderµmightµbe¡þ²{M1,´µM2,µM1,µM2,µM3}¡þ“²After´µeachµperiodµofµthisµschedule,µallµsignalµbuffersµinµtheµsystem¡þÜresumeµtheirµinitialµstate.¡þThisµconditionµcanµbeµrestatedµasµtheµfirstµrequirementµofµaµsystem¡þÇinµorderµforµitµtoµbeµexecutable.¡þ	jNote:²¡X	³²Theµdataµratesµinµtheµblockµdiagramµmustµbeµconsistentµsoµthatµa¡X	ûvalidµscheduleµcanµbeµfoundµforµtheµsystem.’	dD“I501ileaf_page_string1:1-16¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³16¡þÉ²Another´µimportantµpointµinµtheµrunnabilityµofµaµsystemµisµassociated¡þwithµtheµdelaysµinµfeedbackµloops.µAµdelayµisµattachedµtoµaµsignal¡þZandµdeterminesµtheµoffsetµbetweenµtheµinputµreadµfromµandµoutput¡þ£signalµelementsµwrittenµtoµthisµsignal.µTheµdelayµrequiredµinµorderµto¡þìproperlyµrunµaµfeedbackµloopµisµdependentµonµtheµinputµratesµofµthe¡þ4blocksµfollowingµtheµdelayedµsignal.µFigure 1³2µillustratesµthisµpoint.¡,ü²Figure 1³2³BlockµDiagramµwithµInsufficientµDelays¡²¥°ÚþÃËÁÊË¡ÄBBk¡ÄBk
k¡Ä
k
¡Ä
BâãÇÆÃ²â¡¡|¤ÿÉsize 1²¡¦Ñ¤ÿµsource²¡"2ÊËÃ¡Ä
§/§ÆÃÃÊË¡Ä–/§¡Ä/§¸¡Ä¸§¡Ä§–ÇÆÃÃ¡Ä""k¡Ä"kêk¡Äêkê¡Äê"âÇÆÃ²â¡†Ñ¤ÿÔsinkÃ¡Ä22k¡Ä2kúk¡Äúkú¡Äú2âÇÆÃâ¡–Ñ¤ÿ×addÃ¡Ä6;6‡¡Ä6‡þ‡¡Äþ‡þ;¡Äþ;6;âÇÆÃâ¡ší¤ÿÄdelayÊËÃ¡Äú¨¨ÆÃÃÊË¡Ä—¨¡Ä¨¸¡Ä¸¨¡Ä¨—ÇÆÃÁÊËÃ¡Ä†¨†×ÆÃÃ¡Ä†×þ×ÆÃÃÁÊË¡Äè×¡Ä×Æ¡ÄÆ×¡Ä×èÇÆÃÁÊËÃ¡ÄªãªôÆÃÃ¡Äªô2ôÆÃÃÁÊË¡Äã.ô¡Ä.ô¡Äô¡ÄôãÇÆÃÁÊËÃ¡Äªã6ãÆÃ²¡â›2¡ê2¡×2¡2Ë2¡›2¡Þ›2¥	öä²¡Š¡þ¬²TheµADDµblockµinµFigure 1³2µconsumesµtwoµsignalµelementsµwith¡þõeachµactivation.µInµtheµdelayedµsignalµofµtheµfeedbackµloop,µonlyµone¡þ=initialµsampleµisµavailable.µTheµADDµblockµcanµneverµbeµactivated¡þ†and,µtherefore,µtheµcompleteµsystemµcanµneverµrun.¡þ	<Note:²¡X	…²Aµsecondµrequirementµforµtheµproperµexecutionµofµaµsystemµis¡X	Íthatµallµfeedbackµloopsµcontainµsufficientµdelays.¡þ
ƒAµproperlyµmodeledµsystemµshouldµsatisfyµbothµtheµdataµflow¡þ
Ìconsistencyµandµtheµfeedbackµloopµdelayµrequirements.µThe¡þCOSSAPµtoolsµcannotµcompensateµforµincorrectµmodeling.’dŽD“I501ileaf_page_string1:1-17¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,ï¡Ä,ï	cï¡Ä	cï	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ïÊïÆÃ¥	öä¥	öä¡‹Á²DCG´µOverview¡Ô¤ÿ¤1³17¡þÏ²
DSP´µInteractorµ(xdspint)¡þl²The´µDCGµsupportsµinteractiveµmode.µAfterµgeneratingµtheµDSPµcode¡þµandµdownloadingµitµtoµaµprocessorµboard,µyouµcanµuseµtheµCOSSAP¡þýDSPµinteractorµ(xdspint)µtoµinteractµwithµtheµrunningµDSPµprogram.¡þžYouµcanµuseµxdspintµto:¡þ!²S¡X!²Inspectµandµmodifyµtheµvaluesµassignedµtoµtheµmodel¡Xhparameters.¡þÚ²S¡XÚ²Checkµtheµnumberµofµperiods.¡þM²S¡XM²StartµtheµCOSSAPµdataµvisualizationµtool,µDAVIS.¡þForµaµdetailedµdescriptionµofµhowµtoµuseµxdspint,µseeµChapterµ4¡þWUsingµxdspint."¡þøNote:²¡XA²xdspintµsupportsµonlyµPentekµhardwareµtargets.¡,E²COSSAP´µDSPµCodeµGenerationµStrategies¡þ	²This´µsectionµdescribesµtheµwideµvarietyµofµcodeµgeneration¡þ	KstrategiesµthatµtheµCOSSAPµDSPµCodeµGeneratorµ(DCG)µoffers:¡þ	Î²S¡X	Î²Globalµstrategiesµinfluencingµallµblocksµand/orµsignalsµinµthe¡X
system:µglobalµblockµfactor,µscheduling,µandµmemoryµallocation¡X
[forµsignalµbuffers¡þ
Î²S¡X
Î²Localµblockµstrategies,µincludingµcodeµin³lining,µzeroµoverhead¡Xloops,µandµloopµunfolding’ŽüD“I501ileaf_page_string1:1-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²DCG´µOverview¡.1³18¡þÏ²
Code´µGenerationµStrategiesµatµtheµBlockµDiagram¡þLevel¡þÎ²The´µcodeµgenerationµstrategiesµmentionedµaboveµconsiderµand¡þaffectµallµblocksµandµsignalsµinµtheµblockµdiagram.¡þ²
Global´µBlockµFactor¡þÒ²To´µoptimallyµexploitµtheµhardwareµofµtheµtargetµprocessor,µthe¡þgeneratedµcodeµmustµtakeµadvantageµofµtheµpipeliningµofµtheµDSP.¡þcThatµis,µactivatingµaµblockµshouldµresultµinµprocessingµgroups,µor¡þ¬blocks,µofµsignalµelementsµinsteadµofµindividualµelements.µOne¡þôsimpleµmethodµtoµincreaseµthroughputµisµtoµuseµanµintegerµfactorµto¡þ=increaseµtheµnumberµofµsignalµelementsµprocessedµwithinµa¡þ†scheduleµperiod.µThisµintegerµfactorµisµcalledµtheµ²globalµblockµfactor².¡þ=Increasingµtheµglobalµblockµfactorµenhancesµtheµopportunityµfor¡þ†vectorµprocessing,µwhichµbringsµaboutµtheµutilizationµofµDSP¡þÏpipelining.µTheµapproachµisµtoµconsolidateµrepeatedµactivationsµof¡þoneµblockµtoµaµsingleµactivationµofµthatµblockµwithµanµappropriate¡þ`localµblockµfactor.µTheµdegreeµtoµwhichµthisµconsolidationµisµpossible¡þ©dependsµonµtheµschedule,µasµdescribedµinµtheµnextµsection.µThe¡þñschedule,µinµturn,µdependsµonµtheµtopologyµofµtheµblockµdiagram.¡þ	©Whenµspecifyingµaµglobalµblockµfactorµforµanµacyclicµblockµdiagram¡þ	ò(aµblockµdiagramµinµwhichµthereµareµnoµfeedbackµloops),µtheµnumber¡þ
:ofµactivationsµforµeachµblockµremainsµtheµsame.µWithµeach¡þ
ƒactivation,µtheµnumberµofµsignalµelementsµconsumedµatµtheµinput¡þ
Ìportsµandµproducedµatµtheµoutputµportsµisµmultipliedµbyµtheµglobal¡þblockµfactorµinstead.’üþD“I501ileaf_page_string1:1-19¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³19¡þÉ²In´µthisµacyclicµcase,µtheµDCGµautomaticallyµsetsµeachµlocalµblock¡þfactorµequalµtoµtheµglobalµblockµfactorµor,µinµmultirateµsystems,µitµcan¡þZbeµaµmultipleµintegerµofµthisµfactor.µIfµtheµmodelµimplementationsµare¡þ£adaptedµtoµblockµprocessing,µDSPµpipeliningµcanµbeµutilized.¡þìHowever,µfeedbackµloopsµinµtheµblockµdiagramµcanµconstrictµthe¡þ4blockµprocessingµ(maximizingµtheµlocalµblockµfactors).¡þºAdvantagesµofµconsolidatingµrepeatedµactivationsµofµanyµoneµblock¡þinclude:¡þs²S¡Xs²Reducesµtheµamountµofµfunctionµcallµoverheadµandµtimeµneeded¡Xºtoµestablishµaµblock'sµcontextµbeforeµtheµcoreµprocessing¡þ²S¡X²ExploitsµtheµpipeliningµcapabilitiesµofµtheµDSP¡þ„²S¡X„²Increasesµprocessingµefficiency¡þ/Specifyingµaµglobalµblockµfactorµcanµincreaseµthroughputµdueµto¡þwvectorizationµandµreduceµprogramµmemoryµconsumptionµdueµto¡þÀconsolidatedµactivations.µHowever,µtheµresultingµneedµforµmore¡þ	intermediateµstorageµforµtheµsignalµbuffersµcanµincreaseµdata¡þQmemoryµrequirements.µTheµlatencyµofµtheµsignalµelementsµbecomes¡þšlonger,µtoo.¡þM²
Scheduling¡þÏ²Anµimportantµstepµinµtheµcodeµgenerationµisµdeterminingµthe¡þ	activationµorder,µorµschedule,µofµtheµblocksµinµtheµsystem.µBy¡þ	`constantlyµrepeatingµtheµblockµactivationsµasµestablishedµinµthe¡þ	©schedule,µanµinfiniteµstreamµofµinputµsignalµelementsµcanµbe¡þ	òprocessedµandµanµinfiniteµstreamµofµoutputµsignalµelementsµcanµbe¡þ
:produced.µAµwideµrangeµofµadmissibleµschedulesµcanµbeµassignedµto¡þ
ƒblockµdiagramsµthatµhaveµconsistentµdataµratesµandµsufficientµdelays¡þ
ÌinµtheirµfeedbackµloopsµasµdescribedµpreviouslyµinµExecutingµBlock¡þDiagrams".’þ7D“I501ileaf_page_string1:1-20¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³20¡þÉ²The´µbestµschedulingµstrategyµtoµapplyµdependsµonµtheµapplication.¡þForµexample,µaµscheduleµthatµminimizesµbufferµsizesµcanµbe¡þZdesignedµbyµestablishingµanµactivationµorderµinµwhichµtheµoutput¡þ£signalµelementsµofµtheµsourcesµreachµtheµsinksµasµquicklyµas¡þìpossible.µThisµstrategyµactivatesµtheµblocksµtoµprocessµtheir¡þ4minimumµnumberµofµrequiredµsignalµelements.µAlternatively,µa¡þ}differentµscheduleµcanµbeµderivedµthatµwouldµspeedµupµtheµprogram¡þÆexecutionµbyµmeansµofµblockµprocessing.¡þ~Eachµblockµofµtheµblockµdiagramµappearsµatµleastµonceµinµa¡þÇschedule,µasµeitherµaµfunctionµcallµorµanµinlineµcodeµexpansion,¡þwhichµprocessesµthatµblock.µ(Forµmoreµinformation,µseeµtheµsection¡þXCodeµInlining"µlaterµinµthisµchapter.)¡þAµblockµcanµappearµmoreµthanµonceµwithinµaµschedule.µHowever,µto¡þZobtainµaµsmallµandµcompactµschedule,µtheµaimµisµtoµkeepµtheµnumber¡þ£ofµappearancesµofµtheµblocksµtoµaµminimum.µThisµisµequivalentµto¡þëactivatingµtheµblocksµusingµlocalµblockµfactorsµthatµareµasµlargeµas¡þ4possible.µAdvantagesµofµusingµtheµmaximumµblockµfactorsµwhen¡þ}activatingµblocksµinclude:¡þ²S¡X²Lessµprogramµmemoryµisµrequiredµbecauseµfewerµfunctionµcalls¡XWand/orµinlineµexpansionsµareµgenerated.¡þÕ²S¡XÕ²Blocksµcanµprocessµmoreµsignalµelementsµperµactivation,µwhich¡X	resultsµinµanµincreasedµopportunityµforµexploitingµpipelining.¡þ	òTheµDCGµoffersµseveralµdifferentµstrategiesµforµestablishingµthe¡þ
:schedule.µTheµexampleµblockµdiagramµinµFigure 1³3µillustratesµhow¡þ
ƒtheµschedulingµstrategiesµwork.µTheµdelayµM15µhasµaµsizeµofµ1,µand¡þ
ÌtheµdelayµM16µhasµaµsizeµofµ2.µAllµschedulesµdescribedµinµtheµnext¡þsectionµareµgeneratedµforµaµglobalµblockµfactorµofµ4.’7¸D“I501ileaf_page_string1:1-21¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³21¡,É²Figure 1³3³Filter´µ¥	öäÒÓÐÿýñ¡žŸ}ûÈüüüüÐäääääääääääääääääääääääÏäääääääääääääääÕäääääääääääääääÕäääääääääääääääÏüÉäääääääääääääääääääääääÈäääääääääääääääÏIäääääääääääääääÏäääääääääääääääÈüüüüüüü¾ÖãÉÚÖãÊÁÏÆYcü€YË	Ç	)É8ü¾ÉãöÀâÉáÈÁÇÆôü€&ÀÈøCÆÃ8ü€!ÃÈ8ÁÀE÷ü€9A$
Çëü€)ÂH<üƒÈæü‚IáÁ å	ÀEü¾Éá)ºü‚IÀùÈ‚ü¾ÉáÁñQÇ	À}üƒÈõAü€)Â	‚ü€9AÈ*Èü€!ÃÇü€&ÀÆÀÆÈü€Àâù8ùü€YË<Àƒü¾ËIÚËÁÀ†iQÑËÉ|ü‡È
üüÚÐÏÏÎÞßÚÀƒãÎÍÎâÀƒáŸÁÇ§ÎâÀƒáÎÀqÀŒÉüUËÌÍÆÉÊkÎ)5ˆÇÂÐÈ,€ˆÇÂÐÈ,ü	ÀòÀ'ÀÈÅÃÀùØÚOæãÄ-ÛÆÀùÌÇ$™Ïe ÁÛÆÀùÌÇ$	ÆüÄÄÆ	Ã+Ç'EGÃÐåAGÃÐåBÇü-ÊÇÃðÁÉC=ÀhPÂÀ˜Ñ°ÎÀhPÂÀ˜:Èü)ÅôÃÕ3Í
5ŠÈö°ÅŠÈ2	üŠÉÌü-À”ÆEÆÈ¯ÄÀ”ÆE)ü‰÷æÚÿäääáŠÂÇäääääääääääääääÏâääääääääääääääääääääääääääääääääääääääääääääääáŠÂÇáü‹ÀüÿäääáðÈäääääääääääääääÏâääääääääääääääääääääääääääääääääääääääääääääääáðÈáü)Åù!ÏÈ-Â	FÆÈ¯ÄÂ	F)Èü-ÊÇÃÂÀ†D
Ç5ÞPÂÀ’ö°ÅÞPÂÀ’2ÇüÄÄÆ	Ã+Ç•ÈÃÃ–÷°ÆGÃÃŽÁÆü	ÀòÀ'ÀÈÁÃÀùOÈãA=
ùÛÆÀùÐÕ9
ùÛÆÀùÐÕ:ÉÚáüUËÌÍ‚ÊkÇ:$E?ÂA?ÂBHüÚÐÏÏÀaÞÉÀ³ãÎÍ,]ÉâÀƒáÛÕ$€	]ÉâÀƒáÛÕ$	vÀ9ÀÀóáü˜ÆÅ€ÅüÐãüüÐãüüüüüüüËy—ËyŽaÁÈ‘ÌÁÈü’ÖÚ˜ÖÕ	êÕ’ÎüÂÁ˜ÂÁÂÑÂÅÃÂAü’ÖÏ˜ÉÕ‘y‘ÁüÁÂP–ÁÂÃÑùðÂÃÂÈü“å˜ÉÏ£üÂÀ…˜ÂÀ…1÷’ù÷ü’ÁÇ˜Éæ£
üÁÀJ˜ÁÀJËÇÀ”’ÂÀ”ôü’ÂÈ½æü‘è™èËŽ	Ä’ÁÄü‘Í™Í9ŽqðÎÛæü‘ìù˜ìÉæŽzæü¬ÄÆÅüËÍÀÆ—ËÍÀÇÏaÀaêêÕÌÀaÈÎüüüüüÉäääääääääääääääääääääääÈäääääääääääääääÏIäääääääääääääääÏäääääääääääääääÈüÐäääääääääääääääääääääääÏäääääääÀ÷äääääääÕäääääääÀ÷äääääääÕäääääääääääääääÏü¦ô‘ü¦ò‘"ü¦ï‘Aü¦È‘Aü¥ÁA	Aü¥Â99ü¥Ã11ü¥ÐÀ÷ÕÀ÷Õüüüüüüüüüüü¾ÁÀûÞü¾Á!ü¿ÈÅü¿ÇÆü¿ÆÏü¿öü·ÉäääääääÀñäääääääÞü·ÁäääääääääääääääÚüüüüüüüüüüüü•âääääääääääääääã‚ääääääääääääääãü•ßääääääääääääääá‚?ääääääääääääääáüüüüüüüüüüüüüüüü¼äÐáÏÉÉyü½Èü¼ÜïáéêÇü¼Áü½åïîÈü‹iü½ÁÞåÀ¥Ìü‚Zü½ÁÞÈñˆÍ4ü€1ÅÁÏü½åÏÚÀ1äêÏü¼ÁŒÂËRÍÁÕü¼ÜïáßëðÀòÁáÀ‰ÀÈüšÊÐÞßÏžÈ‹ÁÄÂÆÊÐÞßÏüœÃ1ÙœäÐáäÎÌÌW!ôôŸÃ1Ùü”Æ	ÁÀòÖÀ‘è¤ÁÏ™Å	ÁÀòÖÀ‘èü”Å'9ÀzE£ÃÓÐÚ—Ä'9ÀzEü”ÄÈù)È=£Éè1™ÃÈù)È=ü”ÊŠÄ5¤ÀrHÐá—ÂŠÄ5ü”Á)Ç-¤Ä)™Á)Ç-ü•È‰ñ%£Ê ôË˜È‰ñ%ü“ÖÏHÚ£ÄÁÅ–ÖÕHÚü“ÐÏ=ÆÞ¢ÁÀò?À‰Àä–ÐÕ=ÆÞü•ÈÈù)Æ%£ÊÃRÌ˜ÈÈù)Æ%ü”Á'9Ç-œËyÞÀ1äêÕa•Á'9Ç-ü”Ê ÀQÀòÖæà5ŸÀÃÞŸÂ ÀQÀòÖæà5ü”Ä1>œÂÁÐ¡Ã1>ü”Å}À7ÞßÀÁãE ÞŸÄ}À7ÞßÀÁãEü”ÆÁÁÂÐ¡ÅÁü†ðü‚À…"ü†äü‚	ÀJIÅüüƒ„Iüƒi*üƒHäü…Ä«ÍÉü¡ÏËŸËÍÏÀÁÚ­Éyü£ØŽ!ÃÒÐü¡ÆÅÀCü£ÒŽÄÒÐü¡ÅÆÀ£ü²
ôü¡ðëÒü£ò“ÁäääääääääääääääÚªùðü¡ôåÀ=“ÉääääääãääääääÞü¾Á!±ÂÅü¡ÄÇœÈÅ²Ïü¡É1›ÇÆ±ÁÆü¡ÃÈÀ›ÆÏü£î›ö²ÍÀÃÉyü¡ÀÃËØ›÷üüüüüü•ßääääääääääääääá‚?ääääääääääääääáü•âäääääääâääääääã‚äääääääâääääääãüœÁÇ	ÇüœÂÆÆüœÃÅÅüœÄÄ!ÄüœÅÃ)ÃüœÆÂ1Âüœßà?àüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü£ßäääääääääääääääÈ ßäääääääääääääääü£Ûäääääääääääääää¡Ûääääääääääääääãüüüüüüü€áÐÕÛáËÉÈÁÀŒakü‚aÌÈ1ÊÐäü€áÀ#ÀÄÐÞ	È(ü‚LÀ2
9ÄÐÞü‚)Ä$p	ôü‚AÁHÈå
ü‚1Ãxü…ÁÆ
÷ü„ÞÂïÇü€Þ1(ü„ÀòÁæü€Þ#Âì¢ÈPü…$ü‚1ÃGü‚AÁ	U3ü‚)ÄÈü‚LÀ2Çü‚#ÀÄÆ÷*;÷ü‚aÌDü€aÕÌÉËqYÒÌÊÁÈü‰üü¨ÏËÏÀf>›ÂÈ(ˆÏËÏÀf>ü­ÀÁÈŸÅŠÀÁÈDü£Ç4Å
ÜÇ•ÁÈm"5Å
ÜÇ<ü£È‰ïŸÃŠï5ü¢Á-Æ;Ï$‹÷“Â-Æ;Ï,ü¬ÁÓ‘ö“Á‰ÁÓü¢Â(ëÆ-‹ÆÈ“È(ëÆ%ü¢ÃŠÀ9È4 Ç‰À9ÈüâääääÞåSÇ<äääääääääääÏâääääääääääääääääääÕåSÇLÚüäääääÞŠÁ=äääääääääääÕäääääääääääääääääääÕŠÁMÞü¢Ã%Ç
È5‹ö”Ç$Ç
Èü¢ÂM åA-‹÷”ÈL åA%ü¢ÁÈÛÁÀùÜÇ$ŸÉÈÛÁÀùÜÇ,ü£ÈvÏÈŸÃwÏÈ4ü£ÇÃËÛÐÞàŸÄÃËÛÐÞà=ü³ÁŸÅÈüüüüüüüüü¤Êqü¦ÁÕü¤Á‚Å·ÏËü¦ùÀÈ¹ËÖü¥ê1·ÆÅÔÍÈü¢Çü¤ÁîÈ¸ÅÆÔÍü¦ùÕºÁü¥À¥ÂÆ·ðëÇü¦ÁÏºÃÈü¥î¹ôå	ü¥ÌÊðºõü¥ñÁÏ·ÄÇ$ü¦ÃÅ·É"ü¤ÊÌÀcÕ·ÃÈÏüüŸÃËËßÏüüüü£Ûäääääääääääääää¡Ûääääääääääääääãü£ßäääääääääääääääÈ ßäääääääääääääääüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¾ÁÀûÞü¾Á!ü¿ÈÅü¿ÇÆü¿ÆÏü¿öü·ÉäääääääÀñäääääääÞü·ÁäääääääääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¼äÐáÏÉÉyü½Èü¼ÜïáéêÇü¼ÁŽÍü½åïîÈŒÙü	À†ü½ÁÞåÀ¥ˆÍyü‚ZŒÂèü½ÁÞÈñÚÀ1äêÏÈü€1ÅËRÍü½åÏÀòÁáÀ‰ÀÈÉü¼ÁŒÁÄÂÆÈü¼ÜïáßëðˆÊ!ôôü½È‹ÁÏ	ü¼äÐáäÎÌÌÓÐÚ2ü‰Iè1LüŠrHÐáüŠ!)
Æü‰Q ôËÂÇüŠ!ÁÅAü‰	Àò?À‰ÀäÿÈü‰QÃRÌü‰	ÞÀ1äêÕÉäÈüüüüü‚Yyü…yÚü‚ÁÐÁËü†pü‚	ÂÐÂÀŒüü‚À…pü†ˆü‚	ÀJôüüƒ„üƒiBüƒHÀtü…	Äü‚YÍÏÏÚüüüü·ÁäääääääääääääääÚü·ÉääääääãääääääÞü¾Á!ü¿ÈÅü¿ÇÆü¿ÆÏü¿öü¿÷üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü£ßäääääääääääääääÈ ßäääääääääääääääü£Ûäääääääääääääää¡Ûääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¨ÏËÏÀf>«ÏËÏÀf>ü­ÀÁÈŸÅŠÀÁÈDü£Ç4Å
ÜÇŸÄ5Å
ÜÇ<ü£È‰ïŸÃŠï5ü¢Á-Æ;Ï$‹÷“Â-Æ;Ï,ü¬ÁÓ‘ö“Á‰ÁÓü¢Â(ëÆ-‹ÆÈ“È(ëÆ%ü¢ÃŠÀ9È4 Ç‰À9Èü“ÐääääääääääääääÞåSÇ<äääääääääääÏâääääääääääääääääääÕåSÇLääääääääääü“ÖääääääääääääääÞŠÁ=äääääääääääÕäääääääääääääääääääÕŠÁMääääääääääÈü¢Ã%Ç
È5‹ö”Ç$Ç
Èü¢ÂM åA-‹Ñ”ÈL åA%ü¢ÁÈÛÁÀùÜÇ$ŸÉÈÛÁÀùÜÇ,ü£ÈvÏÈŸÃwÏÈ4ü£ÇÃËÛÐÞàŸÄÃËÛÐÞà=ü³ÁŸÅÈüüüüüü½ÐäÁÞÐäÉàcQ[ü¿ÊÊBÁÆBÄÁÈÉü½ÁäÄÀñÁãÇ ÷ü¤ÁÈÌ˜ÀËÈÁÇÃÈ:ÅÂü§Ì×–ÃÂ		Ç!ù’ÎÊü¥ÇÆÕó–Æ9 ð*•×ü¨À^È•ÄÁ$“ÅÄóü¥ÆÇÕšÁÇìÈ(ÂÈ“ÀLÈü¨ÀbÈ—ÁãAPë:“ÄÅõü¥ëå”ÁãDÄ/ü¨Á˜ÁáÈÀd “ôðÀRÈü¥À)ÇYÈ“Áã’(å	–Ëü¨Â™ÁÇø?“÷ëËü¥ÅÈq–ÄÁÈ|Ï”ÀRÈü¥Ê–Æ9ÇÇ–ÃÆü¥ø\È•ÃÂÆáÏ’ÁÈõü¨ó–ÀËÈšÂÇÀLÈü¤ÁÀ†ÌÌ×–ÄÀñHÂÈ÷ÈÈ“óü¿ÊÊ4šÀaÀ†×ü½Ê	ÞÊÃaIÐÊÁÈÉü†	Çüü‡ 
ü£Ûäääääääääääääää¡Ûääääääääääääääãü£ßäääääääääääääääÈ“Î]?äääääääääääääääüüüüüüüÿ¡þ1²
Flat´µScheduling¡þÐ²First´µanalyzeµtheµschematicµtoµreduceµallµtheµhierarchicalµblocksµto¡þprimitiveµblocks,µforµwhichµaµflatµscheduleµcanµbeµderived.µEach¡þbactivationµinµtheµfollowingµschedulesµisµdescribedµinµthisµformat:¡,Ý²!¡þÝlocal_block_factor² ³x³²!model_name² ³(²!model_sequence_number² )¡þi²Note:²¡X±²ThisµscheduleµdoesµnotµcontainµtheµDELAYµblocksµofµtheµblock¡Xúdiagram.µTheµDCGµreplacesµaµDELAYµblockµandµitsµsignalsµwith¡X	Baµnewµsignalµconnectingµtheµblocksµprecedingµandµsucceedingµa¡X	‹DELAY.µThisµnewµsignalµisµappropriatelyµinitializedµwithµtheµinitial¡X	Ôsignalµelements.’¸½D“I501ileaf_page_string1:1-22¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³22¡þÉ²Example 1³1´µshowsµtheµflatµscheduleµforµtheµblockµdiagramµin¡þFigure 1³3.¡,ª²Example 1³1³FlatµSchedule¡þû²4´µxµCONST_GENµ(7)¡þ/2µxµFORKµ(14)¡þc2µxµMULSµ(8)¡þ–2µxµMULSµ(13)¡þÊ1µxµFORKµ(17)¡þþ1µxµFORKµ(14)¡þ21µxµMULSµ(8)¡þf1µxµMULSµ(13)¡þš1µxµMULSµ(12)¡þÎ1µxµADD2µ(11)¡þ1µxµMULSµ(9)¡þ61µxµADD2µ(6)¡þi1µxµADD2µ(5)¡þ1µxµFORKµ(18)¡þÑ1µxµADD2µ(10)¡þ1µxµKILLµ(4)¡þ91µxµFORKµ(17)¡þm1µxµFORKµ(14)¡þ¡1µxµMULSµ(8)¡þÕ1µxµMULSµ(13)¡þ	1µxµMULSµ(12)¡þ<1µxµADD2µ(11)¡þp1µxµMULSµ(9)¡þ¤1µxµADD2µ(6)¡þØ1µxµADD2µ(5)¡þ1µxµFORKµ(18)¡þ@1µxµADD2µ(10)¡þt1µxµKILLµ(4)¡þ¨1µxµFORKµ(17)¡þÜ1µxµMULSµ(12)¡þ	1µxµADD2µ(11)¡þ	C1µxµMULSµ(9)¡þ	w1µxµADD2µ(6)¡þ	«1µxµADD2µ(5)¡þ	ß1µxµFORKµ(18)¡þ
1µxµADD2µ(10)¡þ
G1µxµKILLµ(4)¡þ
{1µxµFORKµ(17)¡þ
¯1µxµMULSµ(12)¡þ
â1µxµADD2µ(11)¡þ1µxµMULSµ(9)’½hD“I501ileaf_page_string1:1-23¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³23¡þÃ²1´µxµADD2µ(6)¡þ÷1µxµADD2µ(5)¡þ+1µxµFORKµ(18)¡þ_1µxµADD2µ(10)¡þ’1µxµKILLµ(4)¡þ6²The´µDCGµalsoµremovesµKILL²´µ²blocks´µbecauseµtheµsignalµelements¡þ~enteringµtheµKILL²´µ²blocks´µareµnotµprocessedµfurther.µTherefore,µa¡þÇKILL²´µ²block´µalsoµneverµappearsµinµaµscheduleµgeneratedµbyµtheµDCG.¡þHowever,µinµreal³worldµcases,µyouµmightµreplaceµaµKILL²´µ²block,´µfor¡þXexample,µwithµaµD/Aµblock.µToµshowµyouµwhereµsuchµaµblockµmight¡þ¡appearµinµtheµschedule,µtheµscheduleµexamplesµinµthisµchapterµlist¡þêKILL²´µ²blocks.¡þ½When´µgeneratingµaµschedule,µtheµDCGµfirstµevaluatesµsourcesµ(in¡þthisµexample,µCONST_GEN(7))µandµblocksµwithµinputµportsµattached¡þNtoµdelayedµsignalsµ(inµthisµexample,µFORK(17)µandµFORK(14)),¡þ—followedµbyµallµofµtheirµsuccessors.¡þjTheµDCGµmergesµrepeatedµactivationsµofµoneµblockµintoµone¡þ³activation,µusingµtheµappropriateµlocalµblockµfactorµ(forµanµexample,¡þüseeµtheµbeginningµofµtheµschedule,µwhereµCONST_GEN(7),¡þDFORK(14),µMULS(8)µandµMULS(13)µareµactivated).µThisµisµpossible¡þbecauseµofµtheµscalableµstaticµdataµflowµparadigm,µwhichµallows¡þÖeachµblockµtoµconsumeµorµproduceµanyµintegerµmultipleµofµthe¡þ	predefinedµdataµratesµduringµeachµactivation.µTheµDCG¡þ	gautomaticallyµdeterminesµthisµintegerµmultiple,µcalledµtheµ²localµblock¡þ	°factor².¡þ
ƒSomeµblocksµappearµinµtheµscheduleµmoreµthanµonce.µForµexample,¡þ
ÌtheµMULS(8)µblockµappearsµthreeµtimes,µandµtheµADD2(5)µblock¡þappearsµfourµtimes.’h&D“I501ileaf_page_string1:1-24¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³24¡þÏ²
Detect´µSequencesµScheduling¡þn²The´µDCGµusesµtheµ²detectµsequences²µschedulingµcodeµgeneration¡þ¶strategyµtoµperformµpostprocessingµonµtheµcomputedµflatµschedule.¡þÿInµthisµpostprocessing,µtheµDCGµsearchesµforµrepeated¡þHsubsequencesµofµblockµactivationsµthatµimmediatelyµfollowµeach¡þother.µTheµDCGµconsolidatesµtheµdetectedµsubsequencesµintoµa¡þÙloopµconstruct,µsoµthatµtheµsubsequenceµappearsµonlyµonceµwithin¡þ"theµschedule.¡þÄExample 1³2µshowsµtheµgeneratedµdetectµsequencesµscheduleµfor¡þtheµsystemµinµFigure 1³3.¡,¿²Example 1³2³GeneratedµDetectµSequencesµSchedule¡þ²4´µxµCONST_GENµ(7)¡þJ2µxµFORKµ(14)¡þ~2µxµMULSµ(8)¡þ±2µxµMULSµ(13)¡þå2µxµ{¡þ³1µxµFORKµ(17)¡þM³1µxµFORKµ(14)¡þ³1µxµMULSµ(8)¡þµ³1µxµMULSµ(13)¡þé³1µxµMULSµ(12)¡þ³1µxµADD2µ(11)¡þQ³1µxµMULSµ(9)¡þ„³1µxµADD2µ(6)¡þ¸³1µxµADD2µ(5)¡þì³1µxµFORKµ(18)¡þ	 ³1µxµADD2µ(10)¡þ	T³1µxµKILLµ(4)¡þ	ˆ}’&¡D“I501ileaf_page_string1:1-25¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³25¡þÃ²2´µxµ{¡þ÷³1µxµFORKµ(17)¡þ+³1µxµMULSµ(12)¡þ_³1µxµADD2µ(11)¡þ’³1µxµMULSµ(9)¡þÆ³1µxµADD2µ(6)¡þú³1µxµADD2µ(5)¡þ.³1µxµFORKµ(18)¡þb³1µxµADD2µ(10)¡þ–³1µxµKILLµ(4)¡þÊ}¡þb²In´µcomparisonµwithµtheµpreviousµscheduling,µtwoµcallµsequencesµof¡þªblocksµareµrepeated,µandµare,µtherefore,µconsolidatedµintoµloop¡þóconstructs.¡þªTheµdetectµsequencesµparadigmµcanµsignificantlyµreduceµthe¡þónumberµofµappearancesµofµblockµactivationsµwithinµoneµschedule¡þ;period.µTheµdetectµsequencesµpostprocessingµdoesµnotµchangeµthe¡þ„orderµorµtheµnumberµofµactivations.µTheµDCGµsimplyµmerges¡þÍrepeatedµactivationµpatternsµintoµaµloopµconstruct,µsoµthatµtheµpattern¡þappearsµonlyµonce.µBecauseµeveryµactivationµisµeitherµaµfunctionµcall¡þ^orµanµinlineµexpansion,µschedulesµareµmoreµcompact,µsoµless¡þ§programµmemoryµisµrequired.µTheµnewµloopµconstructsµsometimes¡þïcauseµadditionalµrun³timeµoverheadµandµcanµincreaseµtheµprogram¡þ8memoryµrequirementµslightly,µbutµtheseµeffectsµcanµnormallyµbe¡þignored.¡þ	‡²
Hierarchical´µScheduling¡þ
:²The´µbenefitsµofµsupplyingµaµglobalµblockµfactorµinµorderµtoµgain¡þ
ƒenhancedµthroughputµcanµbeµrestrictedµbyµtheµpresenceµofµfeedback¡þ
Ìloops.µFeedbackµloopsµcanµcauseµcomplexµschedules,µresultingµin¡þincreasedµmemoryµrequirements.’¡ôD“I501ileaf_page_string1:1-26¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³26¡þÉ²The´µrateµatµwhichµDCGµprocessesµsignalµelementsµinµaµfeedback¡þloopµdependsµonµtheµlengthµofµtheµdelaysµavailableµinµthisµloop;µthis¡þZdeterminesµtheµupperµboundµforµblockµprocessing.µIfµtheµglobalµblock¡þ£factorµexceedsµtheµlengthµofµdelaysµinµthisµfeedbackµloop,µblock¡þìprocessingµforµtheµloopµisµpartiallyµsuspended.µInµparticular,µblock¡þ4diagramsµwithµnestedµfeedbackµloops,µwhereµeachµloopµhasµa¡þ}differentµdelayµsize,µcanµhaveµveryµcomplexµschedules.µAsµaµresult,¡þÆblockµprocessingµmightµbeµconstrictedµnotµonlyµforµtheµblocksµinµa¡þfeedbackµloop,µbutµalsoµforµblocksµfollowingµtheµloop.¡þ±Byµanalyzingµtheµtopologyµofµtheµsystem,µitµisµpossibleµtoµlocate¡þúfeedbackµsubgraphsµandµtoµutilizeµthisµinformationµtoµoptimally¡þBscheduleµtheµfeedbackµloopsµinternallyµandµtoµkeepµtheirµinfluence¡þ‹limitedµtoµtheµloop.µWithµhierarchicalµscheduling,µtheµuser³supplied¡þÓglobalµblockµfactorµcanµstillµbeµutilizedµdespiteµtheµpresenceµof¡þfeedbackµloops.¡þ¿AsµExamplesµ1-1µandµ1-2µshow,µtheµdetectµsequencesµschedule¡þimprovesµonµtheµflatµschedulingµparadigm.µHowever,µseveralµblocks¡þPstillµappearµmoreµthanµonceµinµtheµschedule.µExceptµforµthe¡þ™CONST_GEN(7)µsourceµblock,µeachµblockµappearsµtwice.¡þ;Inµbothµgeneratedµschedules,µtheµfirstµactivationµofµtheµKILLµsink¡þ„blockµoccursµbeforeµtheµlastµactivationµofµµtheµMULS(9)µblock,µthatµis,¡þÍbeforeµaµgroupµofµsamplesµgoingµintoµtheµfeedbackµloopµhave¡þ	completelyµpropagatedµthroughµtoµendµupµatµKILL.µBecauseµofµthis,µit¡þ	^isµimpossibleµtoµactivateµtheµsinkµblockµjustµonceµbyµusingµthe¡þ	§highestµpossibleµlocalµblockµfactorµ(equalµtoµtheµglobalµblockµfactor).’ô±D“I501ileaf_page_string1:1-27¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³27¡þÉ²Suboptimal´µsequencesµcanµoccurµbecauseµofµfeedbackµloopsµwith¡þdelayµsizesµsmallerµthanµtheµglobalµblockµfactor.µTheseµsuboptimal¡þZsequencesµcanµmakeµitµimpossibleµforµtheµdetectµsequences¡þ£postprocessingµtoµproduceµaµsingleµappearanceµminimumµactivation¡þìschedule"µ(asµdescribedµinµS.µRitz,µM.µPankertµandµH.µMeyr,¡þ4²OptimumµVectorizationµofµScalableµSynchronousµDataµFlowµGraphs²,¡þ}inµ²InternationalµConferenceµonµApplication³SpecificµArray¡þÆProcessors²,µPrenticeµHall,µIEEEµComputerµSociety,µ1993),µinµwhich¡þeachµblockµappearsµexactlyµonceµinµtheµblockµdiagramµandµis¡þWactivatedµaµminimumµnumberµofµtimes.µThisµtypeµofµschedule¡þ requiresµaµminimumµamountµofµprogramµmemory.¡þBWithµhierarchicalµscheduling,µtheµDCGµattemptsµtoµfindµaµminimum¡þ‹activationµscheduleµforµaµgivenµblockµdiagramµandµaµuser³specified¡þÓglobalµblockµfactor.¡þvAµpracticalµwayµtoµdetectµtheµfeedbackµloopsµofµaµblockµdiagramµisµto¡þ¿divideµtheµblockµdiagramµintoµitsµ²strongµcomponents².µAµstrong¡þcomponentµisµtheµlargestµpossibleµsubgraphµofµaµblockµdiagramµthat¡þPhasµaµ(directed)µsignalµpathµfromµoneµblockµtoµaµsecondµblockµandµa¡þ™signalµpathµfromµtheµsecondµblockµbackµtoµtheµfirstµblock.¡þ;Feedbackµloopsµonlyµexistµwithinµsuchµstrongµcomponents.µEach¡þ„strongµcomponentµisµhandledµasµaµhierarchicalµblock.µBecauseµthe¡þÍstrongµcomponentsµcontainµallµfeedbackµloops,µtheµresulting¡þ	top³levelµgraphµhasµaµpureµfeed³forwardµstructure,µthatµis,µanµacyclic¡þ	^structure,µconsistingµonlyµofµstrongµcomponentsµthatµareµtop³level¡þ	§blocks.’±]D“I501ileaf_page_string1:1-28¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³28¡þÉ²By´µdescribingµtheµblockµdiagramµwithµthisµsimplifiedµtop³level¡þstructure,µitµisµpossibleµtoµdetermineµefficientµschedules.µThe¡þZstrategyµisµtoµprocessµasµmanyµsignalµelementsµasµpossibleµupon¡þ£activationµofµeachµstrongµcomponent.µIfµtheµcomponentµisµaµprimitive¡þìblock,µthisµisµaccomplishedµbyµusingµaµlocalµblockµfactorµthatµisµequal¡þ4toµtheµglobalµblockµfactorµor,µforµmultirateµsystems,µitµcanµbeµan¡þ}integerµmultipleµofµtheµglobalµblockµfactor.¡þîIfµtheµstrongµcomponentµcontainsµoneµorµmoreµfeedbackµloops,µthe¡þ6DCGµneedsµtoµcontinueµtheµanalysis.µIfµaµstrongµcomponentµisµnotµa¡þprimitiveµblock,µtheµDCGµanalyzesµtheµcomponentµtoµdetectµall¡þÈelementaryµfeedbackµloops.µTheµDCGµthenµhierarchicallyµorders¡þelementaryµfeedbackµloopsµofµanyµoneµstrongµcomponentµaccording¡þYtoµtheµratioµofµdelayµtoµtheµcorrespondingµinputµrateµforµtheµblock¡þ¡followingµtheµdelay.µTheµfeedbackµloopsµwithµtheµsmallerµratioµof¡þêdelayµsizesµtoµinputµratesµareµcalledµtheµ²innerµloops²µandµthoseµwith¡þ3theµlargerµratioµareµtheµ²outerµloops².µFeedbackµloopsµwithµtheµsame¡þ{ratioµareµmergedµintoµaµsingleµloop.µOuterµloopsµareµatµaµhigherµlevel¡þÄwithinµtheµhierarchyµthanµinnerµloops.µBlocksµbelongingµtoµmoreµthan¡þoneµloopµareµassignedµtoµtheµinnermostµloop.µTheµDCGµadaptsµthe¡þUlocalµblockµfactorsµofµtheµinnerµloopsµtoµtheµblockµfactorsµofµtheµouter¡þžloops.¡þTheµDCGµworksµoffµallµloopsµseparately.µSchedulingµaµstrong¡þWcomponentµstartsµwithµtheµoutermostµloop,µbecauseµitsµblocksµcan¡þ runµwithµtheµlargestµblockµfactors.µWhenµtheµDCGµexaminesµaµblock¡þéthatµbelongsµtoµtheµnextµinnerµloop,µitµschedulesµthisµloopµbefore¡þ	1resumingµtheµschedulingµofµtheµouter³levelµloop.µTheµresultµisµa¡þ	znestedµorµhierarchicalµscheduleµofµallµblocksµinµtheµstrong¡þ	Âcomponent,µwhichµdependsµonµtheµdelayµsizesµofµtheµvarious¡þ
feedbackµloops.¡þ
ÌWhenµusingµhierarchicalµschedulingµforµtheµfilterµinµFigure 1³3,µthe¡þDCGµgeneratesµtheµscheduleµshownµinµExample 1³3.’]ŒD“I501ileaf_page_string1:1-29¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³29¡,É²Example 1³3³Hierarchical´µScheduling¡þ ²´µµµµµ4µxµCONST_GENµ(7)¡þT³2µxµ{¡þˆ³³2µxµFORKµ(14)¡þ¼³³2µxµMULSµ(13)¡þð³³2µxµ{¡þ$³³³1µxµFORKµ(17)¡þX³³³1µxµMULSµ(9)¡þ‹³³³1µxµADD2µ(6)¡þ¿³³³1µxµADD2µ(5)¡þó³³³1µxµFORKµ(18)¡þ'³³}¡þ[³}¡þ³4µxµMULSµ(12)¡þÃ³4µxµMULSµ(8)¡þ÷³4µxµADD2µ(11)¡þ+³4µxµADD2µ(10)¡þ^³4µxµKILLµ(4)¡þñ²To´µhelpµyouµunderstandµthisµschedule,µFigure 1³4µshowsµtheµstrong¡þ9componentsµofµtheµdesignµshownµinµFigure 1³3.µTheµstrong¡þ‚componentsµmainlyµconsistµofµprimitiveµblocks,µexceptµforµone¡þÊstrongµcomponentµthatµcontainsµtwoµnestedµfeedbackµloopsµ(see¡þFigure 1³5).¡,Å²Figure 1³4³BlockµDiagramµSplitµintoµStrongµComponents¡ý¥	öäÒÓÐÛñP?<@=	æûÈüüüü¤ÿäääääääääääääää?äääääääääääääääÏü¤ääääääääääääääãäääääääääääääääÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüü©QÐÞßÏÏÀãÌÊü«1ÙŽÁÆü£1	ÁÀòÖÀ‘èE!Çü£)'9Àz=Èü£!Èù)È5	ü£ŠÄe	ü£)ÇB$ü£	Šñ:ü¿âäääääääääääääääääääääääääääääääääääÏHäÚ2ü¿ßäääääääääääääääääääääääääääääääääääÏ=ÆäÚ	ü£	Èù)Æ:Èü£'9ÇBÇü£ ÀQÀòÖæàe	ÆÐÀáÞü£!16ü£)}À7ÞßÀÁã=~ÀsÛÀçÞü£1È!üüüüüüüüüü¯aÁÈü±	êÕÌÁÈü¯ÂÑÂÅ’Îü³yÃÂAü¯ÃÑùð‘ÁüƒÃÂÈü¯÷”ùüƒ÷ü¯À””÷üƒÀ”ôü¯	Ä”Ðæü°qðÁÄü°zÎÛæü²Åæü¯aÀaêêÕüƒbÀaÈÎüüüüüü¤ääääääääääääääãäääääääääääääääÈü¤ÿäääääääâäääääää?äääääääääääääääÏü«	Çü«Æü«Ìü«!Ãü«)Âü«1Áü«?âüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÐäääääääääääääääääääääääÞ
äääääääääääääääääääääääääääääääãäääääääääääääääÕäääääääääääääääÞüÉäääääääääääääääääääääääÚÿääääääääääääääääääääääääääääääáäääääääääääääääÏJäääääääääääääääÚüüüüüœäääääääääääääääääääääääääääääääÀýüœäääääääääääääääääääääääääääääääáÈü¼Çü¼Æü¼Åü¼Äü¼Ãü¼ÉääÈü¼ÉääÏü¼Ãü¼Äü¼Íü¼Çü¼Èü»Áüüüüüüüüüü|ÁÚÍÌÜÖáIÕäÀ˜Ë³ÍÉÍÀÈÖÈÍßÀÁãüÀƒÊËÄÁÈZÌË‘Î–ÍÎÆÁÉÏüÝÀ‰ÀòÃÁÜÀOØÀäßéBŸÁ%%ÃOæ,HÖæÝÀŒÆü‚ÂÄAÅ: ÈŠÅÇ$	ˆÇÂÉÀÐüÁæÁ÷9Ï22À3ÀlÝÀ3ÀƒÀØÐÀÃÀ1ÀÕÝÀ3ÀƒÀÃÀ9À˜>Ä+ÍB´(ÁÀLüÃùÁÓ#ËÈE).È‚ÃíÆ1çÆÀJîÅéÃíÆí7ŠÀN:ŠÇEü‹ÀÆ?‰Ä.À3ÒÓÖÁÕÉÈÀçÁÏÓÖÀÀÐÀñÀ˜.E
ô1È7ÀJü‰ÂÈÀ9È|	Ç=ÈöÀEÄ÷QÀ”ëèÂÀ)ÀEÄB'=‰ÑÎ*‰ÁÆ=ü‹ÊÇ?7ÉÏˆÃ5ðæE!xÇ5üÃÁÇÁ#Ô äoÈŽÉÚˆÉääääÚ‹ÇáÁÈäääääüÁæÁ¡È3Pä™ÉääääÚÅsáü(ÁÀIäääääÈü‚ÂÄAÅˆÆn	ÀE
ÆQÀ”ëÀ)ÀEÍˆÃ5}ðð)ÇE!?ÂÂ6üÝÀ‰ÀòAÜÇÕßÈÆ=é8	ÏÉÈ	ÏÓ	Ï)&=ÆÐÏàÀOæ*ÂÀæÝÀƒÚ=üÀƒÊË1êÈZÅ*Ea!Ä‚Æ1çÆÅéÍ9nÈfÍ1Îr7ÁGü|ÁÚÍÌàyIÀìäÀ˜Ë2ÊÎÝÍÀÃÏÐÀÃÌÀÁÕÝÍÀÃÀÃËÍ>mÀÃÐÀÁãÛÈBTÁÀ¿ÀÁãÖÚü˜Â:‹Êð“ÈÄ	ÂüÁäÈˆÃB‹ÁÀÃä‘Á%ÅÃü§ÊÍüÁäÈ—ÁÀÃä\üüüüüüüüÉiºÍÉü’Éá»ÉÉÏŽÁÈÌü‘ÈÇ¨Á‘ÄÃÒËÆ‘ÌÊü’ÉÚ¨È“ÉÀÐÇÆÕÓü‘ÇÈô¨ÇÃÄÒËü“ð¨Í”ÇÆÇÕÓü‘À¡Ç©Ä÷ôü“ë¨Ã“ÁÆëåü‘ÀRÈ©ÉääÈùðÇü“å¨ÉääÏÃÈÀ)Çü‘óªÃÂÅ	ü‘ËªÄ‘ÏÅÈü‘õÁÇ¨ÅÁÆIÚÊü¼Æ¤øüÉËÀ1ÈˆäääääääääääääääääääääääääääääääáÇÍÀÃÉÖÚüœäääääääääääääääääääääääääääääääáÈ£ÁÀ†ÌÌÊü»ÁüüüüÉäääääääääääääääääääääääÚÿääääääääääääääääääääääääääääääáäääääääääääääääÏJäääääääääääääääÚüÐäääääääääääääääääääääääÞ
äääääääääääääääääääääääääääääääãäääääääääääääääÕäääääääÀûäääääääÞü
üüqÈüAÇüœ	1üœ)üœIÀûÚüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü‚äääääääääääääääÕü‚äääääääääääääääÏüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü‡iÉÍÀÈÖÈüŒiÎü!%ÃOæ,üŠÅÇ$üÄ+Íü	È‰ÀNü‚9
ô1Èü‚1‰ÑÎEü¿ßäÚðæäääääääääÞü¿âäÚ‹Çäääääääääáü‚1ÅsFü‚9}ðð)Çü	ÈÆÐÏàÀOæügÍ1ÎümÀÃÐÀÁãÛÈ$ü!ÅüüüüüüüüüüüŽYyüIÏüŽÁÃÆü	æüŽ	ÂÂÇüüŽÀ…÷ëü	ÈüŽ	ÀJÁÈü
ëü„üiÂÇüHøæüÆüŽYÍÀÃÏüüüüü‚äääääääääääääääÏü‚äääääääääääääääÕüüüüüÿ¡ù’ŒÿD“I501ileaf_page_string1:1-30¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³30¡,É²Figure 1³5³Strong´µComponentµConsistingµofµFeedbackµLoops¡‘8¥	öäÒÓÐ‘Î}a:b;¨ûÈüüüüüüüüüüüüüüüüüüü§ÖäääääääääääääääÚü§ÐäääääääääääääääÕüüüüüüˆãÉÚÖãÊÁÏÆYcüŠYË	Ç	)É8üˆIãöÀâÉáÈÁÇÆôüŠ&ÀÈøCÆÃ8üŠ!ÃÈ8ÁÀE÷üŠ9A$
ÇëüŠ)ÂH<üÈæüŒIáÁ å	ÀEüˆIá)ºüŒIÀùÈ‚üˆIáÁñQÇ	À}üÈõAüŠ)Â	‚üŠ9AÈ*ÈüŠ!ÃÇüŠ&ÀÆÀÆÈüÉäääÚ…Àâù8ù‹ßääãü$…YË<ÀƒÁüTƒYIÚËÁÀ†iQÑËÉ|ÏüÈ‹È
Íü?ääÏÎžIääÞËülÌ‹	ÇŽÊÉü\Ê¡	ÈÏüLÁ§ÎâÀƒá¡ÏeÎÍü}ÏÅžÂˆÇÂÐÈ$«ÃdËümÍÄžÁÛÆÀùÌÇ«ÂTÉü]ËÃŸÈGÃÐå«ÁÈÏüÉÂŸÇÀhPÂÀ˜¬ÈtÍüÈÀÁªÈE‘Ð™ÇdËüvÆÈžÆÀ”Æ=‘ÄÈÊÉÈüf9žÅ‰ÂÇ5‘ÅÇÁÈÇüV?äääääääääääääääääääääääääääääáðÈäääääääääääääääääÕßäääääääääääääääääääääääÞvüV?äääääääääääääääääääääääääääääáÂ	äääääääääääääääääÚâäääääääääääääääääääääääÞvüf9žÅÞPÂÀ’6‘ÄÈÁÈÇüvÆÈžÆGÃÃ>‘ùžÊÉÈüÈÀÃŸÇ
ùÛÆÀùÐÕÈ«ÏdËüÉÃŸÈ?Â«ÁuÍü]ËÄžÁ]ÉâÀƒáÛÕ«ÂÈÏümÍÅžÂÄ«ÃTÉü}Ï¡aËüLÁ¢qÍü\Ê¡	ÈÏü?ääÚÌžIääãÉüu¢YüÈŽßäääääääääääääääÏƒiüTÛäääääääääääääääÈƒyüÉäääÀ˜Ÿ?ääÀóüt¢Yüü³ÊqüµÐÚü³ÁAüµÁÚü´êüµÁÕü³ÁîÈÅüµÁÀÈü´À¥ÊÆüü´îÊü´Ì1ü´ñÁÀÈüµÃÅü³ÊÌÀcÕüüüüü§ÐäääääääääääääääÕü§ÖäääääääÀ÷äääääääÚü¯ôü¯òü¯ïü°Èü™ÁêãÖÚ‘ÈÇü›Á!×Á1ü“ÄÇÝÀƒÀäÀa5‰Â)ü“Ã)×È,‰ÉÀ÷Úü“ÂåÁÇ÷Î%ü“ÁŠÂUü”È
ëÈü”Ç‰øFü‘ääÚMÏäääääääääÚü‘âäÚ-Ä$äääääääääÞ)ü”ÇÕÁÇ÷ìF‹Ìü”È)ÅŒËü™ðôÝÀƒÀäÛÈŒÊü“Á!ŒÉü“ÂmÀãÖÚâÈ$ŒÁÈü“ÃÅÏü“ÄÆÎü²Íü²Ìü²Ëü²Êü§ÖääääääääääÀýäääääääääÚü§ÐääääääääääÀýäääääääääÕü²Êü²Ëü²Ìü ÌÁÈÍü¢ÐÈŽÕ—Àýáü ÃÂÄÎÁÏ—ÈÃü¢ÉÈÉ˜ÇÄü ÂÃôÎÊ˜ÆÅü±Ë™Æü ù÷ÉÈÌ˜ÅÇü¢ÃÇÍ˜ÄÈü ÂÀ”ÐåÆÉäääääääÞäääääääáü‚	äääääääääääääääÞü ÁÄü¡ÎÃü¡æÀåü¢ÄÇü ÌÀaÀ‡Èüüüüüü”ÛäääääääääääääääÈ‰Êü”ßäääääääÀßäääääääÏüœëüœç‘Êü›ÁÊü›ÂÁ‘ÊÀÏÀg8ËÏü›ÃA‘ÂÍÄÏÀÆÁü›Ä9‘ùÏÀÁÀ9Âü›ÖÀßÏ‘ÂðÄåíÁÏü¯Ã)Âééüü³ãü¾Èü§ô‹äÈ
Èü§À6’ÁÈIü§ÀcŠÂêÈ~Qü§ÀÁÈŠîwYü¦ÁÈÏ‰ÁØÈnaü¦ÉqŠÀÃi‰âÀƒãÎÁêÈÎü¦ÊiUÌÌÎÎØËŒÇü¦Ëa’Éq‰ÛÆãïÇåü¦ÌY’ÁÈÏŠÈü¦ÍQ“ÀÁÈŠëåÀ¡Çü¦ÎI“Àcü¦Ï	È’À&Œá
ëÀRÈü¥ÁÈz’ËÀ-ü¥Á;’ÄŒáIÏõü‹)ÄüˆPÕüˆAü®É˜ÛÆãÛÀ¨ôüˆ9ü‡ÀƒãâÀ°ËËüüü¯ÉÕÛÉØü¯ÃÅÆÈîü¯øÀÈÀNÇÀ¹ü¯ÂÆöDü¯ôôååéÈüüüüüQqü¯ôôååéÈ›Àaáü¯ÂÆöD™ÁƒÈü¯øÀÈÀNÇÀ¹Ýü¯ÃÅÆÈîšêÉÈü®ÉÉÕÛ<Ùü	îÈü‘rüŽ¥	çüü²É›î	ÈüŽa"üŽ$rü	ÃüQÌÎÎÞüüüüüü‚	äääääääääääääääÞü²ÂÉäääääääIääääääáü²Ê—ÈÃü²Ë—ÇÄü²Ó—ÆÅü²Ô—ÅÎü²Ï—ÄÈü±ÁÈ—ùü±Éü±Ñü±Òü±Íü±Îü§ÐäääääääääÀ¿ääääääääääÕü§ÖäääääääääÀïääääääääääÚü±Ìüü±Ëü±Êü±Éü±ÁÈü²Ïü²Îü²Íüü²Ìü²Ëü²Ãüüüüüüüüüüüü¬ÛäääääääääääääääÕü¬ÖäääääääääääääääÏüüüüüüüŒãÉÚÖãÊÁÏÆYcüŽYË	Ç	)ÉÉäÈüŒIãöÀâÉáÈÁÇüŽ&ÀÈøCÆÃÉáüŽ!ÃÈ8ŠüŽ9A$
ÇëüŽ)ÂH<ü‘Èæ
ùüIáÁ åüŒIá)üIÀùÈüŒIáÁñQÇ(ü‘ÈõüŽ)Â	?üŽ9AÈ*È*üŽ!ÃÇüŽ&ÀÆFˆßääãüŽÀâù3ùŠÁüŽYË<“ÏüŒYIÚËÁÀ†iQÑËÉyŒÍü•È
OääÞËü§QÉü•	ÇŠÁÈÏü±ÍÉÍÀÈÖÈ°ÎÍü¶ÍÎ=˜ÏedËü¬Æ$ÃOæE¥ÂTÉü¬Ç‰ÅÇ¦ÁÈÏü¬ÈÄ+Í§ÈtÍü«ÁŠÀN“ù™ÇdËü«Â
ô1ÈÄÈÊÉÈü«ÃŠÑÎ$ÅÇÁÈÇüœÛääääääääääääääÞðæ,ßääääääääääääÕßäääääääääääääääääääääääÞvüœßääääääääääääääÞ‹Ç,ßääääääääääääÚâäääääääääääääääääääääääÞvü«ÃÅs%ÄÈÁÈÇü«Â~ðð)ÇùžÊÉÈü«ÁÈÆÐÏàÀOæ§ÏdËü¬ÇfÍ1Î¦ÁuÍü¬ÆlÀÃÐÀÁãÛÈE¥ÂÈÏü½Ç¥ÃTÉü¨aËü¨qÍü§	ÈÏü¤IääãÉü¨Yü¨iü¨yü¤?ääÀóü§Yüü­ÌÁÈü¯ÐÈü­ÃÂÄÇü¯ÀÆü­ÂÃAüü­ù÷ü¯ÀÈü­ÂÀ”ÄÈü¯Ðü­ÁÄü®ÎÌåü®æÐü¯ÅÇü­ÌÀaÀÈüüüüü¬ÖäääääääääääääääÏü¬ÛäääääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüŠýáüŠAÃüŠ9ÄüŠ1Åü‹1üŠ)ÇüŠ!Èü‚IäääääääÞäääääääáü‚	äääääääääääääääÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüü‡ÀƒãÎÁêÈÎüˆ9ü‡ÆãïÇåüˆAüˆPåÀ¡Çüü‰ü
ëÀRÈü-ü‰üIÏõü‹)ÄüˆPÕüˆAü‡ÆãÛÀ¨ôüˆ9ü‡ÀƒãâÀ°ËËüüüüüüüüüüüüaÁÈü	êÕüÂÑÂÌü‘àüÃÑùÌüü÷àü	ÅüÀ”	Àèüü	ÄüŽq	üŽÀèüÅüaÀaêêÕüüüüüü‚	äääääääääääääääÞü‚IäääääääIääääääáüŠAÃüŠ9ÄüŠ1ÅüŠ)ÎüŠ!ÈüŠüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¬ÛäääääääääääääääÕü¬ÖäääääääääääääääÏüüüüüüüüüüüüüüüüüüüüüüü¤?ääãü§	ü¨yü¨iü¤IääÞËü§QÉü§	ÈÏü±ÍÉÍÀÈÖÈ°ÎÍü¶ÍÎ=¥ÃdËü¬Æ$ÃOæE¥ÂTÉü¬Ç‰ÅÇ¦ÁÈÏü¬ÈÄ+Í§ÈtÍü«ÁŠÀN“ù™ÇdËü«Â
ô1ÈÄÈÊÉÈü«ÃŠÑÎ$ÅÇÁÈÇü‘âäääääääääääääääääääääääääÞðæ,ßääääääääääääÕßäääääääääääääääääääääääÞvü‘ääääääääääääääääääääääääääÞ‹Ç,ßääääääääääääÚâäääääääääääääääääääääääÞvü«ÃÅs%ÄÈÁÈÇü«Â~ðð)ÇÐžÊÉÈü«ÁÈÆÐÏàÀOæ§ÏdËü¬ÇfÍ1Î¦ÁuÍü¬ÆlÀÃÐÀÁãÛÈE¥ÂÈÏü½Ç¥ÃTÉü¨aËü¨qÍü§	ÈÏü¤IääãÉü¨Yü¨iü¨yü¤?ääÀóü‰ÚÛÈâÚÍÑQÍq{Ëü­ÌÁÈ›ÎÎ!"AÌiü¯ÁêÕ—ÛÚÀÅÛÕ$
=åü­ÃÂÑÂÅ˜ÁÍÀÈHÁ1ü°ùÀè™ÇÆ
ÏAëü­ÂÃÑšÂ
Æ
ÂÈ	ü°Êð™ÈÅÇÕ9ü­ù÷ÐœôÃÈ(Èðü±Å›ÛÕÄùü­ÂÀ”È—ÛÕ#Aü±Æ›ÛÀÈÊÇ
ü­ÁÄQ˜ÛÕ3øÆÀŠ*ü®Î2œôü®æÀÈ™ÈÅHÀÌü°ÂÅ˜Â$
ÀTü­ÌÀaêêÕ™ÇÆÀÌüŠ	ÍÀÈ	ü‹ÅÈð¨(ü‹qÎü‰qÈÎËÍÁÈiÔÎÌiü’Pü¬ÖäääääääääääääääÏü¬ÛäääääääääääääääÕ•÷ üü’Q~üüüüüüüüüüÿ¡e8¡þ[²Findingµtheµtop³levelµscheduleµofµstrongµcomponentsµisµa¡þ£straightforwardµtask,µasµshownµinµExample 1³4.¡,¤²Example 1³4³Top-LevelµSchedule¡þ	²4´µxµCONST_GENµ(7)¡þ	C{¡þ	w³²Scheduleµofµstrongµcomponentµcontainingµnestedµ¡þ	«µµfeedbackµloops:²¡þ	ß}¡þ
4µxµMULSµ(12)¡þ
G4µxµMULSµ(8)¡þ
{4µxµADD2µ(11)¡þ
¯4µxµADD2µ(10)¡þ
â4µxµKILLµ(4)’ÿÊD“I501ileaf_page_string1:1-31¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³31¡þÉ²After´µactivatingµtheµCONST_GEN(7)µsource,µtheµDCGµcanµactivate¡þtheµstrongµcomponentµwithµtheµfeedbackµloops.µTheµDCGµthen¡þZconsidersµtheµfollowingµprimitiveµstrongµcomponents:¡þÒ²MULS´µ(12)¡þMULSµ(8)¡þ:ADD2µ(11)¡þnADD2µ(10)¡þû²Finally,´µtheµDCGµactivatesµtheµKILL(4)µsinkµblock.µNoteµthatµitµis¡þCalwaysµpossibleµtoµfindµaµsingle³appearanceµscheduleµforµany¡þŒfeed³forward,µtop³levelµstructure,µbecauseµeachµblockµcanµbe¡þÕactivatedµwithµaµlocalµblockµfactorµthatµisµhighµenoughµtoµprocessµall¡þsignalµelementsµofµoneµscheduleµperiod.¡þ²TheµDCGµnextµconsidersµtheµhierarchicalµorderµofµtheµstrong¡þûcomponent,µwhichµhasµtheµfeedbackµloops.µBecauseµtheµinputµand¡þDoutputµratesµofµallµblocksµequalµone,µonlyµtheµdelayµsizesµdetermine¡þŒtheµorderµofµloops.µTheµfeedbackµloopµthatµcontainsµDELAY(16)µand¡þÕtheµdelayµsizeµofµ2µisµtheµouterµloop.µThisµouterµloopµconsistsµofµthe¡þFORK(14)µandµMULS(13)µblocks,µandµtheµinnerµloopµ(see¡þfFigure 1³6).¡,²Figure 1³6³HierarchyµofµFeedbackµLoopsµwithinµtheµStrongµComponent¡J¥	öäÒÓÐÖÿ¶Q·R	çûÈüüüüüüüüüüäääÏü‘1ü‘aü‘QüŽÿääÁÏü‘yÍü‘iËü‘ÉüAÈÏü9tÍü1dÑü)TÁÈü’	ÈÔü“pÄüšÖäääääääääääääääääääääääÚÿäääääääääääääääääää^üšÐäääääääääääääääääääääääÕäääääääääääääääääää^ü“iÄü“yÔü’IÁÈü)\Êü1lÌüšÐäääääääääääääääääääääääÀèšÇ|ÎüšÐäääääääääääääääääääääääÀäšÈKÁÈü²ÂžËÊü²ÁÈÍÌüääã­ÇšäääÏÎü­ÆÁÈü~¬Ûäääää˜Êün¬ÛäääääÈ—ÌüääÞË¬Æ™ÖääãÎüUÉ¬ÇœÁÈüÈÏ«ÈüvÍªÁüfËªÂüVÉÁÃ˜ÃüÈÏÈÂ˜ÄüwÍÇÁügËÆÏüWÂÅÆ²ÖäääÏüÈÄÅ¶ÆüˆÎÐäääääääääääääääÞ·ÌüˆÎÐäääääääääääääääÞ·ÊüÈÄÅ³äääÁÈüWÂÅÆ¶ÏÎügËÆÏ¶ÍÌüwÍÇÁo]©ËÊüÈÏÈÂ˜ÄšÈKÁÈüVÉÁÃoÃšÇ|ÎüfËªÂšÆlÌüvÍ™À3ÓÀÎÖÀÈ>ÐÀÃÙšÅ\ÊüÈÏšíöÅÈAÄÆèGžÉÁÈüääãÉ›ÚØÀ/ÀCÈÉÈÔ?ŸÏÔü^›ÈÆ¢À”ëÀŠ7ŸÍÄünÖŽÛäääääääääääääääääääääääää^ü~ÖÏÛäääääääääääääääääääääääää^üääÀó­ÆŸÍÄü]žÄÏ¢À”ëÀŠ?ŸÏÔü¤À'ÉÈÔÈ™ÅLÁÈü¤ÅÏAÄÆèšÆ\Êü™Ã3ËÀÃÖËYÜÐÏÙšÇlÌü™Â˜ÄšÈ|Îü™ÁŒâÕ©ÉÁÈüšÈ¶ËÊüšÇ‹âÕJ¦ÍÌüšÆ³äääÏÎüšÅ¶ÁÈü˜ÁÞ·Êü™Þ·ÌüšÅ²ÖääãÎüšÆµÁÈüšÏü™Áü™Â˜Äü™Ã˜Ãü²Âü²Áü³Èü³Çü³Æü³ÛäääääääääääÕü³ÛäääääääääääÚü³Æü³Çü²ÁÈüšÐäääääääääääääääääääääääÀâüšÐäääääääääääääääääääääääÀäü²ÄüüüüšÐäääääääääääääääääääääääÕüšÖäääääääääääääääääääääääÚüüüüüüüüüüüü¦Èü¦Ïü¦Îü¦Íüü¦Ìü¦Ëü¦Êü¦Éü›ÁääääääääääãääääääääääääÕüœääääääääääãääääääääääääÏü¦Éü¦Êü¦Ëü¦Ìü¦Íü¦Îü¦Ïü¦Èüü¾ÖÀïÏü¾Ä9ü¾ÃAü¾ÂÁü¾Áü¿éü¿íü·ÛäääääääÀÇäääääääÕü·ÖäääääääääääääääÏüüüüüüüüüü§Ìüüüü¤ÝËËÀfÐÁÀ˜ü¤écÏÆü£ÁÀ9fÀ'ÆÇü¤í#ÈÓü£ÂéÈPëÇ‰Åü²Ïiü¨ÛÏˆÕqü²Íyü¨ÛÚˆÒÁÈüœÈ•Ñü›ÂÏéÈÅPÍˆÉÉü›Êˆí÷Æ!ÇˆÁÀÆü›ËÎÀ9ÁÀÐÊÀ'æ‰ÀÌü›ÌÍ‚ÊÆÅÌÎ‰Ìü›ÍÌ|ÁÀÌÑÐêÈˆÅü›ÎËžÉáÛÀóYËÉü›Ï ÂüšÁÈÊŸÀùÐÚ÷ùüšÁŸÃü¼ÂÈ-ù÷üü½ÐÕRéÀ”ü	Àhü½ÐÕü¤Î›ÈÇü¼ÂÈ?ü¼Ãü¼ÀùÐÚÀýÇåü¼Âü¥ÝÉÕÀgÈ‘ÉáÛÀóÀýÈÎÎü¥éÃÅÄÇü¤ÁÀ9øÀÈÀÆü¥íÂÆÄÈü¤ÂéÀ”ôÅëüüüüüü¤ÂéÀ”ôÅëü¥íÂÆÄÈ˜ÏËü¤ÁÀ9øÀÈÀÆšËÖü¥éÃÅÄÇ˜ÆÅÔÅÏü¤ÎÝÉÕÐÈ›Ðü‚)ÆÔðÏüü‚(ëü…!Èü¨Î™ôåÇüü‚!Çü‚I"ü‚È'Çü…)Èü‚ÃËËÖüüüüü§Ãü§Ëü§ÌÖäääääääääääääääÏü§ÍÛääääääÚ?ääääääÕü§Î–Ä9ü§Ï–ÃAü¦ÁÈ–ÂÁü¦É—ÁéüœääääääääääÀýääääääääääääÏ‹íü›ÁääääääääääÀ÷ääääääääääääÕ‹ðü¦Ëü¦Êüü¦Éü¦ÁÈü§Ïü§Îü§Íüü§Ìü§Ëü§ÃüüüüüüüÐäääääääääääääääáüÉäääääääääääääääÞüüüüüüüüüüüüüüüüüüüüüüüäääÏü‘1ü‘aü‘QüŽÿääÁÈü‘yÎü‘iÌü¢ÊfÉÍÁÚ¨ËÊü§ÊË¨ÉÁÈü¢ÁA	Àò%žÈ|ÎüÄ‰ÂÄ-žÇlÌüÅÊ5žÆ\ÊüÆ‰øÏ=ÀhÅLÁÈüÇîÈRÍEè“ÏÔüÈ‰ÁÀÌ¥ÍÄü™ääää¥2ÐääääääääääääääääÉäääääääääääää^ü˜Áääää‹ÄÐääääääääääääääääÉäääääääääääää^üÈB[‘è“ÍÄüÇeùùÄEÙ“ÏÔüÆ$øÖÀÉÀò=žÅLÁÈüÅNÊË5žÆ\ÊüÄTÌÎÞßÀÃÚ-žÇlÌü®ÄžÈ|Îü‘IÁÈü‘YÊü‘iÌüŽÿääÏÎü‘	Èü‘Qü‘aüääãÎü¼âÚÛÈâÚÍÑQÍq{Èü¾ÎÎ!"AÌiüžÏËœÛÚÀÅÛÕ$
=åü ËÖ›ÁÍÀÈHÁ1üžÆÅÔÅÈ›ÇÆ
ÏAëü¡À/ÇšÂ
Æ
ÂÈ	üžÅÆÔÈÅÇÕ9ü¡À1ÇžôÃÈ(ÈðüžðëQÈÛÕÄùü¢È™ÛÕ#AüžôåQÇÛÀÈÊÇ
ü¡ÁšÛÕ3øÆÀŠ*üžÄÇiŸôüžÉ
œÈÅHÀÌüžÃÈ.ÇšÂ$
ÀTü¡ÅÈ›ÇÆÀÌüžÀÃËËÖ›ÁÍÀÈ	ü¾ÀÅÈð¨(ü¾ÎÎü¼ÎÈÎËÍÁÈiÔÎÌiü…PüÉäääääääääääääääÞüÐäääääääääääääääá—÷ üü…Q~üüüüüüüüüüüüüüüüÿ¡iJ’ÊÄD“I501ileaf_page_string1:1-32¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³32¡þÉ²The´µDCGµmergesµtheµinnerµloop,µwhichµhasµtheµsmallerµdelayµsize¡þofµ1,µintoµaµhierarchicalµblockµcontainingµtheµfollowingµblocks,µas¡þZshownµinµFigure 1³7:¡þê²FORK´µ(17)¡þMULSµ(9)¡þQADD2µ(6)¡þ…ADD2µ(5)¡þ¹FORKµ(18)¡,e²Figure 1³7³Inner´µLoopµBlock¡ÿ³¥	öäÒÓÐÿ‡ð»TU‘
—ûÈüüüüü¦âäääääääääääääääÈü¦ßäääääääääääääääüüüüüüüüüüüŒáÐÕÛáËÉÈÁÀŒaküŽaÌÈ1ÊpüŒáÀ#ÀÄÐÞ	ÈÀŒðüŽLÀ2
9ÄpüŽ)Ä$pÂÀŠôüŽAÁHÈåüŽ1Ãxü‘ÁÆ

üÞÂïÇÀŠüŒÞ1ÀtüÀòÁæÃüŒÞ#Âì¢ÈÀúüÁäääÞŒ$ÁNäääÚü‰1ÃÃŠÄüL‰AÁ	UŽÊü}ˆ)ÄÈ‘ÁÈüääÕÍˆLÀ2ÇÀ?ääÏÎüdËˆ#ÀÄÆ÷*p÷‰ÍÌüTÉˆaÌDMÊŠËÊüÈÏ¤ÉÉáÛÕœÌÕÌÉËqYÒÌÊøŠÉÁÈüuÍÃÆ)Ø=žù5|ÎüeËÂÅÈÀùÐÀÈÀÂ5«ÅlÌüUÉÁÄ1À=-žÂÈ(%\ÊüÈÏÈœÃÇÂÈôÏ%—Õ“ÃLÁÈüvÍÂŠÃœÁÅÈm‹ÏÎüfÄÇœÁå	–ÂÄ™ÍÒüV1È‰õ±ËÂüÈÛääääääääääääääääääääääääääääÏÈ$ääääääääääääääääääääääáÐäääääääääääääääääääÏMüÈÛääääääääääääääääääääääääääääÏ5ÅHääääääääääääääääääääääãÖäääääääääääääääääääÏMü1ÈÏÂÈôæ–ÁÅ™ÒÂünÄÇœÁ1Æ—å™ÎÒü~ÍÈœÊPðÀùÐÀÈß%«ÃÈÎüMÁÀÁÄ).«ÄTÉÈü]ÊÂÅuÀáÛÕä5«ÅdËümÌÃÆÇ«ÆtÍüÏÎŸIÈÏüTÁÈŸYÉüääÞÊ?ääÚËü8¡pü} 	ÈüL¡QüÁäääÀÌIäääÀ˜ül¡qüü²ÍÉü´ßÈü²ÄÃü´ÖÈü²ÃÄü´Öü²÷ôAü´ÑÇü²ùðÀ1üü²ÂÅÍü³ÏÁü²ÁÆÑÇü´ÆÈü²ÍÀÃÛüüüüüü¦ßäääääääääääääääü’ÁäääääääääääääääãäääääääÀ¿äääääääÈü“äääääääääääääääá‹åü­ÁÅü­ÊÄü­ÄÃü­ÅÂü­ÆÁü­ßÀ¿üüüüüüüüüüüüüüüüüÁäääÞüüLü}üääÕÍüdËüTÉüÈÏ‘ËÖÚâÈüuÍÃŠÈ'9ÚüeËÂŠÇÉÀäÛÀ#ÄEüUÉÁŠÆ/AÀô=üÈÏÈ‰Å-
S6üvÍŠÄŠÅüfÄÇ‰ÃRÈ$-üV1‰ÂŠì%üÈÛäääääääääääääääääääÈüÈÛäääääääääFÇ
ÆääääääääääÏü1‰Â?
RÇ%ünÄÇ‰Ã/AÈ-ü~ÍÈ‰ÌÇÀ£ÀäÛÆá5üMÁÀÁŠÆ'9>ü]ÊÂŠÇÈÀoÚâÀƒáE©ÛÀ¿ÈümÌÃŠÈÁªÅAüÏÎ†!ÁüTÁÈ†ÂüääÞÊ‡Ëü8‡	Åü}€äääääääÛäääääääÏüL?äääääääääääääääÈüÁäääÀÌülüüŸÏËü¡ØüŸÆÅÀCü¡ÒüŸÅÆÀ£üüŸðëÒü¡òüŸôåÀ=üüŸÄÇüŸÉ1üŸÃÈÀü¡îüŸÀÃËØüüüüüü“äääääääääääääääáü’ÁäääääääãäääääääãüšÂÈüšÃÇüšÌÆüšÆÅüšÇÄ®ÖÚâÀÌiÍËüšÈÃ¯Äüšãá®ÉÀäÛÏHðôü‹)ü‹
´ôðüüŒÈÁÀJ÷ëüåüŒÈxÂÇüŽÁü‹
üü‹)üŠIÀäÛÀÃÀõÂÈü‹!üŠÚâÀÏÀöÁêÈüüüüüüüüüüü‘yËü“YßÈü‘1ÅÔü”Èü‘)ÆÔü”ü‘(ëBü”Çü‘å1üü‘!Çiü‘I
ü‘ÈÇü”1Èü‘ÃËËÛüüüüüü†?äääääääääääääääÈü†ääääääÕääääääÏü)Aü!ÁüÂüŽüÄü	ÅüŽ üüüüüüüüüüüüüüüüüüü¦âäääääääääääääääÈü¦ßäääääääääääääääüüüüüüüüüü	äÏàÁäÏÏÓaÏÁÈJü‘	êÈ1H2ÂqâÚüÀÂØÇâÈ(Èü‘ÀÃÆPÁÆ*ÃAâÈü‘	AÇPÇü‘!)È(÷ ü‘9	Èü•Põ Çåü”ÈÆôüÈ3ÂÈü”ÆÀüÈCñÈ
ðü•PÂÇü‘9
Æ&KäääÚü‘!)ë'ü‘	AHŽÊü‘ÀÃÆ$.Èü‘ØÇ Âå ?ääÏÔü‘	êÈ#ŽÍËü«ÏËÏÀf>žÁÈ~ÁÈÍÏÊÁÀÁÈÎÌ_Éü°ÀÁÈ§ëÇMÈÏü«ÆÅ
ÜÇ«ÆtÍü¦È‰ï¢ðÈ)dËü¥Á-Æ;Ï«ÄTÉÈü¥Ê‰ÁÓ%—åŠÌMÈÎü¥Ä(ëÆ-–ÁšÎÒü¥ÅŠÀ9È4–ÂšÒÂü›ääääääääääÕåSÇ<ääääääääääääääääääääääáÛäääääääääääääääääääÏMüšÁääääääääääÕŠÁ=ääääääääääääääääääääääáÛäääääääääääääääääääÏMü¥Å%Ç
È5–ÂšËÂü¥ÄM åA-–ÁšÍÒü¥ÃÈÛÁÀùÜÇœå™ÏÎü¥ÂwÏÈ$«ÃLÁÈü¥ÁÃËÛÐÞà«Ä\Êü¦ÈÂ«ÅlÌü¶Á«Æ|Îü¦IÁÈü¦YÊü£?ääÚÌü§qü¦	Èü¦Qü¢IäääÀ˜ü¦qü§ÎÊü©×ü§ÅÄóü©À\Èü§ÄÅÂüü§ôðü©À^ü§÷ëòü©Òü§ÃÆü§ÁÈÀbÈü§ÂÇÒü©ïü§ÀaÀ†Üüüüüüüü¦ßäääääääääääääääü¦âäääääääääääääääÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¢IäääÚü¦!ü¦Qü¦	Èü£?ääÏÎü¦iÌü¦YÊü¦IÁÈü§yÎü¢1lÌü¢)\Êü¢!LÁÈü¢}Îü¨iÒü¨YÂüŽ?äääääääääääääääääääÏMüŽäääääääääääääääääääÏMü¨YÂü¨iÒü¨yÎü¢LÁÈü¢!\Êü¢)lÌü¢1|Îü¦IÁÈü¦YÊü£?ääÚÌü§qü¦	Èü¦Qü¢IäääÀ˜ü¦qüüüüüüüÿ¡÷³¡þÏ²Schedulingµtheµstrongµcomponentµstartsµwithµtheµouterµloop.µThe¡þ	DCGµactivatesµtheµblocksµthatµfollowµtheµdelayedµsignalµofµsizeµ2,¡þ	`usingµblockµfactorsµofµ2.µAsµsoonµasµtheµDCGµtouches"µaµblockµof¡þ	©theµinnerµloop,µinµthisµcaseµADD2(6),µtheµDCGµworksµoffµallµblocks¡þ	òthatµbelongµtoµtheµinnerµloopµbeforeµcontinuingµtoµscheduleµtheµouter¡þ
:level.µBecauseµtheµdelayµofµ2µisµlessµthanµtheµglobalµblockµfactorµof¡þ
ƒ4,µtheµDCGµassignsµtheµlocalµblockµfactorµofµtheµstrongµcomponent¡þ
Ìequalµtoµ2.µExample 1³5µshowsµtheµderivedµscheduleµforµtheµstrong¡þcomponentµcontainingµtheµnestedµfeedbackµloops.’ÄŠD“I501ileaf_page_string1:1-33¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³33¡,É²Example 1³5³Derived´µSchedule¡þ3²2´µxµ{¡þg³³2µxµFORKµ(14)¡þ›³³2µxµMULSµ(13)¡þÏ³³µµ{¡þ³µµµµµµ²placeµtheµscheduleµofµtheµinnerµfeedbackµloopµhere²¡þ7³³µµ}¡þj³µµ}¡þ²The´µdelayµsizeµofµ1µinµtheµinnerµloopµdeterminesµtheµupperµboundµof¡þ^blockµprocessingµforµthisµloopµinµtheµsameµwayµthatµtheµdelayµwith¡þ§sizeµ2µaffectedµtheµouterµloop.µInµtheµouterµloop,µtheµspecifiedµglobal¡þïblockµfactorµofµ4µcouldµnotµbeµapplied,µsoµtheµdelayµsizeµ(2)µwas¡þ8assigned.µInµtheµinnerµloop,µforµwhichµtheµblockµfactorµshouldµbeµ2,¡þtheµdelayµofµ1µconstrainsµtheµblockµfactorµtoµalsoµequalµ1.µTherefore,¡þÉtheµschedulingµforµtheµinnerµloopµisµasµshownµinµExample 1³6.¡,Ä²Example 1³6³InnerµLoopµScheduling¡þ.²2´µxµ{¡þbµµ³³1µxµFORKµ(17)¡þ–µµ³³1µxµMULSµ(9)¡þÊµµ³³1µxµADD2µ(6)¡þþµµ³³1µxµADD2µ(5)¡þ1µµ³³1µxµFORKµ(18)¡þe³µµ}¡þ	²In´µthisµschedule,µobtainedµbyµpartitioningµtheµblockµdiagramµintoµits¡þ	Ystrongµcomponents,µeachµblockµappearsµonlyµonce.¡þ
:However,µifµunfavorableµcombinationsµofµdelaysµandµportµratesµexist,¡þ
ƒyouµmightµnotµfindµaµminimumµactivationµschedule.µInµsuchµcases,¡þ
Ìtheµresultingµcodeµmightµbeµmoreµcompactµifµyouµgenerateµa¡þscheduleµwithoutµusingµhierarchicalµscheduling.’ŠíD“I501ileaf_page_string1:1-34¥	öäÃËÁâÊË¡Ä,),¡Ä,	c¡Ä	c	c)¡Ä	c),)ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,	:,	$¡Ä,	$	c	$¡Ä	c	$	c	:¡Ä	c	:,	:ÆÃÁÊËÃ¡Äþ	$Ê	$ÆÃ¥	öä¥	öä¡8Á²DCG´µOverview¡.1³34¡þÏ²
Combined´µStrategy¡þL²If´µyouµspecifyµaµcombinedµstrategy,µtheµDCGµperformsµhierarchical¡þ•scheduling,µfollowedµbyµdetectµsequencesµpostprocessing.µInµthe¡þÝexampleµusedµinµtheµpreviousµsections,µtheµDCGµhasµalready¡þ&generatedµaµsingleµappearanceµscheduleµwithµonlyµhierarchical¡þoscheduling.µInµthisµexample,µthen,µaµcombinedµstrategyµwillµnotµlead¡þ·toµanyµfurtherµscheduleµimprovement.¡þc²
Shared´µBuffers¡þà²When´µcomputingµaµvalidµschedule,µtheµDCGµautomaticallyµallocates¡þ)memoryµforµtheµsignalµbuffers.µIfµyouµdoµnotµselectµtheµsharedµbuffer¡þqcodeµgenerationµstrategy,µtheµDCGµmapsµeachµbufferµontoµaµdistinct¡þºmemoryµsegment.µBecauseµnotµallµsignalµbuffersµcontainµsignal¡þelementsµduringµtheµexecutionµofµaµcompleteµscheduleµperiod,µitµis¡þKpossibleµtoµreuseµidenticalµmemoryµsegmentsµforµdifferentµsignal¡þ”buffers.µByµevaluatingµtheµlifetimesµofµtheµbuffers,µsharedµbuffers¡þÝreduceµtheµamountµofµmemoryµrequiredµdueµtoµbufferµallocation.¡þ%Onlyµsignalµbuffersµofµidenticalµdataµtypesµareµshared.µAllµdelayed¡þnsignalsµareµmappedµontoµdistinctµmemoryµsegments.¡þïNoteµthatµthisµstrategyµintroducesµadditionalµsignalµpointers.µThus,¡þ7whenµconsideringµtheµamountµofµdataµmemoryµrequired,µitµisµnot¡þ€sufficientµtoµcompareµonlyµtheµmemoryµspaceµallocatedµforµthe¡þÉsignals.¡þ	t²
Code´µGenerationµStrategiesµatµtheµBlockµLevel¡þ	ò²Code´µgenerationµstrategiesµatµtheµblockµlevelµinfluenceµonlyµthe¡þ
:implementationsµofµtheµcodeµassociatedµwithµeachµmodel.µCode¡þ
ƒgenerationµstrategiesµatµtheµblockµlevelµdoµnotµaffectµblockµdiagram¡þ
Ìlevelµtasks,µsuchµasµschedulingµorµstorageµallocationµforµsignal¡þbuffers.’íCD“I501ileaf_page_string1:1-35¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³35¡þÉ²For´µexample,µExample 1³7µshowsµaµtemplateµofµcodeµthatµdescribes¡þtheµfunctionalityµofµaµmultiplexer:¡,Á²Example 1³7³MultiplexerµCodeµTemplate¡þ²INPUT_PORT(1)´µregisterµSIGNALµ*Input1;¡þLINPUT_PORT(2)µregisterµSIGNALµ*Input2;¡þOUTPUT_PORT(1)µregisterµSIGNALµ*Output;¡þ¼PARAMETER(1)µintµItemsFromInput1;¡þðPARAMETER(2)µintµItemsFromInput2;¡þ-BLOCKFACTORµlongµBlockFactor;¡þivoidµM0_0_2_mux2in1()¡þ{¡þÑ³LOOP(BlockFactor)¡þ³³LOOP(ItemsFromInput1)¡þ9³³³³*Output++µ=µ*Input1++;¡þm³³ENDLOOP¡þ¡³³LOOP(ItemsFromInput2)¡þÕ³³³³*Output++µ=µ*Input2++;¡þ	³³ENDLOOP¡þ<³ENDLOOP¡þp}¡þ²INPUT_PORT,´µOUTPUT_PORT,µPARAMETER,µand¡þHBLOCKFACTORµareµkeywordsµforµtheµimplementationµfile.µ(For¡þ‘examplesµofµtheµuseµofµtheseµkeywords,µseeµtheµ²COSSAPµModel¡þÙUserµGuide².)¡þzDependingµonµwhichµmodelsµareµinµtheµblockµdiagram,µtheµDCG¡þÃexpandsµtheµappropriateµcodeµtemplatesµintoµCµcode.¡þ	cAtµtheµblockµlevel,µtheµscalableµstaticµdataµflowµparadigmµisµsupplied¡þ	¬byµaµgenericµloopµconstructµasµdescribedµearlierµinµthisµchapter.µThe¡þ	õdefinitionµofµtheµgenericµloopµsyntaxµis:¡þ
u²LOOP(²lpcnt²)¡þ
©³³²loopbody¡þ
Ý²ENDLOOP’C@D“I501ileaf_page_string1:1-36¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³36¡þÉ²In´µthisµsyntax¡þP²S¡XP²²lpcnt²µisµaµfunctionalµexpressionµconsistingµofµblockµparameters,¡X–theµblockµfactor,µand/orµconstants.¡þ²S¡X²²loopbody²µcanµbeµanyµvalidµCµexpression.¡þÑTheµDCGµautomaticallyµmapsµtheµgenericµloop,µwhichµisµnotµofµC¡þlanguageµsyntax,µontoµtheµmostµappropriateµCµlanguageµloop¡þbconstructµforµtheµchosenµtargetµprocessor.µForµexample,µtheµDCG¡þ«generatesµaµfor"µloopµforµtheµTIµTMS320C30µandµaµdo³while"µloop¡þôforµtheµAT&TµDSP32C.¡þ™Codeµgenerationµstrategiesµforµinlineµexpansion,µgeneratingµzero¡þâoverheadµloops,µandµperformingµloopµunfoldingµallowµyouµtoµchoose¡þ+betweenµtwoµimplementationµgoals:µenhancingµthroughputµand¡þsreducingµmemoryµspaceµrequirements.¡þ\²
Code´µInlining¡þþ²The´µpiecesµofµcodeµimplementingµtheµblocksµofµaµblockµdiagram¡þGmustµbeµassembledµintoµaµsingleµexecutableµmainµprogramµor¡þfunction.µToµachieveµthis,µtheµDCGµcanµuseµeitherµofµtheµfollowing¡þØprocedures:¡þ	_²S¡X	_²Defineµtheµalgorithmicµkernelµofµaµblockµasµaµfunctionµand¡X	¥generateµaµfunctionµcallµforµeachµblockµappearanceµwithinµthe¡X	ìschedule¡þ
a²S¡X
a²Expandµtheµalgorithmicµkernelµofµtheµblockµinline,µwhereµeach¡X
¨blockµappears’@‡D“I501ileaf_page_string1:1-37¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³37¡þÉ²In´µtheµfirstµprocedure,µtheµscheduleµconsistsµofµcallsµtoµtheµfunctions.¡þBecauseµblocksµthatµareµinstancesµofµtheµsameµmodelµcanµshareµthe¡þZsameµprogramµcode,µtheµprogramµmemoryµrequirementµis¡þ£minimized.µThisµapproachµcanµreduceµtheµthroughputµbecauseµeach¡þìfunctionµcallµresultsµinµsomeµoverheadµforµmostµofµtheµDSPs.¡þ4Especiallyµforµblocksµthatµprocessµrelativelyµsmallµsignalµprocessing¡þ}tasks,µtheµfunctionµcallµoverheadµcanµbecomeµquiteµlargeµcompared¡þÆtoµtheµtimeµthatµtheµsignalµprocessingµitselfµconsumes.¡þgInµtheµsecondµprocedure,µtheµDCGµcanµgenerateµinlineµcode.¡þ°Insteadµofµaµfunctionµcall,µtheµsoftwareµimplementationµofµtheµblock¡þùisµexpandedµinlineµwhereµtheµschedulingµdeterminesµthatµtheµblock¡þAshouldµbeµactivated.µInlineµexpansionµavoidsµoverheadµdueµto¡þŠfunctionµcalls.¡þ,However,µifµtheµblockµdiagramµcontainsµseveralµblocksµofµaµmodel¡þtthatµperformsµaµcomplexµsignalµprocessingµtask,µtheµinliningµcode¡þ½generationµstrategyµcanµdramaticallyµincreaseµmemory¡þrequirements.µTheµsameµmightµbeµtrueµifµtheµscheduleµcontains¡þNmultipleµappearancesµofµanyµoneµblock.µTherefore,µanµupperµbound¡þ—forµinliningµmustµbeµspecified.µToµinlineµtheµblock'sµmodelµcode,µthe¡þßtotalµappearancesµofµallµblocksµinµtheµscheduleµbeingµinstantiations¡þ(ofµtheµsameµmodelµmustµbeµwithinµtheµlimitµthatµyouµspecify.¡þ	²
Block´µFactorµDependentµZeroµOverheadµLoops¡þ	©²A´µ²(B)³loop²,µorµ²blockµfactorµloop²,µhasµaµloopµendµconditionµthat¡þ	òdependsµonµtheµlocalµblockµfactor,µwhichµinµturnµdependsµonµthe¡þ
:globalµblockµfactor.µTheµendµconditionµcanµalsoµdependµonµthe¡þ
ƒparametersµofµtheµmodelµorµconstants,µorµboth.µInµtheµmultiplexer¡þ
Ìimplementation,µtheµloopµthatµdependsµonµBlockFactorµisµan¡þexampleµofµaµblockµfactorµloop.’‡ D“I501ileaf_page_string1:1-38¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³38¡þÉ²The´µ²(B)³loopµzeroµoverhead²µcodeµgenerationµstrategyµprecomputes¡þtheµloopµcounterµexpressionµforµallµblockµfactorµloops,µwhichµfixes¡þZtheµnumberµofµloopµiterations.µInµconventionalµcompilerµterms,µthis¡þ£processµisµalsoµcalledµ²constantµpropagation².µWhenµyouµuseµsuchµa¡þìloop,µmostµCµcompilersµforµDSPsµcanµuseµtheµfacilitiesµofµzero¡þ4overheadµloops.¡þÑThisµcodeµgenerationµstrategyµenhancesµtheµthroughputµbecause¡þtheµloopµcounterµexpressionµisµcomputedµwhenµtheµcodeµis¡þbgenerated.µThisµavoidsµruntimeµoverheadµthatµloopµmanagement¡þªmightµcause.¡þGFurthermore,µifµtheµDCGµevaluatesµtheµloopµendµconditionµtoµequal¡þ1,µjustµtheµloopµbodyµitselfµappearsµinµtheµcodeµandµtheµDCG¡þØremovesµtheµsurroundingµloopµconstruct.µIfµtheµloopµisµnever¡þ!executed,µthenµtheµDCGµremovesµtheµentireµloopµconstruct.¡þ½Ifµblocksµofµtheµsameµmodelµareµactivatedµwithµdifferentµlocalµblock¡þfactorsµorµdifferentµparameterµsettings,µtheµmemoryµrequirementµcan¡þNincrease.µThisµisµbecauseµdifferentµloopµcounterµexpressionsµcan¡þ—resultµfromµtheµdifferentµsettings.µInµthisµcase,µtheµDCG¡þßautomaticallyµprovidesµmultipleµversionsµofµtheµmodel¡þ(implementation.¡þÄUsingµtheµ(B)³loopµzeroµoverheadµcodeµgenerationµstrategy,µyouµcan¡þ	tradeµthroughputµoffµagainstµmemoryµconsumption.¡þ	©Aµ²(B)³loop²,µorµ²blockµfactorµloop²,µhasµaµloopµendµconditionµthat¡þ	òdependsµonµtheµlocalµblockµfactor,µwhichµinµturnµdependsµonµthe¡þ
:globalµblockµfactor.µTheµendµconditionµcanµalsoµdependµonµthe¡þ
ƒparametersµofµtheµmodelµand/orµonµconstants.µInµtheµmultiplexer¡þ
Ìimplementation,µtheµloopµthatµdependsµonµtheµblockµfactorµisµan¡þexampleµofµaµblockµfactorµloop.’ gD“I501ileaf_page_string1:1-39¥	öä¥	öä¡‹Á²âDCG´µOverview¡Ô¤ÿ¤1³39¡þÉ²Using´µthisµcodeµgenerationµstrategy,µyouµcanµunfoldµblockµfactor¡þloops.µUnfoldedµloopsµuseµtheµDSPµpipeliningµmoreµefficientlyµthan¡þZordinaryµloops.µIfµyouµcompletelyµunfoldµaµloop,µyouµavoidµoverhead¡þ£forµloopµmanagement.¡þ*Loopµunfoldingµincreasesµthroughputµbut,µespeciallyµforµlargeµloop¡þsendµconditions,µtheµsizeµofµtheµgeneratedµcodeµcanµincrease.¡þ»Therefore,µyouµcanµspecifyµanµupperµboundµforµtheµdegreeµof¡þunfolding.µTheµDCG,µinµturn,µlimitsµreplicationµofµtheµloopµbodyµto¡þMthisµupperµboundµandµadaptsµtheµloopµcounter.µIfµtheµloopµend¡þ•conditionµisµnotµanµintegerµmultipleµofµtheµupperµbound,µtheµDCG¡þÞshiftsµtheµremainingµreplicationsµoutsideµtheµloopµconstruct.¡þ”²
Parameter´µDependentµZeroµOverheadµLoops¡þ²A´µ²(P)³loop²,µorµ²parameterµloop²,µisµaµgenericµloopµforµwhichµtheµloop¡þ`endµconditionµdependsµonlyµonµtheµparametersµofµtheµmodelµorµon¡þ©constants,µorµonµboth.µAnµexampleµofµaµparameterµloopµisµtheµloopµin¡þñtheµmultiplexerµimplementation,µforµwhichµtheµendµconditionµdepends¡þ:onµtheµItemsFromInput1µparameter.¡þÁTheµ²(P)³loopµzeroµoverhead²µcodeµgenerationµstrategyµprecomputes¡þ
theµloopµcounterµexpressionµforµallµparameterµloops.µThisµcode¡þRgenerationµstrategyµallowsµyouµtoµtradeµthroughputµoffµagainst¡þ›memoryµconsumption.¡þ	"Theµeffectsµareµtheµsameµasµdescribedµforµtheµblockµfactor¡þ	kdependentµzeroµoverheadµloopµstrategy.¡þ	òIfµdifferentµblocksµofµtheµsameµmodelµ(suchµasµmultipleµFIRµblocks)¡þ
:haveµdifferentµparameterµsettings,µtheµprogramµmemoryµrequired¡þ
ƒmightµincreaseµbecauseµevaluatingµcorrespondingµloopµcounter¡þ
Ìexpressionsµcanµyieldµdifferentµresults.µInµthisµcase,µtheµDCG¡þautomaticallyµprovidesµmultipleµfunctionµdefinitionsµforµthisµmodel.’gID“I501ileaf_page_string1:1-40¥	öä¥	öä¡8Á²âDCG´µOverview¡.1³40¡þÉ²A´µ²(P)³loop²,µorµ²parameterµloop²,µisµaµgenericµloopµforµwhichµtheµloop¡þendµconditionµdependsµonlyµonµtheµparametersµofµtheµmodelµand/or¡þZonµconstants.µTheµloopµinµtheµmultiplexerµimplementation,µforµwhich¡þ£theµendµconditionµdependsµonµtheµItemsFromInput1µparameter,µisµan¡þìexampleµofµaµparameterµloop.¡þŽUsingµtheµ(P)³loopµcodeµgenerationµstrategy,µyouµcanµunfoldµthe¡þ×parameterµloops.µTheµeffectsµareµsimilarµtoµunfoldingµblockµfactor¡þ loops.’IÐOPS m:m:D€‚Document:dcg2ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:44ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12b±:                                                                                          2                                       °wst:courps12i±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7° wst:courps10± :*°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°Ewst:courps14±E:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################################################################################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%##%##%%%#%%%%%%##%%##%%%#################%######%#####%%#################%######%#####%%#%##:##%%#%%%%%%%%%#####%%%%%%##%%%%%%%%%%%%%%%#%%%%#%%%#°Nwst:timsps100b±N:h‹ÑÑÑ¡[‹‹‹ÑîhÑhtÑÑÑÑÑÑÑÑÑÑ‹‹îîîÑ„---ÿDD¢ÑDŠ-DÿD-è--¡--‹t‹òÑ‹Ñè¹è¹‹Ñèt‹èt[èÑèè¹¢‹èÑ-ÑÑ¹¤\¤ÙÑ‹ÑÑÑÑÑ‹}Ñ‹áhŠÑÑ------¡-¢¢¢¢-DDDDDD----èÑÑÑÑÑÑ-¹¹¹¹¹ttttèÑÑÑÑÑÑèèèèÑhÑÑ¡‹Ñ¡ÑÑ‹‹Ñ¡FÑ¡-°Ywst:courps12bi±Y:                                                                                          2                                       °}wst:courps11i±}:.åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€åÿÿ(ˆP+»å™™ÿÿNîÍåÿÿ‘hˆå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’MWDD“I501ileaf_page_string1:2-1¥	öä²Nâ¡Â¡Â¡4Â¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¾2³1¡,m²²2â²¥	öä¡Õm²â¡,ˆ²The´µxdcgµUtility¡²¥	öäÁÊËÃ¡Ä,ëÊëÆÃ¡	ö¡þÉThis´µchapterµdescribesµtheµxdcgµutility,µwhichµisµtheµuserµinterface¡þforµtheµCOSSAPµDSPµCodeµGeneratorµ(DCG).µTheµfirstµpartµofµthis¡þZchapterµprovidesµanµoverviewµofµtheµstepsµrequiredµtoµgenerateµcode¡þ£usingµtheµDCG.µTheµlatterµpartµofµthisµchapterµcontainsµaµreference¡þëtoµtheµxdcgµmenusµandµdialogµboxes.¡þœThisµchapterµdescribesµtheµfollowing:¡þ	*²S¡X	*²TheµstepsµtoµfollowµwhenµgeneratingµCµcode¡þ	¤²S¡X	¤²TheµstepsµtoµfollowµwhenµgeneratingµGenericµCµcode¡þ
²S¡X
²Howµtoµstartµxdcg¡þ
š²S¡X
š²TheµxdcgµWindow¡þ²S¡X²Theµxdcgµmenuµitems’DD“I501ileaf_page_string1:2-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³2¡,Õ²Generating,´µCompiling,µandµDownloadingµCµCode¡þ”²The´µfollowingµisµanµoverviewµofµtheµstepsµrequiredµwhenµusingµthe¡þÝDCGµtoµgenerate,µcompile,µandµdownloadµCµcode.¡þa1.¡XaUseµtheµBlockµDiagramµEditorµ(BDE)µtoµcreateµorµmodifyµa¡X¨designµforµwhichµyouµwantµtoµgenerateµDSPµcode;µthenµcreateµa¡XïnetlistµrepresentationµofµtheµdesignµthatµtargetsµtheµDCG.µFor¡X5moreµinformation,µseeµtheµ²COSSAPµBlockµDiagramµEditorµUser¡X|Guide².¡þï2.¡XïSetµtheµworkingµdirectoryµtoµtheµcµdirectoryµwithinµyourµproject¡X6directory:¡þ¦²¡…¦%´µ²cdir¡þ²3.¡XStart´µxdcg:¡þ‹²¡…‹%´µ²xdcg¡þÿ²4.¡XÿIn´µtheµNetlistµnameµtextµentryµfield,µenterµtheµnameµofµtheµentity¡XEfileµforµtheµnetlistµandµpressµReturn.¡þµ²¡…µs²Ysimno².v_ent²¡X)²whereµ²simnoµ²isµtheµnumberµofµtheµsimulation.¡þ¬5.¡X¬InµtheµOutputµdirectoryµtextµentryµfield,µenterµtheµnameµofµthe¡Xóoutputµdirectory.µIfµyouµdoµnotµspecifyµanµoutputµdirectory,µthe¡X	9filesµwillµbeµcreatedµinµtheµdirectoryµinµwhichµxdcgµwasµstarted.¡X	€Forµexample,µenterµtheµfollowingµifµyouµwantµtheµfilesµtoµbe¡X	Ægeneratedµinµdirectoryµdspcode:¡þ
7²¡…
7dspcode²³’#D“I501ileaf_page_string1:2-3¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¾2³3¡þÉ²6.¡XÉIn´µtheµOutputµnameµtextµentryµfield,µenterµtheµnameµofµtheµoutput¡Xfile.µIfµyouµdoµnotµspecifyµanµoutputµfileµname,µtheµdefaultµfile¡XVnameµofµdcg_²netlist_name²µwillµbeµused.¡þÊ7.¡XÊForµmultiprocessorµDSPµcodeµgeneration,µenterµtheµArchitecture¡Xfileµname.¡þ„8.¡X„Chooseµ²²Settings²>²Setµtarget.µAtµtheµ²²Selectedµtargetµprompt,¡XËselectµtheµtargetµfile,µforµexample,µK&RC.¡þ>9.¡X>Selectµanµimplementationµgoalµstrategy.µForµexample,µselectµthe¡X…CustomµiconµinµtheµOptimizationµfield.¡þø10.¡XøChooseµ²²Settings²>²Setµoptionsµtoµselectµcodeµgeneration¡X?strategies.¡þ²11.¡X²Chooseµ²²Code²>²Createµtoµcreateµtheµoptimizedµtarget³specific¡XùDSPµcode.¡þl12.¡XlChooseµ²²Code²>²Compileµtoµcompile,µassemble,µandµlinkµthe¡X³generatedµcode.¡þ'13.¡X'Chooseµ²²Code²>²Downloadµtoµdownloadµtheµexecutableµprogram¡Xmorµprogramsµontoµtheµtargetµboard.’#¨D“I501ileaf_page_string1:2-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³4¡,Õ²Generating´µGenericµCµCode¡þ“²The´µfollowingµisµanµoverviewµofµtheµstepsµrequiredµwhenµusingµthe¡þÜDCGµtoµgenerateµgenericµCµcode.¡þ`1.¡X`UseµtheµBlockµDiagramµEditorµ(BDE)µtoµcreateµorµmodifyµa¡X¦designµforµwhichµyouµwantµtoµgenerateµgenericµCµcode;µthen¡Xícreateµaµnetlistµrepresentationµofµtheµdesignµthatµtargetsµthe¡X3DCG.µForµmoreµinformation,µseeµtheµ²COSSAPµBlockµDiagram¡XzEditorµUserµGuide².¡þNote:²¡XS²TheµassignmentµfileµisµNOTµevaluatedµforµgenericµC"µcode¡Xœgeneration.¡þ 2.¡X Setµtheµworkingµdirectoryµtoµtheµcµdirectoryµwithinµyourµproject¡Xfdirectory:¡þÖ²¡…Ö%´µ²cdir¡þJ²3.¡XJStart´µxdcg:¡þº²¡…º%´µ²xdcg¡þ.²4.¡X.In´µtheµNetlistµnameµtextµentryµfield,µenterµtheµnameµofµtheµentity¡Xufileµforµtheµnetlist,µinµtheµfollowingµformatµandµpressµReturn.¡þä²¡…äs²Ysimno².v_ent¡þ	X²5.¡X	XInµtheµOutputµdirectoryµtextµentryµfield,µenterµtheµnameµofµthe¡X	Ÿoutputµdirectory.µIfµanµoutputµdirectoryµisµnotµspecified,µtheµfiles¡X	æwillµbeµcreatedµinµtheµdirectoryµinµwhichµxdcgµwasµstarted.µFor¡X
,example,µenterµtheµfollowingµifµyouµwantµtheµfilesµtoµbeµgenerated¡X
sinµdirectoryµdspcode:¡þ
â²¡…
âdspcode²³¡þ´µ’¨oD“I501ileaf_page_string1:2-5¥	öäÃËÁâÊË¡Ä,’,|¡Ä,|	c|¡Ä	c|	c’¡Ä	c’,’ÆÃÁÊËÃ¡Äþ|Ê|ÆÃ¥	öäÃÁÊË¡Ä,	¢,	Œ¡Ä,	Œ	c	Œ¡Ä	c	Œ	c	¢¡Ä	c	¢,	¢ÆÃÁÊËÃ¡Ä,	ŒÊ	ŒÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¾2³5¡þÉ²6.¡XÉIn´µtheµOutputµnameµtextµentryµfield,µenterµtheµnameµofµtheµoutput¡Xfile.µIfµanµoutputµfileµnameµisµnotµspecified,µtheµdefaultµfileµname¡XVofµdcg_²netlist_name²µwillµbeµused.¡þ¾7.¡X¾Chooseµ²²Settings²>²Setµtarget.µAtµtheµ²²Selectedµtargetµprompt,¡XselectµtheµtargetµGenericµC.¡þm8.¡XmChooseµ²²Settings²>²Setµoptionsµtoµselectµcodeµgeneration¡X³strategies.¡þ9.¡XChooseµ²²Code²>²CreateµtoµcreateµtheµoptimizedµgenericµCµcode.¡þË²
Notes´µonµGeneratingµGenericµCµCode¡þT²The´µfollowingµareµimportantµthingsµtoµknowµwhenµgeneratingµgeneric¡þœCµcodeµusingµtheµDCG.¡þ²S¡X²Parametersµatµtheµtopµlevelµofµaµdesignµthatµaffectµinternalµdata¡XXrates,µtheµlengthµofµaµvectorµ(SCRATCH,µSTATE),µorµtheµlength¡XŸofµaµdelayµareµnotµallowedµbecauseµtheµDCGµrequiresµconstant¡Xåratesµandµdelays.¡þM²S¡XM²Theµcodeµofµtheµblocksµinµtheµblockµdiagramµfromµwhichµyouµare¡X”generatingµgenericµCµcodeµisµgeneratedµasµinlineµcode.¡XÚTherefore,µtheµglobalµmodelµinliningµoptionµ(describedµinµthe¡X!CodeµGenerationµStrategies"µsectionµlaterµinµthisµchapter)µinµthe¡XgDCGµcodeµgenerationµstrategiesµhasµnoµeffect.¡þÏ²S¡XÏ²YouµcannotµgenerateµgenericµCµcodeµforµaµschematicµthat¡X	containsµDCG³generatedµgenericµCµcodeµmodels.¡,	ã²Starting´µxdcg¡þ
ƒ²The´µxdcgµtool,µwithµitsµgraphicalµuserµinterface,µautomatesµthe¡þ
Ìprocessµofµgeneratingµoptimizedµcodeµforµdifferentµtargetµprocessors¡þfromµaµblockµdiagramµspecificationµthatµisµdata³flowµoriented.’oõD“I501ileaf_page_string1:2-6¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³6¡þÉ²To´µstartµxdcg,µenterµitsµnameµatµtheµoperatingµsystemµprompt:¡þK²%´µ²xdcg¡þÝ²The´µxdcgµwindowµappears,µasµshownµinµFigure 2³1.¡,Ž²Figure 2³1³xdcgµWindowµµShowingµTargetµPop-UpµWindow¥	öäÒÓÐ²ÂŸqß%à&ˆûÈüüüüüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüÁä·ÐáüüääääääääääääääääääääääääääääääääääääääääääääääääääääääÚü?ßääääääääääääääääääääääääääääääääääääääääääääääääääääääÀçÕüÈ¶ÖÏü7äÀßääääääääääääääääääääääääääääÀÏäääääääääääääääääääääääÕü,ÙØ××ÊÖÈÞØÜð-ü”À´ÀZÀ-À-IÇÀ4ÀZÀÁÀhÈ4üþÁÀLÀ¥ÉÉÀ
ÊÀ™ÀáÀÁÕÀ)ÀÀÀ‡ÀÀžÀLÀñÀ°üÁÏ|’ÄÄ,ÀÒÀÂÀÐÀƒÀKÇÀ-ÀMÀhÒüqÆ’À&À&Ì9LÁIÀ°pŽÍü–ÀÀËÀƒÈ2Ñ|ÁÀ†IÂÒ:ül’ÃÃÀ.É"ËðÈÉÏÀ,ü“ÁíÀ¥ÍÍ
Îç9ÅðA9ü8À¼ÀZÀ-À-4ÀZ	ÀzÀÒÀÂÚÀÀÈÀÏÀ.À­Àhü+ÙØ××À1ÀŒøØÍñÀáÀ±ÕÖÀËÀÇÀŒÀÀœÀñÈüüäÏü)üJäÕüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüüüüüüüüËÑKÕ>ÈžÆÈÐü_ËËÚÂÁÈ ÊüŠÅüÏ
ÚÚÝ
ÛÀÀÀÃéÚÀôÝœÖÈùÕüÌÕJÀùÞãxßÀ›ÀÀÃÁÀùáã›ÛÛÏÉÚüˆÄ>›ÛüÏ|ÛüœÖÈüÕ~:ÛÈÞàœÖÏüŠÅ!>Æ	ÚÈžÂüÀÀÏÀóÀùÞáßÐÀÃÀãÎÁÞãœÛÀ†ÀÃÚü3ÛÖÀ‡ÏIÀáÚÀôÝ>ÛÉêÀÃÀâøáÝ›ÆÀÀ‡ÀÁÕüü–Ááü—ÞŸÃüüüüüüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüüÁääääääääääääääääääääääääääÈüüüžßääääääääääääääääääääääääáüüü’Â/üÅpÌ‰Êgü>ÎÌŽÆüŽË_üKÁÀñÀ¸8ÛÀÈùÀáÀñÀØÝ#ÆÁÀñÙÀÜüÀƒÀùÀ¸ißÀ›ÈÉÀñÞáãMÞáÀÜü|E_ÎBüaÚ?Ú|Úü!ÞÈJÚ~SÏÁÞü29*[ÉËüLÚÝÀlÀ6ßÀ‡ÏIÚÆáKÈÉÚ>üöÚÓÝÜÛÉÈÃöÀéÃÝQÉÁÖÀñÀñÃÒÌü’ÂÚ+üüüüüüüüüüžßääääääääääääääääääääääääáüüüÁääääääääääääääääääääääääääÈüüüüÁääääääääääääääääääääääääääÈüüüžßääääääääääääääääääääääääáüüüüüüKÕ!ÈüÚ9"
È+üüöÀ¸À¼îÀ7ÀƒéÔÞÝÀnÛÀçÇüÀ¸à7ÀÃÉÀùáãÀnßÀŸÏü?<AüŽÄÞ<üáüÇB9ÁCüÀóÞÝàâÖÈÖÀÃÎÁÞãÛßÈÖÈüKÀáÀèÓØÀ=ÐÀ£ÀáøÝÑÛÄÐü”Äü”ÖÏüGŒÐÈüüüüüüžßääääääääääääääääääääääääáüüüÁääääääääääääääääääääääääääÈüüüüÁääääääääääääääääääääääääääÈüüüžßääääääääääääääääääääääääáüüüüüüKÕüÚ9"üüöÀ¸À¼îÀ7ÀÃÀãÀ°ÞüÀ¸à7ÀãÀñÀùáü?üŒÉÕøüŒÐÕüüÇB2üÀóÞÝàâÖÈÕïÞüKÀáÀèÓØÀ=Ð!À#ÀÒÄÞüüüGüüüüüüžßääääääääääääääääääääääääáüüüÁääääääääääääääääääääääääääÈüüüüÁääääääääääääääääääääääääääÈüüüžßääääääääääääääääääääääääáüüüüüüüDBÌ‰ÐÊÐüÏcÄ
À†ÊüKÎüSÀ2ÔÞØÓÀ7ÖÀ‡ÀÆÀâöÓÝŽIÕÁÙÝÀvÛüLÀùáàÍÀ7ÛÀÏÀæÕÁáãZÚüàßßÈüEÃÇ4:6EüKÕÄÈÝ6JÕ|üKÕÏ~LÚüÈüC1Å‹Ãüá6ÖÀŸÀÀáÀóÞüÀ†ÀÇÕüÄßüöøéÜÐÖÀ‡ÏÀáÀèÈÝ!ÖÀ‡ÀÃÕÁÃÀzïÛüüüüüüüüžßääääääääääääääääääääääääáüüüÁääääääääääääääääääääääääääÈüüüüüüüüüüüüüüüüÚ?Þ‘ÜJz[üÔ$kˆÍÉz*Ëü‹ÖÕÍ!=ÍüÀñÓÀzÜÀ7•À/ÀÀ‡ÐÀaÀÁáÝÀnÒÖÀ‹ÀÃÕüÀùáãâÀ7pÀ^À7ÖÀ‰ÀÃÀáÀñÀ¸ÔïÛÀ›À†ÉÀñêÀôàÀnÌÛÀÇÀçÚü>vßÀ7ÛÀÏÀãÀóÀùÀ¸Î?È-e)üÚÃ>5"cÍÝÕüLÚüßÈÀ#ÕŒÎáLÚü-øBÏÐÕ6ÛÈ-9{ÃÁüLÚüàÖÈÖÕC2ÄÃˆâÛÀ‡ÀÆÏêÀ±ÝáÛÀÛÏÐÚüÀèÈãÜÐlÀŸÈÐÀãÞÝÀlÒß>ÖÉÀ‡ÀÄöÀñáÀzÑÛÖçÀ#Õü‹ßÞÝïÐÖèÉÀÑÚÓÝÄÛüþü|—Æüü?äääääääääääääääääääääääääÀƒääääääääääääääääääääääääääÕüüääääääääääääääääääääääääãÿäääääääääääääääääääääääääÈüüüüüüüüü‹ÒüGc
ÂüŸùüÀÃÀãÔ|ÜÀ‡ÀÆÀáÚÚÄÈÖÈ)cüÀçÀóÔþâÀÏÀæÀãÀùÞõÇÛÏeü4"À%Æ9ü‰áÜÈ	ÚŽìæÀÃÀÁÚ|ÓßÀÈü‰àßÏ	ÞŽæìÀçÀãÞþÍÜÀŸÏü'A4Å!ŒÁÆñ3IüÚÞþàÀÛÀÀáÀóÀñÞŒÁÆñÚüQÖÈü$À#ÕÔ|ÜÛÖÀ‡ÏÀáÚÀôæìÞ~YÖÏüŸìæ91BaüŸÀ%ÆÛÀÏÀçÀãÚþÀ6À/ÀŸÈüŸõÇÖÀ‡ÀÃÀÑÚ|ÜßÀÈüŸÄÈüŸùüŸÂüüüüüüüüüüüüüüüüüŸÂüŸùüŸÄÈÛÀÈ=üŸõÇÀÏˆÂüŸÀ%ÆüŸìæIÀÄÀáÀñÄÀz×À/ÅÀÏüŸæìÀçÀóÞþßÛÈÀÏüžÁÆñÁ4ÅüžÁÆñ+üŸæìüüŸìæø)2üŸÀ%ÆKÀùááÀŸÀÃÕüŸõÇÂÄòÁÚÀôãïÖÖïÏüŸÄÈüŸùþüŸÂ|1üüüüüüüüüüüüüüüüüŸÂüŸùüŸÄÈÖÈüŸõÇÛÏBüŸÀ%Æ9ü‰ÉääääääääääääääääääãÝäÀÇÌ!ÀCÀãÔÞÀìü ÃÀóÀqáàü¤Åü£ÐÕü£ÉÚüŠÛäääääääääääääääääääääÏ9Ã!ü¡ÛÀÏÀçÚÀùáÅü¡ÖÀ‡À£ÕÔÞéüüŒÃÂÉÈüßèÐÏüËËÎüŠÁÚÚÝÀ^ÆÌõÄüŠÁÀùÞãßÁæQÀ3ÌüŒÄÂÆÉJÀaÀ°üŠÁÚü
ÏÕüŠÉÚ~
ÏÕü‹ÅÄÈÆÍYÀcÀaÀ°üŠÉÀñÞãßÛÀÀÇÀÆÀ3ÌüŠÁÀèÀôÝ×ßÀŸÀÃèõÄüäääääá–ÉäääääääääääääääääääääääÈüü?äääääá<‘ÉäääääääääääääääääääääääÕüüŠÛäääääääääääääääääääääÏüüŠâäääääääääääääääääääääÚüüüüüüÿääääääáAÃÝÜÈŽÉääääääääääääääääääääääääÞü‹ÕþÀ6ÏüÿääääääáÁÀ°È<ŽÉääääääääääääääääääääääääÞüŠÉÌÏÂüŒÎÚüŒÍÝüŠÁÚÌÑüŠÁÚÄÈü‘ÇüãÀ6ÏüŠÂøÃÝÜÈüü¶ÖäÕüü
ääääääá–ÉääääääääääääääääääääáÉÀïÈü·ðüäääääá–ÉääääääääääääääääääääÚü·ÀTüü·Àªüü¶ÁÀEüüÍÛÀÇÏ£ÂÝÈüÍaÛÀÕü‘Ï¤ÉäÈüŠÁÀñÓÔÜ	çÉÕ¢ÉäÈüŠÁÀùáÎâÈÀgÚüŒÇKÏÏÅ£ãüŠÁÚÃ>JÈüŠÉÚ?ü‹Å,Ë)üŠÉÚlàÀÛÀÇÀçÚüŠÁÀèÈÝÜÛÖÀÀãÕüüüüüüüüüüüüüŠÁÚT
ÚüŠÉÞTJÞü‹ÄˆÄüŒÞÀ¼ÜÀ'ÑÐÏü‹ÁáàâßÀŒÖÕü‹Ó9!2ü‹ÍÞ>AüŒá?ü’Æ!üŠÉÀùÞ~ÀÕÉÞüŠÁÚÞéÜÅÖÀ‡ÏÁÚüüü·ãüü¶ÉäÈü¶ÉäÈüü¶ÂÝÈüü¶ÁÀEüü·ÀªüŠÂÄÏáü‹ÀÕà?È¦ÀTüäääääáiDÉääääääääääääääääääääÚü‹Î«ðü
ääääääáÁÀÁÕà’ÉääääääääääääääääääääáÉÀïÈüŠÁÀlü‹ÀÁÀìÌ¨ÖäÕü‹ÎÓËü‹ÍÓÊBü‹ÀÀì?ÈüääääääáÂÄÀÄéÉäääääääääääääääääääääüü
äÆ¯À'áüK°Êü[Ðääääá–ÉäääääääääääääääääääÁÈü3°ÊÎüÌ°ÁÀ˜ü
Í±Àdü
Í±ÀdüÌ°ÁÀ˜ü3°ÊÎü[Ðääääá–ÉäääääääääääääääääääÁÈüK°Êü
äÆÏi?À‡£À'áüŠÁÈi?ÖÈüääääääáÀ˜ÏŽÉäääääääääääääääääääääüŒÞÔÜÉÏü‹ÁáÎâùÕüŒÃ	ÐÈ1üq‰ÁÞÏ§ÍüÁÏŠáÕ§Òü‹Á
ÆÌÀÈüŠÁÀ±áÀlâßÀÀÕüŠÁÚÞÝÜÛÐÐÏüäääääääá–ÉäääääääääääääääääääääääääÈüääääääá–ÉääääääääääääääääääääääääÚü?·ÐÕüääääääá–ÉääääääääääääääääääääääääÚüüÁä·ÐáüÉääääääääá–Éäääääääääääääääääääääääääãüüüüüü‹Ä>ÖÐÉêÏüŽâÛÖÀ‡ÀÃÕüÍÌÀÌÀfÍüŠÁÕÞÀ¼üŠÉÀñáàÂÖü‹ÅÃÇàÛÈü‹ÁÞ<ÅüŒáü‹ö9ÉaÀÌÀfÍüŠÉÀñáàÜßÀÀ‡ÀÃÕüŠÁÀèÞØØÛÐÉêÏüüüÈüüüüüüüüü“ÇŠÇüÅzpY2rüŽÅwÅËü’ÁÈŠÍüŠÂÚÞÀ¼ÀnÛ9IÀ±ÄnÒÀƒÀáÀèüŠÁÀùáàÀnßêÏ	ÞnÌÀÇÀóÞüŠÁ:È‰ÇÅüŒÞÑüŒáÀŽ‹ÉÚüŠÁÈÁÈ;ÀÕÍüŠÁÀùÞßÁÏAáÀlÛÀÀÇÀóÚü‹ÚÞéÑÛÅÇÂÄÀôÝÑÛÀ£ÀãÞÎü“ÇŠÇüœÉÞüŠÂ‘ÁÚüüüüüüüüü“Ç‹ÆüÅzq+jüŽÅvbü’ÁÈ‹ÌüŠÂÚÞÀ¼ÀnÛ9	ÚÕÀ¼À=ÈÉÀÁÚÀôüŠÁÀùáàÀnßêÏIÞÏàâÏÐÀãÀùáüŠÁ:È"95ÄüŒÞÑJÚÈüŒáÀŽ
Þ~Ï
ÞüŠÁÈÁé|4øÚÌüŠÁÀùÞßÁÏIÞÀØ~ÀÛÈÐÀãÀùÞü‹ÚÞéÑÛÅÇÁÚÞéâÛÖÈÉÀÑÀñáÍü“Ç‹Æü—âáüŠÂŒÜøüüüüŠâäääääääääääääääääääääÚü‰Âü‰Áääääääääääääääääääääääáüüüüüüüüüüüüüüÿ’õD“I501ileaf_page_string1:2-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¾2³7¡,Õ²The´µxdcgµWindow¡þ”²The´µxdcgµwindowµisµbasedµonµOSF/Motif.µItµisµcomposedµofµseveral¡þÝparts:¡þa²S¡Xa²Aµmenuµbarµwithµfourµpull³downµmenus¡þÕ²S¡XÕ²AµNetlistµnameµtextµentryµarea¡þI²S¡XI²AnµOutputµdirectoryµtextµentryµarea¡þ¼²S¡X¼²AnµOutputµnameµtextµentryµarea¡þ0²S¡X0²AnµArchitectureµfileµnameµtextµentryµareaµ(availableµforµtextµentry¡XvonlyµwhenµyouµareµgeneratingµDSPµcodeµforµmultipleµprocessors)¡þê²S¡Xê²AµTargetµareaµthatµdisplaysµtheµchosenµtargetµorµdisplaysµaµlistµof¡X0theµcodeµtargetsµfromµwhichµtoµchoose¡þ¤²S¡X¤²AnµInteractiveµbuttonµthatµisµvisibleµonlyµforµtargetsµsupporting¡Xëinteractiveµmode¡þ^²S¡X^²AnµOptimizationsµareaµthatµcontainsµthreeµbuttonsµfromµwhichµto¡X¥selectµaµcodeµgenerationµstrategy¡þ²S¡X²Aµmessageµareaµthatµdisplaysµallµmessagesµfromµxdcg¡þªTheµxdcgµwindowµisµdescribedµinµdetailµinµtheµfollowingµsections.¡þ	LNote:²¡X	•²Doµnotµuseµtheµxdcgµwindowµmenuµtoµquitµxdcg.µInstead,µchoose¡X	ÞFile²>²Exitµtoµproperlyµterminateµtheµxdcgµsession.’D“I501ileaf_page_string1:2-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ù,ã¡Ä,ã	cã¡Ä	cã	cù¡Ä	cù,ùÆÃÁÊËÃ¡ÄþãÊãÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³8¡þÏ²
Menu´µBar¡þh²The´µmenuµbar²,µ²locatedµatµtheµtopµofµtheµxdcgµwindow,µprovidesµfour¡þ±pull³downµmenus.¡þ1²S¡X1²File¡þ¢²S¡X¢²Code¡þ²S¡X²Settings¡þ„²S¡X„²Help¡þEachµpull³downµmenuµconsistsµofµaµmenuµtitleµandµoneµorµmore¡þYmenuµitems.¡þ3²
Netlist´µName¡þÍ²After´µyouµhaveµusedµtheµCOSSAPµBDEµtoµcreateµaµnetlist,µxdcg¡þgeneratesµcodeµfromµtheµnetlist.µTheµcodeµconsistsµofµthreeµfiles,¡þ^eachµwithµtheµsameµbaseµnameµbutµaµdifferentµsuffix:¡þß²S¡Xß².asnµforµtheµassignmentµfile¡þP²S¡XP².v_entµforµtheµVHDLµentityµfile¡þÀ²S¡XÀ².v_arcµforµtheµVHDLµarchitectureµfile¡þ	MTheµNetlistµnameµtextµentryµfieldµisµwhereµyouµspecifyµtheµnameµof¡þ	–theµsystemµforµwhichµyouµareµcreatingµcode.¡þ
1.¡X
EnterµtheµnameµofµtheµVHDLµentityµfileµfromµtheµnetlist¡X
]description.¡X
Î³¡”
ÎTheµtextµentryµcanµincludeµpathµinformationµandµmustµuseµthe¡”.v_entµextension.’³D“I501ileaf_page_string1:2-9¥	öäÃËÁâÊË¡Ä,ü,æ¡Ä,æ	cæ¡Ä	cæ	cü¡Ä	cü,üÆÃÁÊËÃ¡ÄþæÊæÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¾2³9¡XÉ²³¡”ÉThe´µassignmentµfileµandµarchitectureµfileµmustµhaveµtheµsame¡”baseµnameµbutµuseµtheµ.asnµandµ.v_arcµextensions²,²¡”Vrespectively.µBothµmustµbeµinµtheµsameµdirectoryµasµtheµentity¡”file.¡X
³¡”
Youµcanµrenameµtheµbaseµnamesµofµtheµnetlistµdescription¡”Qfiles,µbutµallµthreeµmustµhaveµtheµsameµpathµandµbaseµname,¡”˜andµhaveµtheµprescribedµsuffixes.¡þ2.¡XToµviewµaµpop³upµlistµofµallµVHDLµentityµfiles,µpositionµtheµcursor¡XLoverµtheµtextµentryµarea,µthenµpressµandµholdµtheµrightµmouse¡X’button.¡XTheµlistµshowsµallµfilesµthatµhaveµtheµ.v_entµextensionµandµareµin¡XGtheµdirectoryµfromµwhichµyouµstartedµxdcg.µYouµmayµwantµtoµstart¡Xxdcgµfromµtheµcµdirectory,µbecauseµthatµisµtheµdirectoryµinµwhich¡XÔtheµCOSSAPµBDEµgeneratesµtheµnetlistµdescriptionµfiles.¡þO3.¡XOToµselectµanµentityµfile,µmoveµtheµcursorµoverµtheµdesiredµfile¡X•name,µthenµreleaseµtheµmouseµbutton.¡þYouµcanµalsoµuseµtheµfileµselectionµboxµtoµselectµtheµentityµfile,µas¡þfdescribedµinµtheµsectionµFileµMenu,"µlaterµinµthisµchapter.¡þ6²
Output´µDirectory¡þÊ²This´µtextµentryµfieldµcanµbeµusedµtoµspecifyµanµoutputµdirectoryµinto¡þ	whichµyouµwantµtoµoutputµtheµgeneratedµcode.µByµdefault,µthe¡þ	[generatedµcodeµwillµbeµcreatedµinµtheµdirectoryµinµwhichµyouµstarted¡þ	¤xdcg.¡þ
:Theµdirectoryµandµfileµnameµcreatedµbyµ²Exdcg²µareµasµfollows:¡þ
·Forµsingle³processorµcodeµgeneration:¡þ²current²/²output_dir²/²output_name².c’³D“I501ileaf_page_string1:2-10¥	öäÃËÁâÊË¡Ä,á,Ë¡Ä,Ë	cË¡Ä	cË	cá¡Ä	cá,áÆÃÁÊËÃ¡ÄþËÊËÆÃ¥	öäÃÁÊË¡Ä,	,ê¡Ä,ê	cê¡Ä	cê	c	¡Ä	c	,	ÆÃÁÊËÃ¡ÄþêÊêÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³10¡þ²For´µmultiprocessorµcodeµgeneration:¡þh²current²/²output_dir²/²output_name²_²processor².c¡þü²where¡’²¥	öä¡,•² ²!current²¡„’¥	öä¡”•²is´µtheµdirectoryµinµwhichµxdcgµwasµstarted.²¡4’¡Ú¥	öä¡,Ý²}output_dir²¡„Ú¥	öä¡”Ý²isµtheµnameµenteredµinµtheµOutputµdirectoryµtextµentry¡”field.²¡4Ú¡V¥	öä¡,Y²}output_name²¡„V¥	öä¡”Y²isµtheµnameµenteredµinµtheµOutputµnameµtextµentryµfield.²¡4V¡ž¥	öä¡,¡²}processor²¡„ž¥	öä¡”¡²isµtheµnameµofµtheµprocessorµforµtheµcode.²¡4ž¡þW²For´µexample,µifµyouµenterµmuxµasµtheµoutputµdirectoryµname,µthe¡þŸdirectoryµmuxµwillµbeµcreatedµinµtheµdirectoryµinµwhichµyouµstarted¡þèxdcg,µandµtheµgeneratedµcodeµfileµnameµinµthisµdirectoryµwillµbe¡þ1mux.cµ(assumingµsingle³processorµcodeµgeneration).¡þ²
Output´µName¡þ¾²You´µcanµspecifyµaµfileµnameµforµtheµoutputµgeneratedµcode.µBy¡þdefault,µtheµgeneratedµcodeµisµcreatedµinµtheµfileµcalled¡þOdcg_²netlist_name²µinµtheµdirectoryµinµwhichµyouµstartedµxdcg.¡þ	:²
Architecture´µFile¡þ	Ý²You´µcanµenterµanµarchitectureµfileµnameµonlyµwhenµgeneratingµcode¡þ
%forµmultiprocessors.¡þ
ÌYouµcanµenterµtheµfileµnameµdirectlyµorµselectµitµusingµtheµFile²>²Select¡þarchitectureµfileµmenuµitem.’ƒD“I501ileaf_page_string1:2-11¥	öäÃËÁâÊË¡Ä,´,ž¡Ä,ž	cž¡Ä	cž	c´¡Ä	c´,´ÆÃÁÊËÃ¡ÄþžÊžÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¤2³11¡þÉ²For´µinformationµonµcreatingµtheµArchitectureµfile,µseeµChapterµ7,¡þMultiprocessorµDSPµCodeµGeneration."¡þî²
Target¡þˆ²Theµtargetµareaµdisplaysµeitherµtheµchosenµtargetµboardµorµtheµtype¡þÑofµCµlanguageµcodeµtoµgenerateµ(forµexample,µANSIµC).µToµchooseµa¡þtarget,¡þ›1.¡X›Positionµtheµcursorµwithinµtheµtargetµdisplayµarea.¡þ2.¡XPressµandµholdµtheµrightµmouseµbutton.µAµpop³upµlistµofµthe¡XSsupportedµtargetsµandµtargetµboardsµappears.¡þÄ3.¡XÄMoveµtheµcursorµoverµtheµdesiredµtargetµandµreleaseµtheµmouse¡X
button.¡þÊAlternatively,µyouµcanµchooseµ²²Settings²>²Setµtargetµtoµselectµthe¡þtarget.¡þ°Eachµtargetµhasµthreeµassociatedµdefaultµfiles,µeachµwithµdifferent¡þùstrategyµsettings.µTheµdefaultµfilesµcorrespondµtoµtheµbuttonsµinµthe¡þA²²Optimizationsµareaµofµtheµxdcgµwindow.µEveryµtimeµyouµselectµaµnew¡þŠtarget,µifµyouµtakeµnoµfurtherµaction,µtheµdefaultµfileµforµtheµcurrently¡þÓselectedµbuttonµinµtheµ²²Optimizationsµareaµisµselected.¡þ	pToµuseµtheµcodeµgenerationµstrategiesµsettingsµforµtheµprevious¡þ	¹target,¡þ
:1.¡X
:Chooseµ²²Settings²>²Setµtarget.¡þ
«2.¡X
«Clickµtheµ²²Resetµbutton.’ƒRD“I501ileaf_page_string1:2-12¥	öäÃËÁâÊË¡Ä,‹,u¡Ä,u	cu¡Ä	cu	c‹¡Ä	c‹,‹ÆÃÁÊËÃ¡ÄþuÊuÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³12¡þÉ²For´µmoreµinformationµaboutµsettings,µseeµtheµsectionµSettings¡þMenu,"µlaterµinµthisµchapter.¡þÅ²
Interactive´µMode¡þG²Click´µtheµInteractiveµbuttonµtoµselectµinteractiveµmode.µInteractive¡þmodeµallowsµyouµtoµuseµtheµCOSSAPµDSPµinteractorµ(xdspint)µto¡þÙinteractµwithµaµDCG³generatedµDSPµprogramµafterµitµhasµbeen¡þ!downloadedµtoµaµprocessorµboard.¡þÏ²xdspintµTool¡þ.²Useµxdspintµtoµmonitorµtheµdataµofµsignalµbuffers,µviewµparameter¡þwvalues,µandµmodifyµparameterµvaluesµofµtheµrunningµDSPµprogram.¡þÀSeeµChapterµ4,µUsingµxdspint,"µforµdetailedµinformation.¡þn²SupportedµTargets¡þÌ²Theµ²²Interactiveµbuttonµisµvisibleµonlyµforµtargetsµsupporting¡þinteractiveµmode.µTheµDCGµsupportsµinteractiveµmodeµforµthe¡þ^COSSAPµPentekµtargets.µTheµhardware/softwareµconfigurationµfor¡þ¦theseµtargetsµconsistsµof¡þ²S¡X²PentekµMIX³VMEµBaseboard,µmodelµ4201¡þ}²S¡X}²PentekµDualµTMS320C40µMIXµModule,µmodelµ4257¡þâ²S¡Xâ²PentekµAD/DAµConverterµMIXµModule,µmodelµ4243¡þ	G²S¡X	G²PentekµSwiftNetµNetworkµSoftware,µVersionµ2.2¡þ	òForµmoreµinformationµregardingµtheseµPentekµproducts,µseeµthe¡þ
:PentekµProductµCatalog,µ1996.µPentekµalsoµproducesµaµCOSSAP¡þ
ƒsupportµpackageµforµaµwideµrangeµofµPentekµhardware.µForµdetailsµof¡þ
Ìtheµsupportµpackageµandµtheµhardwareµitµsupports,µreferµtoµthe¡þPentekµdocumentation.’RJD“I501ileaf_page_string1:2-13¥	öäÃËÁâÊË¡Ä,,ø¡Ä,ø	cø¡Ä	cø	c¡Ä	c,ÆÃÁÊËÃ¡ÄþøÊøÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¤2³13¡þÉ²Operation´µofµInteractiveµMode¡þF²Whenµyouµchooseµ²²Code²>²Download,µtheµdownloadµprocessµbegins,¡þŽandµaµDSPµserverµisµstartedµforµeachµDSP.µTheµDSPµserver¡þ×downloadsµtheµexecutablesµofµtheµgeneratedµDSPµprogram.µThe¡þ DSPµserverµinstallsµaµconnectionµwithµtheµrunningµDSPµprogram.¡þhThisµconnectionµisµbasedµonµtheµSwiftNetµsoftwareµ(seeµtheµPentek¡þ±SwiftNetµManuals,µVersionµ2.2).¡þvInµinteractiveµmode,µtheµDSPµprogramµmayµuseµtheµSwiftNet¡þ¿StandardµI/Oµfunctionsµ(seeµtheµ²SwiftNetµHostµSoftwareµUser's¡þGuide²).µNoteµthatµtheµSwiftNetµstandardµI/Oµfunctionsµcalledµfrom¡þPtheµDSPµprogramµresultµinµaµrequestµfromµtheµhostµworkstation.¡þ™WhenµaµSwiftNetµstandardµI/Oµfunctionµisµexecuted,µtheµDSP¡þáprogramµisµsuspendedµuntilµtheµhostµworkstationµhasµcarriedµoutµthe¡þ*request.¡þH²
Optimizations¡þ
²Note:²¡XR²TheµDCGµignoresµtheµoptimizationµoptionsµwhenµgenerating¡X›genericµCµcode.¡þ	`Useµtheµ²²Optimizationsµareaµtoµindicateµwhichµstrategyµshouldµapply¡þ	©toµtheµcodeµthatµyouµgenerate.µNormally,µyouµconsiderµboth¡þ	òimplementationµperformanceµmeasuresµ(throughputµandµmemory¡þ
:requirements)µtogether.µHowever,µinµsomeµapplications,µyouµmight¡þ
ƒneedµtoµoptimizeµoneµofµtheseµperformanceµmeasuresµatµthe¡þ
Ìexpenseµofµtheµother,µforµexample,µforµminimalµmemoryµconsumption¡þorµmaximumµthroughput.’JžD“I501ileaf_page_string1:2-14¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³14¡þÉ²If´µyouµclickµtheµappropriateµradioµbutton,µtheµDCGµgeneratesµcode¡þfromµaµselectedµcorrespondingµfileµthatµhasµsettingsµforµtheµcode¡þZgenerationµstrategies.µYouµcanµuseµtheµdefaultµ(target³specific)¡þ£settingsµorµsettingsµthatµyouµestablishedµforµyourµdesignµgoal.µYou¡þìcanµselectµonlyµoneµofµtheµbuttons:¡þp²S¡Xp²Selectµtheµ²²Codeµsizeµbuttonµtoµgenerateµcodeµrequiringµminimal¡X·memory.¡þ*²S¡X*²Selectµtheµ²²Throughputµbuttonµtoµgenerateµcodeµforµmaximum¡Xqthroughput.¡þå²S¡Xå²Selectµtheµ²²Customµbuttonµforµhighµthroughputµandµlowµmemory¡X+requirementsµinµtheµdesignµspace.¡þ½Whenµyouµstartµxdcg,µtheµ²²Customµoptimizationµbuttonµisµselectedµby¡þdefault.µIfµyouµselectµaµnewµtarget,µtheµoptimizationsµbuttonµthatµyou¡þNselectedµforµtheµpreviousµtargetµisµusedµasµtheµdefault.µEvenµifµthe¡þ—selectedµbuttonµisµtheµsame,µaµdifferentµfileµmightµactuallyµbeµused,¡þßbecauseµtheµsettingsµareµtarget³specific.¡þ‚Toµexamineµandµeditµsettingsµinµtheµfiles,µchooseµ²²Settings²>²Set¡þËoptions.’žAD“I501ileaf_page_string1:2-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¤2³15¡þÏ²
Message´µArea¡þn²The´µxdcgµwindowµmessageµareaµdisplaysµallµmessagesµfromµthe¡þ¶DCG.µIfµaµmessageµdoesµnotµfitµinµthisµwindow,µuseµtheµresize¡þÿbordersµtoµenlargeµtheµwindow.µUseµtheµscrollµbarsµtoµscrollµthrough¡þHtheµmessages.¡þêToµviewµandµselectµfromµaµpop³upµlistµofµwindowµmenus,µpressµand¡þ3holdµtheµrightµmouseµbuttonµinµtheµmessageµwindow.¡þÖYouµcanµuseµanyµofµfourµmenuµtopicsµtoµaccessµhighlightedµtextµfrom¡þtheµmessageµwindow.µToµhighlightµaµcharacterµsequence,µposition¡þgtheµmouseµoverµtheµfirstµcharacter,µthenµpress,µhold,µandµdragµtoµthe¡þ°lastµcharacter.¡þRNote:²¡X›²IfµyouµcopyµtextµintoµanµOSF/Motif³basedµclipboard,µyouµcan¡XäpasteµtheµtextµonlyµintoµanotherµOSF/Motifµtextµwindow.µIfµyou¡X,areµnotµrunningµanµOSF/Motifµwindowµmanager,µuseµ²²SaveµAsµto¡Xusaveµtheµselectedµtextµtoµaµfile.’AlD“I501ileaf_page_string1:2-16¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‡,q¡Ä,q	cq¡Ä	cq	c‡¡Ä	c‡,‡ÆÃÁÊËÃ¡ÄþqÊqÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³16¡,Õ²The´µxdcgµMenus¡þ”²The´µfollowingµsectionsµdescribeµinµdetailµtheµfunctionµofµeachµmenu¡þÝitemµinµxdcg.¡þÁ²
File´µMenu¡þ`²Use´µtheµ²²Fileµpull³downµmenuµinµxdcgµtoµselectµinputµfilesµforµthe¡þ©DCG.µThisµmenuµconsistsµofµtheµfollowingµmenuµitems:¡þ-²S¡X-²Selectµmodelµfile¡þ¡²S¡X¡²Selectµarchitectureµfile¡þ²S¡X²Exit¡þØTheseµmenuµitemsµareµdescribedµonµtheµfollowingµpages.¡þ¼²
Select´µModelµFile¡þ[²When´µyouµselectµthisµitem,µtheµSelectµModelµFileµdialogµbox,µshown¡þ¤inµFigure 2³2,µopens.¡þ	GTheµfileµnameµthatµyouµenterµinµtheµselectionµfieldµisµusedµasµinputµto¡þ	theµDCG.µAµfileµnameµextensionµisµnotµappendedµtoµtheµfileµnameµin¡þ	Øtheµselectionµfield;µincludeµtheµ.v_entµextensionµwhenµyouµenterµthe¡þ
!name.’lQD“I501ileaf_page_string1:2-17¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³17¡,É²Figure 2³2³File´µSelectionµWindow¥	öäÒÓÐ³<²œg­h®Ÿû­ÈüâÏ©ÉãüäääääääääääääääääääääääääääääääääääääääääÞüüÖÏ©ÉÚüÐÕ©ÐÕü‘Ì~ÊÁÀÌÎü×ÏüÀ-_üÉ×ðÀôÏÀÙÀ‡À‡ÐÈÃÀÌÉÏüÔŽÄÀ-ÁÀiÀlÏÀ7ÀKÀKÀÇÃÏùåŽÑüÓŽÀ&c"–ÒüÀËqMÈüÃÖxMÏ
ÕüÍÁ!Ä93üÀ-À/ÁÀyÀzÏÀKÀÏÕü××ÌÚÀñÏÀÌÀÇÀ†ÀÇÀ†ÉËÀcÏüüüüüüüüú=UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\ÿú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃÕyüÃÕÈÈÇüÃCüÃ
ÈÁÀ¸ÝÀNüÃIê	À¸ãâüÃIÈ,üÃ|ÁüÃ~üÃüÃJÀaÀ°ÝáüÃÉÀáÚÓÝÆüÃüÃüÃüÃüÃüÃüÃ?äääääääääääääääääääääääääääääääääääääääáüÃ©ÃüÃäääääääääääääääääääääääääääääääääääääääáüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ,Á)%Ã.ŠËüÃ4ÉˆÉeoYGZüÃt¤Ëú?ÿÏî‡ïûßhx;cûÞðx;ßƒ¡ápt?¾ï»ÿßø:ÿÿûÿÜÿú;ÿÏî{ï÷ßg·Üíîû÷Þï·Üï¾ó}žÞï³ß}÷ß×ÿß÷Ùïÿÿ÷ÿÜÿüÃCÄ	3;Á"ÂÆ"Ö1È\üÃeÏÅøÂÌÀ‡ÏÅÏüÈÁÈqÀÖÏ\üÃmÕÉÚáiÀÇÕÁÈ~?ÖÏÉzÀlÕ\üÃÄJÕ,$ÈÆÜ$DÄ%ZüÃxlÎÀ;ÀÀÏÏÉÀñÞqßÀŸÀÏÏÉÁÞãßßÛÈÊÉÀùÈÑÏøZú;ÿÏÿÿÿÿÿÿÿÿý÷ÿÿÿÿÿÿÿÿÿÿÿ¿ßÿÿÿÿÿÿ÷ÿÀ?ÿÿÿÿÿ÷ÿÜÿüÃ Ä?Ï]üÃŠÉÞŒßÈËüÃŠÁÚ‹ÇÛËüÃ©ËüÃ©ËüÃ©ËüÃ©Ëú;ÿÅUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUWÿÜÿüÃäääääääääääääääääääääääääääääääääääääääáú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃÏ–ßÈÉüÃÕÈ+
ŽÀ/éÂüÃCÂüÃ
éÔÞÝÀnÛÀÀƒÉÀáÚŒÊIÀáÚüÃ
ÉÀùáãÀnßÀŸÀÂÐÀóÞ‹ÑÃÀóÞüÃD#‹Ñ$üÃ$Þ<ÉÀãÚŽÉÀãÚüÃüMÀñÞŽÉÀñÞüÃÁÂüÃÀãÎÁÞãÛßÈÊÀÇÀãÞŒÀÀ†ÀÇÀãÞüÃÀÃÀáøÝÑÛÄÐÀÃÀáÚ‹ÅÖÀ‡ÀÃÀáÚüÃüÃüÃüÃüÃÿäääääääääääääääääääÀ‡äÚÉääääääääääääääÚäãüÃ§ÅüÃ?ääääääääääääääääääãÈ)ÿäääääääääääääÚüÃ”ÁÈÄÍÍÁÊüÃ”ÁÈÌÍÍÉÊüÃääääääääääääääääääÀñÈÓÍÍÐÊüÃ”ÁÈÍÍÍÊÊüÃˆÈÇ:	ÈñÍàÞÅâßÈnÃÀ†üÃÈNz	ÈÎÍ
ÀñáÆàß6ÍËÊüÃ”ÁÈÀâÍJÌqÉÁÈnÒÀFüÃIÀáÚÞÝÀ^ÉÖÐÀÅÀáÀèÞÀ¼ÊÛÁÈ	ÈÏÍIÕÁ9ÊÉ!ÆÁÀñÙÀÜÍÌÊüÃÀóÀùáàßÊÛÀÀãÀóÀùáàËßÀƒ
ÈãÍÚY
ùKÞáÀÜÍÛÀÆüÃ#Ã1Bò;B
êÈÍ*aÐÈËÎBiÍÊüÃJÀñÞÝYÏøaQ
êiÕpÚjÆÊüÃ
ÞááaÕÉÚáiY
êÀUÔIÚàTÏÁÞjÀ*À®üÃÁÆˆÂÉÕDÁ	êäÚÉÀÈ9ÆÂÍßãú?ÿ;áðøz^ GÅáðø‚@€ùüüƒÁàøþÿþûãï/ãÿÜÿú;ÿ8@xÿ/üÿÿÿÿÿÿÿýÿðÿÿÿßåÿÜÿüÃ’Á	êÈÍˆÂÚkÍÊüÃ‹ÉÞêÈÍÍÍÊüÃääääÀ¿äääÀûãÖäääääääÀñêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃˆÈÇ:	êÈÍàÞÅÜÁoÍÊüÃÈNz	êÈÍ
ÀñáÆâÂ6ÍÍÊüÃ”ÁêÈÍJÌqQoÍÊüÃIÀáÚÞÝÀ^ÉÖÐÀÅÀáÀèÞÀ¼ÊÛÁÈ	êÈÍIÕÁ9Y!ÆÁÀñÙÀÜÍÍÊüÃÀóÀùáàßÊÛÀÀãÀóÀùáàËßÀƒ
êÈÍÚYÌKÞáÀÜÍÍÊüÃ#Ã1Bò;B
êÈÍ*aÍYÎBiÍÊüÃJÀñÞÝYÏøaQ
êÈÍÕpÈ
ÚjÍÊüÃ
ÞááaÕÉÚáiY
êÈÍIÚà>ÈÊÏÁÞjÍÊüÃÁÆˆÂÉÕDÁêÈÍÉÀÈÍÍÊú?ÿ<…¡ßð¸:}¿àïü~>ùüüƒÁþøþÿþûãï/ãÿÜÿú;ÿ?ÿÿÿÿ¿ÿÿÿûý÷ÿÿÿÿÿþÿxÿ/üÿÿÿÿÿÿÿýÿðÿÿÿßåÿÜÿüÃ’ÁêÈÍˆÂÚkÍÊüÃ‹ÉÞêÈÍÍÍÊüÃ>ÁÚêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêÈÍÍÍÊüÃ”ÁêäÍÍßÀæüÃ”ÁêÈÍÍÍÊüÃ”ÁêiÍÆÊüÃ”ÁêÀUÔÍÀ*À®üÃ”ÁêäÔÍßÀîüÃ”ÁÈÀÔÍÍÀÀ†üÃ”ÁÈÏÍÍÌÊüÃ”ÁÈÀâÍÍÒÀFüÃ”ÁÈÎÍÍËÊüÃ”ÁÈñÍÍÃÀ†üÃ”ÁÈÍÍÍÊÊüÃ”ÁÈÓÍÍÐÊüÃ”ÁÈÅÍÍÂÊüÃ”ÁÈiÍQú;ÿUUUUUUUUUUUUUUUUUUUxª¯üUUUUUUUUUUUUUU_UÿÜÿüÃ?äääääääääääääääääääêäÚÿäääääääääääääÚßãú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃÿäääääääääääääääääääÈJääääääääääääääÚüÃ§ÅüÃ"ˆùÀUÀUÀUÀUÀUÀUÀUìA4ÀUÀUÀTÈÍüÃXˆÐäääääääÀÍÁÈÎääÀýÏÍüÃðˆÐÀUÀUÀUÀUÀUÀUÀUÖêÈKÏÀUÀUÀYÀèÍüÃÏˆÊÀÑÈˆÊ
ÀÜÍüÃÈˆÊ_À¹È:ˆÊ
ÀŽÀ°üÃ‰Ê_ÀÈpˆÊ
èÀ°üÃ‰Ê_À1ÈXˆÊ
À†ÍüÃ	ÈˆÊ_ÀÁÈSˆÊ
À˜ÍüÃrˆÊÁÈÈW
ÕÍüÃ‹ÐäääääääçÁÈŒÐääÀñÈÍüÃ‹Ê'ÁÈŒÊ
iú?ÿUUUUUUUUUUUUUUUUUUUÿÿüUUUUUUUUUUUUUU_ÿÿÿÜÿüÃ?äääääääääääääääääääÈÿäääääääääääääÚú?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃÏyüÃÕA*ÃüÃ2üÃJÕøÝÀnËÖÀ‹ÏüÃÀÇÚÁáãÀnÄÛÀÇÕüÃÕüÃJÕøüÃJÚüüÃ!ÁüÃÀçÀáÀ±ÞãÛÀÛÏüÃÀÃÀáÚÞÝÑÛÖçÆüÃüÃüÃüÃüÃüÃüÃ?äääääääääääääääääääääääääääääääääääääääáüÃ©ÃüÃäääääääääääääääääääääääääääääääääääääääáüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ©ËüÃ:Ã5?ÆF1àÞÅÜÁ_üÃ[uÈqÁÀñáÆâÂ6ËüÃœÉÌqQ_ú;ÿÏ¿ï{Áàì|ƒÁÐþø\ƒ¡ýð|÷ûï¾öÿ÷ßþ‡ûÿÜÿú?ÿÏ¿ß{¾ßs¾ûíöû}þÏ}÷›ìö÷}žûï¾ûí÷÷ïÁîÿ÷ßýö{ß÷ÿÜÿüÃ*Â):ö3:)aÍYÎBYüÃs~ÛC
ÞáÜQÕ|YIÐÕpÈ
ÚZüÃ{?ÛÈÊüààYIÚÁÞàaQÉÚà>ÈÊÏÁÞZüÃ=,ÁAÂÅDÁÁÚ<ÃÉÀÈËú;ÿÏŽÿ…Áà÷÷üƒÂÐïø\ƒ¾ßðwüƒÁþøþÿþûãûÿÜÿú?ÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿýþûÿÿÿÿÿÿÿÿÿÿÿÿýÿðÿÿÿwÿÜÿüÃ¢ÂÚ
ÀLüÃ”Áá’ÂÀ¬üÃÆø’ùÀ\üÃ¨÷À,üÃ¨ËÒüÃ©ËüÃ©Ëú?ÿÅUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUWÿÜÿüÃäääääääääääääääääääääääääääääääääääääääáú?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÐäääääääääääääääääääääääääääääääääääääääääääÏú:ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªœÿú?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃú?ÿÿUUUUUUUUÿÕUUUUUUU_ÿõUUUUUUUWÿýUUUUUUUUÿÿÜÿüÃÿäääääääÏ?äääääääÚäääääääáIääääääääú?ÿÿÿÿÿÿÿÿÿ?ÿßÿÿÿÿÿÿÿÏÿ÷ÿÿÿÿÿÿÿóÿýÿÿÿÿÿÿÿüÿÿÜÿüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃzÅÇlßÈÉ^ÐÏdJ	ÃaüÃz?ÈÏlÀ/éÂÁ]ÖÕ,J,üÃzÈl_1OüÃzKmQQÀáÀñÓZIÀâÚÞÝK|/üÃzmÑÃQÀãÀùáZIÀñÀùáãKøãÈüÃz#mÑ=Z
Lø*üÃzSmÚÃZIÕ|K|üÃzKmÞ[Õ~K~üÃzÈl,\1ÆL-üÃz?ÈÏlÀ†ÀÁÀóÚ[ÖÀçÕÁááÀ6JüÀ6ÛÈüÃzÅÇlÅÖÀ‡ÏÀáÚÈZÐÀÃÀÒÄÞÝÜJ	ÃÝÜÖüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰É5üÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃz‰Í‰Ë‰ÉüÃÿäääääää?äääääääÏäääääääÚIäääääääáüÃB‰Æ‰Ä‰ÂüÃÿäääääääÏ?äääääääÚäääääääáIääääääääüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüØ«ÒüÀt«ÑüÃüÃüÃüÐäääääääääääääääääääääääääääääääääääääääääääÏüäääääääääääääääääääääääääääääääääääääääääÞüÖÏ©ÉÚüüäääääääääääääääääääääääääääääääääääääääääÞüâÏ©Éãÿ¡þÂ²Youµcanµuseµtheµ²²Filterµtextµentryµfield,µtheµlistµofµdirectories,µtheµlist¡þ	ofµfiles,µandµtheµ²²Filterµbuttonµtoµselectµtheµfileµname.¡þ	³²S¡X	³²Useµtheµ²²Filterµtextµentryµfieldµtoµviewµandµeditµaµdirectoryµmask¡X	ùthatµdeterminesµwhichµfilesµareµlisted.¡X
‡Ifµyouµeditµtheµcontentsµofµtheµ²²Filterµtextµentryµfield,µconfirmµthe¡X
ÎcontentsµbyµeitherµpressingµtheµReturnµkeyµwhileµtheµcursorµisµin¡Xthisµfieldµorµclickingµtheµ²²Filterµbutton.’QQD“I501ileaf_page_string1:2-18¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³18¡þÉ²²S¡XÉ²Use´µtheµlistµofµdirectoriesµtoµtraverseµthroughµdirectories.µToµdo¡Xthis,µeitherµdouble³clickµaµdirectoryµinµtheµlistµorµpressµReturn¡XVwhileµtheµcursorµisµonµaµhighlightedµdirectory.µTheµlistµofµfilesµis¡Xthenµupdatedµtoµshowµtheµfilteredµcontentsµofµtheµselected¡Xãdirectory.¡þW²S¡XW²Toµcopyµtheµnameµintoµtheµselectionµarea,µclickµaµfileµnameµfrom¡Xžtheµlistµofµfilteredµfiles.¡þ²S¡X²Toµconfirmµtheµselectedµfileµname,µdouble³clickµtheµname.¡þ…²S¡X…²Toµconfirmµaµselectionµappearingµinµtheµselectionµarea,µeither¡XËpressµReturnµwhileµtheµcursorµisµinµthisµfieldµorµclickµ²²OK.¡þ]ClickµCancelµtoµcloseµtheµSelectµModelµFileµdialogµbox.¡þA²
Select´µArchitectureµFile¡þà²This´µmenuµitemµselectsµtheµarchitectureµfileµforµmultiprocessorµDSP¡þ)codeµgeneration.µItµisµenabledµonlyµwhenµaµmultiprocessorµDSP¡þqtargetµisµselected.µForµdetailedµinformationµregardingµthe¡þºarchitectureµfile,µseeµtheµArchitectureµFile"µsectionµinµChapterµ7.¡þ]Forµinstructionsµonµhowµtoµselectµtheµfileµafterµchoosingµthisµmenu¡þ¥item,µseeµtheµsectionµSelectµmodelµfileµMenuµItem"µearlierµinµthis¡þîchapter.¡þ	Ò²
Exit´µMenuµItem¡þ
q²Use´µtheµ²²Exitµmenuµitemµtoµexitµxdcg.’QgD“I501ileaf_page_string1:2-19¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¤2³19¡þÏ²
Code´µMenu¡þn²Use´µtheµ²²Codeµpull³downµmenuµinµxdcgµtoµcreate,µcompile,µedit,µand¡þ¶loadµDSPµcodeµfiles.µThisµmenuµconsistsµofµtheµfollowingµmenu¡þÿitems:¡þ„²S¡X„²Create¡þ÷²S¡X÷²Compile¡þk²S¡Xk²Download¡þÞ²S¡XÞ²Edit¡þpTheseµmenuµitemsµareµdescribedµonµtheµfollowingµpages.¡þT²
Create¡þó²UseµtheµCreateµmenuµitemµtoµcreateµoptimizedµcodeµforµtheµsystem¡þ<definedµbyµtheµVHDLµentityµfileµspecifiedµinµtheµmodelµfileµname¡þ…area.µTheµgeneratedµcodeµdependsµonµtheµtargetµprocessor¡þÍspecifiedµinµtheµtargetµareaµofµtheµxdcgµwindow.µTheµattributesµofµthe¡þgeneratedµcodeµareµinfluencedµbyµtheµsetµofµcodeµgeneration¡þ_strategiesµthatµyouµselectµusingµtheµ²Setµoptions²µpanelµ(seeµthe¡þ§sectionµSettingsµMenu"µlaterµinµthisµchapter).¡þ	JTheµgeneratedµcodeµisµwrittenµintoµtheµdirectoryµthatµyouµspecifyµin¡þ	“theµtextµwindowµofµtheµOutputµdirectoryµarea.µYouµcanµgenerate¡þ	Ûcodeµonlyµifµyouµhaveµspecifiedµtheµmodelµfileµname,µoutputµdirectory¡þ
$name,µandµtarget.µForµmultiprocessorµDSPµcodeµgeneration,µyou¡þ
mmustµalsoµspecifyµtheµarchitectureµandµattributionµfileµnames.’g=D“I501ileaf_page_string1:2-20¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³20¡þÏ²
Compile¡þn²Use´µthisµmenuµitemµtoµcompile,µassemble,µandµlinkµtheµgenerated¡þ¶codeµforµcreatingµtheµexecutableµDSPµprograms.µThisµmenuµitemµis¡þÿonlyµapplicableµforµtheµmainµprogramµtargets.¡þ¢Anyµobjectµcodeµcontainedµinµtheµdirectoryµ$COSSAP_USER/d/µwill¡þêbeµautomaticallyµlinkedµwithµtheµmodelµcompilation.¡þÏ²
Download¡þn²Useµthisµmenuµitemµtoµdownloadµtheµexecutableµprogramsµontoµthe¡þ¶selectedµtargetµboard.µThisµmenuµitemµisµonlyµapplicableµforµthe¡þÿmainµprogramµtargets.¡þã²
Edit¡þ‚²Useµthisµmenuµitemµtoµstartµanµeditorµandµdisplayµtheµoutputµfile.µThe¡þËdefaultµeditorµisµviµandµisµdefinedµas:¡þM²xterm³-fn³9x15³-e³vi¡þß²Toµdefineµanotherµeditor,µsetµtheµCOSSAP_EDITORµenvironment¡þ	'variableµbeforeµyouµstartµxdcg.µForµexample,µtoµdefineµxeditµasµthe¡þ	peditorµinµaµcshµenvironment,µenterµtheµfollowingµcommandsµatµthe¡þ	¸operatingµsystemµprompt:¡þ
:²%´µ²setenv³COSSAP_EDITOR³xedit¡þ
n²%µ²xdcg’=¯D“I501ileaf_page_string1:2-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡‚Á²The´µxdcgµUtility¡Ô¤ÿ¤2³21¡þÏ²
Settings´µMenu¡þJ²Use´µtheµ²²Settingsµmenuµinµxdcgµtoµselectµaµcodeµgenerationµstrategy¡þ“andµaµtargetµboardµforµtheµcode.µThisµmenuµconsistsµofµtheµfollowing¡þÜmenuµitems:¡þI²S¡XI²Setµtarget¡þ«²S¡X«²Setµoptions¡þ²S¡X²Extras¡þTheseµmenuµitemsµareµdescribedµonµtheµfollowingµpages.¡þ*²
Set´µTarget¡þ¥²Use´µthisµmenuµitemµtoµselectµaµtargetµprocessor.µWhenµyouµchoose¡þîthisµmenuµitem,µaµnewµwindowµappearsµthatµlistsµtheµtargetµboards¡þ7thatµtheµDCGµsupports.µToµselectµaµtarget¡þ¤1.¡X¤Positionµtheµcursorµoverµtheµdesiredµtargetµname.¡þ2.¡XClickµtheµtargetµnameµandµthenµclickµOK.¡XhAlternatively,µyouµcanµdouble³clickµtheµtargetµnameµtoµselectµit.¡þåYouµcanµalsoµselectµtheµtargetµfromµtheµtargetµareaµ(seeµtheµsection¡þ-Target"µearlierµinµthisµchapter).¡þÖ²
Set´µOptions¡þ	R²Use´µthisµmenuµitemµtoµselectµaµsetµofµcodeµgenerationµstrategies.¡þ	›Whenµyouµchooseµthisµmenuµitem,µtheµSetµOptionsµdialogµboxµopens¡þ	ä(Figure 2³3).µThisµwindowµisµdividedµintoµtheµfollowing:¡þ
Q²S¡X
Q²Fileµmenu¡þ
²²S¡X
²²CodeµGenerationµStrategiesµarea,µwithµcheckµbuttons¡þ²S¡X²CodeµGenerationµStrategiesµarea,µwithµoptionµmenus’¯åD“I501ileaf_page_string1:2-22¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³22¡,É²Figure 2³3³Set´µOptionsµDialogµBox¡þ‰²¥	öäÒÓÐ÷/ó™ôšµû¾ÄüâÏ»ßÕüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüÖÏ»ßüÐÕ»àü ÌüšÖ!üšÀÈÅÌüšÁÀÀ&ÐÀ†ÀÉÀ˜ÚÀØÝüÔ™ÃÀÀ¦ÀïÀ©êÀhÀ4À¼šÕüÓ™À3Æ™ÁÏüšËÀ†˜üšÂÐÈdüšÌA.üšÀÀ—À–ÀïÀ¥êÀhôüšÖÖÑÐêÀÃÀ˜ÚÀÌÞüüžÊüüüüüüú=UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUÏÿú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÏÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃªÀªÀªÀªÀªÀªÀªÀ¨üÃÁäääääääÚüÃÁÀÕÀUÀUÀUÀUÀUÀUÇüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈŒÛÖÈ11A{ÃÂCþÒ:ÆpbüÃÁÈŒßÀŸÏ99~ÁÈCËÂ:üÜzø*ÄDüÃÁÈÉÞiŠÇyyIŽÇQÀcüÃÁÈÂÞÆÆ^ÈAQÉÖÀ‹ÀÅÕaÙÜ×êÈÉÕÏÞËÁÀ‡ÀƒÕÄÞè7ÀÅÀãÔüÃÁÈ2ˆßÈÉ
ÊÖÀÇÀãÚiáâßÀƒÚêáô?ÀƒÖÀÇÚü7ÀãÀóÔüÃÁÈr>6ÏÊÂÁ,×B9ÉÎüÃÁÈàÇŠÉÀÐ\ÖÈsSÕ?ÊIÀãÎÞüÃÁÈàÐÀÐdÛÈ{?ËIÚÀŒIÚÁÞüÃÁÈ>;ÆÅ*;)Ç„ÂÁÜÈÀcÆ:"‚!ú?ÿþÿßï¿ÿçÿÇ¾àðÿßÇÁßð´:ÿ…Áàïø<ƒãàïø\…Áøøø:ÿÿÿÿýÏÿüÃÁÈˆåëðïÛÖÀŸÕÆåÞðÜÆÖÀCÀÁÀáÀñzÜßæÐÀÃÀáÚÞÝÒÛÅÐÀ£ÕÈÀôÀzÜÐùÐÀÁÕÔüÃÁÈØÀlà;ÆÅÕ9)ÂüÃÁÈÁøÝÜ™ßÈüÃÁÈ—ÄÃ”ÃüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁÈüÃÁäääääääÕüÃÁÈüÃÿääääääÞüÃüÃüÃ?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏú;ÿÕUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUýÏÿú?ÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ýÏÿüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)ÁäÕ™ßá›ÇüÃ)2	=Ã8ÒÃßÃÉÆ+:üÃ)r‹ÝÜËYÀ/À†Â–ÇüÃ)ršË›ÇüÃ)rÁÚÙÝÀNÛÖ	ÀâÅÃÂÜÀ'ÖÈ‰ËaIIÀáÀñÙÛÀÀ‡ÏÁÀñÃÝÀNÖÖÀ‡ÀÃÏ:üÃ)rÉÞáàâßÀŸÈÉÚßÀŸÏ‰ËÈÀóÞá}ßÀŸÀÏÕÉÞþâÛÀŸÀÇÀçÕ:üÃ)r!È)BÂ	À°ÀØ!9‰ËÈDQÀŒ)Å3:üÃ)rÉÚ|ÁÛÀ°ÀØÜŸÈ‰ËŠËÛ9|ÁÀ‡Ï;üÃ)rÁÞüÈ?Ï‰ËaIfÛÈØàÀÏÏ;üÃ)rÂCÂ.ŠËˆÈiŒÇÆ:üÃ)UÎÉÞü?ÛÈÉÀóÞ~Ïˆ÷À¬YÀ/À†ÊÀÇÀóÞá_ßÕÉÞÔáÀÀÇÕ:üÃ)ÿÕÁÀñÃÀzÆÛÖÇùÀáÀèÇÆÜÅÖÈˆÛáßÃÐÀÃÀáÚÙÛÄÐÏÁÚÆÝÆÆÀÀ‡À£ÀÐ:üÃ)ÁÀUÇ™À*À¨›ÇüÃ)¹ÇüÃ)¥Á“ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)œÀÀT›ÇüÃ)œßÞßÃÉÆ+:üÃ)œÀ:åYÛÀ†Â–ÇüÃ)œÍœÇüÃ)œÍbIIÀáÀñÙÛÀÀ‡ÏÁÀñÃÝÀNÖÖÀ‡ÀÃÏ:üÃ)œÍÈÀóÞá}ßÀŸÀÏÕÉÞþâÛÀŸÀÇÀçÕ:üÃ)œÍEQÀŒ)Å3:üÃ)œÍ‹ËÛ9|ÁÀ‡Ï;üÃ)œÍbIfÛÈØàÀÏÏ;üÃ)œÍ‰ÈiŒÇÆ:üÃ)œßÚYQÊÀÇÀóÞá_ßÕÉÞÔáÀÀÇÕ:üÃ)œÆÆÃÐÀÃÀáÚÙÛÄÐÏÁÚÆÝÆÆÀÀ‡À£ÀÐ:üÃ)œßá›ÇüÃ)¹ÇüÃ)¥Á“ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃäääääääääääääääääääääääääääääääääääääääääääääääääääääääääÇú;ÿÕUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUýÏÿú?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÏÿüÃüÃüÃ?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏú?ÿÕUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUýÏÿú;ÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ýÏÿüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)œÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀU;üÃ)œÛäääääääääääääääääääääääääÈ:üÃ)œÀÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ«;üÃ)œÌœÇüÃ)œÌœÇüÃ)œÌœÇüÃ)CBÉ”Ì4?ÈŠÇüÃ)A$
ŠÌ
*Àª<üÃ)‰È’Ìˆßá<üÃ)ÁÚÞØÜ×ÅÈÁéÚÀô>À7ÀÀ‡ÀÆÀáÚÀôèfÊÐÀÄÀáÀñÓÝ×ËÖÀ‡Ï5ë<üÃ)ÉÀùáàâß
ÁÀùáÀ7ÛÀÇÀæÀãÀùágèÖÀçÀñÀùáãßÄÛÀÇÕm=üÃ)!ÃÇ	ŒÌ,
:ÂÆ:n=üÃ)ÉÚ>ˆàGÏÁÚˆÌÏöÚÃÏm=üÃ)ÁÞ?Þ?ÏÁÀùÞgÕÉÚÏ?Þ<üÃ)Â
Ú9A9ÅÁÚÄf‰Å;Çm=üÃ)ÉÀùá~ßÛÀÆÀÃÎÁÞÖÈÖÀÁÀóÀñÞÞfÀÏÉÚþÛÀÏÀÃÎã<üÃ)ÁÚÞéÜ×ÀÀGÀÃÀâøá>ÐÄÐåÀáÀñáÔf4ÀÀ‡ÀÂÁÀèÈÝïÛÖÀ‡À£ÕŠÇüÃ)•ÈfœÇüÃ)ŠÁáááfœÇüÃ)‹ÞˆÞÙfœÇüÃ)œÌœÇüÃ)œÛääääääääääääääääääääääääã;üÃ)œÅœÇüÃ)œÛäääääääääääääääääääääääääÈ:üÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¨ÁääääääääääääääÈ9üÃ)·È9üÃ)©âäääääääääääääÈ9üÃ)œÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUëŽÁÈ9üÃ)œÛääääääääääÕŽÁÈ9üÃ)œÀÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈŽÁÈ9üÃ)œÌ™ÁÈ9üÃ)œÌ™ÁÈ9üÃ)œÌ™ÁÈ9üÃ)r9Qy:ŽÌÉÈ‹ÃÒŠÁÈ9üÃ):CÌÐÏBÀªÈ#ÜŠÁÈ9üÃ)ŽÃÌäÏcÀcŠÁÈ9üÃ)ÁÀè|×Û
ÕøÝÁËÀÀ‡åŠÌGÀÃÀãÔÞÀœÐÀUÈk‹ÁÈ9üÃ)ÉÞþßÛÈIÚÁáãÐÄÖÀÏÕŠÌÀçÀóÀqáãÊu‹ÁÈ9üÃ)4×!ŒÌÀ*2Ê}‹ÁÈ9üÃ)8ŽÌÀÐÏÊz‹ÁÈ9üÃ)ÉÚ?8ÏŠÌÏäú‹ÁÈ9üÃ)ÉÕ2Á×ÈŠÌ:ÅÄcŠÁÈ9üÃ)ÉÚÀØãßßÀÈÉÀñÀ±áãÐÀÏŠÌÀÇÚÀùáäÏ>ŠÁÈ9üÃ)ÉÞÞÝÀ^×ÀÈùÀáÚÞÝïÛÅÀOÕŠÌÃÐÀ£ÕÔÞÇÒŠÁÈ9üÃ)œÌ™ÁÈ9üÃ)ÉÞŽÖÕŠÌ™ÁÈ9üÃ)ÁÚŽÐÏŠÌ™ÁÈ9üÃ)œÌ™ÁÈ9üÃ)œÛääääääääääÏŽÁÈ9üÃ)œÅ™ÁÈ9üÃ)œÛääääääääääÚŽÁÈ9üÃ)©ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÈ9üÃ)©âäääääääääääääÈ9üÃ)¨ÁÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈ9üÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)œÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUë‘ÇüÃ)œÛääääääääääÕ‘ÇüÃ)œÀÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈ‘ÇüÃ)œÌœÇüÃ)œÌœÇüÃ)œÌœÇüÃ)r9QaÈ‰ÌœÇüÃ):.	9)fÀªÈ’ÇüÃ)Â;)fäÏ’ÇüÃ)ÁÀè|×ÛÀaÚÚÝRÀÏÁÙÍÀ^×ÈcÀÃÀâÚÞÀUÈ’ÇüÃ)ÉÞþßÛÈIÀóÀùÞãÐÕAáÆßßÈcÀçÀñÀùáQ”ÇüÃ)4&C1e	S”ÇüÃ)|ÌøQ”ÇüÃ)ÉÚ?~Šßdüä“ÇüÃ)ÉÕ2Á%‹Üd”ÇüÃ)ÉÚÀØãßßÀÈƒÀùÞáÀ6ÈÉÀaÀ°l?dÚÁÞäÏ’ÇüÃ)ÉÞÞÝÀ^×ÀÈÃöÚÀôÝÜçÀ#ÀáÀñÃÝïßÈc!À#ÀâÄÞ–ÇüÃ)œÌœÇüÃ)ÉÞ•ßÈcœÇüÃ)ÁÚ•ÛdœÇüÃ)œÌœÇüÃ)œÛääääääääääÏ‘ÇüÃ)œÅœÇüÃ)œÛääääääääääÚ‘ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¨ÁääääääääääääääÈ9üÃ)·È9üÃ)©âäääääääääääääÈ9üÃ)œÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUëŽÁÈ9üÃ)œÛääääääääääÕŽÁÈ9üÃ)œÀÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈŽÁÈ9üÃ)œÌ™ÁÈ9üÃ)œÌ™ÁÈ9üÃ)œÌ™ÁÈ9üÃ)r9QCÚÇÍ8aAc9‹ÅÒŠÁÈ9üÃ):ÂÞÎÆ|)cÀªÈ3ÜŠÁÈ9üÃ)˜ÂcäÏsÀcŠÁÈ9üÃ)ÁÀè|×Û
Èi>ÛÀÈÃòÚÃÝÊÀÀÃÀÐÌÖÐÀÃÀÒÔÞÝÐÀUÈ;‹ÁÈ9üÃ)ÉÞþßÛÈøßÀÏ	Þþ?ÃÐÀçÚÌÛÀÀçÀóÀùáãÊ‘ÁÈ9üÃ)4ø$
ÁÀ°
bABR‘ÁÈ9üÃ)ÁÀ°gÏ!ÞÝÊ‘ÁÈ9üÃ)ÉÚ?
ÈiŽÐÕÌÀçÕüàÐäÁÈ9üÃ)ÉÕ2Á‰ÄÏÌAÐÏcŠÁÈ9üÃ)ÉÚÀØãßßÀÈÂÞÎÀlâßÀÏÐÚþÀ6ßÀÈÐÕÌÛÀÀÇÕÁÞáÐäÏlÜŠÁÈ9üÃ)ÉÞÞÝÀ^×ÀÈCÚÇÝÜÛÐÈÉÀÒÄÇÝÜ×ÀçÀ'ÚÌÖÀGÀÇÀñøÝ|ÒÇ‰ÁÈ9üÃ)œÌå‰ÁÈ9üÃ)ÉÞ˜ÐÚÌÚŠÁë‰ÁÈ9üÃ)ÁÚÅŠÉÕÌJÕŠÂÀ¨‰ÁÈ9üÃ)œÌŽùô‰ÁÈ9üÃ)œÛääääääääääÏSË‰ÁÈ9üÃ)œÅ™ÁÈ9üÃ)œÛääääääääääÚŽÁÈ9üÃ)©ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÈ9üÃ)©âäääääääääääääÈ9üÃ)¨ÁÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈ9üÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)œÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUë‘ÇüÃ)œÛääääääääääÕ‘ÇüÃ)œÀÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈ‘ÇüÃ)œÌœÇüÃ)œÌœÇüÃ)œÌœÇüÃ)r9QCÚÇÍ8aAcœÇüÃ):ÁÞÎÆ|)cÀªÈ’ÇüÃ)˜ÂcäÏ’ÇüÃ)ÁÀè|×Û
Èi>ÛÀÈÃòÚÃÝÊÀÀÃÀÐÌÀÃÀâÚÞÀUÈ’ÇüÃ)ÉÞþßÛÈ
ÞßÀÏ	Þþ?ÃÐÀçÚÌÀçÀñÀùáQ”ÇüÃ)4Ú$
ÁÀ°
b	S”ÇüÃ)ÁÀ°gøQ”ÇüÃ)ÉÚ?
ÈiŽÐÕÌüä“ÇüÃ)ÉÕ2Á‰ÄÏÌ”ÇüÃ)ÉÚÀØãßßÀÈyqÀlâßÀÏÐÚþÀ6ßÀÈÐÕÌÚÁÞäÏ’ÇüÃ)ÉÞÞÝÀ^×ÀÈB9ÝÜÛÐÈÉÀÒÄÇÝÜ×ÀçÀ'ÚÌ!À#ÀâÄÞ–ÇüÃ)œÌœÇüÃ)ÉÞ˜ÐÚÌœÇüÃ)ÁÚÅŠÉÕÌœÇüÃ)œÌœÇüÃ)œÛääääääääääÏ‘ÇüÃ)œÅœÇüÃ)œÛääääääääääÚ‘ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃ)¹ÇüÃäääääääääääääääääääääääääääääääääääääääääääääääääääääääääÇú;ÿêªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¿ýÏÿú?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÏÿüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃüÃÁääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞú?þªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¯ýÏÿú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÏÿüÃüÃüÃüÃüÃüÃüÃ*ÀªÀªÀªÀªÀªÀªÀªÀªÀ¨Š÷ÀªÀªÀªÀªÀªÀªÀªÀªÀª“ÀªÀªÀªÀªÀªÀªÀªÀªÀªåüÃääääääääÚŠÖäääääääää’ÁäääääääääÏüÃuÀUÀUÀUÀUÀUÀUÀUÀUÇŠÀÀUÀUÀUÀUÀUÀUÀUÀUÀV’ÁÀÕÀUÀUÀUÀUÀUÀUÀUÀUüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq|ïŽËÕ˜ÁÈÐÏdüÃqþÉŽËIÚ+”ÁÈÖÕ,üÃqTŽË›ÁÈ1üÃq\ŽË
ÚÞÝÀn”ÁÈIÀâÚÞÝüÃq8ŽËIÀóÀùáãÀn”ÁÈIÀñÀùáãüÃq4ŽËIÎ–ÁÈ
üÃqdŽËÁÀñÞÝ•ÁÈIÕ|üÃq\ŽËaÞáà•ÁÈÕ~üÃqTŽËjÁ
”ÁÈ1ÆüÃqþÉŽËJÀñááÛ”ÁÈÖÀçÕÁááÀ6üÃq|ïŽËöÚÞÝÑ”ÁÈÐÀÃÀÒÄÞÝÜüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃq“Ë›ÁÈüÃääääääääÕŠÖääääääääá’ÁäääääääääÈüÃ9“Ë›ÁüÃääääääääÞŠÐäääääääää’ÁäääääääääÕüÃüÃüÃüÃüÃüØ¼ÁÏüÀt½ÕüÃüÃüÃüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÏ»ßüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüâÏ»ßÕÿ¡6‰¡þà²FileµMenu¡þC²Theµ²²Fileµmenuµhasµ²²Loadµandµ²²Saveµasµmenuµitems.µTheµnameµofµan¡þŒoptimizationµfileµisµdisplayedµtoµtheµrightµofµtheµFileµmenu.µThe¡þÕoptimizationµfileµnameµendsµwithµtheµ.optµextension.µAnµoptimization¡þ	fileµcontainsµaµcompleteµsetµofµcodeµgenerationµstrategies,µwhich¡þ	fyouµcanµeitherµload,µorµeditµandµsaveµunderµaµnewµname.¡þ	õToµuseµanµexistingµsetµofµcodeµgenerationµstrategiesµsavedµinµaµfile,¡þ
=chooseµ²²File²>²Load.¡þ
ÌToµsaveµaµsetµofµstrategiesµcurrentlyµdisplayedµinµtheµSetµOptions¡þdialogµbox,µchooseµ²²File²>²Saveµas.’åXD“I501ileaf_page_string1:2-23¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³23¡þÉ²When´µyouµselectµoneµofµtheseµmenuµitems,µaµnewµfileµselection¡þwindowµappears.µForµinstructionsµonµhowµtoµselectµtheµproperµfile,¡þZseeµtheµsectionµSelectµmodelµfileµMenuµItem"µearlierµinµthisµchapter.¡þ9²CodeµGenerationµStrategies¡þ¥²Forµdetailedµinformationµaboutµcodeµgenerationµstrategies,µsee¡þîChapterµ1,µDSPµCodeµGenerationµStrategies."µThatµsection¡þ7describesµeachµcodeµgenerationµstrategyµand,µifµrelevant,¡þsummarizesµtheµrelativeµeffectµonµtheµimplementationµperformance¡þÈmeasuresµ²throughput²,µ²memoryµrequirement²,µandµ²latency².µFor¡þexample,µifµthroughputµisµincreased,µthisµappearsµasµ²throughputµ+²;µif¡þYmemoryµrequirementsµareµincreased,µthisµappearsµasµ²memoryµ-².µA¡þ¢practicalµexampleµofµtheµuseµofµcodeµgenerationµstrategyµisµgivenµin¡þëChapterµ4.¡þToµselectµaµcodeµgenerationµstrategy,µclickµtheµcorrespondingµbutton¡þÖorµuseµtheµfollowingµprocedureµforµtheµoptionsµwithµmenus:¡þ[1.¡X[Positionµtheµcursorµoverµtheµoptionµmenuµandµpressµtheµleft¡X¡mouseµbutton.¡þ2.¡XMoveµtheµcursorµoverµtheµdesiredµitemµandµreleaseµtheµleft¡X[mouseµbutton.µIfµaµparameterµisµexpectedµforµtheµchosenµitem,µa¡X¢textµentryµwindowµappearsµtoµtheµrightµofµtheµoptionµmenu.’XÊD“I501ileaf_page_string1:2-24¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³24¡þÉ²3.¡XÉTo´µenterµtheµparameter,µpositionµtheµcursorµoverµtheµtextµentry¡Xwindowµthatµappears.¡Xƒ³¡”ƒToµapplyµtheµcombinationµofµcodeµgenerationµstrategies¡”ÊdisplayedµinµtheµSetµOptionsµdialogµbox,µclickµ²²OK.¡X=³¡”=Toµretrieveµtheµlastµsetµofµcodeµgenerationµstrategiesµthatµyou¡”„previouslyµconfirmedµbyµclickingµ²²OK,µclickµ²²Reset.µThisµbutton¡”Ëdoesµnotµdependµonµtheµtargetµselection.¡X>³¡”>Toµdisregardµtheµcombinationµofµstrategiesµdisplayed,µclick¡”…²²Cancel.µTheµlastµvalidµcollectionµofµcodeµgenerationµstrategies¡”Ëisµusedµtoµgenerateµcode.¡þ?SharedµBuffers¡X‡Ifµyouµselectµ²sharedµbuffers²,µaµlifetimeµanalysisµisµdoneµto¡XÐdetermineµwhichµmemoryµsegmentsµcanµbeµreusedµbyµdifferent¡Xsignalµbuffersµduringµaµcompleteµscheduleµperiod.µIfµyouµdoµnot¡Xaselectµthisµcodeµgenerationµstrategy,µtheµDCGµreserves¡Xªintermediateµmemoryµforµeachµdifferentµsignalµneededµwithinµa¡Xóscheduleµperiod.¡XYTendencyµofµeffectµonµcode:µmemoryµ+.¡þúNote:²¡XB²Theµsharedµbuffersµoptionµisµnotµsupportedµforµmultiprocessor¡X‹DSPµcodeµgeneration.’ÊÖD“I501ileaf_page_string1:2-25¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³25¡þÉ²(B)³loop´µzeroµoverhead¡XAµ(B)³loop,µorµblockµfactorµloop,µisµaµgenericµloopµinµwhichµthe¡XZcounterµexpressionµdependsµonµtheµlocalµblockµfactor,µwhichµin¡X£turnµdependsµonµtheµglobalµblockµfactor.µTheµloopµcounterµmight¡Xìalsoµdependµonµtheµparametersµofµtheµmodelµorµconstants,µor¡X4both.µThisµoptionµprecomputesµallµloopµcountersµofµblockµfactor¡X}loops,µwhichµisµaµpreconditionµforµtheµhardwareµtoµexecute¡XÆzero³overheadµloops.¡X7Tendencyµofµeffectµonµcode:µthroughputµ+,µmemoryµ-.¡þÎ(P)³loopµzeroµoverhead¡XAµ(P)³loop,µorµparameterµloop,µisµaµgenericµloopµinµwhichµtheµloop¡X_counterµexpressionµdependsµonµmodelµparametersµ(forµexample,¡X¨²FFTµsize²µforµanµFFTµmodel),µconstants,µorµboth.µThisµoption¡Xñprecomputesµallµloopµcountersµofµparameterµloops,µasµthe¡X9hardwareµrequiresµforµexecutingµzeroµoverheadµloops.¡XªTendencyµofµeffectµonµcode:µthroughputµ+,µmemoryµ-.¡þBSchedulingµStrategies¡XŠIfµyouµselectµtheµ²flat²µstrategy,µtheµDCGµgeneratesµaµflat¡XÓschedule.µSubsequentµactivationsµofµanµidenticalµblockµare¡Xconsolidatedµintoµaµsingleµactivation,µusingµtheµproperµlocalµblock¡Xdfactor.¡XÕIfµyouµselectµtheµ²detectµsequences²µschedulingµcodeµgeneration¡X	strategy,µtheµscheduleµthatµtheµ²flat²µschedulingµstrategyµfound¡X	cundergoesµpostprocessingµtoµdetectµrepeatedµsubsequencesµof¡X	©activationsµthatµareµorganizedµinµaµrow.µTheµdetected¡X	ðsubsequencesµareµmergedµintoµaµloopµconstruct,µsoµthatµthe¡X
6subsequenceµappearsµonlyµonceµwithinµtheµschedule.¡X
ÎTendencyµofµeffectµonµcodeµcomparedµtoµ²flatµ²scheduling:¡Xprogramµmemoryµ+.’ÖgD“I501ileaf_page_string1:2-26¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³26¡XÉ²If´µyouµselectµtheµ²hierarchical²µschedulingµstrategy,µtheµDCG¡Xanalyzesµtheµtopologyµofµtheµblockµdiagramµtoµdetectµall¡XVfeedbackµloops,µthenµmergesµthemµintoµhierarchicalµblocks.µIfµthe¡Xdiagramµhasµnestedµfeedbackµloopsµ(feedbackµloopsµthatµshare¡Xãoneµorµmoreµblocks),µtheµDCGµintroducesµaµproperµhierarchy¡X*amongµtheseµfeedbackµloops.¡X­Forµinformationµonµtheµrationaleµbehindµhierarchicalµscheduling,¡XóseeµHierarchicalµScheduling"µinµChapterµ1.¡XvInµfeedbackµloops,µblockµprocessingµisµrestrictedµtoµtheµnumber¡X¼ofµdelaysµinµtheseµloops.µIfµtheµnumberµofµdelaysµisµsmallerµthan¡Xtheµspecifiedµglobalµblockµfactor,µtheµblockµfactorsµinµtheseµloops¡XIareµpartlyµdisabled.µThatµis,µblocksµofµsuchµloopsµareµactivated¡Xwithµlocalµblockµfactorsµsmallerµthanµtheµglobalµblockµfactor.µThe¡XÖresultµisµenlargedµprogramµcodeµforµrepeatedµcallsµtoµblocksµin¡Xtheseµloops.¡X Tendencyµofµeffectµonµcodeµcomparedµtoµflatµscheduling:¡Xæthroughputµ+,µprogramµmemoryµ+.¡XiIfµyouµselectµtheµ²combined²µschedulingµstrategy,µaµcombinationµof¡X¯theµ²hierarchical²µandµ²detectµsequences²µstrategiesµisµused.¡X2First,µaµhierarchicalµscheduleµisµcomputed.µThenµpostprocessing¡Xxisµappliedµtoµdetectµsubsequencesµofµactivationsµthatµare¡X¿repeatedµinµaµrow.µTheµdetectedµsubsequencesµareµmergedµinto¡X	aµloopµconstruct,µsoµthatµtheµsubsequenceµappearsµonlyµonce¡X	Lwithinµtheµschedule.¡X	ÏTendencyµofµeffectµonµcodeµcomparedµtoµhierarchicalµscheduling:¡X
programµmemoryµ+.’gÞD“I501ileaf_page_string1:2-27¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³27¡þÉ²Global´µBlocking¡XInµorderµtoµutilizeµtheµpipelinedµhardwareµofµmostµtargetµDSPs,¡XZtheµDCGµisµbasedµonµ²scalableµsynchronousµdataµflow²,µwhich¡X£allowsµtheµprocessingµofµvectorsµofµsignalµelementsµinsteadµof¡Xìsingleµsignalµelements.¡XRTheµDCGµallowsµenhancedµthroughputµbyµincreasingµtheµnumber¡X™ofµprocessedµsignalµelementsµbyµanµintegerµfactor.µThisµmultiple¡Xßintegerµisµcalledµtheµ²globalµblockµfactor².Itµisµdesiredµthatµrepeated¡X&activationsµinµsuccessionµofµaµsingleµblockµinµoneµschedule¡Xmperiodµareµconsolidatedµintoµaµsingleµactivationµwithµan¡X³appropriateµlocalµblockµfactor.¡X6Increasingµtheµglobalµblockµfactorµenhancesµtheµopportunityµfor¡X|vectorization,µwhichµisµaµpreconditionµforµDSPµpipelining.¡XÿFurthermore,µifµthereµareµactivationsµthatµareµnotµinlined,µaµglobal¡XEblockµfactorµreducesµoverheadµbyµreducingµtheµnumberµof¡XŒfunctionµcalls.¡XTheµopportunityµtoµconsolidateµactivations,µhowever,µdependsµon¡XUtheµtopologyµofµtheµsystemµ(forµmoreµinformation,µseeµChapter¡Xœ1).¡XTendencyµofµeffectµonµcode:µthroughputµ+,µprogramµmemoryµ+,¡Xedataµmemoryµ-.’Þ\D“I501ileaf_page_string1:2-28¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³28¡þÉ²Global´µModelµInliningµ¡XTheµpiecesµofµcodeµthatµimplementµtheµblocksµofµaµblockµdiagram¡XZmustµbeµassembledµintoµaµsingleµexecutableµmainµprogramµor¡X£function.µNormally,µtheµalgorithmicµkernelµofµaµblockµisµaµfunction.¡XìForµeachµappearanceµofµtheµblockµwithinµtheµschedule,µaµfunction¡X4callµisµgenerated.¡XµTheµ²inlining²µcodeµgenerationµstrategyµexpandsµtheµalgorithmic¡Xükernelµofµtheµblocksµatµtheµplaceµwhereµeachµblockµappearsµin¡XBtheµschedule.µAµblockµisµinlinedµonlyµifµtheµtotalµnumberµof¡X‰appearancesµofµallµinstantiationsµofµtheµsameµmodelµdoesµnot¡XÐexceedµtheµuser³specifiedµinlineµdegree.¡X‡Tendencyµofµeffectµonµcode:µthroughputµ+,µprogramµmemoryµ-.¡þvNote:²¡X¿²WhenµgeneratingµgenericµCµcode,µtheµcodeµofµtheµblocksµinµthe¡Xblockµdiagramµisµgeneratedµasµinlineµcode.µTherefore,µthisµoption¡XPhasµnoµeffect.¡þ
Globalµ(B)µLoopµUnfoldingµ¡XRAµ(B)³loop,µorµblockµfactorµloop,µisµaµgenericµloopµwithµaµloop¡X›counterµthatµdependsµonµtheµlocalµblockµfactor,µwhichµinµturn¡Xädependsµonµtheµglobalµblockµfactor.µTheµloopµcounterµmightµalso¡X	,dependµonµtheµparametersµofµtheµmodelµand/orµconstants.µThis¡X	uoptionµunfoldsµallµblockµfactorµloops.µThatµis,µcodeµlocatedµwithin¡X	¾theµloopµbodyµisµreplicated,µandµtheµloopµcounterµis¡X
correspondinglyµdecreased.¡X
‡Ifµtheµintegerµvalueµofµdegreeµequalsµ-1,µallµblockµfactorµloops¡X
Îareµcompletelyµunfolded,µthatµis,µtheµcodeµwithinµtheµloopµis¡Xreplicatedµsoµthatµthereµareµnoµloopµconstructs.’\ÙD“I501ileaf_page_string1:2-29¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³29¡XÉ²If´µyouµsetµtheµdegreeµtoµanotherµpositiveµintegerµvalue,µblock¡Xfactorµloopsµmayµbeµonlyµpartiallyµunfolded.µForµexample,µif¡XVdegreeµequalsµ4,µtheµcodeµwithinµtheµoriginalµloopµbodyµis¡Xreplicatedµupµtoµfourµtimes,µdependingµonµwhichµloopµcounterµyou¡Xãuse.µIfµnecessary,µtheµoriginalµloopµcounterµisµdecreasedµby¡X*dividingµitµbyµfour.µIfµtheµoriginalµloopµcounterµisµnotµdivisibleµby¡Xqtheµunfoldingµdegree,µtheµremainingµreplicationsµareµshiftedµout¡X·ofµtheµloopµconstruct.¡X:Tendencyµofµeffectµonµcode:µthroughputµ+,µmemoryµ-.¡þ¼Globalµ(P)µLoopµUnfoldingµ¡XAµ(P)³loop,µorµparameterµloop,µisµaµgenericµloopµwhoseµloop¡XMcounterµexpressionµdependsµeitherµonµtheµparametersµofµthe¡X–model,µonµconstants,µorµonµboth.µThisµoptionµunfoldsµall¡Xßparameterµloops.µThatµis,µcodeµlocatedµwithinµtheµloopµbodyµis¡X'replicated,µandµtheµloopµcounterµisµcorrespondinglyµdecreased.¡XŽIfµtheµintegerµvalueµforµdegreeµequalsµ-1,µallµparameterµloopsµare¡XÕcompletelyµunfolded,µthatµis,µtheµcodeµwithinµtheµloopµis¡Xreplicatedµsoµthatµthereµareµnoµloopµconstructs.¡XžIfµyouµsetµ[degree]µtoµanotherµpositiveµintegerµvalue,µparameter¡Xäloopsµareµonlyµpartiallyµunfolded.µForµexample,µifµdegreeµequals=¡X+4,µtheµcodeµwithinµtheµoriginalµloopµbodyµisµreplicatedµupµtoµfour¡Xqtimes,µdependingµonµwhichµloopµcounterµyouµuse.µIfµnecessary,¡X¸theµoriginalµloopµcounterµisµdecreasedµbyµµdividingµitµbyµfour.µIf¡Xÿtheµoriginalµloopµcounterµisµnotµdivisibleµbyµtheµunfoldingµdegree,¡X	Etheµremainingµreplicationsµareµshiftedµoutµofµtheµloopµconstruct.¡X	ÈTendencyµofµeffectµonµcode:µthroughputµ+,µmemoryµ-.’ÙlD“I501ileaf_page_string1:2-30¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³30¡þÏ²
Extras¡þn²When´µyouµchooseµthisµmenuµitem,µaµnewµwindowµappearsµthatµlets¡þ¶youµspecifyµtheµfollowingµfeaturesµ(seeµFigure 2³4):¡þ;²S¡X;²AddµDSP³specificµroutines¡þ¯²S¡X¯²Addµboard³specificµroutines¡þ"²S¡X"²Specifyµnoµwarningsµduringµcodeµgeneration¡þ–²S¡X–²Specifyµnoµcommentsµinµtheµgeneratedµcode¡þ	²S¡X	²Setµtheµnumberµofµperiods¡þ›Theseµfeaturesµareµdescribedµinµtheµfollowingµsubsections.¡þ ²S¡X ²Toµretrieveµtheµlastµsetµofµfeaturesµthatµyouµconfirmedµwithµthe¡XfOKµbutton,µclickµtheµResetµbutton.¡þÚ²S¡XÚ²ToµdisregardµtheµcombinationµofµfeaturesµdisplayedµinµtheµExtras¡X window,µclickµtheµCancelµbutton.µTheµlastµvalidµcollectionµof¡Xgadditionalµfeaturesµisµusedµtoµgenerateµcode.’l¨D“I501ileaf_page_string1:2-31¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³31¡,É²Figure 2³4³Extras´µWindow¡~ ²¥	öäÒÓÐþÃÌõÍö
Òû¹ÃüâÏ¶ÛÚüüääääääääääääääääääääääääääääääääääääääääääääääääääääääÏúp@wüÐÕ¶ßüääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüœÇüœÈüšØÀgÀ6ÀÏÖÈüÔ™ÀZÁÍÀÀ—È™ÔüÌšÀRÁÀØÃšÏüšÌÀ,ÁÑÀüš×À4ËÈüšÂÀJüšÀ^°ÀÀ^ÈüšØÀfÀvÑÀßüüüüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüüüäÕ•Öäü?ÖÀÏ]ÉÀƒ‹ÁÞ<eÐÊüÈÀ/ÀŸÀÇÕ]ÐÀÃ‰ÉáÁÝŠÌÖÀ†üüˆÇ	ÀñÙÝÜÒGÉÕ‹ÝÜÀ'ÖIÀâÚÞÝÓŽÐÏüÐÕÉÞáãâÌQÐÚŠÝãßßÀŸÈÐÀñÀùáãÍYÖÕüÀ‡Ï!È	*ŠÝ"A62üÏIÚ|ÜAÕø6ü/
Þ~’àKÚüüŠÂA	,ŒÂBÃÁ4üÈÀ/ÀŸÏIÞááâÀQÀÇÚOáÁÝãàÈÐÀñÀùÞãÀ6ÀÕü?Öç	ÚÙÝÜÛÃÐÀÃÕ‰ÁÞÝÀ=ÅÖÇÉÕÚÞÝÜÄÖÀ‡ÏüäÕ•Öäüü‹Á™ÂüüüüüüüüüüüüääääääääääÀëÀ_äÀ×ääääääääääääääääääääääääääääääääääääääÈüôå(ü?ääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüúÿÀT¥)%)JþÇüŒùÀTÀ¥À)À%À)ÀJüääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüüüäÕ•ÖäüŽÌüÈˆÌŒÉá‹Æüü/ÖÈÃöÀñÓÀ¼ÓÀ/ÖÀGÏŠÁÙÝÖÀŽÀÇÀaÀñÙÀÜÜüÀŸÏ	ÀùáàÍÛÀŸÀÏÕ‹áã?ÀŸÀÇÀãÀóÞáÀÜâü.C9Ç)2‹ÈCD	üŠÁÚÃÏ’ÁÚ~üŠÉÚÀ‡Õ’ÁÞ?ü‰ÁÏÅÄÈÇüÈÏÐÀsÚ6ÀÕˆÉáþ?ÀŸÀÁƒÚ>âü6ÀÈÂóÀèÈéÜÆÀŸÀÇÏŠÁÃÝÖçñöÀñÃÒÜüäÕ•ÖäüÛÏüÖÈüüüüüüüüüüüúÿÀ)JR”¥)JþÇü¬À)ÀJÀRÀ”À¥À)ÀJü?ääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüúÿÀ
R”¥)JR”þÇü«÷ÀRÀ”À¥À)ÀJÀRÀ”üääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüü—Öääääääääääääãüü—ÉääääääääääääÞüüüüüüGà\2RàÏiüŒÁÚ\U	ÚÏiÅÿÞüüÀâöÀØØÜÀ'ÏÅÁÙÝÀNÒÖÀ‡ÀƒÕÀÏöÀÁÙÔÀnÛ?ÕüKÚüàâßÈÖÕüãâÌÛÀÏÀÇÚYÐÕÁÈáÎÀnßÈü;!RÏA);ÅÊÏAüˆÜAQÏ|ÁÕSÏüˆß~LÚ‰ÛÈßÕü?GD‰ÁüLÞÆààÕüáÛÀÏÀÇÚÈ	À°lÛßÿÞüöÀéÃÀ¼ÜÅÀÁxÝÆÛÖÀ‡À£ÕçóÁÀñÃÝÑÛüüüŽÁüüüü—ÉääääääääääääÞüü—ÖääääääääääääãüüüüüüüüääääääääääääääääääääääääääääääääääääääääääääääääääääÈüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüüüüüüüüüüüü	äääääääääääääääääääääääääääääääääääääääääääääääääääääáüü	äääääääääääääääääääääääääääääääääääääääääääääääääääääáüüüüüüüääääääääÞˆÁäääääääääÕäääääääääÚüüääääääääÕ‰âääääääääÈßääääääääÏüüüüüüüøéŽÁÞ—ÐÏ8üáÊá“ÖÕlü_¨ÆügÝÜÛÀÈ“ÉÀâÚÞÝüpáãâßÀ›È“ÉÀñÀùáãü?ÀØ	—ÁüoÍÝàÛ•ÉÕ|ügÌàßÛÈ”ÐÕ~ü_Ë9:“ÆÆüáÊáâßÐÏ’ÖÀçÕÁááÀ6üøéŽÁÃÝÜÛÉÈ’ÐÀÃÀÒÄÞÝÜüüüüüüüüüääääääääÕ‰âääääääääÈßääääääääÏüüääääääääÞˆÁäääääääääÕäääääääääÚüüüüüüÌ¸ÏüÔ¸ÔüüüüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääãüääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüÖÏ¶ÛÈüääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüâÏ¶ÛÚÿ¡J ¡þ®²²S¡X®²ToµapplyµtheµcombinationµofµfeaturesµdisplayedµinµtheµExtras¡Xôwindow,µclickµtheµOKµbutton.¡þÂ²AddµDSP³SpecificµRoutines¡þ.²Itµmayµbeµnecessaryµtoµperformµaµsetµofµinitializationµroutinesµforµa¡þwDSPµbeforeµaµprogramµcanµbeµstarted.µSimilarly,µyouµmayµwantµto¡þÀcallµspecificµDSPµroutinesµbeforeµtheµrunningµprogramµterminates.¡þWhenµtheµDSPµspecificµbuttonµisµselected,µtheµDCGµgeneratesµthe¡þQinitializationµfunctionµdcg_dspinit()µatµtheµbeginningµofµtheµgenerated¡þšDSPµprogramµandµtheµterminationµfunctionµdcg_dsppost()µbeforeµthe¡þâendµofµtheµgeneratedµDSPµprogram.µTheseµfunctionsµmustµbe¡þ	+declaredµinµtheµfileµdcg_dspdefs.h,µwhichµisµincludedµbyµtheµDCG.¡þ	ÎExample 2³1µshowsµtheµadditionalµgeneratedµcodeµstatements.’¨ŠD“I501ileaf_page_string1:2-32¥	öä¥	öä¡8Á²âThe´µxdcgµUtility¡.2³32¡,É²Example 2³1³Additional´µDSP³SpecificµCode¡þ ²/*´µincludeµdirectiveµforµprocessorµinitializationµ*/¡þT#includeµ"dcg_dspdefs.h"¡þˆ...¡þ¼main()µ¡þð{¡þ$µ...¡þXµ/*µcallµofµprocessorµspecificµinitializationµroutinesµ*/¡þ‹µdcg_dspinit();¡þ¿µ...¡þóµ/*µcallµofµprocessorµspecificµpostµroutinesµ*/¡þ'µdcg_dsppost();¡þ[µ...¡þ}¡þ)²Add´µBoard³SpecificµRoutines¡þ–²Itµmayµbeµnecessaryµtoµperformµaµsetµofµinitializationµroutinesµforµa¡þÞprocessorµboardµbeforeµaµprogramµcanµbeµdownloaded.µSimilarly,¡þ'youµmayµwantµtoµcallµspecificµboardµroutinesµbeforeµtheµdownloaded¡þoprogramµterminates.µWhenµtheµBoardµspecificµbuttonµisµselected,µthe¡þ¸DCGµgeneratesµtheµinitializationµfunctionµdcg_boardinit()µatµthe¡þbeginningµofµtheµgeneratedµDSPµprogramµandµtheµtermination¡þIfunctionµdcg_boardpost()µbeforeµtheµendµofµtheµgeneratedµDSP¡þ’program.µTheseµfunctionsµmustµbeµdeclaredµinµtheµfile¡þÛdcg_boarddefs.h,µwhichµisµincludedµbyµtheµDCG.¡þ}Example 2³2µshowsµtheµadditionalµgeneratedµcodeµstatements.’Š®D“I501ileaf_page_string1:2-33¥	öä¥	öä¡‚Á²âThe´µxdcgµUtility¡Ô¤ÿ¤2³33¡,É²Example 2³2³Additional´µBoard³SpecificµCode¡þ²/*´µincludeµdirectiveµforµboardµinitializationµ*/¡þP#includeµ"dcg_boarddefs.h"¡þ„...¡þ·main()µ¡þë{µ¡þµ...¡þSµ/*µcallµboard-specificµinitializationµroutinesµ*/¡þ‡µdcg_boardinit();¡þ»µ...¡þïµ/*µcallµboard-specificµpostµroutinesµ*/¡þ#µdcg_boardpost();¡þW¡þŠ}¡þ²Disable´µWarnings¡þz²Whenµtheµnoµwarningsµbuttonµisµselected,µnoµwarningsµare¡þÃgeneratedµduringµtheµcodeµcompilation.¡þ‰²DisableµComments¡þî²Whenµtheµnoµcommentsµbuttonµisµselected,µtheµgeneratedµcode¡þ7doesµnotµcontainµanyµcomments.¡þý²SetµNumberµofµPeriods¡þb²Normally,µcodeµisµgeneratedµtoµoperateµonµanµinfiniteµstreamµof¡þ«signalµelements.µHowever,µunderµtheµfollowingµconditions,µyouµmight¡þówantµtoµlimitµtheµnumberµofµscheduleµperiodsµtoµprocess:¡þ	n²S¡X	n²Duringµtheµdebuggingµstage¡þ	Ú²S¡X	Ú²Ifµyouµoutputµdataµtoµaµfile¡þ
F²S¡X
F²Ifµyouµneedµtoµmakeµmeasurements¡þ
ÌTheµparameterµofµthisµoptionµspecifiesµtheµnumberµofµschedule¡þperiodsµforµtheµgeneratedµcodeµtoµprocess.’®:D“I501ileaf_page_string1:2-34¥	öäÃËÁâÊË¡Ä,0,¡Ä,	c¡Ä	c	c0¡Ä	c0,0ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²The´µxdcgµUtility¡.2³34¡þÉ²To´µsetµtheµnumberµofµperiods,µpositionµtheµcursorµoverµtheµmenuµand¡þpressµtheµleftµmouseµbutton.µTwoµmenuµitemsµappear:¡þ–²S¡X–²Chooseµinfiniteµforµanµinfiniteµnumberµofµperiods.µThisµisµthe¡XÝdefault.¡þQ²S¡XQ²Chooseµ=µtoµsetµtheµnumberµofµperiodsµtoµaµvalue.µAµtextµentry¡X—boxµappearsµinµwhichµyouµcanµenterµtheµvalue.¡þj²
Help´µMenu¡þ	²The´µHelpµmenuµinµxdcgµcontainsµonlyµoneµmenuµitem,µOverview.¡þRWhenµyouµselectµOverview,µxdcgµdisplaysµaµsummaryµofµhowµtoµuse¡þ›xdcg.µUseµtheµscrollµbarsµtoµviewµportionsµofµtheµtextµthatµareµnot¡þãcurrentlyµvisible.’:ÐOPS m:m:D€‚Document:dcg3ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:45ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:timsps11i±:&$*!!!&!!!&!)!!!!!!!!!!.).+°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12b±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7° wst:courps10± :*°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°;wst:helvps9±;:

!




&
#






%



!




%%%%#°=wst:courps10b±=:*°Ewst:courps14±E:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################################################################################################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####%##%##%%%#%%%%%%##%%##%%%#################%######%#####%%#################%######%#####%%#%##:##%%#%%%%%%%%%#####%%%%%%##%%%%%%%%%%%%%%%#%%%%#%%%#°Nwst:timsps100b±N:h‹ÑÑÑ¡[‹‹‹ÑîhÑhtÑÑÑÑÑÑÑÑÑÑ‹‹îîîÑ„---ÿDD¢ÑDŠ-DÿD-è--¡--‹t‹òÑ‹Ñè¹è¹‹Ñèt‹èt[èÑèè¹¢‹èÑ-ÑÑ¹¤\¤ÙÑ‹ÑÑÑÑÑ‹}Ñ‹áhŠÑÑ------¡-¢¢¢¢-DDDDDD----èÑÑÑÑÑÑ-¹¹¹¹¹ttttèÑÑÑÑÑÑèèèèÑhÑÑ¡‹Ñ¡ÑÑ‹‹Ñ¡FÑ¡-°Uspsa:symba14±U%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) 0-      *'*##,#*%*(4**-+ "#(-%.#2&%  ##  !   #!)(( °Wwst:helvps14bi±W:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°Ywst:courps12bi±Y:                                                                                          2                                       åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€åÿÿ‘hˆå™™ÿÿNîÍå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’VvD“I501ileaf_page_string1:3-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¾3³1¡,m²²3â²¥	öä¡Õm²â¡,v²Using´µxdcg¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡This´µchapterµconsistsµofµthreeµexamplesµofµtheµuseµofµtheµDCG.¡þéTheseµexamplesµareµintendedµto¡þn²S¡Xn²Provideµyouµwithµanµoverviewµofµtheµprincipalµconceptsµonµwhich¡X´theµDCGµisµbased¡þ(²S¡X(²Giveµyouµanµintroductionµtoµtheµoptionsµandµfeaturesµofferedµby¡XotheµDCG¡þâ²S¡Xâ²GiveµyouµaµpracticalµintroductionµtoµtheµDCGµbyµshowingµhowµto¡X	)workµwithµtheµexamples’v~D“I501ileaf_page_string1:3-2¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³2¡þÉ²The´µexamplesµare¡þe1.¡XeAnµintroductoryµmodelµthatµillustratesµhowµto¡Xê³¡”êSpecifyµaµsystem,µusingµtheµCOSSAPµBlockµDiagramµEditor¡”0(BDE)¡Xµ³¡”µGenerateµaµnetlistµofµtheµsystem¡X:³¡”:Useµxdcg,µtheµgraphicalµuserµinterfaceµforµtheµDCG¡X¿³¡”¿Generateµcode¡þD2.¡XDAµNotchµFilterµmodelµthatµillustratesµvariousµDCGµoptionsµand¡XŠfeatures,µincluding¡X³¡”Optimizationµstrategies¡X”³¡””Theµuseµofµattributes¡X³¡”Multi³DSPµcodeµgeneration¡Xž³¡”žTheµinstallationµofµaµnewµtarget¡þ#3.¡X#AµmodelµgenerationµexampleµthatµillustratesµgenericµCµcode¡Xigeneration.¡þ	Note:²¡X	`²Beforeµreadingµthisµchapter,µmakeµsureµthatµyouµareµfamiliarµwith¡X	©theµbasicsµofµtheµCOSSAPµenvironmentµandµhowµtoµstartµand¡X	òuseµtheµCOSSAPµBlockµDiagramµEditorµ(BDE).µIfµyouµareµnot,¡X
:readµthroughµtheµexamplesµgivenµinµtheµ²COSSAPµTutorials²¡X
ƒmanualµfirst.µYouµshouldµalsoµbeµacquaintedµwithµtheµuseµofµthe¡X
Ìxdcgµutility,µifµnotµreadµChapter 2µofµthisµmanualµbefore¡Xproceeding.’~(D“I501ileaf_page_string1:3-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,8,"¡Ä,"	c"¡Ä	c"	c8¡Ä	c8,8ÆÃÁÊËÃ¡Äþ"Ê"ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¾3³3¡,Õ²DCG´µConcepts¡þ§²The´µsystemµtoµbeµimplementedµ(i.e.µtheµsystemµyouµwantµto¡þïgenerateµcodeµfor)µisµrepresentedµbyµmeansµofµaµblockµdiagram.¡þ8Thisµblockµdiagramµconsistsµofµblocksµandµsignals.µTheµblocks¡þrepresentµtheµ(partsµofµthe)µsignalµprocessingµalgorithm,µandµthe¡þÉsignalsµrepresentµtheµdataµflowµbetweenµtheµblocks.µTheµblocksµare¡þinstancesµofµmodelsµthatµcontainµtheµmodelµcomputationalµkernel¡þ[(theµcode).µThereµcanµbeµseveralµblocksµofµtheµsameµwithinµone¡þ£blockµdiagramµ(forµexample,µthereµcouldµbeµseveralµFIRµfilters).¡þTFromµtheµimplementationµpointµofµview,µallµtheµblocksµcanµbe¡þœinstancesµofµtheµsameµmodelµandµcanµshareµtheµmodel's¡þåcomputationalµkernel.µHowever,µsinceµeachµblockµhasµitsµown¡þ.parameters,µstates,µinputµdatasets,µandµports,µeachµblockµhasµa¡þvuniqueµcontext.¡þq²
Data´µFlowµandµScheduling¡þ²From´µtheµdataµflowµpointµofµview,µeachµblockµconsumesµaµpredefined¡þgnumberµofµinputµsamplesµatµeveryµinputµport,µandµproducesµa¡þ°predefinedµnumberµofµoutputµsamplesµatµeveryµoutputµport.µThe¡þùquantitiesµareµcalledµtheµinputµratesµandµoutputµratesµofµthe¡þ	Acorrespondingµinputµandµoutputµports.µTheseµinputµandµoutputµdata¡þ	Šratesµmayµbeµanyµintegerµnumberµofµsamples.¡þ
:TheµCOSSAPµDSPµCodeµGeneratorµ(DCG)µobeysµtheµ`Scalable¡þ
ƒStaticµDataµFlow'µ(SSDF)µwhichµisµanµextensionµtoµtheµ`StaticµData¡þ
ÌFlow'µ(SDS).µWithµtheµstaticµdataµflow,µtheµdataµratesµofµallµtheµports¡þofµaµblockµareµfixed.’(`D“I501ileaf_page_string1:3-4¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³4¡þÉ²The´µscalableµstaticµdataµflowµsupportedµbyµtheµDCGµallowsµany¡þblockµtoµconsume/produceµanµintegerµmultipleµofµtheseµminimum¡þZinput/outputµportµrates.µThisµintegerµmultipleµisµcalledµtheµlocalµblock¡þ£factor,µwhichµisµautomaticallyµassignedµbyµtheµschedulerµofµthe¡þìDCG.µ`Local'µinµthisµcontextµmeansµthatµtheµblockµfactorµisµspecific¡þ4forµaµblock,µasµopposedµtoµtheµglobalµblockµfactor,µwhichµappliesµto¡þ}theµwholeµsystemµdescribedµbyµtheµblockµdiagram.µThese¡þÆinput/outputµportµratesµcanµbeµconsideredµasµtheµminimumµnumber¡þofµsamplesµwhichµareµconsumed/producedµatµtheµcorresponding¡þWinput/outputµports.¡þTheµDCGµautomaticallyµcomputesµaµscheduleµthatµdeterminesµthe¡þLorderµinµwhichµtheµcomputationalµkernelsµareµactivated.µInµdoingµso,¡þ•theµschedulerµhasµtoµtakeµintoµaccountµallµtheµprecedenceµrelations¡þÝbetweenµtheµblocks,µasµgivenµbyµtheµsignals.µTheµschedulerµalso¡þ&obeysµaµdataµflowµactivationµruleµthatµstatesµthatµaµblockµmayµonly¡þobeµactivatedµifµthereµareµsufficientµinputµsamplesµavailableµatµeach¡þ·inputµport.µ`Sufficient'µmeansµthatµthereµareµatµleastµasµmany¡þsamplesµavailableµatµeachµinputµportµasµwillµbeµconsumedµbyµthe¡þIblockµwhenµitµisµactivatedµonce.¡þõTheµscheduleµisµautomaticallyµcomputedµbyµtheµDCGµatµcode¡þ>generationµtime.µThatµmeansµthatµthereµisµnoµruntimeµoverheadµdue¡þ†toµtheµschedulingµorµbufferµallocationµforµtheµimplementationµofµthe¡þÏdataµsamplesµflowingµthroughµtheµsignals.µInµcontrastµtoµthis,µthe¡þ	COSSAPµStreamµDrivenµSimulatorµ(SDS)µsupportsµdynamicµdata¡þ	`flowµwhichµallowsµaµhigherµdegreeµofµflexibilityµsinceµtheµratesµofµthe¡þ	©inputµandµoutputµportsµareµnotµfixedµandµcanµchangeµfromµactivation¡þ	òtoµactivation.µThisµflexibilityµcreatesµaµruntimeµoverheadµasµtheµresult¡þ
:ofµschedulingµandµbufferµallocation.µTheµscheduleµgeneratedµby¡þ
ƒDCGµisµperiodic,µmeaningµthatµitµcanµbeµrepeatedµanµarbitrary¡þ
Ìnumberµofµtimesµorµevenµrepeatedµinfinitely,µwhereasµaµdynamic¡þscheduleµinµSDSµisµgenerallyµa³periodic.’`üD“I501ileaf_page_string1:3-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¾3³5¡þÏ²
DSP´µCodeµGenerationµStrategies¡þ_²The´µDCGµoffersµdifferentµcodeµgenerationµstrategiesµthatµcanµbe¡þ§selectedµusingµschedulerµoptions.µYouµcanµspecifyµhowµmany¡þðscheduleµperiodsµareµtoµbeµprocessed.µEachµscheduleµperiodµis¡þ9equivalentµtoµoneµiterationµthroughµtheµscheduleµgeneratedµbyµthe¡þDCG.µAlthoughµyouµcanµprocessµanµinfiniteµnumberµofµschedule¡þÊperiods,µforµdebuggingµorµprofilingµpurposesµitµmightµbeµmore¡þappropriateµtoµonlyµprocessµaµlimitedµnumberµofµperiods.¡þ¦Signalsµareµallocatedµtoµareasµofµmemoryµcalledµbuffers.µFromµan¡þïimplementationµpointµofµview,µtheseµbuffersµareµimplementedµas¡þ7arrays.µThisµensuresµthatµitµisµpossibleµtoµaccessµallµtheµinputµand¡þ€outputµsamplesµatµrandom.¡þThereµareµtwoµwaysµofµimplementingµblockµactivation:¡þŽ²S¡XŽ²usingµaµfunctionalµcall,µor¡þú²S¡Xú²usingµanµinlineµexpansionµofµtheµcode.¡þTheµdifferentµeffectsµofµtheseµtwoµstrategiesµareµillustratedµinµthe¡þÇpracticalµexamplesµgivenµinµthisµchapter.¡þ[Becauseµcodeµgenerationµisµnotµaµone-dimensionalµproblem,µthe¡þ£DSPµcannotµproduceµcodeµthatµisµoptimalµinµallµsituations.µThereµare¡þìthreeµimportantµperformanceµcriteriaµgoverningµtheµgenerationµof¡þ	5code:¡þ	¯²S¡X	¯²memoryµconsumption:µeitherµprogramµmemoryµorµdataµmemory¡þ
²S¡X
²throughput:µtheµnumberµofµsamplesµconsumedµperµsecond¡þ
‡²S¡X
‡²latency:µtheµtimeµdelayµbetweenµtheµtimeµatµwhichµanµinput¡X
Îsampleµbecomesµavailableµandµtheµtimeµatµwhichµtheµoutput¡Xsampleµcorrelatedµwithµthisµinputµsampleµisµoutput.’üåD“I501ileaf_page_string1:3-6¥	öäÃËÁâÊË¡Ä,2,¡Ä,	c¡Ä	c	c2¡Ä	c2,2ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³6¡þÉ²The´µDCGµoffersµtheµchoiceµofµaµsetµofµcodeµgenerationµstrategies¡þthatµenablesµyouµtoµgenerateµvariousµversionsµofµtheµcode,µeach¡þZsatisfyingµdifferentµcriteriaµwithinµtheµdesignµspace.¡,r²DSP´µCodeµGeneration¡þ<²This´µexampleµillustratesµhowµtoµloadµaµsystemµintoµtheµCOSSAP¡þ„BlockµDiagramµEditorµ(BDE),µhowµtoµgenerateµtheµnetlistµforµthe¡þÍsystem,µandµhowµtoµgenerateµtheµDSPµcode.µForµfullµdetailsµofµthe¡þBDEµandµhowµtoµuseµit,µreferµtoµtheµ²COSSAPµBlockµDiagramµEditor¡þ^UserµGuide².µForµfullµdetailsµofµtheµxdcgµutilityµandµhowµtoµuseµit,µsee¡þ§Chapterµ2µofµthisµmanual.¡þ˜²
Getting´µStarted¡þ?²The´µproceduresµforµgettingµstartedµareµbrieflyµsummarizedµhereµfor¡þ‡yourµconvenience.µTheyµareµdescribedµinµdetailµinµtheµ²COSSAP¡þÐTutorials²µmanual.¡þZ1.¡XZAtµtheµoperatingµsystemµprompt,µenter¡þÎ²%´µ²scpµdcg_ex01²µ¡þ	C²2.¡X	CRespond´µtoµtheµpromptµasµfollows:¡,	·² create´µnewµCOSSAPµprojectµ'dcg_ex01'µ?µ[y/n,µdefaultµn]µ:²=µ²y²=¡þ
'²3.¡X
'Switch´µtoµtheµdirectoryµcontainingµtheµsourceµfilesµforµthe¡X
nexampleµbyµentering¡þ
â²%²´µcd³${COSSAP_DIR}/demos/dcg_gt_ex01²Y’å
ÃD“I501ileaf_page_string1:3-7¥	öäÃËÁâÊË¡Ä,í,×¡Ä,×	c×¡Ä	c×	cí¡Ä	cí,íÆÃÁÊËÃ¡Äþ×Ê×ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¾3³7¡þÉ²4.¡XÉExecute´µtheµREADMEµshellµscriptµbyµentering¡þ)²%²´µ./README¡þ›²5.¡X›Switch´µtoµtheµconfigurationµdirectoryµofµyourµcurrentµprojectµby¡Xâentering¡þB²%²´µcdir¡þ´²6.¡X´Start´µtheµBDEµbyµentering¡þ²%²´µcbde²µ²&¡þ›²The´µfirstµtimeµyouµstartµtheµCOSSAPµBlockµDiagramµEditorµ(BDE),¡þãtheµstartupµtakesµseveralµminutes.µAfterµtheµfirstµtimeµitµtakesµonlyµa¡þ,fewµseconds.µWhenµstartupµisµcomplete,µtheµBDEµwindowµis¡þudisplayed.¡þ'²
Loading´µtheµSchematic¡þ¨²Now´µloadµtheµschematicµintoµtheµBDE.¡þ1.¡XChooseµFile²²²>²²Open.¡þ}2.¡X}Selectµtheµsampleµschematic,µfileµacc_1.sch.¡þõTheµmodelµillustratedµinµFigure 3³1µisµloadedµinµtheµBDE.¡,„²Figure 3³1³Schematicµacc_1.sch¡=Ñ²¥	öäÒÓÐ>®rlÝîÞï¡ûÈüüüüÐäääääääääääääääääääääääÕüÉäääääääääääääääääääääääÏüüüüüüüüüüüü¥âäääääääääääääääŽßäääääääääääääääääääääääü¥ßääääääääääääääãŽÛääääääääääääääääääääääãüüüüüüüüüüüü“ÁÕÂ	Ä"Çü“ÉÚ“ÁÈüøÉÕÎÍÝÛÞÀÁäÍÌÊÀ)ÀÀXÀŠÈŒÁÀbÀÄÀUÈüLÊËÌÅÁÀƒcÍ!ØÂÈÀñÕôüÀùÀÀäÄÂÝÀžÙ'ÀÈâÃ4êüÃÃÅ‚#Æü$ÉÆÂôÈ:
.‹Æü!Ä÷ÂÔ+ÌQÄÆÆÅÄ‹Å	Aü‰ÁÀŒ~JÀÁÀáØÚè‹Ä	ÀçèüˆùsøÈÁÏÀÓÌÀiÀƒ‹ÊøÅÀÃÀLÇüŠËÈ~ˆÈŠÁü!ÄÂÈÂ+Õ	Ç>‹Èü$ÉÆÂÁÀC< ;?ääääääääääÏüÃÃÅ‚#Æ‰ßääääääääääÏ‹×1)ŽÃüÀùÀÀä‚ÝÈ'Ïâ9>‹ÈŠßüLÊËÌAÉcÆ2FŠÁTÐÞßÏmÀ‘ÀUçÀ¨À±ÀbÀ*[dzüøÉÕÎÍáÁÈÀÙäÍÌi‹Â1ÙSÏðÙÚ÷ü˜Â‹Ã	ÁÀòÖÀ‘è‘ÇÈ‰ÌüŒÉäLä‹Ä&9Àzü˜Ä‹ÅÈù)ÈFŒÅÕÀÌÀcÙÀgÌÉÀÆÚüŒÉäLä,‹Æ‰ÄaéÂÁ9ŒÄBÇÅõæèÄÈ!ÃóÄü©À)Ç3×ÀÀÏÄÆŒÃóÀÂàÀ9ÏÔ×ÀÈÕü®ñÀÀ1À†À˜ÅNMÃçÀaÀ¦ÅóŠÅQaôü©ÖH&ÈEŽÉÏü©ÇÆ&Ç=ŽËÆü©ÛÈù)ÆJääääääÚßääääÕ	Éü¥Ä"È!9ÇNääääääÞâääääÕÅŠQËêôü¨ÁÍÀQÀòÖæàÈ=àpÉåÕü¥ÁÀbÀÄÀU1'FÅ„!ÄïÄüÊq“ÀñÕôÚÀ7ÞßÀÁãY,ŒÉÀìÀÆÍÙÀaÀ˜ÀÇÈÚü’ÁÕ’êr‹ÆŒÃüÁ‚ÅÆ|ÿÏ<ŒÄŒÉäü“ÏÅÈ‹ÈŒÅü‘êùðÄ	AÿÏ›ÉJäRü¤Ã	ÀçèÚüÁîÈ‘ÂøÅÀÃÀMÚü¤Áü‘À¥“Èü£ÖÏü‘î‘ÐÏü‘Ìùð‘Èü‘ñyÁü’ÂÅÊŒÎÊ ÎÊüÊÌÀaÕÄŽÊ¡×ü¤ÅŒÅÄÓŸÅÄóü¤Æ°À^Èü±ÄÅÓŸÄÅü•bÈü±ôð ôðÀüÉäääääääääääääääääääääääÏ¼ÁüÐäääääääääääääääääääääääÕ˜÷ë ÷ëËÈü•ü±ÃÆ ÃÆÎü±ÁÈ ÁÈÂü±ÂÇ ÂÇÀ\Èü•!ü±ÀaÀ†ÊŸÀaÀ†×üüüüüü¥ßääääääääääääääãŽÛääääääääääääääääääääääãü¥âäääääääääääääääŽßäääääääääääääääääääääääüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¥âäääääääääääääääü¥ßääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüü¨ÐÈÄ!"ü¨ÖÏü¨ÀÀ¤À÷ÀúÀ*ÎÀaÀzÀÄÀtü©Åq÷áÕÃü¨ÐÀÈÀ6ÈëÀ©üµÂü¥È+
ÀhÆÇü¤ÁtAÇ
A#ü¤ÂÀÃÀ6ÀãÀÂÀ”ôÀ¡Àçè+ü¤ÃÀƒaÀ¤
ëÀÃÀLü¤Ä>ðÃÈ5ü¤ÅÂ?ü£ÐÕÁ	Þääääääãü£ÖÕ4‹êäääääääü¤ÅÀÈßÀ‡Àêù?ü¤Ä,‹Æü¤ÊÕäÀŸÀìÉÉj+ü¤ÁÄü¥È‰ÉäüµÂü¯Éäüüüüüüüü¦ÏËü¨Øü¦ÆÅÀÂü¨À=ü¦ÅÆÏü¨Ãü¦ðëøü¨õü¦ôåñü¨ìü¦ÄÇæü¦É1ü¦ÃÈßüü¦ÀÃËäüüüüüüü¥ßääääääääääääääãü¥âäääääääääääääääüüüüüÿ¡¹Ñ’
Ã+D“I501ileaf_page_string1:3-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³8¡þÏ²
Creating´µtheµNetlist¡þn²Creating´µtheµnetlistµgeneratesµseveralµsimulationµfilesµandµassignsµa¡þ¶uniqueµsimulationµnumberµtoµtheµnetlist.¡þ;1.¡X;ClickµtheµCREATEµtoolbarµbutton.¡X¯TheµCreateµCOSSAPµNetlistµdialogµboxµappearsµasµillustratedµin¡XõFigure 3³2.¡,¥²Figure 3³2³CreateµCOSSAPµNetlistµDialogµBox¡eü²¥	öäÒÓÐeÛ&F;<Äû‡!üâÏ„?ÕüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÀÏääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüÐÕ„~úwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþsÿÿãÿÿùÿÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþïü‘ÙxØ××ÊÖÈÀâ1:À,ˆÉÀÇÀÁÀÈ|ü‘À´´ÀZÀ-À-IÇ:ËAnÀ¡åÉÇKüÁÀMÀ³ÀÃÀÉÀžÁÀLÀ¥ÉÉÀPØÀ˜ËÀ}ÍÀLÀñÀ°ÓØÜÀ1ÀñÀ°÷ÎëYÚÀñÕÉüÔ‘ùÀ¥À©À­#ÄZÀ˜½ÍÀMÀhXÀZÀ^ÂÏÀhAÀiÀjÀÐ’ÕüÌ‘ÔÊ&À&Ì9Ä3p*:KÀÈÌÍ‘ÁÈü’ïÀƒÈËÀËÀƒÈÆÌ˜;aÀLÈÕü’ÁÀåÈÖÃÀ.É×dÀ29ÎüÁí1	ÁíÀ¥ÍÍ*$ÂÄÂÏ
ÆëÁÀL!Åü‘À¼ùÀåÀÕÀ¯¼ÀZÀ-À-#À^ÀXôÀ°ÁÀhXÀ^ÀzÁÈÀáå!ÀuÀzÚü‘ÀyÀƒÀÃÀ³ÀžxØ××À1ÀŒ†ØÀ9ÀŒÞÔÍÀñÈÀ6ØÝÀ3ÁÀ˜ÉÀÇÀÁÀŒÀìÀìÀñÀçÚÏüªÂÀÐˆÐÚüªÁÕüüüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüˆÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüü‰ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüƒ	äáüü‰ÉÕÙÛÀ‡ÕÎãÉÚßÛÏÖÈiÏüÕ^À‘À¶À&ÀIæ9ìÀLÀ‡ÆÀ2ÇÆ\üÕcJÎìøÂÇæÃ)õAÀÈSÏü‰ôõÀ…ÄÀÂÍÎ
öÈPÀCêÀÁÕðÀ#ÀÆÀáÀãÀgÀ“ÒÀ6 ÐüÀÀŽÀÀ&&øêÄÃLAîéÀÐÀ¡À’ÀÐÀ‹ÀSÀ*ÄüîÀÀÀ¦À†Î93ÐÆ
À¥Ç	ÕÁÇìUÑüZÉÀªWïÀ’À”ÜZÀ‡Ï|ÁêÈyÐ£ÌÏüR9Úð	ÕðÀ£ÅÇüÈõÀ…ÍËð
ÎPÇ(¨ÄÈü‰ÉÎìÀîÀÕ÷*ÀÈÀŠÀ¥ÇÀ°ÊêÎ°ÉÁÀU¡ùüJ*ùéZÀ‘À¶ñÀ‰ÆìÀI2ÀEîÀÂëÀíåÂëÄÀ«À*¡Âü"åôõÀ–JÕÙÛÐÀÆÊÏÉÚÜÌÀƒêÀ±ÕÐÀ£ÀÆÀ1ÀãÐÀfÒÍ ÛÏüIÐÀlÑÖË½ÛÏü2ü,Èüüƒ	äáüü‰ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüˆÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüˆÉääääääääääääääääääääääÚääääääääääääääääääääääääääääääÏü†Aü‰äääääääääääääääääääáŠÉääääääääääääääääääääääääääääääüüâäüü‰ÉÀãÚÀgÚüYËÏ]æÀìÁÀÈ’ÍÎü‰ÉÎÅ1’ÄüZÅ÷‘ÁÏŠÑÑÛÉÀŸüZÓÀlÀñÀ¼Í5’ËÉÀÆÀÜØÍÀÀ,èÀ,ÈüöÀhÇÀÈ’ÂùÀ¡ÀªÀZÀ*Àªé÷Âü*ÀÈÀzëÀèÊÍÊÁÅiÈiôÍüà—ÃÅ	ÉÈaÈÀ¨ÑÈüÎÃÆÅ÷‘ÂÆùÈÈÑÈüÈIÎÅ‘ÁÇ	È^ÈÇü*qÂÇYæÀìÈ
ÈÍjÜÔüIÕÀ4ÁôKÀãÚÀfËÐÚ„ëJÀ*ÀªéüÀìÀØÎÀíÈ–ÐÚiÀcÀ¶ÀfØÍÀ•ÀÀ,ÈÀ,ÈüÈ ÖÑÑÛÁÀŸüüüâäüü‰äääääääääääääääääääáŠÃü§ÐääääääääääääääääääääääääääääääÈüˆÉääääääääääääääääääääääÚääääääääääääääääääääääääääääääÏüüüüüüü ÍÎjü‰Ûã•ÄOÕÀsÕüŠÉ|~JzùæÀ…æü‰ÐáÁÀ’
È™ËÊÀ3ÀnÑÖÀÍAÇÇüŒÀl$ÂÕùÀèQÂÀ†ü‹ÂéÀlÚÀòÀgÈÀ#ÀaÀ¶ÕÕÔˆÃˆ÷ÈÐÍÁÀÕÁÀÐüöÀiÀjÀkÇÀ˜ëëÀ¨ˆÁT
ÀÐÁÀÐüÒÁÈfÀRçÈÀ©ÀTˆÂÈ
ÀÈüŽÎÕÉÁÈVÐÀÎüŽÀyÎÉÏÃóÁÇ
À…ÈÍ99ü‹Âé}ËèÏõÈæùæüŒÀlXÎòÏÀ-õ©ÀTˆÍÀcÀ³À3À6ÖÌÍÉÕÀ3Õü‹ÁÀ’ÁÀ)ÀÀiÇÀ’ÐÀ¨ü‰Àã|ÎÚÀìÀÇÈÝ3À3ÎÔÏü‰Öäˆôü“Æü“ÓüüüüüüüüüüÀãÞ|iü	æJvUüÇ$|iüÍÔÔÀÜÏù××ÑÀ6ÀÍÀ‰À°ÀáÀ¸ü	ÈÀÈÀ¨ñÏ-À%öÄÉÀIêëÀdüQÎÀ¡ÀTÓÀ.ÑÂåÂÀ¨ëü	æ]À.Áü:ÀüYÁüÀÐÁÀT9ÄÀÓÀ.åéÀ¨ü	Æ¨ÂÏÀvÀ%À%ö	ÀEêëüÀÃÌÔÀÁêÞ××ÑÍÀÃÀƒÍÀáÀŒüüüŒËüüüüüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüüüüüsÈsaJÈ‰ÏYüvNÈoüŒÎaËü<ÑÑÀÀ˜ÑÖÖÐÀÀfÀÄÀØÔÀÜøÒÀ6ÉÀŒÀfÀÛØÀnÀLÐÐÀ‡ÀŒÀ:ÀnüJÀÀÃÀ˜ôÀÀ’çèÁÀ¤ÏÀ¨À2øÀ*ÄÃÇÁÃÀZÀÀL÷ÀÀIÇÀTÀüôÀ*À‡*À—ÐÁëÁÀTðUÑÀÈÁÀÇÏÀ¨ôü\UÀA‰ÇbKÀÈü2ÀŒÈ×KÀÆÇü"A‰Çüp*ÈÄÀ*ùÀœÀ	ëïÀTUéÈÀÂÀÎ¨üJXÀõÀ’çÈ¢ÏÀ¨*ÀIÈJ,ÀøÀIÇëü<ÀcÑÌÍÀÀÖÐÌÀaÀÁÀ˜ÔÀÆÊÒÍÉÀ‡ÀfÌØÀcÌÊÀÇÀ‡ÀŒÓÀcüŸÀÈüŸÀ²üŒÊ’Ýüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüü‘ÉääääääääääääääääääääääääääääääääääääääääÏüßäää©ÈäääääääääääüÇCääääääääääääääääääääääääääääääääääääääääÁ‹ÈüüÖääáªßäääääääääáüüü	ÈI‰ÝÏ®ÁáÊÎü‹Î°‹Ï	È¡ÝQüÇI‰ËÈ«Îü	êÀáÀãÑÀ›ÀÀ¸ÙÀÜÀ˜	À,ÐÈ‰Ï¥ÓÀiÈüòÀRëÀÊÀCÀTÀ´À2À˜	ÆÀÇQÕÀâÎÀÙÕÀÙÀŒÀÍÀžÑ£ëøÈü°À°À*ùÂÆ(À‘ÀRÎòÀÑÎÀ-ô¢ÝÀ¨ü
ÀRÀâÕlM
îÀ¨8ÂåIÈÀ*¢ÝüIÀÁÀ‘æ<MÏ~[üIÏÇÇ’ÚüÀ+ÀƒÈÀ*,!Ï¯À¨AüÀRëô”X	ÇÀ¨Æ²åëÀ*¢ÝÀXùÈüaÀÀáÀãÑÌÀÌÀÌÙÀÆÍÌÀÇÈ
ÀQÎÂÀQïÍ%À¡ÁáÀ6Àcü2ŒÊÍÕÏÀÁÕÕÀìÀÌ×ÀÈü,ÈüüÖääág¢ßäääääääääáüüÇ¨Á‹ÈüßäääÁääääääääääääääääääääääääääääääääääääääääÈäääääääääääü‘ÉääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüäääääääääÏÉäääääääääääääÚ‘ßäääääääääü)‰ÆÃÄ‘Ç‰ÈüüIäääääääää’äääääääääääääÏ‘Öääääääääáüüüø™Û?™ÝÎüKñJ–ÀdÈràÀLÀ˜I•ÁÀ’üØ™Àëõ™ÀlüÃÀÙÀáÀäÀÏ•åÀ›ØØÀ™ÕÀ¦ÙÀÜÏ”ÂéÁÀÁÀáÕü"ÀÒÀÔÀÖÈ•ÃÀZÀZÀšÀÑëÀLÀ&À´ñÏ–ÂÀ¢ÀRÀÐü8É˜Ðq	À,À3yÓ—ùëÀ°üÁÏÊ—ÌÓÂÆËÈÔ™ÂÕÏüòÏÐÈ–×ÀXðÀÔÂ°™ÁæÚüÃ™åÈ4Î˜Âé:üØ°ÏÀEÈ”ÀÌÄÀ°ñÀéÍ9•ÀlùÀSÈÀ°üKñÂÀRÀ*ÀÒÈ”ÀdÈÀJÀEÀZÀRÀÊÀIÀÀŠÂÏ”ÁÀ’ÂÀ¢ÀRëüøÀÁÀáÀÙÀ•ÛÌØÀ;À1ÀáÀöÜËÀvÀÁÈ•ÝÀaÀÁÀáÕüüüüIäääääääää’äääääääääääääÏ‘Öääääääääáüü)‰ÆÃÄ‘Ç‰ÈüäääääääääÏÉäääääääääääääÚ‘ßäääääääääüÌ…	ÈüÔ†àüüüüüÐÕ„~üÖÏ„?üääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüâÏ„?Õÿ¡‘ü¡þ¾²2.¡X¾EnsureµthatµtheµTargetµentryµfieldµdisplaysµCOSSAPµDSPµCode¡X	Generator.¡þ	x3.¡X	xEnterµaµone³lineµdescriptionµinµtheµ²E²ShortµDescriptionµentryµfield.¥fŠªÒÔlŸ' ()‘@ÿ‘@ÿ‘@ÿ¥	öä’+ãD“I501ileaf_page_string1:3-9¥	öäÃËÁâÊË¡Ä,H,2¡Ä,2	c2¡Ä	c2	cH¡Ä	cH,HÆÃÁÊËÃ¡Äþ2Ê2ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¾3³9¡þÉ²4.¡XÉClick´µ²E²Create.¡X1Aµmessageµappearsµatµtheµbottomµofµtheµdialogµboxµwhenµthe¡Xxnetlistµcreationµisµcomplete.¡þë5.¡XëNoteµtheµcurrentµsimulationµnumberµthatµappearsµbothµinµthe¡X2²E²Numberµfieldµandµinµtheµmessage.µYouµwillµneedµthisµnumber¡XxwhenµyouµstartµtheµDSPµcodeµgeneration.¡þà6.¡XàClickµ²E²Closeµtoµcloseµtheµdialogµbox.¡þ_Youµhaveµnowµcreatedµtheµnetlistµnecessaryµforµtheµcodeµgeneration,¡þ§andµareµreadyµtoµbeginµtheµcodeµgeneration.¡þ3YouµcanµexitµtheµBDEµifµyouµwantµtoµstop.µToµdoµso,µchooseµFile²>²²Exit¡þ|Application².µ²Ifµyouµwantµtoµcontinue,µgoµonµtoµtheµnextµsection,¡þÄGenerat`ingµtheµCode."¡þ‚²
Generating´µtheµCode¡þ
²You´µareµnowµreadyµtoµgenerateµtheµcodeµforµyourµsystem.¡þ–Ifµyouµareµnoµlongerµinµyourµprojectµconfigurationµsubdirectory,µselect¡þßyourµprojectµnamedµdcg_gt_ex01µandµstartµtheµBDEµagain.µOpen¡þ'acc_1.sch.¡þ1.¡XChooseµNetlistµ²>²µCreate.¡þ	2.¡X	Clickµ² ²Createµtoµcreateµtheµnetlist.µAfterµtheµnetlistµisµcreated,µclick¡X	KCancelµtoµdismissµtheµdialogµbox.¡þ	³3.¡X	³ChooseµToolsµ²>²µxdcg.orµstartµxdcgµbyµenteringµtheµfollowing¡X	úcommandµatµtheµcommandµlineµprompt:¡X
A¡X
‡%µ² ²xdcg²¡X
Î¡XTheµxdcgµwindowµappearsµ(seeµFigure 3³3).’ãPD“I501ileaf_page_string1:3-10¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³10¡,É²Figure 3³3³The´µxdcgµWindow¡x ²¥	öäÒÓÐxýÏ¼ÐÊÑËiûºÇüâÏ¶ÁäüüääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÖÀÏääääääääääääääääääääääääääääääääääääääääääääääääääääääÀùÞüÐÀâY´ÉÚüäÀûääääääääääääääääääääääääääääÀóäääääääääääääääääääääääÞü×ÖÐÀ‡êÀƒÕÜÖÖÈØKÏü“À-ÀÀ‹ÀKÇÐÀÀÀƒÇÀZå$ü?ÈÀSÀ)ÇÏÀÃÇêÈ¦ÙÔÙ÷ÀcÀÃÀaÀãÀgÀ“ØÀlüÔ’ÂÂ´À°À´åÀÒÀÐÀÀSÀZÐüÌ1È‘øÀ‰À†)9GìŽËü•ÊÀFÀCÆÕYÀƒÈkaÈyÀ‡*ü’ÁÁÀÈÏÉ<	ÕðÀü“ÀQÀ)ÀLËÀ˜¢)Ã÷1)üÀ/ÀÀ‹ÀKÇÀÈ^À´À°À¼ùÀ…ÕÂÚÀÀ«ÀZü×ÖÐÀ‡ÀŒÀc>ÖË<ÙÀlÙÉÀãÀÃÀ1ÀãÐÀgØÎüüIäÚü	üÿÞüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüÁääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüüÀÃÉÈø	ÈsžÄÆÁÏüÀÃÉáÏÁAÎ ÁÈü‰Ãü	Ú|ØÛGÀÆÀãÔÕÀ¼À=ÛœÉÕÁÙüÊIÞþàßÈÖÀæÀãÔÏàâßÈšÐÀÇÚüüˆÂÈ<BšÐÏBüÚ
ÀÇÏ?œÉÕüÞÈ)ÐÕ~ÛÈ›ÉÚü‰Ã.Ä|ÆŸÈüSÀÃÀcÚ	áãàßÀÏÀÁÚÞÀØ~ßÈ›ÐÀáÀ°áü"ÐÀÃÀáÚøÝÀ=ÛÀ‡ÏÕÔÞéâÛ›ÄÀ#ÀáÚÙüü–âü–ÜŸÁüüüüüüüÁääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüüüüüüüüüüüâäääääääääääääääääääääääääÕüüüÖäääääääääääääääääääääääääüüü’Èü
ÃÊ‰ÁÈVü-ÌÊ	ŽÄ’ÜüCÉO‘À6ü{ÝÀnÐÀÆÕÁÙÝÀvÛÄ|À^À7ÉÀ‡ÚöáüsãÀnYÖÀæÕüàßßÈþßÀ7À‡ÀÇÕóÞük5BNÌ2gÀÌÎÍÎËücÝÏ||sÏÌAÀ‹ÀÆÕü#àÕüÈ
À°~?È¡ÈðÀÇÀæÕü")KyƒEó<cüüÛÀÀÀÀáÚüÄßàüÈ?ÀèÈü
ÃÝÑÛÖÀ‡ÏÕÁÃÀzïÛ	ÈÏÀCáÝïÐÊÈJÀè6Ïü’ÈIá4ÌÀÌÀd	a-üžßÀÀ‡ÀÇÚÁáÈÁÚüžÛÐÉÀƒÕÅÞÌÄâÀçÆÕü§âÈü«À6ü«ÜüüüüüÖäääääääääääääääääääääääääüüüâäääääääääääääääääääääääääÕüüüüâäääääääääääääääääääääääääÕüüüÖäääääääääääääääääääääääääüüüüüÁÇüø'ÎÁÏü
á)sÈüžÈü„ÀnÀ/ÅÀÏÁÕÕÀœÜÛÀÀ‡ÀÄÀâÅ‰ÈünÛÈÀÏÉÚÏãâßÀ›ÀÀçÚŠÈü.,1B	‹ÈüÂÜ,ŠÈüŽßÈüÅ2)DÇ2‰Èü
áãÛÛÀŸÀÃÕÉÚÀØ~ßÀ‡ÀÏÕÉÕ‰ÈüøÀzÑÖÖïÏÁÀèÞÇÜÛÉÀ‡ÀÂÁÏ‰Èü“ÂŠÈü“ÉÚ‰Èü6ŒÁÕˆÁÏüÁÇüüüüüÖäääääääääääääääääääääääääüüüâäääääääääääääääääääääääääÕüüüüâäääääääääääääääääääääääääÕüüüÖäääääääääääääääääääääääääüüüüüÁÇüø™ÁÏü
á)•ÈüžÈü„ÀnÀ/ÅÀÏÂÚÞÀìÜÈünÛÈÀÏÁÞáàâÈü.“ÈüŒÞ>Èü‹ÁÞ?ÈüÅ2"‘Èü
áãÛÛÀŸÀÃÕ	ÞÅàÈüøÀzÑÖÖïÏÂÄÀôéÜÈüžÈüžÈü6–ÁÏüÁÇüüüüüÖäääääääääääääääääääääääääüüüâäääääääääääääääääääääääääÕüüüüüüâäääääääääääääääääääääääääÕüßäääääääääääääääääääääääääÏüüüüüùüÐü32Ê‰ÁÀÁêÏˆÂÇÇ=üpSÂ;LÀáêÈˆÂ"ÇÇÂÈ<üØ™Â"<!ÈúÿþûcÁÐñð<{±àÿýü¿ÿ¡àâx?ÿ½WÕÕÿ÷Ý_ÿ_Õÿ÷õwÿ__W×ÿõÿ_ßÿìÿúÿþû¾Ï}ýûí÷¿{Îßýÿ¾ûÿžÿm·ßÿ¿¿¾ÿÿÿÿï¿ÿûÿÿï»ÿÿÿÿ¿¿ûï¿ûïßÿìÿü4ÁÅ$*È4ÀÂïÄ+ÇÆÀ†*ÅíÆÂ1ÀÂîÃÅÀJÀ¤ÅüøÂLÕÛÈøÏéïÄïëÇÆé*ÅíÆÉëÆéîÃÀÀJÀ¤ÅüøMÚÈü?ÕéïÄQÀÁëÇÆé!Åí	ÀXÆéÀhÃÀÇÃÅü3!Ã‹ÁéïÄèÅÇÆÀ†!Åí"ÆéÀhÃÅÅüÀƒÀçÀãÞÝã?JÀaÀ±Þ?ÂÖÏéÀkÂRæÕÀ¨À.!ÀÀÄ À¨éÀjÑÀÈÃÀ°ü
ÃÇÜÆÀêÀÃÀáÚÓÀzÆÛÉÀáÚÞA×æÀGÏéÀ*ÂÈåÀ¨À*!÷È À¨éÀk÷÷ÈÃåüÂ“ïüÐ“ôüù“ôüüüüüßäääääääääääääääääääääääääÏüâäääääääääääääääääääääääääÕüüüüüüüüüüüüüüüüüü
á™ÖÈziKü
ÀÜ”ÛÏÁyiÉüü|ÀN×ÀÀÏ”ÀÀÆÀáÀÁÀØÔâÛÀÀ‡ÉÀâÚÞü~âßÀŸÀÍÏ”ÐÀæÀáÈáÎÀ}ÛÀ›À†ÐÀñÀùáü-˜ÃUü|ÁÈ›ËÛÞüü?ÖÏ›Ìßüü>2”Ã)kÁ9
üü?ÛÀƒÕ“ÛÀÇÀáÀñÀ°ÆÀlÀ_ßÐÀÆÀÇÚÁáü3ÀzÆßÀêÏ“ÖÀƒÏÀáÀñÃÝâ×ÀƒÀ‡ÀÃÀâÄÞüü?Èü—ÄüüäääääääääääääääääääääääääÕääääääääääääääääääääääääääÞüüJäääääääääääääääääääääääääÈßäääääääääääääääääääääääääÕüüüüüüüüüAÃÝÜÈüàþÀ6Ï”ÈüÀ°È<“ÁÇüKÌÏÂ—ÂÆÉÕSüuÚ—ÃæÐÚUümÝ—øì)üÚÌÑ—õñ	ÚÚÝÑÖÀãÕüÚÄÈ—ñõIÀùÞã?ÀŒÖÀ§ÚüŠÇ“ìø#CyüþÀ6Ï“ìø|?	ÀƒÕüøÃÝÜÈ“ñõ~ÈÉÉÚüžõñ)!2QüžøìÐÀóÀùÞá?ÀÀ‹ÀçÕüžÃæÉÀáÚÀôÝÖÀÀãÕüžÂÆüÚD*1éÜÛÏ‰ÁÇüKÞÇˆÔÀÕŠÈüŽÀØÇ4ü	À¸ÝÀ^×ÖÀ‰ÀÃÏÁÀŒÎÁüKÀÁÀ¸àßßÖÀÏÀçÕjÙüÚ2Á1bÜü8|ÈÆøËÐüüÈøÃÇüÃ	A17üKÞÝá?ÛÈÐÕÀÕüÚÓÀzï×ÀíÉÀÐÁÃéÜÛÏüüüüüüüüŸÈüžÁÇüžÂÆÐÀò-üžÃæÐÔ‰ÈüžøìüžõññÓÝî×À‡À‹ÀÄÀ#Ôüžñõ	Àùáã?ÀÀÇÕÉÔüžìø	9#Ãüžìøüžñõ?üžõñ>"üžøìþâßÀçÚÞüžÃæ‚ÄÈÝÀ=ßæÀCÀÃÀÐÔüžÂÆüžÁÇ?ÈüŸÈ!üüüüüüüüüüüüüüüüüŸÈüžÁÇüžÂÆÉÕüžÃÅÐÚ2üžÄÄ)üžÅÃÅÞÀÜÜÀ;üžÆÂ
áÀÜâÛÈüžÇÁüžÇÁ
ÞüžÆÂüüžÅÃ)ÁüžÄÄÐÀóÀùáÜâÃüžÃÅÉÀáÀèÞÒÜÆÈüžÂÆüžÁÇüŸÈüüüüüüüüüüJäääääääääääääääääääääääääÈßäääääääääääääääääääääääääÕüüäääääääääääääääääääääääääÕääääääääääääääääääääääääääÞüüüüüüüüüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääääãüü?ääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüµÉäÞüüääääääääääääääääääääääääääääääääääääääääääääääääääüüäääääääääääääääääääääääääääääääääääääääääääääääääáü¶Ãüü¶÷üüÈ²öüJÈü
³Ûü
ü
³äÕü
³äÕü
ü
³ßÈü
ü
ü
ü
ü
ü
üJÈüÈüüüüüüüüüüüüüüüüüüüüüüü¶ßÈüü¶äÕü¶äÕüü¶Ûüü¶öüü¶÷üü¶ÃüäääääääääääääääääääääääääääääääääääääääääääääääääáüüääääääääääääääääääääääääääääääääääääääääääääääääääüüµÉäÞüüüü	äääääääääääääääääääääääääääääääääääääääääääääääääääÏüü#¯ÄüüäääääääääääääääääääääääääääääääääääääääääääääääÏü{¯ÁÈüJ±ÎüZ±ÌüZ±ÌüJ±Îü{¯ÁÈüäääääääääääääääääääääääääääääääääääääääääääääääÏüü#¯Äüü	äääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüÌ¸ËüÔ¸ÐüüüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÖÏ¶ÁÞüääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüâÏ¶Áäÿ¡P ¡þV²4.¡XVEnterµtheµnameµofµtheµnetlistµfileµinµtheµNetlistµnameµ(.v_ent)¡Xœfield,µorµclickµwithµtheµrightµmouseµbuttonµinµtheµfieldµandµselect¡Xãtheµfileµfromµtheµpop³upµlist.¡þ	W5.¡X	WClickµwithµtheµrightµmouseµbuttonµinµtheµTargetµfieldµandµselect¡X	ANSIµCµasµtheµtarget.’P²D“I501ileaf_page_string1:3-11¥	öäÃËÁâÊË¡Ä,,û¡Ä,û	cû¡Ä	cû	c¡Ä	c,ÆÃÁÊËÃ¡ÄþûÊûÆÃ¥	öäÃÁÊË¡Ä,¨,’¡Ä,’	c’¡Ä	c’	c¨¡Ä	c¨,¨ÆÃÁÊËÃ¡Ä,’Ê’ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³11¡þÉ²6.¡XÉSpecify´µanµoutputµdirectoryµandµanµoutputµname,µifµyouµwish.µBy¡Xdefault,µtheµoutputµdirectoryµisµtheµdirectoryµinµwhichµyouµstarted¡XVxdcg,µandµtheµdefaultµoutputµnameµisµdcg_²netlist_name²µ(inµthis¡Xexample,µdcg_s00343).¡þ7.¡XClickµtheµCustomµradioµbuttonµinµtheµOptimizationsµbox.¡þc8.¡XcChooseµCodeµ²>²µCreate.¡XªVariousµmessagesµmayµappearµinµtheµxdcgµdialogµmessage¡Xðarea,µincludingµaµlistµofµtheµsourceµcodeµfilesµthatµhaveµbeen¡X7generated.µTheµmessageµ`codeµcreated'µwillµappearµtoµindicate¡X}thatµtheµcodeµgenerationµprocessµhasµcompletedµsuccessfully.¡þá9.¡XáYouµcanµnowµcompileµtheµcodeµandµdownloadµitµtoµtheµDSPµor¡X'anotherµtarget,µorµyouµcanµstop.¡þžForµfullµdetailsµofµtheµxdcgµinterface,µseeµChapterµ2.¡þK²
Finishing´µUp¡þÊ²You´µhaveµnowµpracticedµgeneratingµDSPµcodeµfromµaµblockµdiagram¡þrepresentationµofµaµsystem.µThisµcompletesµtheµfirstµexample.µIfµyou¡þ[wishµstopµnow,µfollowµtheseµstepsµtoµexitµtheµCOSSAPµtools.¡þÊ1.¡XÊInµtheµxdcgµdialogµwindow,µchooseµFile²>²Exit.µ¡þ-2.¡X-InµtheµBDEµwindow,µchooseµFile²>²Exitµapplication.¡,è²DSP´µOptimization¡þ	|²This´µexampleµcoversµtheµfollowingµtopics:¡þ	ë²S¡X	ë²Optimizationµstrategies¡þ
N²S¡X
N²Attributes¡þ
±²S¡X
±²Multi³DSPµcodeµgeneration¡þ²S¡X²Theµinstallationµofµaµnewµtarget’²ÍD“I501ileaf_page_string1:3-12¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³12¡þÉ²This´µexampleµdealsµwithµtheµdesignµofµaµreal³timeµadaptiveµnotch¡þfilterµforµtheµcancellationµofµsingle³frequencyµsinusoidalµnoise.µThe¡þZfunctionalityµofµthisµdesignµisµdescribedµinµbriefµdetailµhere;µforµa¡þ£moreµdetailedµdescription,µseeµ``²DigitalµSignalµProcessingµwithµthe¡þìTMS320C25²''µbyµChassaingµandµHorning,µpp.µ302-310,µJ.µWileyµ&¡þ4Sons,µJanuaryµ1990.¡þ×Theµreceivedµsignalµisµassumedµtoµbeµaµrandomµsignalµwith¡þ sinusoidalµnoiseµgeneratedµbyµaµsingle³frequencyµinterferer.µInµthe¡þhblockµdiagramµ(seeµFigure 3³4),µaµreferenceµsinusoidalµnoiseµsource¡þ±isµrepresentedµbyµtheµSIN_GEN_TBLµblock.µInµtheµdesign,µthe¡þúreferenceµsineµsignalµisµphase³shiftedµbyµ²Up²/²2²,µresultingµinµaµreference¡þBcosineµsignal,µwhichµisµachievedµbyµmeansµofµaµdelayµoperation.µThe¡þ‹referenceµandµshiftedµreferenceµsignalsµareµweightedµwithµan¡þÓadaptiveµcoefficient,µandµareµaddedµtoµandµsubtractedµfromµthe¡þreceivedµsignal.µTheµadaptionµofµtheµcoefficientsµfollowsµtheµLMS¡þealgorithmµwithµtheµreferenceµsignalsµandµtheµcanceledµreceived¡þ­signalµservingµasµtheµinputs.’ÍD“I501ileaf_page_string1:3-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,¨,’¡Ä,’	c’¡Ä	c’	c¨¡Ä	c¨,¨ÆÃÁÊËÃ¡Äþ’Ê’ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³13¡þÏ²
Getting´µStarted¡þq²The´µproceduresµforµgettingµstartedµareµbrieflyµsummarizedµhereµfor¡þºyourµconvenience.µTheyµareµdescribedµinµmoreµdetailµinµthe¡þ²COSSAPµTutorials²µmanual.¡þ‰1.¡X‰Atµtheµcommandµprompt,µenter¡…ø²%²´µscpµdcg_ex02²¡þb²2.¡XbRespond´µtoµtheµpromptµasµfollows:¡,Ô² create´µnewµCOSSAPµprojectµ'dcg_ex02'µ?µ[y/n,µdefaultµn]µ:²=µ²y¡þI²3.¡XIAt´µtheµoperatingµsystemµprompt,µenter¡…·²%²´µcd³${COSSAP_DIR}/demos/dcg_gt_ex02²Y¡þT²4.¡XTExecute´µtheµREADMEµshellµscriptµbyµentering¡…Ã²%²´µ./README¡þ_²5.¡X_Switch´µtoµtheµconfigurationµdirectoryµofµyourµcurrentµprojectµby¡X¦entering¡…²%²´µcdir¡þâ²
Loading´µtheµSchematic¡þ	„²Now´µloadµtheµschematicµintoµtheµBDE.¡þ
1.¡X
ChooseµFile²²²>²²Open¡þ
€2.¡X
€Selectµtheµsampleµschematic,µfileµnotch.sch.¡þTheµmodelµillustratedµinµFigure 3³4µisµloadedµinµtheµBDE.’*–D“I501ileaf_page_string1:3-14¥	öäÃËÁâÊË¡Ä,Ì,¶¡Ä,¶	c¶¡Ä	c¶	cÌ¡Ä	cÌ,ÌÆÃÁÊËÃ¡Äþ¶Ê¶ÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³14¡,É²Figure 3³4³Schematic´µnotch.sch¡=$²¥	öäÒÓÐ=sYJK'tûÈüüüüüüüüüüüü
ääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüü½âäääääääääääääääääääääääääääääääääääääääääääääääääääääääääáü½âäääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüü½Èüüüüüüüüüüüüüüü®Èü©ääääÞâääãü©ÀžÐÀçÀáÀžÛääáüª	ÀžÛÀ˜xü¬ü©	À™êÀ‡êãÙü©	ÀùÀçÀžÐÀŸÕüü­	ÈRü«Qü«ÀžÀfÀyÞÀyÀ™Õü¬aÊÀyÀžÎÀÕü¨	esü©AêÞÙ×ÐÀáÕü©9QÐÀ™ÕÌ×ÀgÈü©1êÀ˜üžÁääääääääääääääääääääääääääÀûäääâääääääääääääääääääääääääääääääääääääääääääãÁÞaêêÞüŸääääääääääääääääääääääääääÀûäääâääääääääääääääääääääääääääääääääääääääääääãÁÀ™Þ×ÐÀ‡Õü©1ÁÀžÊÀdôÌü©9Ôqü©À™êÈôÀdÊ
ü¨	ÁÀùÀçÀâùÀåÀŽCü¬	ÕÁÚ;ü­pÁÚ<ü¬>ü³9ü¬IÀóÀñÚü«ÐÄ
bÆÃ³ÁÀáÀãÕCü«ÛÏ¼ÈˆÁü«Äç]´Ç‘Ò?ü¬ìÀéÔÚ9ÊÉÀÄÙÙ²Æ‘âÉ×Àü«ÒÁÔÀéÀhåáÀ´¤ßääääääääääääã’òÊß	ÛÈü«ÖÀ‘æJÂÇÃì¤Ûääääääääääääã’ÀÁËü«ÉÏðÉÀ¸øÙ²Æ•ÁöÈü¬È	ÔÉÀ¸ÁÈtÝ²Ç’ÌÀƒü«ÅC%³È’ÍÊüžÊÏ‹ÄÈæÂÇÈÀL±ÁÃÀLÎ×ÈZüžÄÆ‹ÛÀÁÔÁÀt9åáÀ´²ÂÀžÚÀÁÜÈbüäääääääääääääÚäääÚÛäääÞÄÀáÄÀí*ÀcÀÄÙÙ²ÉæòüäääääääääääääÕ?ääääääáäÚYæ¼Êâ?ÈüŸËŒÁÀh¼ËÒÁ×1ÛÈüŸßØÀÌÀóÚÀóÀ3Ïð¼ÀÚü ÍËÀóÀ4ÏÀ3Ï‚À^Î’âÈü¢Í{—ÈüŸßÉÚÚÀ4ÖÀÃÏüŽÊcŒ÷ÖÀSÏÍØÀÏƒääääääääáüŒÌÐÕÞÉÍ…ääääääääãüŒàÀyÀ™ÀçÀáÀæÀgÈVÀgÀáÞÀyÀ™ÀáÈÉÚüÎÀÀæÀyÈÀgÈWÀyÀžÎÀÕÙüÎ
ÈŒÀaÕüŒàÐÀáÕÙÛÀ‡ÈVÀfÊ×ÐÀáÕÙüŒÌ×ÀgÈÎÀyÀžÀçÀžÌ×ÀgêÞ¹ÀØüÊÎ‹ÁÀ˜¼ÁÃüÐÕ‹ÁÞ¸ÖäääãÉääääü–äääääääÀŸã	Èü›	ÈüˆÙØÆÀßÈ×ßÆÈ‹ÆÞÝÒºÐÀçÀ™Àžà×ÀfÙüˆáàÅÛÀ»ÈßÛÅ"pÝÜÜ»ÊÁÀžÀfÀ˜ÊÙüèÀÃÌAaaTÉÆ½Êcü‹ÒØRºÐÕà×ÊêÞÙüŠËÖÛË
F]ºÁïÀêÙÊÐÀ™ÕüŠÊÉÈQÛÊÿääääÞpb¶á?fü‹ÅˆäääääÞ
áj¶ÀÌáßÖÀ3ØÍ~üèÀÃÉbI
FSÉ¸ÀÏÀ3ÀÌÉØÖüˆáàÁÛÈ>ÛÁ|Ü×»ËØüˆÙØÆÀÃßÆÈ
ÃÞÝÜ¶ÀÌÏÀÃÏáØÖüâ%½áÀóÀÃÉÀÌÚßüâ‹3ü¤ÍÉ³ßüŸß]üŸÀ3ßÖÀÃÀÄÀÏËü À3ÀÌÀóÏ´ÃÛÖÀƒÈü¡ÅÉI±ÈÖÀ‡ÀÇÏüŸÀ3ÍðÀÃÀ7ÖËÏ¯Ç|ÀdüíÔ—ßØÀìÕÀsØÖÏ¯Æ{üçÍ™ÄÀÁÈ²ÅÈüMçÆ™÷Ï¡ÐäääääääääääääääääJüp¼Éäääääääääääääääää?ÈQü¡Àö³Å|ÎüpŽ1À‡ÀÃÏüíÎŽ92ÀŸÖÀ‡Ïü–AüüäääääääääääääÕ?ääääääääÚ¼ÊqüäääääääääääääÚäääãääääÞ·ÐÕÈüžÊÏ»ÊÀgÀáÞÙÀ™ÀáÈüžÄÆ¼ÊÀyÀžÎÀÕüžÅÅqüž×Ú»ÊÀfÊ×ÊÀáÀáÀ˜ü–À'ÀçÀžÌ×ÀgêÞü–	ÀCÀ˜ü–	ÀÂÞü—üü—ü–À¦üüü–ääääääääãü‰ÁÀÂ;‡ääääÀßääääü‰ÐÚPü‰ÂòˆüŠõÀ:À\ØŒ	Ãü‰Ð\À:ÀZŒÂü‰ÉÏññÀdŒIÀÞüŠÚ<üŠÆ\ü‰Ã3ü‰ÂÆñ$ü‰ÐÚÀ\]ü‰ÁÀÂÓîÀ;Çü‹Àdü‹ÀZü‹Øüüüüüüüüüüüüüüüüüüüüü„
–ëü„–çü„1È”ÁÃü¿ÁääääÏâäääÕŒÖäääãÉääääü€ÿääääääÀóäÏiŠÐäääääääÀŸã	Èü…i•ÁÈü…üÀóÀ3ÀÏÀÃÀÌÀÏÐÀçÀ™Àžà×ÀfÙü†yÀ3ÀÌÀÓÏÊÁÀžÀfÀ˜ÊÙüˆyJ’Êcü…üÑÀÃÀØÀÐßÖÐÕÀv×ÀÆêÞÙü	ÞjØÀOÎÏÀóØŒÖÏ	êÀâÀ{ÊÐÀ™Õü	À™Þà×ÀfÙÀdÏŽËÀÏÀÃÚÀóÀ3ÀÃÀ&ü‚	ÀžÀgÀ˜ÊÙÐÏËÀóØÏÀ3ÏÜü‡a–Ïü	À™êÀ‡êÞÙÀfËÀÌËØÖÀÃÀÃÍü	ÀùÀçÀ†ÐÀ™ÕàÖÀÏØÍØÀÏÉÚü„f•ÉÍü„~•ÉÚüüü‚ÂîÇÔ’ÅõõÉÈü‚	ÃøÄÆÏ*ü†A’Ã3ü‚	ÀŒb"ËÎz:ü†i•ÁÈüƒØräÏÊÏIãü†yäÕÊäüƒp•ÉÈü„~ØÙ"ÉÀñÀãÏ:ü‚òØÝÞööÀãÀçÏ2ü‰–ÅüüŠyË”Êqü…üÐÕøü…ÌáßÖÀØÅÊÀgÀáÞÙÀ™ÕÈü†ÏÀ3ÀÌÉØÖÊÀyÀžÎÀÕÙüŠYÒ•ÎÕü…ÌÏÀÃÏÀÜØÖÊÀfÊ×ÊÀáÕÙü€DÕüÀóÀÃÉÀÌÚÛŠÂÀ/ÀçÀžÌ×ÀgÈÞü€)Õ3ŽÁÀNÀ˜üäääääääääääääÚÐäääääääää“ÓÏ?ŽÁÀÃÞüäääääääääääääÕÉääääääääã”Õ•Êüü€	Õü€TÏ”ÂÀ¤üüüŽÊc“ÁÈyÊq“äääääääääÏŒÐääääääääãüŒÌ—ãÈ’ÁääääÀûääääÕŒÖääääÀßääääüŒàÀyÀ™ÀçÀáÀæÀgÈÀÇãàâÀûÀ=À™ÀáÈ—÷–ëüÎÀÀæÀyÈÀgÈ‘ÀIõØÀñÀÕ˜ö–çüÎ
È“Ìq˜ÆÈ”ÁÃüŒàÐÀáÕÙÛÀ‡ÈÀÇÇÀ²ÓÀŠÀ#ÀáÀáÀ˜—ÇÇ”ÂÂüŒÌ×ÀgÈÎÀyÀž‘ãÀ÷ÀÓÀãÀœãÀgêÞ—À{Ï”ÉÀÞüÊÎ•À3ÁÀ˜üÐÕ•ßÁÞüžëüÀ‰ÃxáéÁÀýÀñ•ßÖÖçÇüÏÈüÝÇÁÀÜÞÌÛÀ‡ÏÏüˆÇÏÁèq%ÇkÏÁÈBü‹Ã‰ÁÀ°4M;üÈÎÝÍø3,ÀÄ3üÏÍaÝÌø
PÀ¼È#Ð+ü'ŒäääÀääääääÀ¸âäääÈÁÈäääääääääääÀûäääâääääääÀûääääääÏü‰ÌÁçYÿääÀÏääääääÀôääääÈkÏyäääääääääääÀûäääâääääääÀûääääääÕüÏÄøÝÃøÚ	3N$Èq*üÀ‰Ãtáé!ÀñÚ
x,2ÖÄìÆ2ü‰ÁáþÆ‰Çü‰Ááþ$Nx<‰ÈüüšÀ6pŒÍ{Ëü©Ï?üšÀ78‰ÉÀóÀÌÀÏÜÖÀ3ØÍü©ÉÏÀ2ÀÌÉØÖüšø;ŒÉ[Øü¨ÉÚßÖÂÏáØÖüíÎ’ÖköÒ{ÀóØÂÉÀÌÚßüçÚœÀ¢Ø2üMç“ÀqäääÀÏáâÌ>üà’ÜäääÀµÞüw’Ñ4üpØüíÎ’Ð<ÀQÌ™Ïü¿ÏÀÇÈÐÀ£ÏüšÄB !êÀÏGÕüäääääääääääääÕÉääääääääã’iÀCüäääääääääääääÚVPäääãÁääää—Dü§ÁÂ—QÀ¡ÕüšÖÇb‰ÀŒ—YÀÁÕü¨ë—åüšÊÈ	À° iÀOåü¿!ÈüšÐÀ–	À¸ ÏÖÏÕü›ß‘äääääääääÚˆGÈÄÉÏüšøÇHŽâääääääääÕü›ß¡âääääääÀûääääääääääääääääääääääÀßäääääãäääääääääääääääääÀýäääÞŠÛÕüšÊÀxžäääääääÀûääääääääääääääääääääääÀßäääääãäääääääääääääääääÀýäääáŠÛÕü›ßüUÄÁ‡ÄÁÆÀ/xüŠÁÀŸÏmˆÛ¦ÀÈ•ÊÇüM	#ç‰ÐÖp‘ÍYyËüÈÀñ××ÉIÀqÄÚÀñÒÌˆÛ‘ÖÏn‹ÁÕ•ÖüÀhßÀ-èÁÀùÀhÀ.ˆÊÛ8ŽËäÀÏÀÏäÀ3ÀóØÍü~æÁõ!æõœËÀ3ÉÏÚÀÃØŒÁÀ°•ÀÈüˆÜ×IÏ	ÚŠø;‘ÉzËüvÛBèËáÉÉ<ØÀ3ŒÀ˜•ÃÏüˆÂ*+ŠöpŽÖÀÏäØÀ3ÀÏÀÌÚßünæÆÀ!È‘õÉÍÀ3üÀhßÀ-ÏÁÀqÀùÀhÀ.ˆÑøÉÚßüÌÀñ××ÉÐøÄÀèÚÀñÀÌ¯ë•ÂÈüšÑøÉÚÚÞèüŠÁÈnœÁÀñÞÝËŽÌ–Ïü‹È6öpÂŒÄKËa"ü™ÂŒÃnMäääääÀ·äÀûäääääääääääääääääääÀýÀ¿äÀßäääääãäääääääääääääääääÀýääääääääääääääääáü™ÁF‹Â
Õ|ÇˆÉÀßäääãÐäÀûäääääääääääääääääääÚßäÀßäääääãäääääääääääääääääÀýääääääääääääääääÞüšÈ=‹Á
ÕpÔŠÁÀ¸*’ÀÏBü—ÖäÞ?äääääääÀßäääÚ]Ì
ääÀûäääÀßääääÀ¿äÀûÀïääääääääääääääääääÀýääÀßâääääãü—ÛäÞ?äääääääÀßäääÚKËY
ääÀûäääÀßääääÀ÷äÞÖäääääääääääääääääääÀ¿äÏâäääääüšÈ=‹ÁÞQü™ÁF‹ÂðèéŽÙÕ’ÉÏü™ÂŒÃ‰Ãü™ÃŒÄ‰Ä‹Ù	Å’ÉÏ!Èüü´ÊcÁÈp•ÉÈü²ÌNÕü²àÀyÀ™ÀçÀáÀæÀgéˆÓ ’ÁÏü³ÎÀÀæÀiÈÀgêÕüµÎ
ÀƒÈ?j’Â
Èü²àÐÀáÕÀhÛÀ‡êÕ‰÷–ëü­òÀ#c×ÀgÈÎÀyÀžÉÕoÎ’ÁÈ‹ü­ôÀGÈUÎÆ•Áü­ÒÀGÈÕŠÉÀÏäÏÖäÕ×âãäÈü®ÐÈ‘ÁÀµääâäÏÀÀ¯äÀûääü‚4’ÁåÈü®ÐÈü­À*À#“Øð’ÁÕÈüüÎâääääääääÕ‹îð’ÂÅÈüÙääääÏÛäääÚ€ääääääääääääÀûáüÒ“ÆÆëà’ÂÈ›ÐääääääääääääÀûÞüÐÏ’ÅÇüÐÏ’ÄÈÌp“ÏIÈüÒ“ùüÙ£ÁÀ°B’ÀÈüÎü	À¸r’ÀÏI¡ÏüÁÏ¤Æ•øÈáüÖÏ£ÀIÀØô’ÂÀCÏÐå›ÀÌáßÖÀ3ØüØ¤ÁÀ˜•ÃŸÀÏÀ3ÀÌÉØüÔ¤ÙÇh’ÉÀÎÇÉÇ ËüÔ¥Æ´ÀÌÏÀÃÏáØüØ¤ÙÀÈx’ÉÀÆÇÉÏ›áÀóÀÃÉÀÌÚüšßääÀñäÞ¢ÁÕ•Ö À3üšâääääá¢ÔÍ„’ÉêÈÃÆßü‚	æ•ËÈüžÇ£Óç ’ÁÀÄÇùü‚	Þ•ÖÏ Äü‚AÞ)’ÂÖÏAšÇüƒx•ÉÏœÆaìÀ±ÀbÈÍÀbÏüâÈ£ÔÓÉÇ’ÉêÏÀ—ÃðáÙÀñÈÙÀñÕüâÏ¤À¸•ùÏ˜ø++æÇê!öü‚øÞ”ÐÀÇÏ™äääÈ‰ÕüíÇ”	äääÈ‰ÔüÀb¤ÞIÎ’ÐÏ—Ã++9"êüÃðxxÀñÕü‚pr’ÉÈI›ÆiñÀ1õ4ÎÏü–ÆžÇüÀÈ¢Ä–Ç¦âüßÏ¢Å»Èü¿ääÕ“ÐääÈüÖÈ âäÕ“ÉääÈüÛÏ¢Ì–Çü–ÁÞïÀâiÎÅöÈÃ–Æü—Àô<ÉÀÐ?ÈÉÏ¡Ô•ÉÈü—ÄÉà1)”òüœÀáÀÁÀÁÕ‡ÀÀ°¡Î•É›ÁÇü—ÄF!ÀÒÀÞõÀÐÓÑÀ…À°“	ÀÄü—ÀôÊËÉÀÑÀ#À-ÀñÆ×ø¢Áæ•ËÈ›øü—ÞaÉÕÁÀãÀáÕÐÈ–ü™ÍÀáÀÑÚÁ£Áè•ËÆü˜ËÎ
11–À¢üœÁòÁÍö¤Ä–Çü™ÜÀëÀòÀÐßÈpü–ÁHàÃÂöÀÙÀáÕÑÅÀ’Í¡Ù•ÉÏšÐääääääääääääÀûÞü·ääääääääääääÀûáü…–•ÃÀ°ü„Ê•ÅÍü„IÀl•ÀÎü„	ç•ËÇü…)–Èü…9•Âü„IÀ^•ÀÚü„IÑ•ÌÔü…q•Éü„	ÀN•÷Ôü„IÀî•ÛÔü…)–Èü„	Å•ÄÈüü…Î•ÊÔü„Ñ•ÅÔü…à•Ðü…è•ÐÇü…ü•ÐÕü„IÊ•ÌÍü	ääÀýÀýäÏÖääÀïÀïäüIääÀùÀýäÕÛääÀÏÀïäÈü„	–ìü„)À†•èÍü„1Ý”ÁÉÕü„9Ó”ÂÁÏü„{Ï”ÉÀÞüÿääääääääääääääääääääääääääääääääääääÀßääääääääÀýäääääääÞŠÁ–Äü
äääääääääääääääääääääääääääääääääääääÀßääääääääÀýäääääääá‹Å–Èüüüü…ï•ÐÙü„	ä•ÖÞüüüüü8~üþÊØ=ÃüDËàÌüéÌcº÷–ëüˆÂ»ö–çüm=»ÆÈ”ÁÃüu>¶ÁääääÏâäääÕŒÖäääãÉääääü=ºäääääääÀóäÏiŠÐäääääääÀŸã	ÈüéÀ}¿Í•ÁÈüD€üÀóÀ3ÀÏÀÃÀÌÀÏÐÀçÀ™Àžà×ÀfÙüþ~¿ÏÀ3ÀÌÀÓÏÊÁÀžÀfÀ˜ÊÙü8ÂØ9Ã¾ÏJ’Êcü…üÖÀÃÏÀÐßÖÐÕà×ÊêÞÙüÿ½ÍØÀÏyÀóØÁêÀæÙÊÐÀ™Õüÿ€YÏ•ÀfüˆÏ•àüüüüüüüü‚|ßÆÄÆÈÉÀáÀùAÃü‚>Û’ÁÚÞàü‚I1È‘Ì
ÀŒü…6•ÁÀ°üƒ“ÞØüƒÑ“ÞàÔü…•ÉÞü‚I–Ìü‚>Û×“ÁÚÞÚü‚|ßÜïÃ‘ÉÀáÀùÀòÄÆüüüüŠy•Êü…ü•ÐÕü…ÌáßÖÀØÊÀgÀáÞÙÀ™Õü†ÏÀ3ÀÌÉØ‘ÊÀyÀžÎÀÕüŠY–Îü€DîÌÏÀÃÏÀÜØ‹ÂòÍRÀfÊ×ÊÀáÕü€(èüÀóÀÃÉÀÌÚ‹ÁíÓÀçÀžÌ×ÀgÈü€8è3ŽÁÀÄÓÀ˜ü‡?ÓÞüü˜8ü€Tî”ÂÀ¢Íüüü€ÿääääääääÏŒÐääääääääãü¿ÁääääÀûääääÕŒÖääääÀßääääü„
–ëü„–çü„1È”ÁÃü„9Ç”ÂÂü„{Ï”ÉÀÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü„
–ëü„–çü„1È”ÁÃü¿ÁääääÏâäääÕŒÖäääãÉääääü€ÿääääääÀóäÏiŠÐäääääääÀŸã	Èü…i•ÁÈü…üÀóÀ3ÀÏÀÃÀÌÀÏÐÀçÀ™Àžà×ÀfÙü†yÀ3ÀÌÀÓÏÊÁÀžÀfÀ˜ÊÙüˆyJ’Êcü…ôÑÀÃÏÀÐßÖÐåÀv×ÊêÞÙü€È3À;À¯yÀóØ‹áÁÀÝÙÊÐÀ™Õü€ÀŸÀ‡ÀáÀæÀgÀ†YÏÀÌáßÖÀ3ØÍfüÀæÀyÈÀgêÕÖÏŽÀÏÀ3ÀÌÉØÖ~ü…	À‡È”ËØü€À˜ÌÙÛÀ‡êÕÀÌÏÀÃÏáØÖü€ÀžÙÎÀyÀžÐÕáÀóÀÃÉÀÌÚßü‚QÎ•À3ü‚Õ•ßüü9Ã"bÆ:ÐÀòÇüEJÚÄ³ÀƒÀáÚÔ’ÃÛÖÀƒÈüà#Z°Å
ÀÁÚÞÞÈÖÀ‡ÀÇÏüpÙÀ¹ÀiÄÚÊÉÀËØÒÀÙÀ°­ÄdËÈÇ|ÀdüÁÀ°À¸À´ÀuÎÁÀhÀ«ÀZÀ:À´Ô­ÃJÎbÆ{üHÀÈìÉÂÇÀ&ñÉÕHÇ­ÂnÅÈüÉÌx	À˜ÚMÕx®Î
ÏrŽÉJüÁÚ¸øÁÈ|®ÕÚzŽÐ?ÈQüÁÚ9³ÂdËÅ|ÎüÊËìììðÀ˜ÂÇñL®ÃÚÞÙÆÀ‡ÀÃÏü¸ÀºÀtÕÁÀhÀ§ÀZÀ´®ÄÀÀáÚÞÇ2ÀŸÖÀ‡ÏüÃÃÀtÀvÓÀhÎÚÅÀcÀÃØîÃÂÀFÙÈ­Å–ÈüüŠyË”ÊqüD€ümÐÕÈü…ÌáßÖÀØÍÊÀgÀáÞÙÀ™ÀáÈü†ÏÀ3ÀÌÉØ‘ÊÀyÀžÎÀÕüŠY–Îü…ÌÏÀÃÏÀÜØÀ3ÊÀfÊ×ÊÀáÀáÀ˜ü€DîüÀóÀÃÉÀÌÚßŠÂÀ&ÀçÀžÌ×ÀgêÞü€(È3ŽÁÀOÀ˜ü€8è?ŽÁÏÞü	•Ñü•Êü—ü€Tî”ÂÀ¦üüü€ÿääääääääÏŒÐääääääääãü¿ÁääääÀûääääÕŒÖääääÀßääääü„
–ëü„–çüiàÆ9sÔÈ+ÅÂÂ[§ÆÈ”ÁÃüpIÞáá‰Æ§ÇÇ”ÂÂüÅ>ˆÈ+®À{Ï”ÉÀÞü§À‹ÊÄÀñÔÚÚÉÀËÀGÀ‹ÈÀyÇÃÀ—ÅÀÖöÀÁÕ.ÀYÀâÀéÀâÀÏÀÖÖü«ÀG	ÀhÀéÀiÀhùÀ«ÀÀGÇÀµïÏÑÈÛÀ–éÀâÀÐÀZÀÑÀêÀÑÀÖÀŽÀ–À–Èüè	ææÀ˜æÊÇÃèÈìðø‰ÁÀ#ÆÁóÁóøøøÀ‰üððÉÏ<
Õ
ÕÁÕÖüÔøùÏ%ÈÕ
ÚÁÚÖÈÈüSÄÈ!
ŠÈüÈÁÅæÀ˜ÂÇÃÈHˆ	ÅøÁóÆ
ÍÁÍøÈøøÈüÇÉÀùÀtÁÀiÀhùÀ×ÀÇ´ÁáÛÀ–éÀâÀè:ÀÐÂÀÐÀÈÀÀ–ÈüGçàÀíÄÚÀñÀ#À³ÀGçÇÙÈÔæÀŽÀÖöÀÑÀÚÂóÀÀâöÀâÖÅÀÖüüüüüüüüüüüüüüüüüüüüüüüüüüüü„
–ëü„–çü„1È”ÁÃü¿ÁääääÏâäääÕŒÖäääãÉääääü€ÿääääääÀóäÏiŠÐäääääääÀŸã	Èü…i•ÁÈü…üÀóÀ3ÀÏÀÃÀÌÀÏÐÀçÀ™Àžà×ÀfÙü†yÀ3ÀÌÀÓÏÊÁÀžÀfÀ˜ÊÙüˆyJ’Êcü…üÖÀÃÏÀÐßÖÐÕà×ÊêÞÙü…iØÀÏyÀóØÁêÀæÙÊÐÀ™ÕüˆYÏ•ÀfüˆÏ•àüüüüüüüü‚ÃèÈÚ’ÆññÐÈü‚Ä	Þ’ÅÇÏü†!–Çü‚IÌ	Ï’ÌÏü†ð•ÐÈü‚	À°8’ÀÈ	Ïü…	–Äüƒà•Ðü„üÀyÞ“ÐÀãÀÏÏü‚íÙÞÚ’òÀ#ÀÇÀÇÈüüüüŠy•Êü…ü•ÐÕü…ÌáßÖÀØÊÀgÀáÞÙÀ™Õü†ÏÀ3ÀÌÉØ‘ÊÀyÀžÎÀÕüŠY–Îü…ÌÏÀÃÏÀÜØÊÀfÊ×ÊÀáÕü€DÀÆüÀóÀÃÉÀÌÚ‹ÂòÍÀçÀžÌ×ÀgÈü€)Àï3ŽÁíÙÀ˜ü€9Ä?ŽÁÀÄÇÞüc–ÌüÆ–Íü€	Àk–ÀXü€UÀï”ÂÀ¢Ùüü€ÿääääääääÏŒÐääääääääãü¿ÁääääÀûääääÕŒÖääääÀßääääü„
–ëü„–çü„1È”ÁÃü„9Ç”ÂÂü„{Ï”ÉÀÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüÆÂü¡ÇüÔüžÓØÀ\À´èÙüÀØÀ\ÀZÀ:À°´üžñÀdñH§ßäääääääääääääääÀßäääääääääääääääääÈüœÁÀŒ<ÌÙ§ÛäääääääääääääääÀßäääääääääääääääääÏüÞ\|üÞ1üœÉÊñññxÀLüžÀ\À]À:Ô´ ÷–ë‘åüœÂÂÀ:À;ÒÀ4ÍÙ ö–çÁÅü„1È”ÁÃ‘Äü¿ÁääääÏâäääÕŒÖäääãÉääääˆÖäääãÐäääãü ÇŸäääääääÀóäÏ)ŠÐäääääääÀŸã	ÈÀóäääÀÏáääáü…i•ÁÈŠÍÏü…üÀóÀ3ÀÏÀÃÀÌÀÏÐÀçÀ™Àžà×ÀfÙüÀóÀ3ÀÏÀÃÀÌÀÏËü†yÀ3ÀÌÀÓÏÊÁÀžÀfÀ˜ÊÙ}À3ÀÌÀóÏÉÏüˆyJ’ÊcJÖü…üÖÀÃÏÀÐßÖÐÕà×ÊêÞÙüÐÀÃÏÚßÖÉÏü…iÀ=ÀOÌÏÀóÒÁêÀêÙÀÆÐÀ™ÕlÀ4ÀÏyÀóØÖÏü	ÞdÏŽÖÏLÀ&ŠËÏüœÒÈÅŸÁÀ™Þà×ÀfÙÀgÏŽËÀÏÀÃÚÀóÀ3ÀÃÜŠÖÏüœâ?žÁÀžÀgÀ˜ÊÙ‘ËÀóØÏÀ3ÏüœòCÅ¥Ì–ÏüœÀÁ××ÀZÀöÀâÀåÈœÁÀ™êÀ‡êÞÙÀfËÀÌËØÖÀÃÀÃÍüÀ-À-ÀZÀéÀÑÀÕÈœÁÀùÀçÀ†ÐÀ™ÕàÖÀÏØÍØÀÏÉÚüõõ	êóÆ Àf•ÉÍüž×
Õ¡à•ÉÚüžÛ
ÚüœÀÁD ÂÂîÇÔ’ÅõõÉÈà×ÛÅÈüœòõÀ	ÁÍŸÁÃø’ÄÆÏÜßÖêÈüœâÀ-À-éÀÐÉÈ¡È’Ã+‹ÀaÈÉ+üœÒ××ñÀöÀâöÈÁÀŒbËÎz2oUsü†i"’ÁÈ:?<çCüƒØräÏÊÏIäääääääÈ<Ñ
Öáü†yäÕÊäääääääêÈRÁÀã
ÖÜüƒp•ÉÈ‹Ê9aêÀÈBü„~ØÙ"ÉÀñÀãÏ:ÀžÀFÀyÞÀ9À¸ÀáËÝßÀÀCØü‚òØÝÞööÀãÀçÏ2fÀÀyÀžÎÀÚÈÀÏÀ3ÀÌÉØü‰–ÅˆÌs]ü¦êÚÙ×ÐÀáÀáÀŒÏÀÃÏáØüŠyË”ÊqSÐÀ‘ÕÌ×ÀgêáÀóÀÃÁÀÌÚü…ü?ÐÕÞÀ˜3ü…ÌáßÖÀØÍÊÀgÀáÞÙÀ™ÀáÈÞ?ü†ÏÀ3ÀÌÉØÖÊÀyÀžÎÀÕÙü›ÉÈF¦ËØ•ÀaÕü›ÖÕDÄ¢ÀÌÏÀÃÏÀÜØÖÊÀfÊ×ÊÀáÕÙ‹ÃÀLÎü›ÃÇFœíÀFüÀóÀÃÉÀÌÚßŠÂÀ&ÅÀçÀžÌ×ÀgêÞ‹ÂÀžÔü›ÌÀ#ÀÅÀ˜À¸À…ÀgÀ–ÀÀ›ðÀ3ŽÁÀOÆÀ˜ÉæÔüœùÀ£áÀtÁÀkÀVÀÀŽÈšÓÈ?ŽÁÀÈÆÞÊÔüœÂîÆìYÈøø²É—Ëü¡ÐÈ´Ê—ÀÔü¡ÀÈžÖ•À–ùÀ^Îü›ÌÆžÀTÀF”ÂÀ¯Åü›ÃîÇHìÃÈøü›ÖÀååtÀ¸ÀëÀ®ÀÈü›ÉÀƒÀÄíÓÀtÀgÀfÀÅÈšäääääääääÏŒÐääääääääãˆÐääääääääáü¿ÁääääÀûääääÕŒÖääääÀßääääˆÖääääääääãü„
–ëüŸÈ¤ö–çü„1È”ÁÃü„9Ç”ÂÂü„{Ï”ÉÀÞüüüüüüüüüü±ÁäääääääääääÀßääääääÀûääääääääääääääääääääääÏü±ÉäääääääääääÀßääääääÀûääääääääääääääääääääääÕüüüüüüü¨ÛääääääääääääääääääääÀßääääääÞü¨ßääääääääääääääääääääÀßääääääáüüüüüüüüüüüüüüüüüüüüüüüü½ÛääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞü½ßääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüüüüüüüüüüüüüüüüüüüÿ¡]¥r¡¹$¡þ²Youµareµnowµreadyµtoµproceed.¡þ	²
Optimization´µStrategies¡þ	©²The´µoptimizationµstrategiesµavailableµinµtheµDCGµallowµyouµto¡þ	òexploreµtheµimplementationµspaceµofµtheµcodeµtoµgenerate.µIt¡þ
:comprisesµaµlotµofµsynthesizableµprogrammingµstructuresµwith¡þ
ƒdifferentµcharacteristics,µbutµtheµalgorithmicµbehaviorµisµidentical.¡þ
ÌTheµoptimizationµstrategiesµareµspecifiedµbyµchoosingµ`Settingsµ²>²¡þSet'µoptionsµinµtheµxdcgµwindow,µseeµFigure 3³5.’*–dD“I501ileaf_page_string1:3-15¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³15¡,É²Figure 3³5³Set´µOptionsµDialogµBox¡@‚²¥	öäÒÓÐ@V?_ó­ô®}û¾ÄüâÏ»ßÕüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÀÏäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüÐÕ»àüääääääääääääääääääääääääääääääÀçääääääääääääääääääääääääääääüšÖ!üšÀÈÅÌüšÁÀÀ&ÐÀ†ÀÉÀ˜ÚÀØÝüÔ™ÃÀÀ¦ÀïÀ©êÀhÀ4À¼šÕüÌ™À3Æ™ÁÈüšËÀ†˜üšÂÐÈdüšÌA.üšÀÀ—À–ÀïÀ¥êÀhôüšÖÖÑÐêÀÃÀ˜ÚÀÌÞüüžÊüüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüüüüüüüüüüüüüüüüüü	äääääääÞüüääääääÕüüüüüüüÛÖÈ11A
ÏÃÂ;ÉÕÚÔÓÒAÇàpüßÀŸÏ99~ÁÈ
ÈË|ÐÀñÚÞÝÜÁÈ	ÚrÅüÚÏÕÏyIÉÁÀŒÀÆÀcüÚÏÏ„À^:ÁÈÁÈQÉÖÀ‹ÀÅÕaÙÜ×êÀŽÏMÖÐÏöÀñÄnÀ‹ÀÆÕüßI	
ÊÖÀÇÀãÚiáâßÀƒÐÕÆÚSÛÀÕÁÞnÀÇÀæÕüÏ|7ÈÊÂÁÀáÞEÊÏüÀÁÈþ‰ÁÏÉÀÐ\ÖÈsSIÀÁ\ÀÆÀÁÚüÏŒÅÀÐdÛÈ{?ËgÕÉÚü|{ÎÍwaÇ„ÂÁÜkÁÀŒÀÆÀcB*
Ê)ü~þ?ÀŸÏ
ÀÜÍÛÀ‡ÀãÀñÀ±ÈáâßÌÁÉÀãÞÞÝÜÍÛÀÏÉÀñáÀlÛÀÇÀáÚü‹ÏÎÍÀzïÛÖÀŸÕÆÀaáÌÜÆÖÀCÀÁÀáÀñzÜßæÄÀ#ÀÁÚÔÓÒÆÖÀGÀÁÁÀèÀôÝÑÊÖÀƒÏÕüÀ°ÀØáŠÛÕüÁÚÞÝšßÈü›ÄÃ“ÄüüüüüüüüüääääääÕüü	äääääääÞüüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüüüüüüüüüüüüäÕ™ßá!!üEÄpÓÌàËÑÇ3ü‘ÞÝÀ_Yü¢ÍQüNÕÚÞÀœÜ×IÀÄÆÄÃÝÀNÛÐÀÃÀâÚþÜÀ'ÖÈÉÀâÄÞÀœ×ÛÖÀ‡ÈüÀñÞáãâßÕþâßÈŒÛÀçÀñÞúâßÀŸÏÐÚÁáãßßÀÀÏÏü2	IÀaÀ°)AŒÛZ!KÌ1Æ;üÕøÂÜLÀaÀ°ÝÁß•ÌÜAøÂÖÈüNÚÁÞ?~È”ÍßÀ°áÀŸÈü"
6ŒÍQrŒÈÇüÚÁÞ~ßÀçÚü?ÈŒÀ_ÀÀçÀñÞ¾àÏÐÚÀáÞ?ÛÀÏüNÀâÄÀôÇÜ×ÈÀÀÃÀÐÈÇÝÆÛŒÌàËÖÀ‡ÀÃÕÚþÜÅÖÈÉÕÇÞÇïÛÖÀGåüäÕ™ßá!!üü¨ÂüüüüüüüüüüüüüŸßá!!ü¢ÌàËÑÇ3ü£ßYü¢ÍQü¦ÐÀÃÀâÚþÜÀ'ÖÈÉÀâÄÞÀœ×ÛÖÀ‡Èü£ßÀçÀñÞúâßÀŸÏÐÚÁáãßßÀÀÏÏü£ÜZ!KÌ1Æ;ü«ÌÜAøÂÖÈü«ÍßÀ°áÀŸÈü¢ÍQrŒÈÇü¥ÀÀÀçÀñÞ¾àÏÐÚÀáÞ?ÛÀÏü¢ÌÇËÖÀ‡ÀÃÕÚþÜÅÖÈÉÕÇÞÇïÛÖÀGåüŸßá!!üü¨Âüüüüüüüüüüüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüüüüüüüŸÛäääääääääääääääääääääääääÈüü¶ßäãüüŸÁäääääääääääääääääääääáüüüü
É”ÐÑüŠËÉ-‹ÖÀŒ	’ßãüüKÀáÚÙÝØóùÀáÀè|ÀnÀ'ÖÀÀÃÀáÀéÄˆÈÐÀÆÕ‘ÖÞüÀóÞáãàRÉÀóÞþÀnßÀÀÍÀÇÀóÞŠÐÀæÕü,ÄÈ!À6üÕ|ˆáÈÉÕ‰À6ÏüKÚ~MÚ~ÈÉÀóÚŠÖÏ’ÖÞü!LÕAÁBÆÉÕÅŠÇÅüÀóÞüàßÀÀ†ÏÉÚþÛÀƒÀçÀãÀñÚˆÀÀÀÁÚ‘ßãüKÀáÀñÃÝÀ=×ÀÀ‡ÀÄÀÞ|ÑÅÖïÀÃÀãÞÕ'ÖÀ‡åÕü—ÁüÉÞOÀùÞüÁÚÚÚüüŸÁäääääääääääääääääääääáüüŸÐääääääääääääääääääääääßäãüü¶ßääÈüüüü«Çeü¬Á3Ìüü ÛÖÀ‡À¤óÀñÙÝÜÐÀÆÀáÚÞÀÜÓÛÀÈü ßÀŸÀÏÏÉÞáãâÀÀæÀãÀùáÀÜÍßÀÏü¡È9BÂC#ü ßÖÈ	Ú>ÏÁÚü ÛÀÏ	Þ?ÕÁÞü Æ:C)Âü ßÀŸÀÀÇÀóÚþàÀÀÁÀóÀñáÜÀ6ßÈü ÛÖÀ‡ÀƒÀÑÀñÃÝÜÀGÏÀáÚÞÒÜÛÅÇüüü£ÆüüüüÏA!ÉÈBÌüÈcJdüüKÀÐøØÜJÏÁÚÞÂÓÀ/ÖÇüÚÁáàßÕÉÀùáÑÍÛÀŸÏü?Ø)üˆÜpÆÊ>ËJÈüÕ~pÈŒÊ_JüÏ:ÂØüÀáÀ±áààÀÀãÀcÀùáÑÀ6È‹ÖÑÐÀÄÀáÀñÓÝ×ÒÖÀ‡ÏüÀñÚÞÀ¼À=ÛÀÃÀáÚÞéÜÆÀŸÏ‹ÛÀŒÖÀçÀñÀùáãßÌÛÀÇÕü Å
:ÂÆ:üÚŽÛÏÐÏöÚÃÏüKÕŽÖÈÐÕÉÚÏü¥Å;Çü¡ÀÀÏÉÚþÛÀÏÀÃÎü ÆÀÀ‡ÀÂÁÀèÈÝïÛÖÀ‡À£Õüüüüüüüüüüüüü£Ãy
ü¥Ïüü ÛÖÀŽÀÁÀáÀÁÙÝØü ßÀŸÀÇÀãÀñÈáãàü¡ÈBü§Ýü§àü¡Èü ßÀŸÀÁÉÀñÀ°üàü ÛÖçÀ%ÀáÀñÃÝÀ=üÏA$pYÁÈqüÈcvYQÁÈqüüKÀÐøØÜÀÃÀáÕÞÀÈÉéÚÕÀ¼À=üÚÁáàßÀçÀóÀñábÖÏÉÁÞÏàâü?.$
:üˆÜøÐääääääääääääääääääääääüÕ~üŠàüÏ:Â-‹ÝäÀïÀ·ÀÛÀíääÞ?ÀÏäääääääääääÏüÀáÀ±áààÀ	ÐÀóÀñÞÀlQÀÃÎØ~ÕÉÚäÏüÀñÚÞÀ¼À=Û!À#ÀáÀèÞÝÅÀGÀÃÀâÄÞéâ.ÀGÀÄöÚüüÚ•âüKÕ•ÜüüüüŸÐääääääääääÏüüŸÛääääääääääÚüüüüüüüüüüüüüŸÛääääääääääÚüüŸÐääääääääääÏüüüüüŒÈAüÏA	À‡ÕÏÕppÁËüÈcÚyøqY‹ÐäÏü‹ÉrüKÀÐøØÜ|ÜÀ/!ÀEÕÄÞ<ÒÀÀ‡åÀ‡ÀÅÀáÚ	äüÚÁáàßÚþâÛÈIÚÁá~ÌÖÀÏÕÀÏÀãÀóÞü?Ú,ÉÎ!$üˆÜÉÎŒÁÚüÕ~”ÖÏÞ	äüÏ:ÂJr+ÈüÀáÀ±áààÀÚØãâÛÈÖÕ	áÀlàÀÏÕÉÚäÏüÀñÚÞÀ¼À=Û	À‡ÕÏÞÝÜÖÀ¤ÅÈÞÝÀ=ÛÅÀOÕ*ÀGÀÄöÚüŒÈAüÚ˜ÖÕüKÕÆŠÐÏüüüüŸÐääääääääääÏüüŸÛääääääääääÚüüüüüüüüüüüüüŸÛääääääääääÚüüŸÐääääääääääÏüüüüüŒÈAüÏA	À‡ÕÏÕppÁËüÈcJÚyøqY‹ÐäÏü‹ÉrüKÀÐøØÜ|ÜÀ/!ÀEÕÄÞ<ÒÀÀ‡åÀ‡ÀÅÀáÚ	äüÚÁáàßKÚþâÛÈIÚÁá~ÌÖÀÏÕÀÏÀãÀóÞü?LÕ,ÉÎ!$üˆÜÉÎŒÁÚüÕ~”ÖÏÞ	äüÏ:ÂJr+ÈüÀáÀ±áààÀØãâÛÈÖÕ	áÀlàÀÏÕÉÚäÏüÀñÚÞÀ¼À=Û	èyÞÝÜÖÀ¤ÅÈÞÝÀ=ÛÅÀOÕ*ÀGÀÄöÚüŒÈAüÚ˜ÖÕüKÕÆŠÐÏüüüüŸÐääääääääääÏüüŸÛääääääääääÚüüüüüüüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüüüüüü	ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüü	ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüüüüääääääääÞŠÖäääääääää’ÁäääääääääÕüüääääääääÕŠÉääääääääá“âääääääääÈüüüüüüüøéÖÏšÖÈpüáÊÐÕ3–ÛÏtü_­Çüg‘ÉÀáÚÞÀÜ—ÐÀÅÀáÚÞüpÐÀçÀóÀùáÀÜ—ÐÀãÀóÀùáü?ÊÏ!šÂ!üoÁÀƒÀãÚÞ˜ÐÏøüg‘ÀÃÀñÞá˜ÖÏüü_‘ÎÂ—ÇÇ!üáÊ‘ÐÀãÀùÞÜ–ÛÀÏÏÉÀùÞÀlüøéÄÀ#ÀáÚÞÒ–ÖÀ‡À¤öÚÞÝüüüüüüüüüääääääääÕŠÉääääääääá“âääääääääÈüüääääääääÞŠÖäääääääää’ÁäääääääääÕüüüüüüÌ¼ÁÈüÔ½ÕüüüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÏ»ßüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüâÏ»ßÕÿ¡ˆ‚¡þ–Theµoptimizationµstrategiesµyouµselectµapplyµforµallµblocksµofµthe¡þßblockµdiagram.µToµsetµoptimizationµstrategiesµthatµareµappliedµtoµa¡þ	(singleµblockµorµaµgroupµofµspecificµblocks,µuseµattributes,µas¡þ	pexplainedµinµtheµAttributes"µsectionµlaterµinµthisµchapter.¡þ
:Whenµselectingµaµnewµsetµofµcodeµgenerationµstrategies,µno¡þ
ƒchangesµneedµtoµbeµmadeµwithinµtheµBDE,µnoµchangesµneedµtoµbe¡þ
Ìmadeµinµtheµschematic,µandµaµnewµnetlistµdoesµnotµneedµtoµbe¡þgeneratedµsinceµtheµalgorithmicµbehaviorµremainsµunchanged.’d¥D“I501ileaf_page_string1:3-16¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³16¡þÏ²
Scheduling¡þl²You´µcanµchooseµoneµofµfourµschedulingµstrategies:¡þï²S¡Xï²Flat¡þb²S¡Xb²Sequenceµdetection¡þÔ²S¡XÔ²Hierarchical¡þG²S¡XG²Combined¡þ²FlatµScheduling¡þ}²Thisµschedulingµstrategyµgeneratesµaµflatµscheduleµforµtheµsystem.¡þÅTheµschedulerµassignsµaµmaximumµlocalµblockµfactorµtoµanyµblock¡þactivated.µThisµfactorµisµspecificµtoµaµblockµandµmeansµthatµtheµblock¡þWwillµprocessµaµmultipleµofµlocalµblockµfactorµsamplesµwhenµactivated.¡þ÷Afterµoptimizationµofµtheµdelayµblocksµ(theµ3³delayµblockµisµremoved)¡þ@thisµblockµdiagramµcontainsµ20µblocks.µAµflatµschedulingµstrategyµwill¡þˆgenerateµaµscheduleµwithµ7175µblockµappearances.µTheµgenerated¡þÑcodeµwillµbeµquiteµbigµforµaµblockµdiagramµwithµ20µblocks.µThe¡þreasonµisµthatµthisµexampleµhasµfeedbackµstructures.µFeedback¡þbloopsµcreateµaµbottleneckµforµtheµthroughputµofµaµsystemµsinceµthe¡þ«delayµsizesµinµtheµfeedbackµloopµdetermineµtheµupperµboundµof¡þôsamplesµthatµcanµbeµprocessedµwithinµtheµloop.¡þ	Ï²SequenceµDetection¡þ
:²Thisµschedulingµstrategyµtriesµtoµfindµoneµorµmoreµsequencesµof¡þ
ƒblocksµinµtheµflatµscheduleµthatµappearµmoreµthanµonceµinµaµrow.µThe¡þ
Ìresultµisµaµmoreµcompactµscheduleµbecauseµofµtheµconsolidationµof¡þidenticalµsequencesµofµappearancesµintoµaµsingleµloopµconstruct.’¥ŽD“I501ileaf_page_string1:3-17¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³17¡þÉ²Example 3³1´µshowsµtheµscheduleµgeneratedµwhenµyouµselectµthe¡þsequenceµdetectionµscheduling.¡,ý²Example 3³1³SequenceµDetectionµSchedule¡þc²/*´µSchedule:¡þ–µ*µ512µxµCONST_GENµ(M15)¡þÊµ*µ128µxµSIN_GEN_TBLµ(M19)¡þþµ*µ512µxµFORKRµ(FORKR_SIG_0012)¡þ2µ*µ512µxµADD2µ(M17)¡þfµ*µ512µxµFORKµ(M16)¡þšµ*µ512µxµFORKµ(M18)¡þÎµ*µ1µxµFORKµ(M24)¡þµ*µ1µxµMUL2µ(M6)¡þ6µ*µ511µxµ{¡þiµ*µµµ1µxµFORKµ(M25)¡þµ*µµµ1µxµMUL2µ(M7)¡þÑµ*µµµ1µxµADD2µ(M5)¡þµ*µµµ1µxµSUBµ(M20)¡þ9µ*µµµ1µxµFORKRµ(FORKR_SIG_0014)¡þmµ*µµµ1µxµFORKµ(M23)¡þ¡µ*µµµ1µxµMUL2µ(M10)¡þÕµ*µµµ1µxµMULSµ(M22)¡þ	µ*µµµ1µxµADD2µ(M14)¡þ<µ*µµµ1µxµFORKµ(M24)¡þpµ*µµµ1µxµMUL2µ(M6)¡þ¤µ*µµµ1µxµMUL2µ(M21)¡þØµ*µµµ1µxµMULSµ(M12)¡þµ*µµµ1µxµADD2µ(M9)¡þ@µ*µ}¡þtµ*µ1µxµFORKµ(M25)¡þ¨µ*µ1µxµMUL2µ(M7)¡þÜµ*µ1µxµADD2µ(M5)¡þ	µ*µ1µxµSUBµ(M20)¡þ	Cµ*µ1µxµFORKRµ(FORKR_SIG_0014)¡þ	wµ*µ1µxµDMPNR_DSPµ(M4)¡þ	«µ*µ1µxµFORKµ(M23)¡þ	ßµ*µ1µxµMUL2µ(M10)¡þ
µ*µ1µxµMULSµ(M22)¡þ
Gµ*µ1µxµADD2µ(M14)¡þ
{µ*µ1µxµMUL2µ(M21)¡þ
¯µ*µ1µxµMULSµ(M12)¡þ
âµ*µ1µxµADD2µ(M9)¡þµ*/’Ž´D“I501ileaf_page_string1:3-18¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³18¡þÉ²Each´µlineµofµtheµscheduleµrepresentsµanµappearanceµofµaµblockµand¡þhasµtheµstructure¡,² ¡þ<²!local_block_factor² >´µxµ<²!model_name² >µ(<²!model_sequence_name² >)¡þ²This´µscheduleµisµalsoµcalledµaµ`schedulingµperiod'µsinceµitµcanµbe¡þarepeatedµanµarbitraryµnumberµofµtimes.µBlocksµareµactivatedµwith¡þªdifferentµ(local)µblockµfactors.¡þMCombinedµwithµtheµflatµschedule,µtheµnumberµofµappearancesµhas¡þ•beenµreducedµsignificantlyµsinceµperiodicµsubsequencesµhaveµbeen¡þÞcombinedµinµaµloop.µTheµblocksµbelongingµtoµaµsubsequenceµare¡þ'includedµinµbrackets.µAµsequenceµofµ14µblocksµhasµbeenµfoundµwith¡þoaµrepetitionµfactorµofµ511.µThisµmeansµthatµthisµloopµconstructµstands¡þ¸forµ511µxµ14µ=µ7154µappearancesµofµtheµflatµschedulingµversion,¡þwhichµresultsµinµaµsignificantlyµmoreµcompactµschedule.¡þ£Noteµthatµsequenceµdetectionµisµaµpostprocessingµoperationµapplied¡þìonµtheµflatµscheduling.µTheµconsequencesµofµthisµare:¡þp²S¡Xp²Thereµisµ²noµ²reductionµinµtheµactualµnumberµofµactivationsµeven¡X·thoughµtheµnumberµofµappearancesµhasµbeenµdrastically¡Xþreduced.¡þq²S¡Xq²Allµfunctionsµ(ifµnotµinlined)µstillµhaveµtoµbeµcalledµfromµinsideµthe¡X¸loop.¡þ	+²S¡X	+²Theµdataµmemoryµrequirementµdueµtoµtheµuseµofµsignalµbuffersµis¡X	ridenticalµtoµthatµofµtheµflatµschedulingµversion.’´D“I501ileaf_page_string1:3-19¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³19¡þÉ²Hierarchical´µScheduling¡þ4²Thisµschedulingµstrategyµdoesµanµanalysisµofµtheµtopologyµofµthe¡þ|blockµdiagramµinµorderµtoµachieveµcompactµschedules.µTheµfeedback¡þÅloopsµareµdetected,µmadeµhierarchical,µandµareµconsideredµasµa¡þseparateµschedulingµunit.µThisµmakesµitµpossibleµtoµoptimally¡þVscheduleµblockµdiagramsµthatµcontainµnestedµfeedbackµloopsµand¡þŸlimitsµtheµinfluenceµofµtheµloopsµtoµthemselves.µTheµbenefitsµof¡þçhierarchicalµschedulingµareµparticularlyµapparentµwhenµtheµdelay¡þ0sizesµinµtheµfeedbackµloopsµdiffer.µBlockµprocessingµisµalsoµenabled¡þyoutsideµtheµfeedbackµloops,µwhichµmeansµthatµaµuser-supplied¡þÁglobalµblockµfactorµcanµstillµbeµutilizedµdespiteµthereµbeingµfeedback¡þ
loops.µ(Forµinformationµonµglobalµblockµfactors,µseeµlaterµinµthis¡þSchapter.)¡þñExample 3³2µshowsµtheµscheduleµgeneratedµwhenµyouµselect¡þ:hierarchicalµscheduling.¡,ç²Example 3³2³HierarchicalµScheduling¡þ<²/*´µSchedule:¡þpµ*µ512µxµCONST_GENµ(M15)¡þ¤µ*µ128µxµSIN_GEN_TBLµ(M19)¡þØµ*µ512µxµFORKRµ(FORKR_SIG_0012)¡þµ*µ512µxµADD2µ(M17)¡þ@µ*µ512µxµFORKµ(M16)¡þtµ*µ512µxµFORKµ(M18)¡þ¨µ*µ512µxµ{¡þÜµ*µµµ1µxµFORKµ(M24)¡þ	µ*µµµ1µxµMUL2µ(M6)¡þ	Cµ*µµµ1µxµFORKµ(M25)¡þ	wµ*µµµ1µxµMUL2µ(M7)¡þ	«µ*µµµ1µxµADD2µ(M5)¡þ	ßµ*µµµ1µxµSUBµ(M20)¡þ
µ*µµµ1µxµFORKRµ(FORKR_SIG_0014)¡þ
Gµ*µµµ1µxµFORKµ(M23)¡þ
{µ*µµµ1µxµMUL2µ(M10)¡þ
¯µ*µµµ1µxµMULSµ(M22)¡þ
âµ*µµµ1µxµADD2µ(M14)¡þµ*µµµ1µxµMUL2µ(M21)’¯D“I501ileaf_page_string1:3-20¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³20¡þÃ²´µ*µµµ1µxµMULSµ(M12)¡þ÷µ*µµµ1µxµADD2µ(M9)¡þ+µ*µ}¡þ_µ*µ1µxµDMPNR_DSPµ(M4)¡þ’µ*/¡þ$²The´µglobalµblockµfactorµresultsµinµanµincreaseµinµmostµofµtheµlocal¡þmblockµfactors.µThisµcorrespondsµtoµanµincreaseµinµtheµnumberµof¡þ¶inputµsamplesµconsumedµandµoutputµsamplesµproducedµatµeach¡þþactivation.µTheµprocessµofµincreasingµtheµnumbersµofµsamples¡þGconsumedµandµproducedµisµcalledµ²vectorization².µBlocksµcanµuse¡þvectorizationµtoµspeedµupµtheirµactivationµbecauseµofµtheµpipelined¡þØarchitectureµofµmostµDSPs.µOneµactivationµwithµaµlocalµblockµfactor¡þ!ofµ2µisµgenerallyµfasterµthanµtwoµactivationsµwithµaµblockµfactorµofµ1.¡þjTheµtotalµnumberµofµsamplesµprocessedµduringµeachµperiodµinµthe¡þ²exampleµisµ8µtimesµhigherµthanµwhenµaµglobalµblockµfactorµisµnot¡þûspecified.¡þžInµExample 3³2,µtheµblocksµinµtheµtwoµfeedbackµloopsµhaveµbeen¡þædetectedµandµscheduledµasµaµhierarchicalµsuper³block.µThereµareµ20¡þ/appearancesµforµtheµ20µblocksµinµtheµsystem.µThisµisµtheµmaximum¡þwcompactionµpossibleµsinceµeveryµblockµneedsµatµleastµone¡þÀactivation.µAnyµblockµappearsµexactlyµonceµinµtheµscheduleµandµthe¡þ	numberµofµactivationsµisµkeptµtoµtheµminimum.µFurthermore,µtheµdata¡þQmemoryµrequirementsµhaveµbeenµsignificantlyµreducedµ(seeµthe¡þšsectionµthatµfollowsµonµsharedµbuffersµforµmoreµinformation).’¯ÛD“I501ileaf_page_string1:3-21¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³21¡þÉ²Shared´µBuffers¡þ>²AnyµsignalµinµtheµCOSSAPµblockµdiagramµisµimplementedµbyµaµC¡þ†array.µThisµarrayµisµalsoµcalledµtheµsignalµbuffer.µByµdefault,µa¡þÏdistinctµarrayµisµallocatedµforµeveryµsignal.µTogether,µtheµsignal¡þbuffersµmakeµupµtheµdataµmemoryµofµtheµapplication.µTheµshared¡þ`bufferµoptionµimprovesµtheµdataµmemoryµrequirementµbyµevaluating¡þ©theµbufferµlifetimes.µTheµprincipleµisµtoµmapµsignalµbuffersµwith¡þòdisjunctµlifetimesµontoµtheµsameµmemoryµsegment.¡þ¦Someµconstraintsµareµobeyedµinµorderµtoµoptimallyµreuseµtheµsignal¡þïbuffersµthatµhaveµbeenµreleased:¡þ²S¡X²Onlyµsignalµbuffersµofµtheµsameµtypeµareµshared.¡þü²S¡Xü²Signalµbuffersµareµonlyµsharedµifµtheµdifferenceµinµsizeµisµless¡XBthanµaµfactorµofµ2.¡þãTheµsignalµbufferµallocationµdependsµonµtheµfollowingµoptions:¡þs²S¡Xs²Sharedµbuffers¡þð²S¡Xð²Theµschedulingµstrategy¡þl²S¡Xl²Theµglobalµblockµfactor¡þ	/²Exampleµ1:µflatµschedulingµorµsequenceµdetection¡þ	®²µa)µDataµmemoryµrequirementµwithoutµtheµsharedµbuffersµoption:¡X
6²¥	öä¡h
2²number´
µofµbuffers²¡ü
6¥	öä¡
2²sizeµofµbuffer²¡(
6¥	öä¡8
2²sum²¡Ü
6¡X
f¥	öä¡h
i²25Áã¡ÃÄX
Bû
Bû
CX
CX
BÇ²¡ü
f¥	öä¡
i²512¡ÃÄü
B'
B'
Cü
Cü
BÇ²¡(
f¥	öä¡8
b²;12800¡ÃÄ(
Bß
Bß
C(
C(
BÇ²¡Ü
f¡X
ž¥	öä¡h
¡²3²¡ü
ž¥	öä¡
¡²513²¡(
ž¥	öä¡8
š²;1539²¡Ü
ž¡X
Ö¥	öä¡ü
Ö¥	öä¡(
Ö¥	öä¡Ü
Ö¡X¥	öä¡h²T¤ÿûotal´µsize:¡ÃÄX!'!'"X"X!Ç²¡(¥	öä¡8²14339¡ÃÄ(!ß!ß"("(!Ç²¡Ü’Û
ôD“I501ileaf_page_string1:3-22¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³22¡þÉ²´µb)µDataµmemoryµrequirementµwithµtheµsharedµbuffersµoption:¡X4²¥	öä¡h0²number´
µofµbuffers²¡ü4¥	öä¡0²sizeµofµbuffer²¡(4¥	öä¡80²sum²¡Ü4¡Xd¥	öä¡hg²1´µ(sharedµbuf¤ÿÿfer)Áã¡ÃÄX@û@ûAXAX@Ç²¡üd¥	öä¡g²10752¡ÃÄü@'@'AüAü@Ç²¡(d¥	öä¡8`²;10752¡ÃÄ(@ß@ßA(A(@Ç²¡Üd¡Xœ¥	öä¡hŸ²3²¡üœ¥	öä¡Ÿ²513²¡(œ¥	öä¡8˜²;1539²¡Üœ¡XÔ¥	öä¡üÔ¥	öä¡(Ô¥	öä¡ÜÔ¡X¥	öä¡h²T¤ÿûotalµsize:¡ÃÄX'' X XÇ²¡(¥	öä¡8²12291¡ÃÄ(ßß ( (Ç²¡Ü¡þ²With´µsequenceµdetectionµscheduling,µtheµsharedµbuffersµoption¡þåreducesµtheµdataµmemoryµrequirementµbyµ14%.¡þ¡²Exampleµ2:µhierarchicalµscheduling¡þ
²a)µDataµmemoryµrequirementµwithoutµtheµsharedµbuffersµoption:¡Xu²¥	öä¡hq²number´
µofµbuffers²¡üu¥	öä¡q²sizeµofµbuffer²¡(u¥	öä¡8q²sum²¡Üu¡X¥¥	öä¡h¨²10¡ÃÄXûû‚X‚XÇ²¡ü¥¥	öä¡¨²512¡ÃÄü''‚ü‚üÇ²¡(¥¥	öä¡8¡²;5120¡ÃÄ(ßß‚(‚(Ç²¡Ü¥¡XÝ¥	öä¡hà²1²¡üÝ¥	öä¡à²513²¡(Ý¥	öä¡8Ù²;513²¡ÜÝ¡X¥	öä¡h²17²¡ü¥	öä¡²1²¡(¥	öä¡8²;17²¡Ü¡XM¥	öä¡üM¥	öä¡(M¥	öä¡ÜM¡X…¥	öä¡hˆ²T¤ÿûotal´µsize:¡ÃÄX˜'˜'™X™X˜Ç²¡(…¥	öä¡8ˆ²5650¡ÃÄ(˜ß˜ß™(™(˜Ç²¡Ü…¡þ²´µb)µDataµmemoryµrequirementµwithµtheµsharedµbuffersµoption:¡X€²¥	öä¡h|²number´
µofµbuffers²¡ü€¥	öä¡|²sizeµofµbuffer²¡(€¥	öä¡8|²sum²¡Ü€¡X°¥	öä¡h³²1´µ(sharedµbuf¤ÿÿfer)¡ÃÄXŒûŒûXXŒÇ²¡ü°¥	öä¡³²3072¡ÃÄüŒ'Œ'üüŒÇ²¡(°¥	öä¡8¬²;3072¡ÃÄ(ŒßŒß((ŒÇ²¡Ü°¡Xè¥	öä¡hë²1²¡üè¥	öä¡ë²513²¡(è¥	öä¡8ä²;513²¡Üè¡X ¥	öä¡h#²17²¡ü ¥	öä¡#²1²¡( ¥	öä¡8²;17²¡Ü ¡XX¥	öä¡üX¥	öä¡(X¥	öä¡ÜX¡X¥	öä¡h“²T¤ÿûotalµsize:¡ÃÄX£'£'¤X¤X£Ç²¡(¥	öä¡8“²3602¡ÃÄ(£ß£ß¤(¤(£Ç²¡Ü¡þ	!²With´µhierarchicalµscheduling,µtheµsharedµbuffersµoptionµreducesµthe¡þ	idataµmemoryµrequirementµbyµ36%.¡þ	òNoteµthatµtheµdataµmemoryµrequirementµforµhierarchicalµscheduling¡þ
:withoutµsharedµbuffersµ(5650µfloatµunits)µisµevenµlessµthanµthe¡þ
ƒsequenceµdetectionµschedulingµstrategyµwithµsharedµbuffersµ(12291¡þ
Ìfloatµunits).µTheµsharedµbuffersµstrategyµhasµnoµeffectµonµthe¡þschedule.’
ôéD“I501ileaf_page_string1:3-23¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³23¡þÉ²Global´µBlockµFactor¡þB²Theµthroughputµofµaµsystemµcanµbeµimprovedµbyµspecifyingµaµglobal¡þ‹blockµfactor.µTheµglobalµblockµfactorµmultipliesµtheµnumberµofµsignal¡þÓsamplesµprocessedµduringµoneµschedulingµperiod.¡þ‘Selectionµofµhierarchicalµschedulingµandµaµglobalµblockµfactorµofµ8¡þÙwillµproduceµtheµscheduleµshownµinµExample 3³3.¡,ª²Example 3³3³GlobalµBlockµFactorµSchedule¡þ	²/*´µSchedule:¡þ=µ*µ4096µxµCONST_GENµ(M15)¡þqµ*µ1024µxµSIN_GEN_TBLµ(M19)¡þ¥µ*µ4096µxµFORKRµ(FORKR_SIG_0012)¡þÙµ*µ4096µxµADD2µ(M17)¡þµ*µ4096µxµFORKµ(M16)¡þ@µ*µ4096µxµFORKµ(M18)¡þtµ*µ4096µxµ{¡þ¨µ*µµµ1µxµFORKµ(M24)¡þÜµ*µµµ1µxµMUL2µ(M6)¡þµ*µµµ1µxµFORKµ(M25)¡þDµ*µµµ1µxµMUL2µ(M7)¡þxµ*µµµ1µxµADD2µ(M5)¡þ¬µ*µµµ1µxµSUBµ(M20)¡þßµ*µµµ1µxµFORKRµ(FORKR_SIG_0014)¡þµ*µµµ1µxµFORKµ(M23)¡þGµ*µµµ1µxµMUL2µ(M10)¡þ{µ*µµµ1µxµMULSµ(M22)¡þ¯µ*µµµ1µxµADD2µ(M14)¡þãµ*µµµ1µxµMUL2µ(M21)¡þ	µ*µµµ1µxµMULSµ(M12)¡þ	Kµ*µµµ1µxµADD2µ(M9)¡þ	µ*µ}¡þ	²µ*µ8µxµDMPNR_DSPµ(M4)¡þ	æµ*/¡þ
ƒ²Taking´µaµcloserµlookµatµtheµversionsµofµtheµscheduleµwithµand¡þ
Ìwithoutµaµglobalµblockµfactorµshowsµsomeµofµtheµbasic¡þcharacteristics.’é–D“I501ileaf_page_string1:3-24¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³24¡þÉ²The´µlocalµblockµfactorsµofµblocksµthatµareµ²notµ²partµofµaµfeedbackµloop¡þareµmultipliedµbyµtheµglobalµblockµfactor.µForµexample,µblock¡þZCONST_GENµ(M15)µnowµhasµaµlocalµblockµfactorµofµ512µ*µ8µ=µ4096.¡þ£Inµcontrast,µtheµlocalµblockµfactorsµofµblocksµwithinµaµfeedbackµloop¡þìcannotµexploitµtheµvector³processingµopportunityµdueµtoµaµspecified¡þ4globalµblockµfactor.µAllµtheµblocksµofµtheµfeedbackµloopµhaveµthe¡þ}sameµlocalµblockµfactorsµasµifµnoµglobalµblockµfactorµhadµbeen¡þÆspecified.µTheµreasonµforµthisµisµthatµtheµvectorµprocessingµwithinµthe¡þfeedbackµloopµisµlimitedµtoµ1µbecauseµofµtheµdelayµsizesµofµ1.¡þ±Noteµthatµtheµblocksµfollowingµtheµfeedbackµloopµareµnotµinfluenced¡þúbyµtheµfeedbackµloop.µTheµsourceµDMPNR_DSPµ(M4)µappearsµjust¡þBonceµandµisµscheduledµwithµtheµmaximumµblockµfactor.µAgain,µthe¡þ‹scheduleµgeneratedµhasµmaximumµcompaction.¡þ-Theµprogramµmemoryµrequirementsµremainµunchangedµbutµtheµdata¡þvmemoryµconsumptionµisµincreasedµbyµspecifyingµaµglobalµblock¡þ¿factor.µTheµreasonµforµthisµisµthatµanµincreasedµnumberµofµoutput¡þdataµsamplesµhaveµtoµbeµstoredµbetweenµtheµactivationµofµtheµblocks¡þPbeforeµtheyµareµconsumedµbyµtheµfollowingµblocks.µSignalµbuffers¡þ™outsideµfeedbackµloopsµrequireµaµ`globalµblockµfactor'µtimesµmore¡þádataµmemoryµwhereasµtheµdataµmemoryµconsumptionµforµsignal¡þ*buffersµwithinµfeedbackµloopsµremainsµalmostµunchanged.¡þÍTheµdataµmemoryµrequirementµforµoptimizationµstrategiesµwith¡þ	hierarchicalµschedulingµandµaµglobalµblockµfactorµofµ8µyieldsµthe¡þ	^followingµdata.’–GD“I501ileaf_page_string1:3-25¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³25¡þÉ²´µa)µsharedµbuffersµdisabled:¡X8²¥	öä¡h4²number´
µofµbuffers²¡ü8¥	öä¡4²sizeµofµbuffer²¡(8¥	öä¡84²sum²¡Ü8¥	öä¡ì4²location²¡ž8¡Xh¥	öä¡hk²10Áã¡ÃÄXDûDûEXEXDÇ²¡üh¥	öä¡k²4096¡ÃÄüD'D'EüEüDÇ²¡(h¥	öä¡8d²;40960¡ÃÄ(DÛDÛE(E(DÇ²¡Üh¥	öä¡ìd²;outsideµfeedbackµloop¡ÃÄÜD¡D¡EÜEÜDÇ²¡žh¡X ¥	öä¡h£²1²¡ü ¥	öä¡£²4097²¡( ¥	öä¡8œ²;4097²¡Ü ¥	öä¡ìœ²;outsideµfeedbackµloop²¡ž ¡XØ¥	öä¡hÛ²17²¡üØ¥	öä¡Û²1²¡(Ø¥	öä¡8Ô²;17²¡ÜØ¥	öä¡ìÔ²;insideµfeedbackµloop²¡žØ¡X¥	öä¡ü¥	öä¡(¥	öä¡Ü¥	öä¡ž¡XH¥	öä¡hK²T¤ÿûotal´µsize:¡ÃÄX['['\X\X[Ç²¡(H¥	öä¡8K²45074¡ÃÄ([¡[¡\(\([Ç²¡žH¡þà²b)´µsharedµbuffersµenabled:¡XO²¥	öä¡hK²number´
µofµbuffers²¡üO¥	öä¡K²sizeµofµbuffer²¡(O¥	öä¡8K²sum²¡ÜO¥	öä¡ìK²location²¡žO¡X¥	öä¡h‚²1´µ(sharedµbuf¤ÿÿfer)¡ÃÄX[û[û\X\X[Ç²¡ü¥	öä¡‚²24576¡ÃÄü['['\ü\ü[Ç²¡(¥	öä¡8{²;24576¡ÃÄ([Û[Û\(\([Ç²¡Ü¥	öä¡ì{²;outside´
µfeedbackµloop¡ÃÄÜ[¡[¡\Ü\Ü[Ç²¡ž¡X·¥	öä¡hº²1²¡ü·¥	öä¡º²4097²¡(·¥	öä¡8³²;4097²¡Ü·¥	öä¡ì³²;outsideµfeedbackµloop²¡ž·¡Xï¥	öä¡hò²17²¡üï¥	öä¡ò²1²¡(ï¥	öä¡8ë²;17²¡Üï¥	öä¡ìë²;insideµfeedbackµloop²¡žï¡X'¥	öä¡ü'¥	öä¡('¥	öä¡Ü'¥	öä¡ž'¡X_¥	öä¡hb²T¤ÿûotal´µsize:¡ÃÄXr'r'sXsXrÇ²¡(_¥	öä¡8b²28960¡ÃÄ(r¡r¡s(s(rÇ²¡ž_¡þ÷²In´µthisµexample,µifµsharedµbuffersµareµdisabledµtheµdataµmemory¡þ?requirementµisµapproximatelyµ`globalµblockµfactor'µtimesµhigherµthan¡þˆwithoutµspecifyingµaµglobalµblockµfactor.¡þE²CodeµInlining¡þ¨²Inµtheµpreviousµexamplesµanyµappearanceµofµaµblockµinµtheµschedule¡þðcorrespondsµtoµaµfunctionµcall.¡þForµexampleµ128µxµSIN_GEN_TBLµ(M19)µmightµcorrespondµtoµthe¡þÇfunctionµcallµshownµinµExample 3³4.¡,	a²Example 3³4³FunctionµCall¡,	¬² dcg_M0_0_2_sin_gen_tbl_0´µ(signal1,µµµ/*µoutputµportµµµµµµµ*/¡,	Údcg_NumberOfItems_1,µµµµµµµµµµµµµµµµµ/*µ1.µparameterµµµµµµ*/¡,
dcg_NumberOfPeriods_1,µµµµµµµµµµµµµµµ/*µ2.µparameterµµµµµµ*/¡,
5dcg_Amplitude_1,µµµµµµµµµµµµµµµµµµµµµ/*µ3.µparameterµµµµµµ*/¡,
cdcg_table_1,µµµµµµµµµµµµµµµµµµµµµµµµµ/*µstateµµµµµµµµµµµµµ*/¡,
‘128µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ/*µlocalµblockµfactorµ*/¡,
¾µµµµµµµ);¡þ²to´µtheµfunctionµshownµinµExample 3³5.’GD“I501ileaf_page_string1:3-26¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³26¡,É²Example 3³5³Function´µCall¡,² void´µdcg_M0_0_2_sin_gen_tbl_0µ(µregisterµfloatµ*Output,¡,CµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµintµNumberOfItems,¡,pµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµintµNumberOfPeriods,¡,žµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµfloatµAmplitude,¡,Ìµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµfloatµ*table,¡,ùµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµintµBlockFactor¡,'µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ)¡,U{¡,‚intµdcg_LOOPCnt_2;/*µloopµcounterµgeneratedµforµgenericµloopsµ*/¡,°intµdcg_LOOPCnt_1;/*µloopµcounterµgeneratedµforµgenericµloopsµµ*/¡,Þintµdcg_LOOPLim_2;/*µloopµvariableµgeneratedµforµgenericµloopsµ*/¡,intµdcg_LOOPLim_1;/*µloopµvariableµgeneratedµforµgenericµloopsµ*/¡,9µ¡,gµµregisterµfloatµ*ptable;¡,•µ¡,Â¡,ð¡,¡,Kµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,yµµdcg_LOOPLim_1µ=µBlockFactor;¡,§µµforµ(µdcg_LOOPCnt_1µ=µ1;µdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;µ++dcg_LOOPCnt_1µ)¡,Ôµµ{¡,µµµµptableµ=µtable;¡,0µµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,]µµµµdcg_LOOPLim_2µ=µNumberOfItems;¡,‹µµµµforµ(µdcg_LOOPCnt_2µ=µ1;µdcg_LOOPCnt_2µ<=µdcg_LOOPLim_2;µ++dcg_LOOPCnt_2µ)¡,¹µµµµ{¡,æµµµµµµ*Output++µ=µ*ptable++;¡,µµµµ}¡,Bµµ}¡,o}¡þÇ²Note´µthatµaµCOSSAPµmodelµcorrespondsµtoµaµfunctionµrepresenting¡þtheµcomputationalµkernelµofµtheµmodel.µInµcontrastµtoµthis,µaµblock¡þXcorrespondsµtoµaµcallµtoµtheµfunctionµofµtheµcorrespondingµmodel.¡þ¡Thereµmightµbeµseveralµblocksµcorrespondingµtoµtheµsameµmodel.¡þ	3Itµisµimportantµtoµnoteµthatµtheµcontextµforµtheµcallingµblockµis¡þ	|suppliedµasµaµlistµofµfunctionµarguments.µTheµcontextµofµaµblock¡þ	Äconsistsµof:¡þ
>²S¡X
>²Inputµportµbuffers¡þ
©²S¡X
©²Outputµportµbuffers¡þ²S¡X²Parameters’3D“I501ileaf_page_string1:3-27¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³27¡þÉ²²S¡XÉ²Internal´µstates¡þ=²S¡X=²Inputµdatasets¡þ°²S¡X°²Localµblockµfactor¡þBTheµadvantageµofµthisµconstructµisµthatµifµthereµareµseveralµblocksµof¡þŠaµspecificµmodelµanyµofµtheseµblockµcanµreuseµtheµcomputation¡þÓkernelµofµtheµmodel.µOnlyµoneµfunctionµhasµtoµbeµgeneratedµand¡þseveralµfunctionµcalls³
eachµsupplyingµaµspecificµargumentµlistµfrom¡þdtheµcallingµblock³
referenceµaµsingleµfunction.¡þActivatingµblocksµbyµmeansµofµfunctionµcallsµisµanµefficientµtechnique¡þPforµminimizingµtheµprogramµmemoryµsize.µHowever,µitµresultsµin¡þ˜reducedµthroughputµbecauseµaµfunctionµcallµcarriesµaµcertain¡þáoverheadµwithµitµforµmostµDSPµorµRISCµCµcompilers.µThisµcanµbe¡þ*toleratedµasµlongµasµtheµfunctionµcallµoverheadµisµsmallµin¡þrcomparisonµtoµtheµtimeµconsumedµbyµtheµcomputationalµkernel.¡þTheµ`inlining'µoptionµoffersµaµdifferentµwayµtoµgenerateµtheµcode.¡þ^Insteadµofµmakingµaµfunctionµcall,µtheµkernelµisµexpandedµinline.µIfµall¡þ¦theµfunctionµcallsµreferencingµaµspecificµfunctionµareµexpressed¡þïinline,µtheµcorrespondingµfunctionµdoesµnotµneedµtoµbeµsynthesized.¡þ7Theµinliningµoptionµincludesµaµparameterµthatµindicatesµwhichµblocks¡þ€shouldµbeµexpandedµinlineµandµwhichµblocksµshouldµstillµbeµtreated¡þÉasµfunctionµcalls.µAllµtheµfunctionµcallsµtoµtheµcomputationalµkernels¡þ	ofµmodelsµthatµappearµatµleastµtheµnumberµofµtimesµspecifiedµbyµthe¡þ	Zparameterµwithinµtheµscheduleµareµreplacedµwithµinlineµcode.’3ÎD“I501ileaf_page_string1:3-28¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³28¡þÉ²Obviously,´µinliningµblocksµthatµappearµmoreµthanµonceµinµthe¡þscheduleµincreasesµtheµprogramµmemoryµrequirementsµforµallµthe¡þZblocksµexceptµprimitiveµonesµthatµcontainµaµcomputationalµkernelµfor¡þ£onlyµoneµblock,µbutµimprovesµtheµthroughputµandµtheµdataµmemory¡þìrequirements.µAsµaµbasicµrule,µavoidµinliningµblocksµthatµhaveµa¡þ4complexµcomputationalµkernelµmoreµthanµonce,µwhileµinlining¡þ}primitiveµoperationsµwillµreduceµprogramµmemoryµrequirementsµand¡þÆincreaseµthroughput.µThereµisµnoµoptimumµinliningµparameterµvalue;¡þtheµstrategyµtoµbeµadoptedµdependsµonµtheµspecificµapplication.¡þ¬Itµisµalwaysµaµgoodµideaµtoµsetµtheµinliningµparameterµtoµatµleastµ1¡þõsinceµaµfunctionµreferencedµjustµonceµdoesµnotµneedµtoµbeµcalled¡þ>andµcanµbeµinlinedµrightµaway.¡þÜNote:²¡X%²Onlyµsignalµprocessingµfunctionsµmayµbeµinlined;µinitialization¡Xmandµpostprocessingµfunctionsµmayµnot.¡þTheµinlineµcodeµversionµproducedµasµtheµreplacementµforµthe¡þTfunctionµcallµtoµtheµcomputationalµkernelµofµtheµmodel¡þSIN_GEN_TBLµisµshownµinµExample 3³6.¡,I²Example 3³6³InlineµCode¡,™² /*´µInlineµexpansionµofµblockµsin_gen_tbl,µMSEQN:µM19µ*/¡,Çµµµ{¡,ôµµµµµ/*µOUTPUT_PORT,µCOSSAPµname:µOUTPUTµ*/¡,	"µµµµµregisterµfloatµ*Outputµ=µsignal1;¡,	Pµ¡,	}µµµµµ/*µPARAMETER,µµµCOSSAPµname:µNUMBEROFITEMSµ*/¡,	«µµµµµintµNumberOfItemsµ=µdcg_NumberOfItems_1;¡,	Ùµ¡,
µµµµµ/*µPARAMETER,µµµCOSSAPµname:µNUMBEROFPERIODSµ*/¡,
4µµµµµintµNumberOfPeriodsµ=µdcg_NumberOfPeriods_1;¡,
bµ¡,
µµµµµ/*µPARAMETER,µµµCOSSAPµname:µAMPLITUDEµ*/¡,
½µµµµµfloatµAmplitudeµ=µdcg_Amplitude_1;¡,
ëµ¡,µµµµµ/*µSTATEµµ*/’Î8D“I501ileaf_page_string1:3-29¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³29¡,½² ´µµµµµfloatµ*tableµ=µdcg_table_1;¡,êµ¡,µµµµµ/*µlocalµblocking-factorµ*/¡,FµµµµµintµBlockFactorµ=µ128;¡,sµµµµµµµintµdcg_LOOPCnt_2;µµµµµ/*µloopµcounterµgeneratedµforµgenericµloopsµµ*/¡,¡µµµµµµµintµdcg_LOOPCnt_1;µµµµµ/*µloopµcounterµgeneratedµforµgenericµloopsµµ*/¡,Ïµµµµµµµintµdcg_LOOPLim_2;µµµµµ/*µloopµvariableµgeneratedµforµgenericµloopsµ*/¡,üµµµµµµµintµdcg_LOOPLim_1;µµµµµ/*µloopµvariableµgeneratedµforµgenericµloopsµ*/¡,*µ¡,Xµµµµµµµregisterµfloatµ*ptable;¡,…µ¡,³µµµµµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,áµµµµµµµdcg_LOOPLim_1µ=µBlockFactor;¡,µµµµµµµforµ(µdcg_LOOPCnt_1µ=µ1;µdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;¡,<++dcg_LOOPCnt_1µ)¡,jµµµµµµµ{¡,—µµµµµµµµptableµ=µtable;¡,Åµµµµµµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,óµµµµµµµµdcg_LOOPLim_2µ=µNumberOfItems;¡,!µµµµµµµµforµ(µdcg_LOOPCnt_2µ=µ1;dcg_LOOPCnt_2µ<=µdcg_LOOPLim_2;++dcg_LOOPCnt_2¡,N)¡,|µµµµµµµµ{¡,ªµµµµµµµµµµ*Output++µ=µ*ptable++;¡,×µµµµµµµµ}¡,µµµµµµµ}¡,3µµµ}¡þî²Loop´µOptimizations¡þU²Theµuseµofµaµscalableµsynchronousµdataµflowµparadigmµmeansµthat¡þžeachµblockµinµaµmodelµmayµprocessµanyµintegerµmultipleµofµtheµinput¡þçandµoutputµrates.µFromµtheµpointµofµviewµofµtheµimplementation,µthis¡þ/isµachievedµbyµusingµloops.µForµtheµefficientµimplementationµof¡þxloops,µtheµDCGµsupportsµgenericµloops,µwhichµallowµtheµDCGµto¡þÁperformµtheµfollowingµoptimizations:¡þ	>²S¡X	>²TranslateµaµloopµintoµanµordinaryµCµloopµconstructµ(for,µdoµ...¡X	„while,µwhile)¡þ	ò²S¡X	ò²Removeµaµloopµconstructµwhenµtheµnumberµofµiterationsµisµ1¡þ
`²S¡X
`²Removeµaµcompleteµloop,µincludingµtheµloopµbody,µwhenµthe¡X
¦numberµofµiterationsµisµ0¡þ²S¡X²Unfoldµaµloop,µtoµreplicateµtheµloopµbody.’8D“I501ileaf_page_string1:3-30¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³30¡þÉ²Generic´µloopsµmustµspecifyµtheµnumberµofµiterationsµsolelyµby¡þmeansµofµtheµblock'sµparametersµorµtheµblockµfactorµ(andµany¡þZconstants).µGenericµloopsµwhoseµnumberµofµiterationsµdependµon¡þ£theµlocalµblockµfactorµareµcalledµ²blockµfactorµloops²µorµ²(B)³loops².¡þìGenericµloopsµwhoseµnumberµofµiterationsµisµnotµdependentµofµthe¡þ4blockµfactor,µbutµonµparametersµorµconstants,µareµcalledµ²parameter¡þ}loops²µorµ²(P)³loops².µTheµouterµloopµofµmodelµSIN_GEN_TBLµisµan¡þÆexampleµofµaµblockµfactorµ(B)³loopµandµtheµinnerµloopµisµaµ(P)³loop.¡þ§²
Loop´µUnfolding¡þD²When´µselectingµtheµloopµunfoldingµoption,µyouµmustµspecifyµthe¡þvalueµofµaµparameterµthatµdefinesµtheµnumberµofµreplicationsµofµthe¡þÖloopµbodyµ(theµunfoldingµdegreeµ`d').µSelectµaµparameterµvalueµthat¡þisµaµcommonµdivisorµofµtheµblockµfactorµbecauseµotherwiseµtheµloop¡þgwillµalsoµhaveµtoµbeµreplicatedµoutsideµtheµloopµasµdeterminedµbyµthe¡þ¯remainingµblockµfactorµ%d.¡þPIfµtheµparameterµforµloopµunfoldingµforµ(P)³loopsµisµspecifiedµasµ4,µthe¡þ™codeµshownµinµExample 3³7µisµgeneratedµforµmodelµSIN_GEN_TBL.¡,I²Example 3³7³UnfoldedµCode¡,™² ´µ{¡,Çµµµµµµ...¡,ôµ¡,	"µµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,	Pµµµµdcg_LOOPLim_1µ=µBlockFactor;¡,	}µµµµforµ(µdcg_LOOPCnt_1µ=µ1;µdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;µ++dcg_LOOPCnt_1µ)¡,	«µµµµµµ{¡,	Ùµµµµµµµptableµ=µtable;¡,
µµµµµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,
4µµµµµµµdcg_LOOPLim_2µ=µ(µNumberOfItemsµ)µ/µ4;¡,
bµµµµµµµfor(dcg_LOOPCnt_2µ=µ1;µdcg_LOOPCnt_2µ<=µdcg_LOOPLim_2;µ++dcg_LOOPCnt_2)¡,
µµµµµµµ{¡,
½µµµµµµµµµ*Output++µ=µ*ptable++;¡,
ëµ¡,µµµµµµµµµ*Output++µ=µ*ptable++;’xD“I501ileaf_page_string1:3-31¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³31¡,½² ´µ¡,êµµµµµµµµµ*Output++µ=µ*ptable++;¡,µ¡,Fµµµµµµµµµ*Output++µ=µ*ptable++;¡,sµµµµµµµ}¡,¡µµµµµ}¡,Ïµ}¡þ+²Loop´µunfoldingµleadsµtoµanµincreaseµinµprogramµmemoryµusageµbut¡þsimprovesµthroughput.µThisµthroughputµimprovementµisµdueµtoµthe¡þ¼reductionµinµloopµmanagementµoverhead.¡þ—²
Zero´µOverheadµLoops¡þ2²You´µcanµalsoµreduceµtheµloopµmanagementµoverheadµforµtarget¡þzprocessorµwithµzeroµoverheadµloops.µMostµCµcompilersµmapµaµloop¡þÃontoµaµDSP'sµzeroµoverheadµloopµifµtheµnumberµofµiterationsµofµthe¡þloopsµisµconstant.µTheµDCGµmapsµaµgenericµloopµontoµaµmanifest¡þTloopµifµyouµselectµtheµloopµzeroµoverheadµoption.¡þòIfµtheµ(P)µloopµzeroµoverheadµoptimizationµstrategyµisµselected,µthe¡þ:codeµshownµinµExample 3³8µisµgeneratedµforµmodelµSIN_GEN_TBL.¡,æ²Example 3³8³ZeroµOverheadµLoopµCode¡,5² ´µµµ{¡,cµµµµµµµ...¡,™µµµµµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡,Çµµµµµµµdcg_LOOPLim_1µ=µBlockFactor;¡,ôµµµµµµµfor(dcg_LOOPCnt_1µ=µ1;µdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;µ++dcg_LOOPCnt_1)¡,	"µµµµµµµ{¡,	Pµµµµµµµµµptableµ=µtable;¡,	}µ¡,	«µµµµµµµµµµµ*Output++µ=µ*ptable++;¡,	Ùµ¡,
µµµµµµµµµµµ*Output++µ=µ*ptable++;¡,
4µ¡,
bµµµµµµµµµµµ*Output++µ=µ*ptable++;¡,
µ¡,
½µµµµµµµµµµµ*Output++µ=µ*ptable++;¡,
ëµµµµµµµ}¡,µµµ}’xßD“I501ileaf_page_string1:3-32¥	öäÃËÁâÊË¡Ä,á,Ë¡Ä,Ë	cË¡Ä	cË	cá¡Ä	cá,áÆÃÁÊËÃ¡ÄþËÊËÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³32¡þÉ²Because´µtheµnumberµofµiterationsµofµtheµ(P)µloopµ(innerµloop)µequals¡þ1µtheµloopµconstructµisµremovedµandµjustµtheµloopµbodyµisµkept.¡þ£Zeroµoverheadµloopingµshouldµnotµalwaysµbeµusedµinsteadµofµloop¡þìunfoldingµsince,µwhenµblocksµshareµtheµsameµcomputationalµkernel¡þ4butµtheyµareµactivatedµwithµdifferentµlocalµblockµfactorµorµparameter¡þ}settings,µtheµ`(P)µloopµzeroµoverhead'µoptionµcausesµseveralµCµcode¡þÆdefinitionsµtoµbeµgeneratedµforµtheµcomputationalµkernel.µThisµcould¡þdramaticallyµincreaseµtheµamountµofµprogramµmemoryµused.µThis¡þWproblemµdoesµnotµariseµwhenµworkingµwithµtheµ`inline'µoption.¡þèInµourµexampleµtheµfunctionµgeneratedµforµmodelµSIN_GEN_TBL¡þ1canµ²onlyµ²beµreusedµ(referenced)µbyµotherµblockµactivationsµthatµhave¡þzexplicitµ`(P)µloopµzeroµoverhead'µandµ`(P)µunfoldingµdegree=4'¡þÂoptimizationµstrategiesµenabled.µAµnewµfunctionµdefinitionµhasµtoµbe¡þgeneratedµforµallµtheµotherµblockµactivationsµ(ifµnotµinlined)µthat¡þSreferenceµtheµcomputationalµkernelµofµmodelµSIN_GEN_TBLµ.¡þ²
Attributes¡þ©²Elementsµofµaµblockµdiagramµsuchµasµblocksµandµsignalsµcanµbe¡þñassignedµoneµorµseveralµattributes.µAttributesµareµusedµtoµspecify¡þ:globalµoptimizationµstrategiesµthatµalsoµworkµatµtheµlevelµofµtheµblock¡þƒinµtheµblockµdiagram,µsuchµasµcodeµinliningµandµloopµoptimization.¡þ	Theµprincipleµdifferencesµbetweenµtheµglobalµoptimizationµstrategies¡þ	]andµtheµcorrespondingµattributesµare:¡þ	Ö²S¡X	Ö²Optimizationµstrategiesµareµglobal;µinµprincipleµtheyµareµapplied¡X
toµallµtheµblocksµinµtheµblockµdiagramµ(althoughµadditional¡X
cparametersµmightµallowµaµgroupµofµblocksµtoµbeµaddressed).¡þ
Î²S¡X
Î²Attributesµareµrelatedµtoµaµspecificµblockµ(althoughµattributesµcan¡Xbeµassignedµtoµaµgroupµofµblocks).’ßëD“I501ileaf_page_string1:3-33¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³33¡þÉ²Attributes´µcanµbeµassignedµtoµprimitiveµblocksµandµtoµhierarchical¡þblocks.µIfµanµattributeµisµassignedµtoµanµhierarchicalµblock,µitµis¡þZinheritedµbyµallµsubhierarchiesµandµsubblocks.µHowever,µattributing¡þ£aµsubblockµwithµtheµsameµattributeµbutµwithµaµdifferentµvalueµwill¡þìhaveµaµhigherµpriority.µWhenµattributionsµofµhierarchicalµblocksµare¡þ4nested,µtheµattributesµthatµareµclosestµtoµtheµprimitiveµblockµhave¡þ}precedence.¡þNoteµthatµeachµtypeµofµattributeµisµhandledµseparately.¡þ¢TheµfollowingµattributesµareµsupportedµbyµtheµDCG:¡þdcg_exitcond_inports:µ¡Xesetsµanµexitµconditionµbasedµonµtheµnumberµofµsamples¡X­consumedµatµtheµinputµportsµ(forµinformationµaboutµexitµmasks,¡Xöseeµtheµ²COSSAPµStreamµDrivenµSimulatorµUserµGuide²)¡þWdcg_exitcond_outports:µ¡X setsµanµexitµconditionµbasedµonµtheµnumberµofµsamplesµproduced¡Xéatµtheµoutputµportsµ(forµinformationµaboutµexitµmasks,µseeµthe¡X1²COSSAPµStreamµDrivenµSimulatorµUserµGuide²)¡þ“dcg_inliningµcode:µ¡XÛspecifiesµinliningµ(insteadµofµaµfunctionµcall)¡þ=dcg_ipc_driver:µ¡X…specifiesµaµdriverµforµtheµIPCµsignalµ(forµmulti³DSPµcode¡XÎgeneration)¡þ	/dcg_ipc_link:µ¡X	xspecifiesµaµlinkµforµtheµIPCµsignalµ(forµmulti³DSPµcode¡X	Àgeneration)¡þ
"dcg_loop_0overhead_bf:µ¡X
jsetsµzeroµoverheadµforµblockµfactorµloops¡þ
Ìdcg_loop_0overhead_pa:µ¡Xsetsµzeroµoverheadµforµparameterµloops’ë	FD“I501ileaf_page_string1:3-34¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³34¡þÉ²dcg_loop_unfolding_bf:´µ¡Xspecifiesµblockµfactorµloopµunfoldingµ(degreeµspecifiesµupper¡XZboundµofµunfolding)¡þÁdcg_loop_unfolding_pa:µ¡X
specifiesµparameterµloopµunfoldingµ(degreeµspecifiesµupper¡XRboundµofµunfolding)¡þ¹dcg_processor:µ¡Xmapsµaµblockµontoµaµprocessorµ(forµmulti-DSPµcodeµgeneration)¡þ†TheµattributesµareµsetµbyµtheµBDEµandµareµpartµofµtheµschematic.µTo¡þÏsetµtheµattributesµforµaµblock,µdoµtheµfollowing:¡þT1.¡XTInµtheµblockµdiagram,µselectµtheµblockµforµwhichµyouµwantµtoµset¡Xšanµattribute,µconst_genµ(M15).¡þ2.¡XClickµtheµBDEµATTRIBµTABLEµtoolbarµbutton.¡XTheµTarget³SpecificµAttributesµdialogµboxµopensµ(see¡XÈFigure 3³6).¡þJ3.¡XJInµtheµTarget³SpecificµAttributesµdialogµbox,µclickµtheµDCGµtab,¡X‘andµthenµclickµtheµpop³upµlistµofµattributes.¡XAµlistµofµtheµattributesµforµtheµselectedµblockµisµdisplayed,µas¡XKshownµinµFigure 3³6.¥	öäÒÔ.ÅŸ' ()ÿ‘d@ÿ‘d@ÿ‘i@’	F…D“I501ileaf_page_string1:3-35¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³35¡,É²Figure 3³6³Target´µSpecificµAttributesµDialogµBox¡ ²¥	öäÒÓÐ ûƒÖ‚	ƒ’û9üâÏ½ÁäüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáúpüÐÕ½ÉÚúwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž3ÿÿÿÿùÏÿÿÿÿüÿÿ?ÿùÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿ÷üŒäDÙÏIÃÆ#ÈˆÙÞÀ1Ú"üŒÀç´sË"ÇÊ*ˆÊ´À4h*üØÀlÞÀòÎËÀlØØÀdÀÌÙÊÀ“À›ÀfÊÀÀ¦ÙÝøÀžÀ6ÐÐÀ‡ÀÆÜÀ6ÁÀL÷	À›ÖÀ&ÙÌüÔŒÀZÁÀaÀjÎÆÀÀZÀZÃÏÀ´À˜&À´À¼øÀ­ÀÀKÏÀXÀ$ÊÀ–À¦À´À4‹ÐüÌŒÎÒ˜ÅQZËàÄ3"qèZÆ‹ËüÓÅqdaTÇAkÀ˜"IøÈPüÀX1Ù)<ÀdLÀÆÇÄüŽÁÎÄyÂÅAX	í÷)ÈüÀ]ÁÀyÎÀ´ÀÀ^À^¼ÀXÀÀÀ¼Àô-ÀÀÏÇÍ¼À4À–À¼üŒÌÀ;ÀaÈÚÕÙÒØØÀcËÙÌÀÇÀ;ÊÜÀÀŽÙÞÊ×ÍÊÀÇÀÀ†ÎÀ3xÞÀ1ÀÀ™ÀÑÙÀÌüŽÁÀh™ÀZüÚs•ØüüüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚúÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿìüüA·ÅCüüüüüüŠÖääääääääÈüŠÛääääääääÏüäääääääÚˆßäääääääÕü?äääääääÏˆÛäääääääÚür˜ÄüŒÛÈÐÏÖÈüŒÐÎÀÆÀ2Çü~ÉÚÉÚDÊÏÀÈ
êÈÝøü™ìÃÀÈPðÆëÇÀ’Éñü$)ÁÆ‹ÁîÈÀlØü#
ÁÌOÏéùÃü˜ÏO$üfJÍŒê<üÈPðÆëˆÍü3DÊÏÀZü|
ÊÎÀÆÀ2Èéùü-)ÁÀhÈÐÏÖÇ$lÐü’ìÃæÁÀ’Éðü|ÉÚÉÕŒÌ|ôüüüüüÉÁÀ¿äääääääÏˆÛäääääääÀçäääääääääääääääääääääääääääääääääääÏÎüÉÿäääääääÕˆâäääääääääääääääääääääääääääääääääääääääääääqüüüüüüüüüüüüüüüüüü?ÉÀñáøI|ˆÌ3üÀÄÀÈÀrÉñÀ’}1È{üÁÆÄØlˆñjü¡ÌÃÓÒ×ÂéØÀn×À6ÀyÀ1ÀÃÎÌÀNÀmÀ°ÀáÀÀ3ÀÃÀÃüÏÄTðÀ-ZÀÀ-ÄÀµÀ2åÈîÀNÀbPÁÀ5À¤åüLÍÀrªÀTÏùëÕJÈÀ¨
ÀcüÈÝ\aÌYp¥À…Ïü5°<ÀãÆü¦ÃÈˆØGüÁÀhØÀªÀTÀhÀiÀëÁîèÆ¨ëöÀgÉüÀÄæIñÀTÀ,À%ÁÀ”ÀJ%ŠÀ²å-ÎÑÍÀ´À¤åü?ÉÀáÈøÓÀ×zØÀc×ÍÀvÀaÀÃÁêÀ˜ÀÌÀ3ÎÀìÀcÀÃÀÃüüüüüüüüüüüüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüü»ÖäÕüülLLiüŠÍ‰ÁÈü‰ÉnüÏÕÀèóÀÀLÔÔÀÜÒ3ÀqÀ°ÓÀnÀgÈ¥ÓüêöëÁÀhLçÀ¨À2ðÈÀhÀTõÀiÇüîÀâåÀ¨ÁÀqÀTðÀT ÀTÀªÒÂÏü-aë!‰ÀÈ¥ÀÆüˆÙŒÊÇ¥éü-
ë!‰Á¦íüîÀâåZÀ¨ùÀqÀTTTÀª.¦ðüÀÁöÇÁð,çÀ¨,(ÀTÁÀiÇ¥ÅüÀ°ÕÕóÀÌÔÔÀÆÀ3ÌÔÓÎÀÇÈ¥ãüMÆµãüÀËáÈüÀóáÈÁÈüü»ÖäÕüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüCülLLiüŠÍ‰ÁÈü‰ÉnüÏÕÀèóÀÀLÔÔÀÜÒ3ÀqÀ°ÓÀnÀgÈüêöëÁÀhLçÀ¨À2ðÈÀhÀTõÀiÇüîÀâåÀ¨ÁÀqÀTðÀT ÀTÀªÒÂÏü-aë!‰ÀÈüˆÙŒÊÇü-
ë!‰ÁüîÀâåZÀ¨ùÀqÀTTTÀª.üÀÁöÇÁð,çÀ¨,(ÀTÁÀiÇüÀ°ÕÕóÀÌÔÔÀÆÀ3ÌÔÓÎÀÇÈüMÆüÀËáÈü?äãËÉäääääääÈâãâääääääääääääääääääääääääääääääääääääääääääÞüülLLüŠÍ_sü‰ÉüÏÕÀèóÀÀLÔÔÀÜÒÌÀÓÀlÑÀÀ™ÕüêöëÁÀhLçÀ¨À2ðÀÀÃÀšëüîÀâåÀ¨ÁÀqÀTðÀT*ÈÀ*À‡°ü-aë!ŠÂÕüˆÙÁæü-
ë!‹ÇüîÀâåZÀ¨ùÀqÀTT*À…ÁÀÀ*ÈÀÈüÀÁöÇÁð,çÀ¨,ÀÀ÷ÀZëüÀ°ÕÕóÀÌÔÔÀÆÀÑÀÆÒÑÌÀ1ÕüMÆüÀËáÈüÀóáÈrüül
ÈËÏÊüüÈyÊüÏÕÀèÁÀ›ÈÀÍÀÆÀnÑÈüêöëQÇÉÆÀÀüîÀâåÈôÀ*ü-üü-üîÀâå*üÀÁöÇüÀ°ÕÕÁÀ˜ÀÌÀÌÀfÀcÑüMÆ2üÀËá,ÈüÀóáüül
ÈsÌüüÈdüÏÕÀèÁÀ›ÉÈÉÀ†ÀÛËÀñÀ°üêöëQèÇùÁ	ÀhÇüîÀâåÀKÈ÷êÀÂÀ”pü-<tüÁÄÙü-<süîÀâåÀKÈ÷ÈÀXüÀÁöÇèÇùÈ	ðüÀ°ÕÕÁÀ‡ÉÈÉÀfÌÎÀñÈüMÆüÀËáÕüÀóáÌÕüül
ÈZÏÊüüÈ{üÏÕÀèÁÀ›ÉÈÍÏÎüêöëQèÇIÆåüîÀâåÀKÈêÇü-<üÁÇü-<üîÀâåÀKÈ üÀÁöÇèÇüÀ°ÕÕÁÀ‡ÉÈËÀÌÀfÎüMÆüÀËáÕüÀóáÌÕüül
ÈˆÊcÁÈÔüŒÁÏŠÀ°üŒÂåüÏÕÀèÉÀ†ÏùëÀãËÀñÀ°ÀáÀáÕÕqÆüêöë
À…ïå	ëÁÀhïÀ’ÀÒÀÑÇ)ÆüîÀâåÀJÀ¡ëÀªÀ”qÇÉÂåTü-ŠÎÁÏüŽÁÄÙòÏü-‰ÎüîÀâåÀJÀ¡ëùÀRÀ¨æÀX°ÀÂåTüÀÁöÇ
À…ÇåÂÀ¡ëÁðÀRÀ)ÎhüÀ°ÕÕÁÀ‡ÉêÏÁÏÕÎÀñÀ†À1ÀáÀØÀØÁÀ°ÏüMÆüÀËáÞˆÉáüÀóáRÐÞˆÉáüül
ÈˆÊcüŒÁÏüŒÂåüÏÕÀèÉÀ†ÏùëÀãËÀñÀ°ÀáÀáÕÕÁÀ°Ùüêöë
À…ïå	ëÁÀhïÀ’ÀÒÀÑÇhÀ´üîÀâåÀJÀ¡ëÀªÀ”qÇÉÂåTÏü-ŠÎÁÏpüŽÁÄÙòÏ°ü-‰ÎüîÀâåÀJÀ¡ëùÀRÀ¨æÀX°ÀÂåTÍüÀÁöÇ
À…ÇåÂÀ¡ëÁðÀRÀ)Î(ÀŠüÀ°ÕÕÁÀ‡ÉêÏÁÏÕÎÀñÀ†À1ÀáÀØÀØpÀvüMÆüÀËáÞˆÉáüÀóáRÐÞˆÉÀýÈüül
ÈpÊÉÍ{ÓüÀ°Xü’ÍüÏÕÀèÉÀ†ÏÉÀÀ¹À#ÈÒÀ3ÔÀt8æüêöë
À…ïåeÀ%ÇðÈÀ¨æüîÀâåÀJÀ¡ëP÷åÀT¡ë*ü-üü-üîÀâåÀJÀ¡ë 
åÀT	ë*üÀÁöÇ
À…ÇåÂÎÇÀ, 4üÀ°ÕÕÁÀ‡ÉêÏÁÀÙÀŒÀÃÀ†ÀÀ3ÌÔØÎüMÆŒÁæüÀËáÞÀeãüÀóáRÐÞùãüül
ÈpÊÉÍüÀ°ü’ÍüÏÕÀèÉÀ†ÏÉÀÀ¹À#ÈÒÀ3ÔÀtØØüêöë
À…ïåeÀ%ÇðÈÀ¨4ÀZüîÀâåÀJÀ¡ëP÷åÀT¡ë*Îü-‘Óü—ÀXü-üîÀâåÀJÀ¡ë 
åÀT	ë*ÌüÀÁöÇ
À…ÇåÂÎÇÀ, ÀEüÀ°ÕÕÁÀ‡ÉêÏÁÀÙÀŒÀÃÀ†ÀÀ3ÌÔ8À;üMÆŒÁæüÀËáÞÀeãüÀóáRÐÞùãÏüülüüüÏÕÀèÁÀ°ÀØÕÔÚÚÚÔÀØüêöëhóëÀ‰ÀiÀ)ðÀ¨ÆüîÀâåTÀ:À©ÔXÀYÀTÓü-%ÀaÀqÔüŒÙÀÈÀÈü-%1ÆüîÀâåTÂÀ©ÔÀYÀÁÀÁÀTüÀÁöÇ(ÁëÀ‰À)À)ðÀ¨üÀ°ÕÕpÏÕÔÚÚÚÔÏüMÆüÀËáü?äãËÂâääääääääääääääääääääääääääääääääääääääääääääääääääääÞüü?äääääääääääääääääääÀŸäääääääääääääääääääääääääääääääääääÀïäãüüüüüüüüüüüüüüüüüüüüüüüüüü?äääääääääääääääääääÀŸäääääääääääääääääääääääääääääääääääÕüäääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüüüÿääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü	äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüÉÿääääääääääääãIäääääääääääääÞäääääääääääääÕ?äääääääääääääÈÎüÉÁÁÃ)Å9ÇÎüü’äääääääääääääÕIäääääääääääääÈääääääääääääãüääääääääääääÚüüüüˆÚÀaÈ‹ÝlŠÌZŒÌÎÊüOÀlÂÈŠÁÀ’üˆæùŒÀlñü÷÷‹ÂéØÀnÑ×‹ÌÀ6ÀÁÀ†ŒÉÏÀlü‰ôÀZÀöÀ-‹îÀÊÈùåÀü—ÎôÀ.÷À…ïÀJ‹ÐÈü‰ôÓ	Ë‹À¥ÐêÈü‰÷ÀX‹Ø„ŒÁÕü÷ù‹Âé
ŒØküˆæÂÈ‹ÀlÌ.ÀŠÁîÀŠÀ…ÇìŒÁÎÀüOÀlÁÇŠÁÀ’ÀEÀ%ŒùÂÈÃå÷üˆÚÎÏ‹ÝÀ;ÀcÑ×Í‰ÁêÀŽÐËŒÌÀcÀÆÒü¥ÁäÈPü¥ÁäÈBü§ÍÌàŽÎüüääääääääääääÚü’äääääääääääääÕIäääääääääääääÈääääääääääääãüüÌÁÁÃ)Å9ÇËüÔÿääääääääääääãIäääääääääääääÞäääääääääääääÕ?äääääääääääääÈÐüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääúsÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿçüúpüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÖÏ½ÁÞüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüâÏ½Áäÿ¡¨¡þd²4.¡XdSelectµtheµattributeµthatµyouµwantµtoµsetµforµtheµblockµwithµthe¡X«mouse,µsayµtheµdcg_processorµattribute.¡XAµdialogµboxµsimilarµtoµtheµoneµshownµinµFigure 3³7µwillµbe¡Xbdisplayed.µTheµdialogµboxµdisplaysµaµlistµofµtheµselectedµobjects¡X¨thatµareµvalidµforµtheµselectedµattribute.µForµexample,µifµyouµhad¡Xïselectedµmoreµthanµoneµmodelµinstanceµinµtheµschematicµbefore¡X	5openingµtheµdialogµboxµandµthenµselectedµtheµdcg_processor¡X	|attributeµinµtheµdialogµboxµpop³upµmenu,µaµlistµofµtheµselected¡X	Ãmodelµinstancesµwouldµbeµdisplayed.¡þ
A5.¡X
ASetµtheµparameterµvalueµyouµwish,µinµthisµexampleµDSP_FIRST,¡X
‡andµthenµclickµApplyµtoµapplyµyourµchanges,µleavingµtheµdialog¡X
Îboxµopen;µorµclickµOKµtoµapplyµyourµchangesµandµcloseµthe¡Xdialogµbox.’…%D“I501ileaf_page_string1:3-36¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³36¡XÉ²Clicking´µCancelµclosesµtheµdialogµboxµwithoutµapplyingµchanges.¡,t²Figure 3³7³SettingµaµTargetµSpecificµAttribute¡Ê²¥	öäÒÓÐ§ƒÖ‚	ƒ†û9üâÏ½ÁäüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáúpüÐÕ½ÉÚúwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž3ÿÿÿÿùÏÿÿÿÿüÿÿ?ÿùÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿ÷üŒäDÙÏIÃÆ#ÈˆÙÞÀ1Ú"üŒÀç´sË"ÇÊ*ˆÊ´À4h*üØÀlÞÀòÎËÀlØØÀdÀÌÙÊÀ“À›ÀfÊÀÀ¦ÙÝøÀžÀ6ÐÐÀ‡ÀÆÜÀ6ÁÀL÷	À›ÖÀ&ÙÌüÔŒÀZÁÀaÀjÎÆÀÀZÀZÃÏÀ´À˜&À´À¼øÀ­ÀÀKÏÀXÀ$ÊÀ–À¦À´À4‹ÐüÌŒÎÒ˜ÅQZËàÄ3"qèZÆ‹ËüÓÅqdaTÇAkÀ˜"IøÈPüÀX1Ù)<ÀdLÀÆÇÄüŽÁÎÄyÂÅAX	í÷)ÈüÀ]ÁÀyÎÀ´ÀÀ^À^¼ÀXÀÀÀ¼Àô-ÀÀÏÇÍ¼À4À–À¼üŒÌÀ;ÀaÈÚÕÙÒØØÀcËÙÌÀÇÀ;ÊÜÀÀŽÙÞÊ×ÍÊÀÇÀÀ†ÎÀ3xÞÀ1ÀÀ™ÀÑÙÀÌüŽÁÀh™ÀZüÚs•ØüüüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüÐäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚúÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿìüüA·ÅCüüüüüüŠÖääääääääÈüŠÛääääääääÏüäääääääÚˆßäääääääÕü?äääääääÏˆÛäääääääÚür˜ÄüŒÛÈÐÏÖÈüŒÐÎÀÆÀ2Çü~ÉÚÉÚDÊÏÀÈ
êÈÝøü™ìÃÀÈPðÆëÇÀ’Éñü$)ÁÆ‹ÁîÈÀlØü#
ÁÌOÏéùÃü˜ÏO$üfJÍŒê<üÈPðÆëˆÍü3DÊÏÀZü|
ÊÎÀÆÀ2Èéùü-)ÁÀhÈÐÏÖÇ$lÐü’ìÃæÁÀ’Éðü|ÉÚÉÕŒÌ|ôüüüüüÉÁÀ¿äääääääÏˆÛäääääääÀçäääääääääääääääääääääääääääääääääääÏÎüÉÿäääääääÕˆâäääääääääääääääääääääääääääääääääääääääääääqüüüüüüüüüüüüüüüüüü?ÉÀñáøI|ˆÌ3üÀÄÀÈÀrÉñÀ’}1È{üÁÆÄØlˆñjü¡ÌÃÓÒ×ÂéØÀn×À6ÀyÀ1ÀÃÎÌÀNÀmÀ°ÀáÀÀ3ÀÃÀÃüÏÄTðÀ-ZÀÀ-ÄÀµÀ2åÈîÀNÀbPÁÀ5À¤åüLÍÀrªÀTÏùëÕJÈÀ¨
ÀcüÈÝ\aÌYp¥À…Ïü5°<ÀãÆü¦ÃÈˆØGüÁÀhØÀªÀTÀhÀiÀëÁîèÆ¨ëöÀgÉüÀÄæIñÀTÀ,À%ÁÀ”ÀJ%ŠÀ²å-ÎÑÍÀ´À¤åü?ÉÀáÈøÓÀ×zØÀc×ÍÀvÀaÀÃÁêÀ˜ÀÌÀ3ÎÀìÀcÀÃÀÃüüüüüüüüüüüüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüäääääääääääääääääääääääääääääääääääääääääääääääääääääääü»ÖäÕüülüüüÏÕÀèÁÀ°ÀØÕÔÚÚÚÔÀØ«ÓüêöëhóëÀ‰ÀiÀ)ðÀ¨ÆüîÀâåTÀ:À©ÔXÀYÀTÓü-%ÀaÀqÔ­ÀÆüŒÙÀÈÀÈ­éü-%1Æ­íüîÀâåTÂÀ©ÔÀYÀÁÀÁÀT¬ðüÀÁöÇ(ÁëÀ‰À)À)ðÀ¨¬ÅüÀ°ÕÕpÏÕÔÚÚÚÔÏ«ãüMÆµãüÀËáüÀóÀýÈüü»ÖäÕüäääääääääääääääääääääääääääääääääääääääääääääääääääääääü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüü?ääÀŸääääßäääääääääääääääääääääääääääääääääääääääääääääääÞü‹ÛäääääääääääääääääääääääääääääääääääääääääääääääÚüüäáÉäääÞüüÁÈÈü&ÇËü¢È	üÖÀÇÚÁáÀÏÕáäüU"ÀÇÀ“;ÀóÀÈ|ÉÀ‘À2Àçü*&ÀÀSÃÈÆ;ìüÈèÎFü*RÀC1AÍüU
ÉÏ[ÀÁÀÈxÉæÀÌüoMóÚxÉÀÐÀ2ü¢ÈîÀÁD%ü$À‰ÀKÀ˜ÈüÁÈÐÀ†ùåZüŒÀ;õÇ)ñüŒáÖÀ†	ÈÀÌÌÞÌüüÉáüäáÉäääÞLáüü‹ÛäääääääääääääääääääääääääääääääääääääääääääääääÚü?ääÀŸääääßäääääääääääääääääääääääääääääääääääääääääääääääÞüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääÚü?äääääääääääääääääääääääÀùäääääääääääääääääääääääääääääääÕüü[˜ËÈmüv–ÌÏsü[˜õbü[ÀÜØÀ™ÀãÔÔÚÀÀ‡ÀÀ¸ÙÙ‹ËÀ'À6ÀØÔÀÆÀ™ÕÀaÀžÉÌÚü2ÀJÀšÀÐÀÈÀ‰ÀhÊÀKÀCÀTÀ´À”‹óÀ'À1(šÀÐ-	Àhü(ÀÉ¡ÔËÂÆ,ÁÏÀTRÀ°ü\ÁÏ!ÎjÀ¸‹ÀRÈ}rü2ÂÏx<Àd‹×ðóÀ,xü%#.‹×_üpÄÏÁÔÀXI,Õ‹À¡îÅTðÄÀ°õË ÀXüJÀZð‰ð!å”À”ŒÀÀ°hÀ˜ÀZëÃòéÀaðü[ÀÆØÀ1ÀÛÌÔÚÌÀÇÀlÀÌÙÙ‹ÏÀÌÀfÀÀ°ÀvÀ1ÕÄÀÀ±ÀØÚü?äääääääääääääääääääääääÀùäääääääääääääääääääääääääääääääÕü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüü?äääääääääääääääääääääääääääääääääääääääääääääääääääääääÕü?äääääääääääääääääääääääÞüäÕüäÏüKäÐÕàßÈ‰ÁÀ˜Ëz~ÐÀãÞþÀgÚàâÈüÀØÀ™ÑÇdÈiáåÀ‰æÀä>ÁÀÈÀ™ÀsÈüü1ñÁ‹ÃÅÏØÂÇÅ3ñüÀ#QÒÒÀ7ÖÀ&:ØÀnùÁÇëîÍ#üèÈ˜Á"À*ËÀ’ÀâTÀZÀÆp	ÈÅ3À˜üfÑÀFÀ\ÀU÷ùÀÄ¨ÅÁÀÈUÎÀä<ÁÀÈÀfüÖÈÂc4æÞ<ÁÀèÀü]È
ÇˆÇüèÈôÏÆÁÈÀL~ü6À-QÀ\ÀUÂ¨ÀCTÂÀÐ-üüÁÀØÀ’"À*À–PÀJ
ÇÁðÀ‰ÆÀ’üÕÝÍÊÒÒÀ1ÀË8ØÀcùÌÀŒÍÚë~ÐÀÃzÀfËÝËüKä‹ÀÈüäÏˆÁãÀ²È ãüäÕˆÁãÝ
È{ãü?äääääääääääääääääääääääÞü?äääääääääääääääääääääääÀùäääääääääääääääääääääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü?äääääääääääääääääääääääÀùäääääääääääääääääääääääääääääääÕüäääääääääääääääääääääääÞäääääääääääääääääääääääãüüœäãÐäÚ˜ßäÈüüœÁÇüœÂÏ›ÁåüœÃÅüœÃÅüœÂÏ›ÁåüœÁÇüüœäãÐäÚ˜ßäÈüü Áäääääääääääääääääääääääãü›ÐäääääääääääääääääääääääääääääääÚüüüüüüüüüüüüÿääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü	äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüÉÿääääääääääääãIäääääääääääääÞäääääääääääääÕ?äääääääääääääÈÎüÉÁÁÃ)Å9ÇÎüü’äääääääääääääÕIäääääääääääääÈääääääääääääãüääääääääääääÚüüüüˆÚÀaÈ‹ÝlŠÌZŒÌÎÊüOÀlÂÈŠÁÀ’üˆæùŒÀlñü÷÷‹ÂéØÀnÑ×‹ÌÀ6ÀÁÀ†ŒÉÏÀlü‰ôÀZÀöÀ-‹îÀÊÈùåÀü—ÎôÀ.÷À…ïÀJ‹ÐÈü‰ôÓ	Ë‹À¥ÐêÈü‰÷ÀX‹Ø„ŒÁÕü÷ù‹Âé
ŒØküˆæÂÈ‹ÀlÌ.ÀŠÁîÀŠÀ…ÇìŒÁÎÀüOÀlÁÇŠÁÀ’ÀEÀ%ŒùÂÈÃå÷üˆÚÎÏ‹ÝÀ;ÀcÑ×Í‰ÁêÀŽÐËŒÌÀcÀÆÒü¥ÁäÈPü¥ÁäÈBü§ÍÌàŽÎüüääääääääääääÚü’äääääääääääääÕIäääääääääääääÈääääääääääääãüüÌÁÁÃ)Å9ÇËüÔÿääääääääääääãIäääääääääääääÞäääääääääääääÕ?äääääääääääääÈÐüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääúsÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿçüúpüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÖÏ½ÁÞüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüâÏ½Áäÿ¡ªÊ¡þ0²Theµschematicµofµourµnotchµexampleµhasµanµattributeµsetµforµtheµsink¡þyblockµDMPNR_DSPµ(M4).µTheµattributeµdcg_exitcond_inportsµhas¡þÂbeenµsetµandµaµvalueµofµ3600µhasµbeenµassigned.µAnµexitµcondition¡þ	
isµsetµasµsoonµasµ3600µdataµsamplesµhaveµbeenµconsumedµatµthe¡þ	SinputµportsµofµtheµDMPNR_DSPµblock.µThisµisµaµconvenientµwayµto¡þ	œindicateµtoµtheµDCGµthatµcodeµisµtoµbeµgeneratedµthatµprocessesµa¡þ	älimitedµnumberµofµsamples.µTheµdefaultµisµtoµprocessµanµinfinite¡þ
-streamµofµdata.¡þ
ÌOtherµexamplesµshowingµhowµtoµattributeµblocksµandµsignalsµare¡þgivenµinµtheµfollowingµsectionµonµMulti³DSPµcodeµgeneration.’%]D“I501ileaf_page_string1:3-37¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³37¡þÏ²
Multi³DSP´µCodeµGeneration¡þq²The´µDCGµcanµgenerateµcodeµforµmulti³DSPµarchitectures.µForµitµto¡þºbeµableµtoµdoµso,µyouµhaveµtoµspecifyµaµfileµthatµdescribesµtheµDSP¡þarchitecture.µThisµfileµisµcalledµtheµarchitectureµfile.¡þ©TheµDSPµarchitectureµfileµcontainsµtheµfollowingµdefinitions:¡þ0²S¡X0²Aµlistµofµprocessors,µeachµprocessorµisµspecifiedµby¡X¥³¡”¥identifierµ(name)¡X³¡”typeµ(forµexample,µTMS320C40)¡X³¡”theµnumberµofµportsµthatµareµalsoµidentifiedµbyµportµnames¡þ²S¡X²Aµlistµofµlinks,µwhereµaµlinkµisµaµconnectionµbetweenµtwo¡XKprocessorµports¡þàTheµblockµdiagramµalsoµhasµtoµbeµpartitionedµsoµthatµanyµblockµinµthe¡þ)blockµdiagramµisµmappedµontoµaµspecificµDSPµofµtheµarchitecture.¡þqThisµisµdoneµbyµusingµtheµdcg_processorµattribute.¡þThisµexampleµusesµaµDCGµtargetµforµaµ(virtual)µmulti³DSP¡þ`architecture.µEnterµtheµfollowingµcommandµtoµcustomizeµtheµtarget¡þ©byµsettingµtheµenvironmentµvariableµCOSSAP_DCG_PATH.¡,	,² %´µ²setenv´µCOSSAP_DCG_PATH²¡,	b²${COSSAP_DIR}/demos/dcg_gt_ex02/DSP_quad;² ¡þ	ò²Now,´µafterµrestartingµxdcg,µµtheµadditionalµQuadrupleµDSPµboard¡þ
:targetµisµavailable.µSelectµthisµtargetµbyµmovingµtheµmouseµcursor¡þ
ƒintoµtheµtargetµareaµandµpressingµtheµrightµmouseµbutton.µMoveµthe¡þ
ÌcursorµhighlightµdownµtoµtheµQuadrupleµDSPµboardµentryµand¡þreleaseµtheµmouseµbutton.’]
D“I501ileaf_page_string1:3-38¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³38¡þÉ²The´µtextµentryµareaµforµtheµarchitectureµfileµnameµisµcase³sensitive¡þforµmulti³DSPµarchitectureµtargets.µTheµmulti³DSPµarchitectureµof¡þZthisµvirtualµtargetµisµdefinedµinµtheµfile¡þÏ²${COSSAP_DIR}/demos/dcg_gt_ex02/DSP_quad/4dsp.dcg_arch¡þY²ThisµfileµconsistsµofµfourµDSPs:µDSP_FIRST,µDSP_SECOND,¡þ¢DSP_THIRDµandµDSP_FOURTH.µTheµtopologyµofµtheµDSP¡þêarchitectureµisµdefinedµinµthisµfile:µtheµnumberµofµDSPs,µtheµname¡þ3typeµandµportsµofµtheµDSPs,µandµtheµlinksµbetweenµtheµDSPµports.¡þÃTheµmappingµofµblocksµinµtheµschematicµontoµtheµspecificµDSPsµis¡þdoneµbyµtheµdcg_processorµattribute.µTheµdeclarationµofµattributes¡þTcanµbeµfoundµinµtheµattributionµfileµ(sxxxx.attr),µwhichµisµpartµofµthe¡þgeneratedµnetlist.¡þ²S¡X²TheµfollowingµblocksµareµmappedµontoµDSPµDSP_FIRST:µM15,¡X\M16,µM17,µM18µandµM19¡þÆ²S¡XÆ²TheµfollowingµblocksµareµmappedµontoµDSPµDSP_SECOND:¡XM5,µM6,µM7µandµM20¡þw²S¡Xw²TheµfollowingµblocksµareµmappedµontoµDSPµDSP_THIRD:µM12,¡X½M22,µM25,µM9,µM14,µM21,µM23,µM4,µM24,µM10¡þ?Theseµmappingsµcanµbeµverifiedµbyµcheckingµtheµdcg_processor¡þˆattributeµforµourµschematicµnotch.sch.µTheµDCGµwillµgenerateµa¡þÑseparateµmainµprogramµforµanyµDSPµthatµhasµbeenµreferencedµby¡þ	blocksµviaµtheµdcg_processorµattribute.¡þ	©Inµxdcg,µspecifyµquad_dspµasµtheµoutputµdirectoryµandµnotchµasµthe¡þ	òoutputµname.µSelectµCode²>²CreateµtoµcreateµtheµDSPµcode.µInµthis¡þ
:exampleµweµwillµthenµgetµthreeµdistinctµmainµprogramsµ(DSP¡þ
ƒDSP_FOURTHµofµtheµarchitectureµisµnotµusedµinµthisµexample).µIn¡þ
Ìorderµtoµseeµhowµtheseµmainµprogramsµinteract,µinµExample 3³9µwe¡þcanµtakeµaµlookµatµtheµschedulesµgenerated.’
ÍD“I501ileaf_page_string1:3-39¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³39¡,É²Example 3³9³Generated´µSchedules¡,² ´µµµScheduleµforµDSP_FIRST:¡,H/*µSchedule:¡,uµ*µ512µxµCONST_GENµ(M15)¡,£µ*µ128µxµSIN_GEN_TBLµ(M19)¡,Ñµ*µ512µxµFORKRµ(FORKR_SIG_0012)¡,þµ*µ512µxµADD2µ(M17)¡,,µ*µ512µxµout_msgµ(ipcs_:SIG_0006_1)¡,Zµ*µ512µxµFORKµ(M16)¡,‡µ*µ512µxµout_msgµ(ipcs_:SIG_0012_1)¡,µµ*µ512µxµout_msgµ(ipcs_:SIG_0019_1)¡,ãµ*µ512µxµFORKµ(M18)¡,µ*µ512µxµout_msgµ(ipcs_:SIG_0016_1)¡,>µ*µ512µxµout_msgµ(ipcs_:SIG_0016)¡,lµ*/¡,ÙµµScheduleµforµDSP_SECOND:¡,/*µSchedule:¡,5µ*µ512µxµin_msgµ(ipcr_:SIG_0006_1)¡,bµ*µ512µxµin_msgµ(ipcr_:SIG_0019_1)¡,µ*µ512µxµin_msgµ(ipcr_:SIG_0016)¡,¾µ*µ512µxµ{¡,ëµ*µµµ1µxµin_msgµ(ipcr_:SIG_0015)¡,µ*µµµ1µxµMUL2µ(M6)¡,Gµ*µµµ1µxµin_msgµ(ipcr_:SIG_0027)¡,tµ*µµµ1µxµMUL2µ(M7)¡,¢µ*µµµ1µxµADD2µ(M5)¡,Ðµ*µµµ1µxµSUBµ(M20)¡,ýµ*µµµ1µxµout_msgµ(ipcs_:SIG_0014)¡,+µ*µ}¡,Yµ*/’Í„D“I501ileaf_page_string1:3-40¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³40¡,½² ´µµScheduleµforµDSP_THIRD:¡,ê/*µSchedule:¡,µ*µ512µxµin_msgµ(ipcr_:SIG_0012_1)¡,Fµ*µ512µxµin_msgµ(ipcr_:SIG_0016_1)¡,sµ*µ512µxµ{¡,¡µ*µµµ1µxµFORKµ(M24)¡,Ïµ*µµµ1µxµout_msgµ(ipcs_:SIG_0015)¡,üµ*µµµ1µxµFORKµ(M25)¡,*µ*µµµ1µxµout_msgµ(ipcs_:SIG_0027)¡,Xµ*µµµ1µxµin_msgµ(ipcr_:SIG_0014)¡,…µ*µµµ1µxµFORKRµ(FORKR_SIG_0014)¡,³µ*µµµ1µxµFORKµ(M23)¡,áµ*µµµ1µxµMUL2µ(M10)¡,µ*µµµ1µxµMULSµ(M22)¡,<µ*µµµ1µxµADD2µ(M14)¡,jµ*µµµ1µxµMUL2µ(M21)¡,—µ*µµµ1µxµMULSµ(M12)¡,Åµ*µµµ1µxµADD2µ(M9)¡,óµ*µ}¡,!µ*µ1µxµDMPNR_DSPµ(M4)¡,Nµ*/¡þ¬²Any´µsignalµinµtheµschematicµnotch.schµconnectingµblocksµthatµis¡þõmappedµontoµdifferentµDSPsµisµanµIPCµsignalµ(orµcut³signal).¡þ˜ThereµareµsixµIPCµsignals:¡þ²S¡X²SIG_0006_1:µDSP_FIRSTµ²>²µDSP_SECOND¡þ²S¡X²SIG_0019_1:µDSP_FIRSTµ²>²µDSP_SECOND¡þ²S¡X²SIG_0016:µDSP_FIRSTµ²>²µDSP_SECOND¡þw²S¡Xw²SIG_0012_1:µDSP_FIRSTµ²>²µDSP_THIRD¡þë²S¡Xë²SIG_0016_1:µDSP_FIRSTµ²>²µDSP_THIRD¡þ	^²S¡X	^²SIG_0014:µDSP_SECONDµ²>²µDSP_THIRD’„	D“I501ileaf_page_string1:3-41¥	öäÃËÁâÊË¡Ä,K,5¡Ä,5	c5¡Ä	c5	cK¡Ä	cK,KÆÃÁÊËÃ¡Äþ5Ê5ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³41¡þÉ²Interprocess´µcommunicationµ(IPC)µbetweenµtheµdifferentµDSPsµis¡þhandledµbyµIPCµblockµpairs.µAnyµIPCµsignalµisµautomatically¡þZreplacedµbyµanµIPCµblockµpair:µoneµsendingµIPCµblockµandµone¡þ£receivingµIPCµblock.µInµourµexampleµtheµsendingµmodelµisµout_msg¡þìandµtheµreceivingµmodelµisµin_msg.µItµisµimportantµtoµnoteµthatµIPC¡þ4blocksµareµnormalµCOSSAPµblocks.µFromµtheµmodelingµpointµof¡þ}viewµthereµisµnothingµspecialµaboutµIPCµblocksµbutµfromµthe¡þÆimplementationµpointµofµviewµtheyµareµdistributed.µIPCµblocks¡þ"execute"µonµtheµcorrespondingµDSPs.¡þ‰Thisµvirtualµtargetµcomesµwithµaµsetµofµpreparedµcompileµand¡þÑdownloadµshells.µCompilationµofµtheµgeneratedµcodeµisµdoneµbyµa¡þfake³compilationµonµyourµhostµmachine.µHowever,µtheµcodeµcannot¡þbbeµdownloadedµbecauseµtheµvirtualµtargetµhardwareµisµnotµavailable.¡þÝAdditionalµdemosµforµmulti³DSPµarchitecturesµcanµbeµfoundµinµthe¡þ%followingµdirectories:¡þ²S¡X²${COSSAP_DIR}/demos/mdcg_ex¡þï²S¡Xï²${COSSAP_DIR}/demos/mdcg_inmarsat¡þ…²
Installation´µofµaµNewµTarget¡þü²To´µgenerateµDSPµcodeµforµaµnewµsingleµorµmulti³DSPµarchitecture,¡þEorµifµyouµneedµaµnewµcompileµandµdownloadµenvironment,µitµmayµbe¡þnecessaryµtoµinstallµaµnewµtarget.µForµtheµinstallationµofµaµnewµtarget,¡þÖperformµtheµfollowingµsteps¡þ	@1.¡X	@Writeµaµnewµtargetµfile.¡þ	Ÿ2.¡X	ŸSetµtheµenvironmentµvariableµCOSSAP_DCG_PATH.¡þ	þ3.¡X	þInstallµshellµscriptsµforµcompilingµandµdownloading.¡þ
^4.¡X
^Installµoptimizationµfiles.¡þ
½5.¡X
½Writeµtheµprocessorµarchitectureµfile.’	5D“I501ileaf_page_string1:3-42¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³42¡þÉ²You´µcanµcreateµyourµfirstµDCGµtargetµbyµcopyingµtheµvirtual¡þmulti³DSPµtargetsµintoµanyµdirectory,µforµexampleµtheµdirectory¡þZ${MY_DCG_TARGETS}.µEnterµtheµcommands:¡þà²%´µ²cdµ${COSSAP_DIR}/demos/dcg_gt_ex02;²¡þ%µ²cpµ-rpµDSP_quadµDSP_voidµ${MY_DCG_TARGETS};²¡þï²
Target´µFile¡þ•²The´µtargetµfileµdefinesµaµnewµtargetµforµtheµDCG.µItµmustµhaveµthe¡þÞfileµextensionµ.dcg.µThereµmayµbeµseveralµtargetµfilesµinµaµdirectory.¡þ&TheyµwillµdefineµseveralµnewµtargetsµinµturnµforµtheµDCG.¡þÏTheµtargetµfileµusedµforµthisµexampleµisµtheµfileµ4dsp.dcg,µwhose¡þcontentsµshouldµbeµasµfollowsµ(youµwillµneedµtoµeditµtheµlastµtwo¡þalines):¡,á² DCG_COMMENT_POPUP´µµµµµµµµµQuadrupleµDSPµboard¡,DCG_COMMENT_EXTENDEDµµµµµµAnsi/K&R-Cµsupported¡,<DCG_TARGETµµµµµµµµµµµµµµµµMULTI_PROC_DCG¡,jDCG_MULTI_DCGµµµµµµµµµµµµµYES¡,—DCG_BASE_DIRECTORYµµµµµµµµ${MY_DCG_TARGETS}/DSP_quad¡,ÅDCG_ARCH_FILE_NAMEµµµµµµµµ${MY_DCG_TARGETS}/DSP_quad/4dsp.dcg_arch¡þ&²where:¡þ¯²DCG_COMMENT_POPUP´µ¡Xø²Identifiesµtheµtextµthatµwillµbeµdisplayedµinµtheµpop³upµlistµofµthe¡X	@supportedµtargetsµwhenµtheµrightµmouseµbuttonµisµpressedµinµthe¡X	‰Targetµareaµ(seeµtheµsectionµTarget"µinµChapterµ2).µThe¡X	ÑkeywordµDCG_COMMENT_POPUPµmustµbeµtheµfirstµlineµinµthe¡X
targetµfile.¡þ
ƒ²DCG_COMMENT_EXTENDEDµ¡X
Ì²Identifiesµtheµtextµthatµwillµbeµdisplayedµalongµwithµtheµcomment¡Xpop³upµtextµinµtheµTargetµareaµwhenµtheµnewµtargetµisµselected.’5†D“I501ileaf_page_string1:3-43¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³43¡þÉ²DCG_TARGET¡ÊÉ¡X²Identifies´µtheµtargetµprocessor.µForµmulti³processorµcode¡XZgeneration,µtheµentryµmustµbeµMULTI_PROC_DCG.¡þÁ²DCG_MULTI_DCGµ²¡X
IsµaµBooleanµvariableµindicatingµwhetherµtheµtargetµisµfor¡XRmulti³processorµDSPµcodeµgeneration.µThisµshouldµbeµyes.¡X¹TheµDCG_MULTI_DCGµkeywordµisµoptional.¡þ<²DCG_BASE_DIRECTORYµ¡X„²Identifiesµtheµdirectoryµcontainingµtheµshellµscriptsµforµcompiling¡XÍandµdownloading,µandµtheµoptimizationµfiles.¡þ3²DCG_ARCH_FILE_NAMEµ¡X|²Specifiesµtheµnameµofµtheµdefaultµprocessorµarchitectureµfile.¡XãTheµDCG_ARCH_FILE_NAMEµkeywordµisµoptional.¡þ¿²WCOSSAP_DCG_PATH²µEnvironmentµVariable¡þ,²SetµtheµenvironmentµvariableµCOSSAP_DCG_PATHµtoµtheµdirectory¡þtcontainingµyourµnewµtargetµfile.µForµexample,µusingµtheµfollowing¡þ½command:¡þ>²%´µsetenvµCOSSAP_DCG_PATHµ${MY_DCG_TARGETS}/DSP_quad¡þÐ²Note:²¡X	²After´µsettingµtheµCOSSAP_DCG_PATHµenvironmentµvariable,¡X	byouµmustµrestartµxdcgµorµtheµnewµpathµinformationµwillµnotµbe¡X	ªrecognized.’†VD“I501ileaf_page_string1:3-44¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³44¡þÉ²If´µyouµhaveµseveralµtargetµdirectoriesµwhichµareµallµsubdirectoriesµof¡þaµdirectoryµ<my_dcg_targets>µyouµcanµspecifyµthe¡þZCOSSAP_DCG_PATHµenvironmentµvariableµasµfollows:¡þß²%´µsetenvµCOSSAP_DCG_PATHµSUBD<my_dcg_targets>;¡þ?²Now´µtheµDCGµwillµsearchµinµallµsub-directoriesµofµmy_dcg_targets¡þˆforµfilesµwithµextensionµ.dcg.µAnyµfileµwithµthisµextensionµthatµisµfound¡þÐwillµidentifyµaµnewµtargetµforµtheµDCG.¡þxSpecifying¡þü²%´µsetenvµCOSSAP_DCG_PATHµSUBD${MY_DCG_TARGETS};¡þ²will´µalsoµmakeµtargetµVoidµ3³DSPµboardµvisible.µThisµtargetµis¡þÙdefinedµbyµtheµfileµDSP_void/fictive.dcg.¡þ€Note:²¡XÉ²Ifµ²my_dcg_targets²µhasµmanyµsubdirectories,µtheµtargetµselection¡XofµtheµDCGµwillµslowµdownµsignificantly.µUseµSUBD¡XZ²my_dcg_targets²µonlyµforµdirectoriesµthatµcontainµonlyµaµfew¡X£subdirectories.¡þ‰²ShellµScripts¡þø²Selectingµ²²Compileµorµ²²Downloadµfromµtheµ²xdcg²µ²²Codeµmenuµcallsµa¡þ	Ashellµscript.µInµourµexample,µtheµshellµscriptsµinµtheµdirectory¡þ	‰specifiedµasµtheµDCG_BASE_DIRECTORYµwillµbeµcalled.¡þ
²S¡X
²Compileµshellµscript:¡X
X${MY_DCG_TARGET}/DSP_quad/dcgcc_master¡þ
Î²S¡X
Î²Downloadµshellµscript:¡X${MY_DCG_TARGET}/DSP_quad/dcgdl_master’V8D“I501ileaf_page_string1:3-45¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³45¡þÉ²Optimization´µFiles¡þ6²Theµoptimizationµfilesµforµourµtargetµcanµbeµfoundµinµtheµdirectory¡þ~specifiedµasµtheµDCG_BASE_DIRECTORY¡þ²S¡X²codesize.opt¡þv²S¡Xv²throughput.opt¡þê²S¡Xê²default.opt¡þÂYouµcanµadaptµtheseµoptimizationµfilesµbyµperformingµtheµfollowing¡þsteps:¡þ1.¡XSelectµtheµnewµtargetµinµtheµTargetµareaµofµtheµxdcgµwindow.¡þ2.¡XSelectµtheµdesiredµstrategyµinµtheµxdcgµOptimizationsµarea.¡þw3.¡XwChooseµ²²Settings²>²Setµoptionsµtoµselectµaµsetµofµoptimization¡X½strategies.¡þ14.¡X1Saveµtheµoptimizationµfileµbyµchoosingµ²²File²>²Saveµas.¡þôForµmoreµdetailedµinformation,µseeµtheµsectionµonµtheµSettings¡þ=Menu"µinµChapterµ2.’8­D“I501ileaf_page_string1:3-46¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³46¡,Õ²Generic´µCµCodeµGeneration¡þ²The´µDCGµisµaµhigh³levelµsynthesisµtoolµthatµgeneratesµoptimized¡þØcodeµforµprogrammableµprocessors,µsuchµasµdigitalµsignal¡þ processorsµ(DSPs).¡þ¿TheµDCGµcanµgenerateµtheµfollowingµtwoµtypesµofµCµsourceµcode:¡þA²S¡XA²AµCµprogramµ(.cµfile)µthatµdescribesµaµcompleteµDSPµsystem¡þ³²S¡X³²GenericµCµcodeµ(.gcµfile)µthatµhasµinputµand/orµoutputµportsµwhich¡XúcanµthenµbeµusedµtoµcreateµaµblockµwithinµanotherµDSPµsystem¡þºTheµfollowingµsectionsµdescribeµtheseµtypesµofµcodeµinµmoreµdetail.¡þ˜²
C´µProgramµ(CompleteµDSPµSystem)¡þ3²The´µDCGµcanµcreateµaµDSPµprogramµfromµaµschematic.µThe¡þ|schematicµmustµspecifyµaµcompleteµsystem.µExternalµportsµareµnot¡þÄallowed.µTheµgeneratedµprogramµisµaµCµmainµprogram,µwhichµmay¡þcontainµassemblyµcodeµsegments.µAfterµgeneration,µtheµcodeµcanµbe¡þVcompiledµandµdownloadedµontoµtheµtargetµhardware.¡þõWhenµoneµofµtheµfollowingµtargetsµisµselectedµinµxdcg,µaµmain¡þ	=programµwillµbeµgenerated:¡þ	¿²S¡X	¿²ANSIµC¡þ
1²S¡X
1²K&RµC¡þ
£²S¡X
£²pentekµ(singleµdcg)¡þ²S¡X²ariel32c’­ÍD“I501ileaf_page_string1:3-47¥	öäÃËÁâÊË¡Ä,=,'¡Ä,'	c'¡Ä	c'	c=¡Ä	c=,=ÆÃÁÊËÃ¡Äþ'Ê'ÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³47¡þÉ²²S¡XÉ²lsic30s¡þ8²S¡X8²adsp210xx¡þ¨²S¡X¨²dsp96000¡þ2The´µfollowingµtargetµgeneratesµcodeµforµaµmulti³DSPµarchitecture:¡þ±²S¡X±²pentekµ(multiµdcg)¡þw²
Generic´µCµCodeµ(OneµBlockµofµaµDSPµSystem)¡þ²A´µsubblockµdiagramµofµaµDSPµsystemµcanµbeµreplacedµbyµaµprimitive¡þVmodelµwrittenµinµgenericµCµcode,µtherebyµimprovingµtheµruntimeµofµa¡þŸCOSSAPµstreamµdrivenµsimulation.µYouµcanµuseµtheµDCGµto¡þçgenerateµgenericµCµcodeµfromµthisµsubblockµdiagram.µFirst,µextract¡þ0theµsubblockµdiagramµandµplaceµitµinµitsµownµschematic.µThen,¡þygenerateµtheµgenericµCµfileµandµincludeµtheµresultingµmodelµinµa¡þÁmodelµlibrary.µTheµmodelµcanµthenµbeµplacedµbackµintoµtheµDSP¡þ
system.¡þ¤UsingµtheµgenericµCµcodeµmodelµimprovesµsimulationµperformance¡þíbecauseµthereµisµnoµruntimeµoverheadµdueµtoµdynamicµschedulingµor¡þ5dynamicµsignalµbufferµallocation.µAllµfunctionalityµofµtheµformer¡þ~subblockµdiagramµisµhiddenµinµtheµprimitiveµmodelµdescribedµbyµthe¡þÆgenericµCµfile.µSubblockµdiagramsµthatµhaveµaµhighµgranularityµor¡þ	containµtime³consumingµfeedbackµloopsµareµtheµmostµlikelyµto¡þ	XimproveµsimulationµperformanceµwhenµreplacedµbyµaµgenericµCµcode¡þ	 primitiveµmodel.¡þ
:TheµsubblockµdiagramµcanµconsistµofµgenericµCµcodedµmodelsµonly.¡þ
ƒItµmustµbeµ²scaleableµstatic².µThisµmeansµthatµallµportsµofµitsµblocks¡þ
Ìhaveµfixedµratesµ(static)µandµallµratesµofµaµblockµcanµbeµanµinteger¡þmultipleµ(localµblockµfactor)µofµtheµbasicµratesµ(scaleable).’Í@D“I501ileaf_page_string1:3-48¥	öäÃËÁâÊË¡Ä,%,¡Ä,	c¡Ä	c	c%¡Ä	c%,%ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µxdcg¡.3³48¡þÉ²Note´µthatµallµblocks,µports,µandµsignalsµwithinµtheµblockµdiagramµare¡þnoµlongerµvisibleµtoµotherµCOSSAPµtools.µForµexample,µinternal¡þZsignalµbuffersµofµtheµsubblockµdiagramµcannotµbeµmonitoredµwhenµit¡þ£isµreplacedµbyµtheµprimitiveµmodel.¡þ>WhenµtheµgenericµCµtargetµisµselectedµinµxdcg,µaµgenericµCµcodeµfile¡þ‡isµgenerated.¡þ_²
Getting´µStarted¡þ÷²The´µproceduresµforµgettingµstartedµareµbrieflyµsummarizedµhereµfor¡þ?yourµconvenience.µTheyµareµdescribedµinµmoreµdetailµinµthe¡þˆ²COSSAPµTutorials²µmanual.¡þ1.¡XAtµtheµcommandµprompt,µenter¡þt²%²´µscpµdcg_ex03²µ¡þè²2.¡XèRespond´µtoµtheµpromptµasµfollows:¡,T² create´µnewµCOSSAPµprojectµ'dcg_ex03'µ?µ[y/n,µdefaultµn]µ:²=µ²y²=¡þÄ²3.¡XÄAt´µtheµoperatingµsystemµprompt,µenter¡þ0²%²´µcd³${COSSAP_DIR}/demos/dcg_gt_ex03²Y¡þ£²4.¡X£Execute´µtheµREADMEµshellµscriptµbyµentering¡þ	²%²´µ./README¡þ	ƒ²5.¡X	ƒSwitch´µtoµtheµconfigurationµdirectoryµofµyourµcurrentµprojectµby¡X	Êentering¡þ
6²%²´µcdir¡þ
ª²6.¡X
ªStart´µtheµBDEµbyµentering¡þ²%²´µcbde²µ²&’@	aD“I501ileaf_page_string1:3-49¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ÙÁ²Using´µxdcg¡Ô¤ÿ¤3³49¡þÏ²
Loading´µtheµSchematic¡þn²To´µgenerateµgenericµCµcodeµforµthisµexample,µloadµschematic¡þ¶acc_prim.schµ(describingµanµaccumulator)µintoµtheµCOSSAPµBlock¡þÿDiagramµEditor.¡þ„1.¡X„ChooseµFile²²²>²²Open.¡þ÷2.¡X÷Selectµtheµsampleµschematic,µfileµacc_prim.sch.¡þ‰TheµmodelµillustratedµinµFigure 3³8µisµloadedµinµtheµBDE.¡,;²Figure 3³8³Schematicµacc_prim.sch¡þ¹²¥	öäÒÓÐþoŒ,ûÈüüüüüüüüüüüüü‰ÎÈüŠÁÈ©ÉüŽÁÈ§ËnüüÐÀÁÀñÀ†ÀfÀ1À†ÉÀæÀcÀáÀ°ÁÀ™Ïü$çòÄ	ìæÃÅÆÞÜÖÀŒÀ3À1ÀŒÍÛÀ3ÛÀÈÉÀáÀ†ÀÌü
ÉÈÕÕ	ÀFÀaÏÔÈœÁñïÅÇJÇ$ÈÆÈÅü2ôÀeÌ)ÈQÇ÷ðÇžëÒÐç
À3ÑÉÈÁÏÌüOÈ¢ÁæÀ£ðÏ„2Qî
ðü&Ï£Õü!£ÁÍ&üÀeÌÄ"
ð¡Ç'ü
ÉÈÕÙxÁÇïÏ¢À£ðÏÇ:QÇ
ðÄü&ÄòøÅ	ÅÃÀÁÃÅ¡ëÒÐÉÏIÏ÷ÂÑ
ÏÙÄüÀ‡ÀÁÚÀæÀcÌÀæÀcÀ°ÀÃÀáÈÁÀ˜ÎœÁÍïÅìÈ!ÈÀ&ÄÆÈöÅÆü®ÀìÜÖÀ‡À3ÌÀÇÀ3ÀÀ†ÛËIÕÀæÌüÖáüºâÕüÖáüºâÕüüüüüüüüüüüüüüüüüü˜ÐäääääääääääääääÚü˜ÉäääääääääääääääÕüüüüüüüüüüäääÚüŠÄüŠÊüŠÁÈÈ„üääÏÎÌüŠÍÌÀÀ,ÀEÀXüŠËÊÖ×ÁÇüŠÉÁÈŒÄÅü‹ÏÎÄ‰Âü‹ÍÌÃ‰Áü‹ËÊÂŠÈ)Äü‹ÉÁêŠÇÙÇüŒÏÎŠÆÀ‘ËÀ4ÀÄüŒÍÅÈ‰Å˜ÉäääÚüŒË9‰ÄœÄüŒÉ?ääääääääá2ˆÁÕÂ	ÊüŒÉ?ääääääääá‹ÉÚÁÈüŒÒ9‰ÄtâÀƒáRÀÙÀÀXÀŠÈ‰ßääÏÎüŒÎÅÈ‰Å>ÂÐÈØÂÈŒÍÌü‹ÁÈÀaŠÎÛÆÀùÌÇ3ŽËÊü‹ÊÉéŠÈFÃÐå’ÉÁÏü‹ÌËÃ‰ÁÀhPÂÀ˜&ˆÆ|Íü‹ÎÍÄ‰ÂŠÈÊÌÆÆÅÃˆÅlËüŠÉÈÏÂÀ”ÆÉÀ1ÀáØÚéˆÄÉüŠËÉ•ÂÇÁÆÀÓÌÀiêtÈÏüääÚË‘ÚÈF‰ÎÓü‹ÔÃÂ	?
Ä‰ÌÃüŠÁÈÁÀèÐÂÀ’<?ääãÐäääÏUüŠÊŽÈˆÅÃ?ääãÐäääÏUüäääÀ˜‘ÛùÛÆÀùÐÕ>
Ä‰ÌÃüŠÎŽÀÀ,ÀEë:ÂˆÈ‰ÎÓü™Ö×ÁÀCÉâÀƒáÛÕyˆÇˆÁÈÏü™ÄÅQ‹ÁˆÃÉüœËáˆÄ\Ëü—Âd‹ÃˆÅlÍü—Á*Äá$ˆÆ|Ïü˜ÈÙÀO˜ÉÁü˜ÎÀ‘ËÀ4Àß˜ËÊü˜Å™ßääÚÌü˜ÄÎü—á2šÁÈü—ÝÊü˜Ä˜ÉäääÀ˜ü˜ÅœÎü˜Æ‹Êqü˜ÇŽÎü˜È‹ÁƒÈü—Áü—ÂêÉÈüü¤ÁîÈüü¥À¥üü¥îü¥Ìü¥ñüü¤ÊÌÎÎüüüüüüü˜ÉäääääääääääääääÕü˜ÐäääääääääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü˜ÐäääääääääääääääÚü˜ÉäääääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüœØ91ABü›ÁÀÂÖÀ¹ÈÊÊÁÈÉüœÁÆÂöëÀ,íÇüœÝêÀ¶YùËÀž9üœÂ#ÅüÇéÃ6ü˜ÄÇü˜ÅCÁÀ´ÂøïÀJÅÄDü˜Æ~ÍÊ×$×ÙÇ
ü˜Ç<ÀÀòÀÖÉËÀ4Ïü˜È?Æü—ÁÇÈü—à!4$ÛäääÏü—ã|ÀƒÞàåë&ÛäääÕü—Á‹Ãü˜È
ãÖÀùãÏÍÍIü˜ÎÁü˜ÅŠßÚDü˜ÄÇü£ßÚ4üüüüüüüüü™Ëyü›ÉÏü™ÂÁËÆü›ÉÀÐü™ÁÂËüœÇü™ÂÀ…ü›ÁÆü™ÁÀJÂÇü›ÃÈüšèøüšÍÂüšìÉÚüü™ËÍÀÏÚüüüüüüü˜ÉäääääääääääääääÕü˜ÐäääääääääääääääÚüüüüüüüüüüüüüüüüÿ¡r¹¡þ	¶Thisµschematicµconsistsµofµtwoµblocks.µItµhasµoneµexternalµinputµport,¡þ	þaccumulator_in,µandµoneµexternalµoutputµport,µaccumulator_out.’	a D“I501ileaf_page_string1:3-50¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³50¡þÉ²Now´µgenerateµtheµgenericµCµcode,µasµexplainedµinµtheµfirstµexample,¡þspecifyingµtheµfollowing:¡þ–²S¡X–²outputµdirectory:µ²primitives¡þ
²²S¡X
²outputµname:µ²acc_prim¡þœ²TheµgenericµCµfileµisµshownµinµExample 3³10.¡,M²Example 3³10³GenericµCµFile¡,ž² /*****************************************************************¡,Ì´µµFileµnameµ:µµprimitives/acc_prim.gc¡,µµCreatedµby:µµwberger,µMonµMayµ26µ09:06:17µ1997¡,9µµgeneratedµbyµtheµCOSSAPµDSPµCodeµGenerator,µReleaseµ1997.08¡,gµµSynopsys,µInc.µ1997¡,•*****************************************************************/¡,Ë/*µInputµportµsectionµ*/¡,ùINPUT_PORT(1)µregisterµlongµ*accumulator_in;¡,'RATE(INPUT_PORT(1))µ=µ1;¡,]/*µOutputµportµsectionµ*/¡,‹OUTPUT_PORT(1)µregisterµlongµ*accumulator_out;¡,¹RATE(OUTPUT_PORT(1))µ=µ1;¡,ï/*µMemoryµallocationµforµdelayedµsignalµbuffersµ*/¡,/*µCOSSAPµSignal:µ:SIG_1_2µ(DELAY-size=1)µ*/¡,KSTATEµlongµsignal1[1]µ=µ{0};¡,BLOCKFACTORµlongµBlockFactor;¡,¸/*µSignalµprocessingµfunction:µ*/¡,ævoidµacc_prim()¡,{¡,Aµ/*µTableµofµCOSSAP-DSP-blocks:¡,oµµ*µMODEL_NAMEµµµµµµµµµµMSEQNAMEµµµµµµµµµµµµIMPLEMENTATION_NAME¡,œµµ*µFORKIµµµµµµµµµµµµµµµFORKI_SIG_1µµµµµµµµµfork¡,Êµµ*µADD2_IµµµµµµµµµµµµµµM1µµµµµµµµµµµµµµµµµµadd2¡,øµµ*¡,	%µµ*µTheµDELAYµblocksµhaveµbeenµreplacedµbyµdelayedµsignalµbuffers.¡,	Sµ*/¡,	Šµµ/*µSchedule:¡,	·µµ*µµ1µxµADD2_Iµ(M1)¡,	åµµ*µµ1µxµFORKIµ(FORKI_SIG_1)¡,
µµ*/¡,
Iµ...’ QD“I501ileaf_page_string1:3-51¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³51¡,½² ´µ/*µMemoryµallocationµforµsignalµbuffersµ*/¡,êµstaticµlongµsignal2[1];µµµµµµµµµµµµµµ/*µSignal,µCOSSAPµname:µ:SIG_1µ*/¡,!µLOOP(µBlockFactorµ)¡,Xµµµ/*µInlineµexpansionµofµblockµadd2,µMSEQN:µM1µ*/¡,…µµµ{¡,³µµµµµ...¡,áµµµ}¡,µµµ/*µInlineµexpansionµofµblockµfork,µMSEQN:µFORKI_SIG_1µ*/¡,Eµµµ{¡,sµµµµµµ...¡, µµµ}¡,×µENDLOOP¡,}¡þ‘²The´µgeneratedµgenericµCµfileµnowµcanµbeµintegratedµintoµaµCOSSAP¡þÙlibrary:¡þ^1.¡X^MoveµtheµgenericµCµfileµintoµtheµdspgenericµsubdirectoryµofµthe¡X¤libraryµlocatedµinµdirectoryµ${MY_LIB}µwithµtheµcommand:¡,² %´µ²mv´µ${HOME}/cossap/dcg_ex03/d/primitives/acc_prim.gc²¡,K²${MY_LIB}/dspgeneric;² ¡þ»²2.¡X»From´µwithinµtheµBDE,µselectµTools²>²mmakerµtoµstartµthe¡XCOSSAPµModelµMakerµutilityµ(forµdetailsµonµthisµutility,µseeµthe¡XH²COSSAPµModelµUserµGuide²).µInµtheµdialogµbox,µenterµtheµlibrary¡XŽnameµ(inµthisµexample,µTEST)µandµtheµnameµofµtheµmodel¡XÕ(acc_prim),µasµshownµinµFigure 3³9.’Q¨D“I501ileaf_page_string1:3-52¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³52¡,É²Figure 3³9³Starting´µModelµMaker¡® ²¥	öäÒÓÐ®ýdÁìûíüû½ÃüâÏºÛÚüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏúp@wüÐÕºßüäääääääääääääääääääääääääääääÀùääääääääääääääääääääääääääääÈüüü›ÀÍÀÙÀ‡ÈÀgÀÈüÔšÊÀèÀ7ÀKÇÀ+Ç›ÔüÌšÃÇòËyÉÈšÏüžÐÁÉÂüžÀÁÀCÏü åÇüžÀåÀÏü›ÀÀ˜ÀÌÀÇÀfÀgÀŒüüüüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüüüüüüüüüüüüüüüüüüüüüÚKÀ3WÈÌ×fÎIÀ3	À˜OiüÚÁÈ‘Êü‰ÍÊkbüLÀrÀgÀÈÍÀáÀ³ÀÆÚÏÀñÀ¸ÓÊÀÜÒÑÖSÒjÕÚÌÚÚÀ¸ÓÒ×üÊÀkîPÀEÀ¡	ÀhÀdëÁÀªÀ*ôÀÈ
pQÀhÁÀiÀ)ÏIÀTÀTðÀ-üÚåIÈ¨ÀvÁÀéïÈëÀ¨ÁÅÀUÀ*ÁÀ°©ÈÁÈÀYÀ°ÆÀªÀTüÚILÈàVþÏàáÔÀhÛÏ[üNÏÈÅêÎÈþÏ	ÎÁÎÀÈÀhÛÏüÊŽÁÀ°!À°ü"Ï¨ÁÈøq¨UÀ*ùÈp¨ÎaÀÁÏªÀTÀüÚÁÀiÇÐÃë	ôX*ÀõÈÑôÁÀðTÀ,À%üÀóÌÀÇÀŒÉÀ3ÀaÀƒÀ¶íÀŒÀ6ÊÀfÒÀÀÌfÀlIÀ3ÎÀíÀ˜ÀìÚZÀÌÓÀ×Íü÷üÅŠÊüÒŠ×üüÈÌüÌüüTÀÜÒÑÖÁÀ¸ÙÀÛÀ‡ÈiüáÀªÀ*ôÀÈÀdÀ´À5ÀKÀNüKÀaÅÀUÀ*PÏòÈÍüÈSpIÉÇüÈÈ°IÀÃÇüKÎ‰ÀÈüàUÀ*ùÈiÀÎiü*ÀõÈŠ	ÇüTÀfÒÀÀÀÀŒÀvÀÌÀÇÈiüÊüüüüüüüüüüüüüüüüüüüäääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüÀ˜ÁããßßÏlÉVüÀÎÜÀLÀ¹ÏüÈŽÊüÀ‡ÈÛÀƒêÀÁÕÁÕÕÕÉÀaÀ¶ÀmÏüÈL5ÀEîéÀÐÂÀÑöÅÐÇÀåüÇ>À3"÷À¥ÇIÂÀâÕ¨Ôöü?È>ËÈÁá|ÁÏÅÅü?È	áðÂÏüŠÎŠÅÅüÇÈ
À¥ÇÀ°ÂÀâÕ¨üVÈ>ÀIîÀÂëÂÀ)öÅPüÀ›iãÜÊÌÀÃêÀ±ÀãÁÀØÕÕáÀ†ÀfÎüü–ÐÞü–ÐÀûüüääääääääääääääääääääääääääääääääääääääääääääääääääääãüüäääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü‰ßäääääääääääääÈŠÖäääääääääääääÕü‰ÇÇŠÅÅüü‰Öääääääääääääã‹ÉäääääääääääääÈüüüüüŽÎj”ÁÚ|ü¦ÊìüŽæ—ÁÀ°üŽÎÀØÀlÊÌ“÷ÄÀñÀ¸ÓÙüÁÄÀ4À–ÁÀhÀdíÀ´üÀ*Àùð”ÁÈëÀ¸üÂÀ”™ÕÍüŽÚÅ”ÁÎ<üŽÚ{“÷Äüù÷À*ÀÁÆ“ÁÀ°Î¸À,üô÷•ÊÀIôDÀ”üÊÊÓÒÍ”ÁÚÀíÀŒÓÙÏü‘ÁÇü‘ÂüÏÎÉÈüüü‰Öääääääääääääã‹ÉäääääääääääääÈüü‰ÇÇŠÅÅü‰ßäääääääääääääÈŠÖäääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÌ¼ÏüÔ¼ÔüüüüüÐÕºßüÖÏºÛÈüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüüâÏºÛÚÿ¡ ¡XZ²ModelµMakerµnowµdisplaysµtheµmodelµfiles,µasµshownµin¡X Figure 3³10.’¨þD“I501ileaf_page_string1:3-53¥	öä¥	öä¡ÙÁ²âUsing´µxdcg¡Ô¤ÿ¤3³53¡,É²Figure 3³10³Model´µMakerµwithµtheµModelµLoaded¡W ²¥	öäÒÓÐYý>a­b®&ûŒ1üâÏ‰ÿÈüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüÖÀÏääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääááüÐÀâY†	ÞüäÀûäääääääääääääääääääääääääääääáäÀçäääßääääääääääääääÀŸäääääääääääääääääääáü”ÚÙØØËÛÁÀÇÓÀùÀùÀãáü—ÁÀhÀ´ÀZÀZQÈŒÐÓÀzÀÓÀœvü?È“ÂÀ™ÀJÊÊÀÒ×ðËÀñÀ°lÁÀž×Ø6À6ÀcÀfüÔ—ÅÅ¬À-À,À-ÀaÀhùÀhE-À-ÀZÝ“ÉÈüÌ1È–ÀLÀLÍAÈÌpârÎÁÀ°ÉÊ!Ñˆ“ÊüšÀ2À2ÀÐ\àÆÎÇâqæ$ü—ÄÄÀ\ÊXÀÁÎðÙ=,ü—ÂÀ‰ÀJÎÎÁÄL	ÈÁÂü”ÁÙÀ´ÀZÀZkÀ-À,À/	êÀtÁÙzÀÐ.À¯À^ü•ÚÙØØÀcÌÁÉ×À×ÌÄÌÀìÀÌÀñÈÁÀùÕÀaÀÀžØãÑÍÀcÀ3ü³ãüIäÚ°Íü	üÿÞüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüüüü	áÀÌ?ÈÀÌ>Nár
À†qü|ÈyÉ{JÀœü{]6ü{ÙÀÍ	ïÀ6ÙÀyÀ3ÏpÓÉÏ<ÊÏü´
ÁÍ#À´ÀµÀ5å¨ÀTÃåZÁåüxÀ•yÀTÀªÁÎx	ëüxiÈnÔÁÈÏxÌü<ŠØÀ°ÁÕMÆüŒÁï‹Èü,)6,ÍöÎ
ÀTÀªÐÁëü”À‹°É”ÀŠÀ´å¨ÀTÃåJ ü	ÈÀÌÙ?À†ÀÌÎ>ÍÙÀvÀcÏrÔÓÀcÏ	À†ØÀaÏüIãÏKäÈMáMäüIãÏKäÈMáMäüžÊüüüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüüääääääääääãÁäääääÞüääÛäãßäáâäÞÿäÀñääÕüüDäÞüË~ÀâÈIÀôüIÌ3ý	S	Åü	ÀÞpÁÀºÈÐÀãüIÀ{\ÀæÈ üIÏ
åYIÀãÎ	Àï	ÅüÄÓƒëÁÀºÈÉÀâÆ	ÕüÒÀìÁÀÆåõIÀáÇ	áàü$ámÇ
IÕÈ	á üKáÁÀºÈÕ
á:ü<áÕÕÈ	á	ÅüÓj4IÕ
á üÀÐ4>IÕ
áüàa	Åü
À°:ÀâÈIäüääÈüüääÛäãßäáâäÞÿäÀñääÕüüääääääääääãÁäääääÞüüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_ÿÿÿÿÿÿëÿÿÿÿÿÿÿÿÿÿÿÿÿÿö?ÿüüüüÀúÃÛÀÉ“ÉÕ‹ÉÈFÄ%ÉÈ1üÙÇÖÏ“ÁÞA‰ÖÕ2‹ÖÕÂü’Ä”Å‹ÃÇÏÇ1üÀ°ÙÄ×“ËÀyÀgÈˆÌÀ%Àž×ÀYÕáÄÀñÔÚÚÕÌÀ2ÀåÀ£ÀÅÏü°À´‘À-”ÀµÀkÇ‰ÉÀ­À-ÀZÀÐIÀaÔÁÀhÀéÀiÀiÔ	ÀÕÀ…À£åüHÖÈõ”ÀÈÃÈ‰ÂõÀ2ÁÆÁææÀ˜ææ	ÆÂîÇüxÖÈ×”ÙÐÈŠ××ÁÕQÍÁÀ˜Úðü|‘Û”À¸ÐÏŠÛÀ.ÁÚIÕ	ÔøüªËÇŠÌÆ)KÕB!bÍüL‘À“ÅìÃÏˆÃÇÀõÁÍYÌæÚæÀ˜æÃïÆÂÇüpÀ´‘À-’ÁÞÀºÀëÇˆÖÕÀ-À.ÀºÀÐ
ÔÁÀtÁÀiÀiÔÖÀáÀÓÀ…åü‚À4ÙÅø×’ÉÕÀvÀgÈˆÉè×ÀÀ™Õ!ÄÀèÎÀíÄÚÚÀèÉÈÀáÀ£ÀÄÆüüú@?ÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö?ÿüüÈü?ÇÖ<àÈŠÆÄürßÏÉÞ•ÁÀáÕ××ßAÕØØÐÀ‡ÈüPÅÈ;"ÁÅÈOÀóÚÅÅbßßÜÁÀƒÚààÖÀÏÏüÎÎÀGÀ‹À‡À‹ÀGÈÀÁ!ÀñøÀgÀ‡ÈÖÖÀÀ–ÎÀ:ØgÍÀòÄÌJÁÈÂ:üÈÀGÀKÀGÀÇIêÀhëÀKÇÀ–À–ÈÑÀŽÖÚÀ\ÀZÀhÍüÈÉÀÄèèèÃÏ	Õæ„ÀÄÈøÀ‰ÈøÄÄÈñÀ&ðYÀaÀ“ÌSb~ÇÖÏüÈÉÀ‡ÈÐÈxÈŽÚð>Ü{~ÏüÈÏÐÏ,ÏÊÀÁÀqÈ×Ë	ÈüÈÎ=ÀÁÂ<#AÈDÍ1ÆJüÈöèÏÃÏÃÈòÁÅææÃèÏ	øø	ññOÈæÏc:üÈßÀ‹ÇÀÇÀÇâÉÀùÀiÔÀÀKÇÀVÀ–ÈÑÈ\ÀZLÀóÚ	ÀtÆ?ß
ÚààÖÀÏÏüÀGçÀGçÀGÈÒàÚÀéÐÀ‡ÈÀÏÖÅÀ‘õÓØÀáÕóÄÀì××ÅCÀòØØÀGÀ‡Èü?Õ™Àd‹ÈüÚ”ßÏZŠÁÇü—ßÀÐ<ŠÁÈüüÈü?ÇÇÅ)ÂÐÏàÃÄŒÈ;Ê‹ÁÀÈŠÅÅürMÚÁÏA‘Ñ‹ÉÈŠÌÍüPÆÆ41ÃÄŒÈ‘ÇüÎÍÀaÀáÀÁÕaÀòÀ¥ÀÅÀhÀñÔÖÖÀÀ–ÎÀYÀ‡ÐÀ”‰À.×ùÇÚ‰ËÀcÀÃÏüÈÀÒÀâÀÐ	ÀjÀƒÀ¡ÀaÀhÀèÀ–À–ÈÑÀŽÖÚßÀËÀ‹ÀT‰ÀÀ-ùÁÀhŠùÀ§ÕüÈÌÀÁóóÆÂÇæøÀ‰ÈøÄÄÈòÃèÈ‰õõ‰ÊÀÂÇÆüÈÕð‰Ö‰ÐÈÚðÛÏOÀƒÀÇÏüÈÀÈ	Úø‰À‰ÐÏÚøÛÏˆÉÀãåüÈfŠÄAÈ¢ÇüÈÐÁóóÍ1À˜	øø	èÏŠõ˜ŠÂÀdüÈÀÒÀâÀÐÉÀñÀháÀhÀVÀ–ÈÑÈÀ‹ÇŠÀ-	ÀhŠùÀ§ÕüBöÀáÀÑÀâÐÏÀñññÀhÀñÄÀÏÖÅÀ‘õíÀGÀGç‰ó×ÂìÚ‰ÁÉÀÃÏü?ÕüÚ”ßÏü—ßÀÐüüÈü?ÇÑp”ÈÁÀÈŠÅÅLéÐÀ†ÄÅÆürßêá¥ÉÈŠÌÍÕÛÕ:üPöˆ”È‘ÇÃÇÄÀC8üÎÎÈÃÙèÀ³ÀÃÏ‰ÖÖÖÀÀ–ÎØŒÀ.×ùÇÚ‰ËÀcÀÃÏ3ÍóÈ(ØØÀ°üÈ	ÏÀ´uÀ¥å‰ÀÀ–À–ÈÑÀŽÖÚÀZŒÀÀ-ùÁÀhŠùÀ§Õl(ÀZÀZÀ°üÈðìBÀbÇ‰ÀøÀ‰ÈøÄÄÈÀ&Œõõ‰ÊÀÂÇÆÈÁÕÏJÚ$ÀdüÈ<KÏ‰Ö’ÐÚðÛÏOÀƒÀÇÏ
ÕÁÏÆIÚ<üÈ"KÕ‰À’ÐÚøÛÏˆÉÀãå;rÝIÚ\üÈÎê4ŠÄAÈÇ"i|IÚ2üÈöˆììÂîÎ‰øøø	ñõ˜ŠÂÀdÇÄÏÀ1Àƒ$ñüÈßêáÀ´À¸ùÀ¥å‰ÀÀVÀ–ÈÑÈZÀ-	ÀhŠùÀ§ÕÕÛÏZÀ]ÔüpÙÀtÀƒÀÃÏ‰ÑÀÏÖÅÀ‘õØŒó×ÂìÚ‰ÁÉÀÃÏJéÐñÀÁßØÀ;Íü?ÕüÚ”ßÏü—ßÀÐüüÈü?ÇÒ"!‘ÈÁÀÈŠÅÅürâ§ÉÈŠÌÍüPò–È‘ÇüÎÁïÀYÀƒÀ‡È‹ÖÖÖÀÀ–ÎØéÀ³ŠÀ.×ùÇÚ‰ËÀcÀÃÏüÈÔ?ÀÇÀKÇ‹ÀÀ–À–ÈÑÀŽÖÚàÈ‰ÀÀ-ùÁÀhŠùÀ§ÕüÈØÀcòÃèÈ‹ÀøÀ‰ÈøÄÄÈÂÀÆíŠõõ‰ÊÀÂÇÆüÈÖÖ|ŠÐÚðÛÏOÀƒÀÇÏüÈÂÍÀ:Î‰ÐÚøÛÏˆÉÀãåüÈÇÊÄAÈËœÇüÈòÌèÈ‹øøø	ÇÍŒõ˜ŠÂÀdüÈâÃÀKÇ‹ÀÀVÀ–ÈÑÈ~ÄŒÀ-	ÀhŠùÀ§ÕüDÀKÀ‡ç‹ÑÀÏÖÅÀ‘õØˆÈ‰ó×ÂìÚ‰ÁÉÀÃÏü?Õ)˜ÆüÚ(’ßÏPül’ßÀÐtüüÚü?ÕÑÄÄ8ŽÈÁÀÈŠÅÅGÂü?È
þ¡ÉÈŠÌÍ&ü!DÈ‘Ç“ÈÂüsÀÃçÚÀòÀÁéØÓØÖÖÀÀ–ÎØŒÀ.×ùÇÚ‰ËÀcÀÃÏÀ‹À–À–ÀbáÙÔüïÀiÀjÏZÀ\ÀZÀ–À–ÈÑÀŽÖÚÀZŒÀÀ-ùÁÀhŠùÀ§ÕÀGÀVÖÚÞÀ´À¸üÈæÀ˜$ññøÀ‰ÈøÄÄÈñŒõõ‰ÊÀÂÇÆèÈÄÈËììüð<’ÐÚðÛÏOÀƒÀÇÏgÙüø>’ÐÚøÛÏˆÉÀãåoÝüsÏ"ÁéŠÄAÈ¢ÇwüÃÈÀ˜æDññÀ&	øø	ñõ˜ŠÂÀdèÈzÀLìü?À‡ïÀiÀiÏãÀZÀ\ÀZÀVÀ–ÈÑÈZÀ-	ÀhŠùÀ§ÕÀGÀN|À´À¸üÀÈÚÚÏÓØÀ:ØÀÏÖÅÀ‘õØŒó×ÂìÚ‰ÁÉÀÃÏÀƒÀ†À‘õáÙÀtü?ÕüÚ8‘ßÏüm‘ßÀÐ¥ÄüüÚü?ÕÇìÀÕÈÖÕ9ŽÈÁÀÈŠÅÅüÞÕÃÄ”ÇŠÉÈŠÌÍüsÏ)<ŽÈ‘Çü^ÀËÀWÃÖÖÀÀ–Îî<À\À°ˆÀ.×ùÇÚ‰ËÀcÀÃÏü1ÈLÀ«ÀˆÀÀ–À–ÈÑÀŽÖÚZÀ:À°ˆÀÀ-ùÁÀhŠùÀ§ÕüÕÀÂÇÁÀŒøÀ‰ÈøÄÄÈ$ñ‰õõ‰ÊÀÂÇÆüÕÏŠÖf<ˆÐÚðÛÏOÀƒÀÇÏüˆÏ‰ÜˆÐÚøÛÏˆÉÀãåü^e'AÈ¢Çü*u	øø	Ø&‹õ˜ŠÂÀdüÞÝÐÕÐÑÅÀVÀ–ÈÑÈZp‰À-	ÀhŠùÀ§ÕüÄÀÕáÖÀäÀ#ÀFˆÑÀÏÖÅÀ‘õÌ<îÍˆó×ÂìÚ‰ÁÉÀÃÏü?Õ‰ÇüÚ‰åŠßÏÿüŒÏŠßÀÐÿüüüüüüüüüüüüüüüüüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚü‡ÿãüüäÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞ?äÈüüüü:‡1üB‡)ü	Ó†	ÀÈüˆüˆü	Ó†	ÀÈüB‡)ü:‡1üüäÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞ?äÈüü‡ÿãüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüü‰?äÈüüüüŠ1üŠPüŠˆü‰	Ãü‰	ÀŒüüüŠpüü‰?äÈüüüüüü‰?äÈüüüüüüüüüüüüü‰?äÈüüü‰ÿäÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü‰ÿäÕüüüü‰?äÈüüüüŠpüüü‰	ÀŒü‰	ÃüŠˆüŠPüŠ1üü‰?äÈüüüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏÿäÕüüäÉäÞ€äÚüüüü:„üB„ü	Ó„9ü†Aü†Aü	Ó„9üB„ü:„üüäÉäÞ€äÚüüÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏÿäÕüüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüüüÈ:üÇüBüÀ‡À‡ÅÇüËÀKÀKÈüèÀŒèÀ˜ÏüÀ‡À‡ÈüÇÀËÈËü	ÈüÀÄèÀ†üÀKÀ«êüÌÅÀGÀ‡ÀgÇ…QüÔ…IÈü
ü]üüüÐÕˆ	ÞüÖÏ‰üüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüâÏ‰ÿÈÿ¡Ÿ ¡þ²²3.¡X²InµModelµMaker,µselectµCreate²>²Completeµmodelµtoµcreateµthe¡Xømodelµdefinitionµ(.mdef)µfile,µtheµCµsourceµ(.c)µfile,µtheµsymbol¡X?(.sym)µfile,µandµtheµVHDLµentityµ(.v_ent)µfile.µModelµMakerµthen¡X†compilesµtheµsimulationµfileµandµintegratesµitµintoµtheµCOSSAP¡XÌlibrary.¡þ	^AfterµintegrationµofµtheµgeneratedµgenericµCµfileµintoµtheµCOSSAP¡þ	¦libraryµitµcanµbeµusedµinµaµCOSSAPµschematic.µLoadµschematic¡þ	ïacc_2.schµintoµtheµBDEµtoµseeµanµexampleµofµthis,µseeµFigure 3³11.’þDD“I501ileaf_page_string1:3-54¥	öä¥	öä¡8Á²âUsing´µxdcg¡.3³54¡,É²Figure 3³11³Schematic´µacc_2.sch¡þe²¥	öäÒÓÐýIÊÊYËZnûÈüüüüüÐäääääääääääääääääääääääÚŒâäääääääääääääääÈŠßäääääääääääääääääääääääÈüÉäääääääääääääääääääääääÕŒßäääääääääääääää‹Ûäääääääääääääääääääääääüüüüüüüüüüüüüüüüüüüüüüüüü“ÁÕÂ	ÃÃÔŠÃÃÔ‹Ãü“ÉÚÂÄÞŠÂÄÞüøÉÕÎÍÝÛÞÀÁäÍÌÊÀ)ÀÀXÀŠÈ–ÊDŒÀ±ÀbÀ*[dzüLÊËÌÅÁÀƒcÍ!ØÂÈŒÉÌ‹ÉÌÓŒÙÚ÷üÀùÀÀäÄÂÝÀžÙ'ÀÈâÃ4˜Ê8ŒÇÈ‰ÌüÃÃÅ‚#ÆˆÄ‹ÅÁÀ°‹ÁÀ°9‰Åü$ÉÆÂôÈ:
‹ÄKÕÞÜÀáÀ¶ÀfÍBÆ‰ÄÕÀÌÀcÙÀgÌÉÀÆÚü!Ä÷ÂÔ+ÌQÄÆÆÅÂ‹ÃàÀ‘ÃïÅ	ìà)‰ÃBÇÅõæèÄÈ!ÃóÄü‰ÁÀŒ~JÀÁÀáØÚê‹ÂøÁÇÔÒ	ÏÔÒÕøÄ‰ÂóÀÂàÀ9ÏÔ×ÀÈÕüˆùsøÈÁÏÀÓÌÀiÈŒÃíÔÊîÀŒÀ£ðÇÅÈÃíÔŠÁÃçÀaÀ¦ÅóŠÅQaôüŠËÈ~ˆÈŠÁKÈ‹ÃŠÈŽÉÏü!ÄÂÈÂ+Õ	Ç>‹ÈÏ‹ÂŠÇŽËÆü$ÉÆÂÁÀC< ;?ääääääääääÕAŠÁäääääääääÕ	ÉÈÂüÃÃÅ‚#Æ‰ßääääääääääÕËÀ£ðäääääääääÕÅŠQËÁÀüÀùÀÀä‚ÝÈ'Ïâ9>‹È
ÇÔÒ	ÏŠÇàpÉåÕüLÊËÌAÉcÆ2FŠÁÀÁÃïÅŠÈÅ„!ÄïÄüøÉÕÎÍáÁÈÀÙäÍÌi‹ÂKÀ°ÞÜ	ÀáÀ†ÀcÌ#‰ÉÀìÀÆÍÙÀaÀ˜ÀÇÈÚü˜Â‹ÃÅ‰ÃüŒÉäLä‹ÄÕ7‰ÄŒÉäü˜Ä‹ÅÇ‰ÅüŒÉäLä˜âÀì›ÉJäRüüüüüüüüüÊqžÍÉÍÉü’ÁÕŸÉžÖüÁ‚ÅÄÃÒœÄÃÍÈü“Ï¾ÖÇü‘êùðÃÄÒœÃÄÍü’	üÁîÈž÷ô÷ôÂÇü’Èü‘À¥Ÿùðùðøü’ü‘îŸÂÅÂÅñü‘ÌùðžÏžÏÄü‘ñyÁÆÁÆÖÏü’ÂÅüÊÌÀaÕÍÀÃÉœÍÀÃßÏüüüüüüÉäääääääääääääääääääääääÕŒßäääääääääääääää‹ÛäääääääääääääääääääääääüÐäääääääääääääääääääääääÚŒâäääääääääääääääÈŠßäääääääääääääääääääääääÈüüüüüüüüÿ¡Re¡þ€²Thisµschematicµhasµtheµsameµfunctionalityµasµschematicµacc_1.sch.¡þÈYouµcanµcheckµthisµbyµgeneratingµtheµcode,µcompilingµit,µand¡þdownloadingµitµtoµtheµDSP.¡þ´CompareµtheµoutputµofµtheµsinkµblockµDMPNI_DSPµ(fileµfiledp_2.dat)¡þüwithµtheµoutputµofµschematicµacc_1.schµ(fileµfiledp_1.dat).µBoth¡þEimplementµtheµsameµaccumulator:¡þÆ²´µµµµµ1¡þµµµµµ2¡þ@µµµµµ3¡þ}µµµµµ4¡þºµµµµµ5¡þ÷µµµµµ6¡þ4µµµµµ7¡þqµµµµµ8¡þ®µµµµµ9¡þêµµµµµ10¡þ'µµµµµ11¡þdµµµµµ12¡þ¡µµµµµ13¡þÞµµµµµ14¡þ	µµµµµ...’DÐOPS m:m:D€‚Document:dcg4ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:45ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11b±:)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12b±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7° wst:courps10± :*°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°>wst:helvps11i±>:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåšåÿÿ(ˆP+»å™™ÿÿNîÍåÿÿ‘hˆå
«ÿÿÊªmÞå«ÿÿá@@à  @@@à  @áàààààààà±±±±±±±±áªªªªªªªªªªªªªªªªáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáððððððððððððððððáýýßßßßßßýýýýýýßßßßßßýýýýÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’DƒëD“I501ileaf_page_string1:4-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡¨Á²Using´µxdspint¡Ô¤ÿ¾4³1¡,m²²4â²¥	öä¡Õm²â¡,v²Using´µxdspint¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡The´µDSPµInteractorµtool,µxdspint,µenablesµyouµtoµinteractµgraphically¡þéwithµaµDSPµprogramµasµitµisµbeingµexecuted.¡þŒThisµchapterµdescribesµinµdetailµtheµelementsµofµtheµgraphical¡þÔinterfacesµofµxdspintµandµtheµmajorµtasksµyouµcanµperformµwithµthis¡þutility.µTheµchapterµincludes¡þ¢²S¡X¢²Anµintroductionµtoµxdspint¡þ	²S¡X	²Instructionsµforµstartingµtheµxdspintµprogram¡þ	‰²S¡X	‰²Explanationsµofµtheµpartsµofµtheµ²²xdspintµwindow¡þ	ü²S¡X	ü²Descriptionsµofµtheµmenus’ëD“I501ileaf_page_string1:4-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,¬,–¡Ä,–	c–¡Ä	c–	c¬¡Ä	c¬,¬ÆÃÁÊËÃ¡Ä,–Ê–ÆÃ¥	öä¥	öä¡8Á²Using´µxdspint¡.4³2¡,Õ²Introduction¡þx²The´µxdspintµtoolµenablesµyouµtoµinteractµgraphicallyµwithµaµrunning¡þÁDSPµprogram.¡þOToµuseµtheµxdspintµutilityµwithµaµDSPµprogram,µyouµmustµspecify¡þ˜Interactiveµmodeµinµxdcgµduringµtheµcodeµgenerationµprocess.µRefer¡þàtoµtheµsectionµInteractiveµMode"µinµChapterµ2µ.¡þnYouµcanµuseµxdspintµto¡þå²S¡Xå²Inspectµandµmodifyµtheµvaluesµassignedµtoµtheµmodel¡X,parameters.¡þ•²S¡X•²Checkµtheµnumberµofµperiods.¡þþ²S¡Xþ²StartµtheµCOSSAPµdataµvisualizationµtool,µDAVISµfromµtheµView¡XEmenu.¡þÅNote:²¡X²xdspintµsupportsµonlyµPentekµhardwareµtargets.¡,ì²Starting´µtheµProgram¡þ²To´µstartµtheµprogram,µtypeµitsµnameµatµtheµoperatingµsystemµprompt:¡…	²%´µ²xdspint¡þ	¬²The´µDSPµInteractorµwindowµappearsµasµshownµinµFigure 4³1.¡þ
:Note:²¡X
ƒ²Youµcanµstartµxdspintµfromµaµworkstationµotherµthanµtheµoneµon¡X
ÌwhichµtheµDSPµserverµisµrunningµandµconnectµtoµtheµDSP¡Xprogram.’
.D“I501ileaf_page_string1:4-3¥	öä¥	öä¡¨Á²âUsing´µxdspint¡Ô¤ÿ¾4³3¡,É²Figure 4³1³xdspint´µWindow¡þ)²¥	öäÒÓÐþýŸ'g‰hŠ	cû­ÈüâÏ©ÉãüüäääääääääääääääääääääääääääääääääääääääääÞúpÿüÐÀâ§ÐÕüäääääääääääääääääääääääääääääääääääääääääÚü’ÛÐÀ‡ÏÎÁ<ü’ÊÀ‹ïåDü?ÈŽÁÇÏIÀdÀÏÀØÀ=À3ÀÆÏüÔ’ÂÔÀÖÈÀZÀ[À5åŽÑüÌ1ÈøÈÆAÎÊ	ÏÌü“ÊïÏRÃÓ
üÁÁÈÈÀXü’ÁÀLEü
ÊÀ‹ÇÀ×ÈÀ]À^ÀµåüÛÐÀ†cÀ1ÀÏÌÀ;ØÀsÀÆüüüIäáü	äÞüüÐäääääääääääääääääääääääääääääääääääääääääääÕüüÐäääääääääääääääääääääääääääääääääääääääääääÕüÉäääääääääääääääääääääääääääääääääääääääääääÏüüÿääääääääääääääääääääääääääääääääääääääääääüüüüüüüüüÀÃÀãÚnAÆÈÉüÀçÀñÞÆ)?È	3‘Âü,1E‰ÃüvÀ¼ÀnÀ‹ÀÆÀâÔÞcËÖçÆÖÈùÕüÀáÞÇàÀnÀÇÀæÀãÀùá$ÛÏÛÛÏÉÚüKÀñÚ9BÛüÄ6ÈŽÖÈü—ÖÏŽÖÏüC*ˆÉÈÂüÀçÚØ?ÀŸÏÁÚÁáÀlÀÛÀŽÕÛÀ†ÀÃÚüÀÃÀâøéÑÖçÆÀáøÝ"ÛÖèÇŒÆÀÀ‡ÀÁÕüüü©ÃüüüüüüüÿääääääääääääääääääääääääääääääääääääääääääüüÉäääääääääääääääääääääääääääääääääääääääääääÏüüüüüüüüüüÿääääääääääääääääääääääääääääääääääääääääüäääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüäääääääääääääääääääääääääääääääääääääääãüÿääääääääääääääääääääääääääääääääääääääääüüüüüüüüüüüüüüÈüÏü;üÀÇÀcÀ°ÞÀ¼ØüÀãÀñÞáààüˆÇÂüøüÞü;#üÀÏÕÈïÞ~üÀ‡ÀÄõÄÀôéÀ=üüüüüüü?äääääääääääääääääääääääääääääääääääääääáüüäääääääääääääääääääääääääääääääääääääääÚüüüüü
Çü
ÏüCüCüCüCüCüCüCüCüCüCüCüCü
Ïü
ÇüüüüüäääääääääääääääääääääääääääääääääääääääÚüü?äääääääääääääääääääääääääääääääääääääääáüüüüüüüüüüüüüüüüü?äääääääääÏäääääääääÚLäääääääääáüüäääääääääMäääääääääÏÿääääääääÚüüüü>ŒÜÖÏüÄ‹âAŠÐÕüŒÁDü7ÖÀ‹Ï‰ÛÀÀÀÁéÀñÄÝˆÉÀâÅÞÝü~À7ÛÀÇÕ‰ßÀÀÍÀÁÁÞþÀãÚÁáãü?‹Ä
ŠÐÏüÈ‘ÝˆÉÕÁÞÝüÏ‘àˆÐÕüàü=AÃ‰Á3ÆÁüÖÀŸÀ‡ÕˆâßÈÉÀãÎÁááˆÐÀãÀùááü>ÐÖÀƒÏˆÜÛÅïÀÃÀâÄÀôÝ'ÉÀÑÀèÞÝüüüˆÄüüäääääääääMäääääääääÏÿääääääääÚüü?äääääääääÏäääääääääÚLäääääääääáüüüüüüüüüü	ääääääääääääääääääääääääääääääääääääääääÚüü	ääääääääääääääääääääääääääääääääääääääääÚüüüüüüüüüü¨ÐäÚüüääääääääääääääääääääääääääääääääääääãüüääääääääääääääääääääääääääääääääääääÞü©Äüü©ôüüÈ¥òüJÈü
¦Üü
ü
ü
ü
ü
¦âü
ü
ü
ü
ü
ü
üJÈüÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü©âüüüüü©Üüü©òüü©ôüü©ÄüääääääääääääääääääääääääääääääääääääÞüüääääääääääääääääääääääääääääääääääääãüü¨ÐäÚüüüü	ääääääääääääääääääääääääääääääääääääääÈüüüüääääääääääääääääääääääääääääääääääÈü{¢ÉüJ¤ÏüZ¤ÍüZ¤ÍüJ¤Ïü{¢ÉüääääääääääääääääääääääääääääääääääÈüüüÌ«ÌüÔÁääääääääääääääääääääääääääääääääääääääÈüüüüüÐÕ©ÐÕüÖÏ©ÉÚüäääääääääääääääääääääääääääääääääääääääääÞüüâÏ©Éãÿ¡¢)’
.»D“I501ileaf_page_string1:4-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‰,s¡Ä,s	cs¡Ä	cs	c‰¡Ä	c‰,‰ÆÃÁÊËÃ¡ÄþsÊsÆÃ¥	öä¥	öä¡8Á²Using´µxdspint¡.4³4¡,Õ²Parts´µofµtheµxdspintµWindow¡þ”²The´µxdspintµwindowµisµbasedµonµOSF/Motif.µTheµwindowµhasµfour¡þÝmainµcomponents:¡þa²S¡Xa²Aµmenuµbar¡þÕ²S¡XÕ²Aµcommandµarea¡þI²S¡XI²Commandµbuttons¡þ¼²S¡X¼²Aµmessageµarea¡þNNote:²¡X–²Doµnotµuseµtheµwindowµmanagerµmenuµtoµquitµxdspint.µInstead,¡XßchooseµDspint²>²Exitµtoµproperlyµdisconnectµfromµtheµsimulation.¡þÃ²
Menu´µBar¡þb²The´µxdspintµwindowµmenuµbarµhasµfourµmenus:¡þç²S¡Xç²DSPint¡þ[²S¡X[²Control¡þÎ²S¡XÎ²View¡þ	B²S¡X	B²Help¡þ	ÓEachµofµtheseµmenusµisµdescribedµlaterµinµthisµchapter.’»8D“I501ileaf_page_string1:4-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,	 ,	Š¡Ä,	Š	c	Š¡Ä	c	Š	c	 ¡Ä	c	 ,	 ÆÃÁÊËÃ¡Äþ	ŠÊ	ŠÆÃ¥	öä¥	öä¡¨Á²Using´µxdspint¡Ô¤ÿ¾4³5¡þÏ²
Command´µArea¡þx²The´µcommandµareaµconsistsµofµthreeµparts:¡þ²S¡X²Aµcommandµhistoryµlistµregion"µ(directlyµbelowµtheµmenuµbar).¡XJWheneverµyouµenterµaµcommandµandµconfirmµitµinµtheµcommand¡Xline,µtheµcommandµisµautomaticallyµaddedµtoµtheµendµofµthe¡X×commandµhistory.¡þO²S¡XO²Aµcommandµlabel"µshowsµtheµnameµofµtheµcurrentlyµselected¡X–command.¡þ²S¡X²Aµcommandµlineµtextµinputµprompt"µindicatesµwhereµyouµenter¡XUtheµcommandµtoµbeµexecuted.¡þ!Toµcopyµanyµofµtheµcommandsµlistedµinµtheµcommandµhistoryµregion¡þiintoµtheµcommandµline,µclickµtheµleftµmouseµbuttonµonceµonµthe¡þ²commandµname.µYouµcanµthenµmodifyµorµconfirmµtheµcommand.¡þ_Toµconfirmµaµcommand,µpressµtheµReturnµkeyµwhileµtheµcursorµis¡þ§highlightedµinµtheµcommandµline.µIfµyouµdouble³clickµaµcommandµin¡þðtheµcommandµhistory,µyouµcopyµandµconfirmµtheµcommand.¡þœToµviewµandµselectµfromµaµpop³upµlistµofµallµcommands,µpressµand¡þåholdµtheµrightµmouseµbuttonµinµtheµcommandµline.¡þ	Ú²
Step,´µContinue,µandµPauseµButtons¡þ
ƒ²These´µbuttonsµrepresentµaµsubsetµofµtheµcommandsµthatµcanµbe¡þ
ÌenteredµinµtheµCommandµArea.µYouµcanµuseµtheseµbuttonsµinstead¡þofµenteringµtheµequivalentµcommandµinµtheµcommandµline.’8lD“I501ileaf_page_string1:4-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,R,<¡Ä,<	c<¡Ä	c<	cR¡Ä	cR,RÆÃÁÊËÃ¡Äþ<Ê<ÆÃ¥	öä¥	öä¡8Á²Using´µxdspint¡.4³6¡þÏ²
Message´µArea¡þŽ²This´µareaµatµtheµbottomµofµtheµwindowµreflectsµallµmessagesµfrom¡þÖtheµDSPµprogramµthatµisµconnectedµtoµxdspint.µUseµtheµscrollµbarsµto¡þviewµmessagesµaboveµorµbelowµtheµcurrentlyµvisibleµmessages.¡þáMessageµtextµcanµbeµselectedµbyµpositioningµtheµmouseµoverµthe¡þ*firstµcharacter,µthenµpressµtheµleftµmouseµbutton,µholdµandµdragµto¡þstheµlastµcharacter.¡þŒ²
xdspint´µCommands¡þK²The´µcommandµareaµisµwhereµyouµenterµcommandsµthatµyouµwantµto¡þ”executeµfromµtheµxdspint²´µ²program.´µTable 4³1µdescribesµthe¡þÜcommandsµthatµyouµcanµexecuteµfromµxdspint.¡,³²Table 4³1³TableµofµxdspintµCommands¡v"²¥	öä¡“J²Command²¡V"¥	öä¡sJ²Description²¡Ê"¡vš¥	öä¡“º²abortÁã¡ÃÄvvUvUwvwvvÇ²¡Vš¥	öä¡sº²Immediately´µabortsµexecutionµofµtheµDSPµprogram.¡ÃÄVvËvËwVwVvÇ²¡Êš¡v	¥	öä¡“	"²continue²¡V	¥	öä¡s	"²ResumesµexecutionµofµaµpausedµDSPµprogram.²¡Ê	¡v	j¥	öä¡“	Š²pause²¡V	j¥	öä¡s	Š²PausesµexecutionµofµtheµDSPµprogram.µT¤ÿûoµresume¡s	Àexecution,µissueµa²>µ²continueµcommand.µY¤ÿüouµcanµalso¡s	östepµthroughµtheµDSPµprogram,µfromµperiodµto¡s
,periodµ(seeµtheµstepµcommand).²¡Ê	j¡v
r¥	öä¡“
’²setµparameter¡“
È² ²!instance_name²>¡“
þ² ²!param#²>³² ²!value²¡V
r¥	öä¡s
’²Setsµtheµvalueµofµtheµparameterµthatµhasµthe¡s
Èspecifiedµ²>param#²,µforµtheµprimitiveµmodelµthatµhas¡s
þtheµspecifiedµhierarchicalµ²>instance_name².²¡Ê
r’l§D“I501ileaf_page_string1:4-7¥	öäÃËÁâÊË¡Ä,a,K¡Ä,K	cK¡Ä	cK	ca¡Ä	ca,aÆÃÁÊËÃ¡Ä,KÊKÆÃ¥	öä¥	öä¡¨Á²Using´µxdspint¡Ô¤ÿ¾4³7¥	öä¡“é²Command¡séDescription¡v9²¥	öä¡“Y²showµinportµread¡“² ²!instance_name²>¡“Å² ²!port#Áã¡ÃÄvUUvvÇ²¡V9¥	öä¡sY²Displaysµtheµnumberµofµsignalµelementsµreadµbyµthe¡sprimitiveµmodelµthatµhasµtheµspecifiedµhierarchical¡sÅ²>instance_name².µTheseµelementsµareµreadµfromµthe¡sûinputµportµthatµhasµtheµspecifiedµµ²>port#².¡ÃÄVËËVVÇ²¡Ê9¡vA¥	öä¡“a²showµoutport³¡“—written¡“Í² ²!instance_name²>¡“port#²¡VA¥	öä¡sa²Displaysµtheµnumberµofµsignalµelementsµwrittenµby¡s—theµprimitiveµmodelµthatµhasµtheµspecified¡sÍhierarchicalµ²>instance_name².µTheseµelementsµare¡swrittenµtoµtheµoutputµportµthatµhasµtheµspecified¡s9²>port#².²¡ÊA¡v¥	öä¡“¡²showµparameter¡“×²>instance_name¡“param#²¡V¥	öä¡s¡²Displaysµtheµvalueµofµtheµ²>param#²µparameterµforµthe¡s×primitiveµmodelµthatµhasµtheµspecifiedµhierarchical¡s²>instance_name².µThe²>µparam#²µcorrespondsµtoµits¡sCordinalµposition,µasµdefinedµinµtheµmodelµdefinition¡syfile.µTheµfirstµparameterµisµnumberµ1,µtheµsecondµis¡s¯numberµ2,µandµsoµon.²¡Ê¡võ¥	öä¡“²step³[²>n²]²¡Võ¥	öä¡s²Executesµtheµnextµ²>n²µperiods.µTheµDSPµprogram¡sKmustµbeµinµpauseµmode.µAfterµ²>n²µperiodsµexecute,µthe¡sDSPµprogramµreturnsµtoµpauseµmode.µTheµnumber¡s·ofµoutputµsignalµelementsµproducedµdependsµonµthe¡síoutputµrateµofµtheµmodelsµthatµareµexecuted.²¡Êõ¡v5¥	öä¡“U²stop²¡V5¥	öä¡sU²StopsµexecutionµofµtheµDSPµprogram.²¡Ê5¡,¡²Menu´µDescriptions¡þ	`²The´µfollowingµsectionsµdescribeµtheµfunctionµofµeachµmenuµitemµin¡þ	©xdspint.’§ÎD“I501ileaf_page_string1:4-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µxdspint¡.4³8¡þÏ²
Dspint´µMenu¡þ²This´µmenuµletsµyouµconnectµtheµxdspintµtoolµto,µorµdisconnectµitµfrom,¡þÈtheµexecutionµofµtheµcurrentµCOSSAPµDSPµserver.µThisµmenu¡þconsistsµofµthreeµmenuµitems¡þ¡²S¡X¡²Connect¡þ²S¡X²Disconnect¡þ™²S¡X™²Exit¡þ:Theseµmenuµitemsµareµdescribedµonµtheµfollowingµpages.¡þ;²
Connect¡þì²Chooseµthisµmenuµitemµtoµconnectµxdspint²´µ²to´µtheµcurrentµiteration.¡þ4ConnectingµtoµaµDSPµprogramµdoesµnotµaffectµexecutionµofµa¡þ}simulation.µYouµcanµconnectµanyµnumberµofµxdspint²´µ²tools´µtoµanyµone¡þÆDSPµserver.µDSPµserverµmessagesµareµdisplayedµinµallµxdspint²´µ²tools¡þthat´µareµconnectedµtoµtheµsameµDSPµserver.¡þÂTheµconnectµmenuµitemµopensµaµdialogµboxµforµenteringµtheµDSP¡þ	serverµname.µTheµdialogµboxµconsistsµofµaµlabel,µaµtextµinputµarea,¡þ	Tandµthreeµbuttons.¡þ
ToµconnectµwithµaµDSPµserver:¡þ
˜1.¡X
˜EnterµtheµdesiredµDSPµserverµnameµinµtheµtextµinputµarea.¡þ2.¡XPressµReturnµorµclickµtheµOKµbutton.’ÎÃD“I501ileaf_page_string1:4-9¥	öä¥	öä¡¨Á²âUsing´µxdspint¡Ô¤ÿ¾4³9¡þÉ²Once´µyouµhaveµconnectedµwithµtheµDSPµserver,µyouµcanµdoµthe¡þfollowing:¡þ²S¡X²Toµvoidµtheµconnectionµandµquitµtheµwindow,µclickµ²²Cancel.¡þú²S¡Xú²Toµviewµaµshortµdescriptionµofµxdspint,µclickµ²²Help.¡þf²S¡Xf²ToµviewµandµselectµfromµaµlistµofµallµrunningµDSPµservers,µpress¡X­andµholdµtheµrightµmouseµbuttonµoverµtheµtextµinputµarea.¡XYouµcanµrunµDSPµserversµonµdifferentµworkstationsµonµthe¡X`network.µEachµtimeµyouµrequestµtheµlistµofµDSPµservers,µxdspint¡X¦updatesµtheµlistµcontentsµbeforeµdisplayingµtheµpop³upµlist.¡þ9Note:²¡X‚²Ifµyouµenterµanµillegalµinput,µaµwarningµindicatesµthatµtheµdesired¡XÊconnectionµhasµfailed.µIfµthisµhappens,µclickµOK,µthenµselectµthe¡XConnectµmenuµitemµagain.µIfµxdspintµisµalreadyµconnectedµtoµa¡X\DSPµserver,µanµillegalµentryµdoesµnotµaffectµtheµexisting¡X¤connection.¡þq²
Disconnect¡þ²UseµthisµmenuµitemµtoµdisconnectµfromµtheµDSPµserver.µYouµcan¡þKdisconnectµatµanyµtimeµwithoutµaffectingµeitherµtheµDSPµprogram¡þ”executionµorµanyµDAVISµsignalµmonitorµthatµyouµstartedµfromµthe¡þÜxdspintµtool.¡þ	©²
Exit¡þ
:²Useµthisµmenuµitemµtoµexitµxdspint.µTheµxdspintµdisconnectsµfrom¡þ
ƒtheµDSPµserverµbeforeµexiting.µExitingµdoesµnotµaffectµeitherµthe¡þ
ÌDSPµserverµexecution,µorµanyµDAVISµsignalµmonitorsµthatµyou¡þstartedµfromµtheµxdspintµtool.’Ã^D“I501ileaf_page_string1:4-10¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µxdspint¡.4³10¡þÏ²
Control´µMenu¡þg²This´µmenuµcontainsµcommandsµforµcontrollingµtheµexecutionµofµa¡þ°DSPµprogram.µItµconsistsµofµfourµmenuµitems:¡þ0²S¡X0²Stop¡þ¡²S¡X¡²Abort¡þ²S¡X²Pause¡þ²S¡X²Continue¡þK²
Stop¡þä²UseµthisµmenuµitemµtoµstopµtheµDSPµprogram.¡þ½²
Abort¡þV²UseµthisµmenuµitemµtoµimmediatelyµabortµexecutionµofµtheµDSP¡þŸprogram.¡þx²
Pause¡þ	²UseµthisµmenuµitemµtoµpauseµexecutionµofµtheµDSPµprogram.µTo¡þ	Yresumeµexecution,µuseµtheµContinueµcommand.µYouµcanµalsoµstep¡þ	¢throughµtheµperiods.¡þ
{²
Continue¡þ²UseµthisµmenuµitemµtoµcontinueµexecutionµofµtheµDSPµprogram.’^D“I501ileaf_page_string1:4-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡¨Á²Using´µxdspint¡Ô¤ÿ¤4³11¡þÏ²
View´µMenu¡þn²Use´µthisµmenuµtoµstartµaµDAVISµsignalµmonitor.µTheµsignalµmonitors¡þ¶displayµsignalµelementsµthatµtheµDSPµisµcomputing.µTheµsignalsµthat¡þÿthatµareµdisplayedµcanµoriginateµfromµanyµmodelµinµtheµdesign¡þHhierarchy.¡þêTheµViewµmenuµhasµfourµmenuµitems:¡þo²S¡Xo²Wave¡þã²S¡Xã²Scatter¡þV²S¡XV²Eye¡þÊ²S¡XÊ²Logic¡þ[EachµmenuµitemµopensµaµnewµDAVISµsignalµmonitorµwindow,µthen¡þ¤accessesµandµdisplaysµtheµstreamµofµsignalµelementsµatµthe¡þíspecifiedµoutputµport.¡þÑ²
Signal´µMonitors¡þp²The´µDAVISµsignalµmonitorsµrunµindependentlyµofµxdspint.µAsµwith¡þ¹xdspint,µyouµmustµconnectµtheseµtoolsµtoµtheµDSPµserver;µthe¡þ	connectionµofµxdspintµcarriesµoverµtoµtheµsignalµmonitorµtoolµifµyou¡þ	JstartµtheµsignalµmonitorµfromµtheµxdspintµViewµmenu.’CD“I501ileaf_page_string1:4-12¥	öä¥	öä¡8Á²âUsing´µxdspint¡.4³12¡þÏ²
Obtaining´µSequenceµNumberµInformation¡þI²To´µuseµaµDAVISµsignalµmonitorµonµaµblockµ(anµinstanceµofµaµmodel)¡þ’withinµtheµdesignµbeingµsimulated,µyouµmustµsupplyµtheµsequence¡þÛnameµforµtheµblockµandµtheµsequenceµnumbersµofµtheµblock'sµoutput¡þ#ports.µUseµtheµfollowingµprocedureµtoµobtainµthisµinformation.¡þ1.¡XStartµtheµCOSSAPµBlockµDiagramµEditorµ(BDE).¡þñ2.¡XñChooseµFileµ²>²µOpenµtoµdisplayµtheµdesignµcontainingµtheµmodel¡X8youµwantµtoµview.¡þ™3.¡X™Lookµinµoneµofµtheµcornersµofµtheµmodelµinstanceµyouµwantµto¡Xàmonitorµtoµseeµtheµmodelµinstanceµname.¡þA4.¡XATheµBDEµdoesµnotµdisplayµtheµsequenceµnumbersµofµtheµblock's¡Xˆoutputµports.µToµdetermineµtheµsequenceµnumbers,µselectµthe¡XÎblock;µthenµchooseµEditµ²>²µConfigureµInstances.µInµtheµConfigure¡XInstanceµdialogµboxµthatµappears,µtheµtopµoutputµportµlistedµhas¡X[theµsequenceµnumberµ1.µTheµnextµlowerµportµinµtheµlistµhasµthe¡X¢sequenceµnumberµ2,µandµsoµon.¡þInµtheµdialogµboxµforµaµspecificµDAVISµsignalµmonitor,µenterµthe¡þ^following:¡þÊ²S¡XÊ²In²µ²theµinstanceµnameµtextµinputµarea,µenterµtheµinstanceµnameµfor¡Xtheµblock².¡þr²²S¡Xr²Inµtheµ²²portµnoµtextµinputµarea,µenterµtheµsequenceµnumbersµofµthe¡X¹block'sµoutputµports.µForµexample,µenterµ1µtoµdisplayµtheµoutput¡Xÿportµatµtheµtopµofµtheµblock,µasµshownµinµtheµBlockµDiagram¡X	FEditor'sµConfigureµInstanceµdialogµboxµforµtheµblock.¡þ	¹Eachµdialogµboxµusesµtheµfollowingµconventions:¡þ
&²S¡X
&²Toµpositionµtheµcursorµatµtheµnextµentryµpoint,µmoveµtheµcursor¡X
lintoµtheµtextµinputµareaµandµpressµtheµReturnµkey.¡þ
Î²S¡X
Î²Toµconfirmµallµtextµentriesµandµstartµtheµsignalµmonitor,µpress¡XReturnµinµtheµlastµtextµentryµarea.’CD“I501ileaf_page_string1:4-13¥	öä¥	öä¡¨Á²âUsing´µxdspint¡Ô¤ÿ¤4³13¡þÏ²
Wave¡þr²Use´µthisµmenuµitemµtoµstartµtheµCOSSAPµdataµvisualizationµtool,¡þ»DAVIS,µtoµdisplayµaµwaveµplotµofµtheµstreamµofµsignalµelements¡þversusµsamples.µThisµmenuµitemµopensµaµnewµwindowµinµwhichµyou¡þLspecifyµtheµoutputµportµtoµconnectµtoµDAVIS.µThisµwindowµconsists¡þ•ofµtwoµtextµentryµfields,µSignalµelementsµandµ²²Label.¡þ²S¡X²Inµtheµ²²Signalµelementsµtextµentryµfield,µenterµtheµsequence¡Xcnumberµandµportµnumberµofµtheµoutputµportµproducingµtheµsignal¡Xªelementsµforµtheµwaveµdiagram.¡þ ²S¡X ²Inµtheµ²²Labelµtextµentryµfield,µspecifyµaµlabelµtoµdisplayµatµtheµtop¡XfofµtheµDAVISµdisplayµwindow.¡þüForµmoreµinformation,µseeµtheµ²COSSAPµDAVISµUserµGuide².¡þç²
Scatter¡þ‹²UseµthisµmenuµitemµtoµstartµtheµCOSSAPµdataµvisualizationµtool,¡þÔDAVIS,µtoµdisplayµtheµscatterµdiagramµofµsignalµelements.µThis¡þmenuµitemµopensµaµnewµwindowµinµwhichµyouµspecifyµtheµoutput¡þeportsµtoµconnectµtoµDAVIS.µThisµwindowµconsistsµofµtwoµtextµentry¡þ®fields,µSignalµelementsµandµLabel.¡þ	5²S¡X	5²Inµtheµ²²Signalµelementsµtextµentryµfield,µspecifyµtheµsequence¡X	|number,µportµnumberµ(x),µandµportµnumberµ(y)µofµtheµoutputµports¡X	Ãproducingµtheµsignalµelementsµforµtheµscatterµdiagram.¡þ
8²S¡X
8²Inµtheµ²²Labelµtextµentryµfield,µspecifyµaµlabelµtoµdisplayµatµtheµtop¡X
ofµtheµDAVISµdisplayµwindow.¡þForµmoreµinformation,µseeµtheµ²COSSAPµDAVISµUserµGuide².’ÖD“I501ileaf_page_string1:4-14¥	öä¥	öä¡8Á²âUsing´µxdspint¡.4³14¡þÏ²
Eye¡þl²Use´µthisµmenuµitemµtoµstartµtheµCOSSAPµdataµvisualizationµtool,¡þµDAVIS,µtoµdisplayµtheµeyeµdiagramµofµsignalµelements.µThisµmenu¡þýitemµopensµaµnewµwindowµinµwhichµyouµspecifyµtheµoutputµportµto¡þFconnectµtoµDAVIS.µThisµwindowµconsistsµofµtwoµtextµentryµfields,¡þŽ²²Signalµelementsµandµ²²Label.¡þ²S¡X²InµtheµSignalµelementsµtextµentryµfield,µspecifyµtheµsequence¡XXnumberµandµportµnumber²µ²ofµtheµoutputµportµthatµproducesµthe¡XŸsignalµelementsµforµtheµeyeµdiagram.¡þ²S¡X²Inµtheµ²²Labelµtextµentryµfield,µspecifyµaµlabelµtoµdisplayµatµtheµtop¡XXofµtheµDAVISµdisplayµwindow.¡þèForµmoreµinformation,µseeµtheµ²COSSAPµDAVISµUserµGuide².¡þÉ²
Logic¡þf²UseµthisµmenuµitemµtoµstartµtheµCOSSAPµdataµvisualizationµtool,¡þ¯DAVIS,µtoµdisplayµtheµbit_vectorµsignalµelements.µThisµmenuµitem¡þøopensµaµnewµwindowµinµwhichµyouµspecifyµtheµoutputµportsµto¡þ@connectµtoµDAVIS.µThisµwindowµconsistsµofµtwoµtextµentryµfields,¡þ‰²²Signalµelementsµandµ²²Label.¡þ	²S¡X	²InµtheµSignalµelementsµtextµentryµfield,µspecifyµtheµsequence¡X	Snumberµandµportµnumberµ(x)µofµtheµoutputµportsµthatµproduceµthe¡X	™bit_vectorµsignalµelements.¡þ
²S¡X
²InµtheµLabelµtextµentryµfield,µspecifyµaµlabelµtoµdisplayµatµtheµtop¡X
SofµtheµDAVISµdisplayµwindow.¡þForµmoreµinformation,µseeµtheµ²COSSAPµDAVISµGuide².’ÖœD“I501ileaf_page_string1:4-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡¨Á²Using´µxdspint¡Ô¤ÿ¤4³15¡þÏ²
Help´µMenu¡þn²The´µ²²Helpµmenuµforµxdspintµcontainsµonlyµoneµmenuµitem,µ²²Overview.¡þ¶WhenµyouµselectµOverview,µxdspintµdisplaysµaµsummaryµofµall¡þÿxdspintµcommands.’œÐOPS m:m:D€‚Document:dcg5ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:46ÿ„ileafileafƒ	öä°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:timsps11i±:&$*!!!&!!!&!)!!!!!!!!!!.).+°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°wst:timsps10b±:*#'!!!(!!*#	*!!!!!!****°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12i±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°7wst:helvps10i±7:%	+!#!!(				#*!!!!!!%****(°:wst:helvps10b±::%)!#!!(%!*!!!!!!%****(°;wst:helvps9±;:

!




&
#






%



!




%%%%#°>wst:helvps11i±>:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°~wst:timsps10i±~:#!'##%*%*(åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€åÿÿ(ˆP+»å™™ÿÿNîÍåÿÿ‘hˆå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’Rm’D“I501ileaf_page_string1:5-1¥	öäÃËÁâÊË¡Ä,‡,q¡Ä,q	cq¡Ä	cq	c‡¡Ä	c‡,‡ÆÃÁÊËÃ¡Ä,qÊqÆÃ¥	öä²¡²¡Ï²¡ž²¥	öä¡nÁ²Files´µRelatedµtoµDSPµModels¡Ô¤ÿ¾5³1¡,m²²5â²¥	öä¡Õm²â¡,i²Files´µRelatedµtoµDSPµModels¡ß²¥	öäÁÊËÃ¡Ä,ÃÊÃÆÃ¡	öß¡þ†This´µchapterµdescribesµtheµfilesµrelatedµtoµDSPµmodels.µItµdescribes¡þ²S¡X²TheµfilesµdescribingµaµDSPµmodel¡þs²S¡Xs²TheµnetlistµdescriptionµofµaµDSPµsystem¡þâ²S¡Xâ²TheµDSPµmodelµlibraries¡,Ç²Files´µDescribingµaµDSPµModel¡þ	z²Two´µdifferentµtypesµofµmodelsµexistµinµCOSSAP:¡þ	ø²S¡X	ø²²Primitiveµmodels²,µwhichµareµimplementedµasµprogramµcode¡þ
g²S¡X
g²²Hierarchicalµmodels²,µwhichµareµdefinedµasµaµblockµdiagramµand¡X
®areµgeneratedµbyµtheµCOSSAPµBlockµDiagramµEditorµ(BDE)’’1D“I501ileaf_page_string1:5-2¥	öä¥	öä¡8Á²âFiles´µRelatedµtoµDSPµModels¡.5³2¡þÉ²The´µfilesµrequiredµtoµdescribeµeachµtypeµofµmodelµdiffer.¡þGForµ²primitive²µmodels,µtheµfollowingµfilesµmustµexist:¡þ³²S¡X³²Theµmodelµdefinitionµ(.mdef)µfile¡þ²S¡X²TheµmodelµVHDLµentityµdefinitionµ(.v_ent)µfile¡þv²S¡Xv²TheµgenericµCµcodeµ(.gc)µfile¡þ×²S¡X×²Theµsymbolµ(.sym)µfile¡þJTheµnamesµofµtheseµfilesµtakeµtheµformµmodelname.extension.µForµa¡þ“detailedµdescriptionµofµtheµfiles,µreferµtoµtheµ²COSSAPµModelµUser¡þÛGuide².¡þYOptionally,µyouµmayµhaveµaµCµsourceµcodeµversionµofµaµprimitive¡þ¢modelµforµsimulationµasµdescribedµinµtheµnextµsectionµStream¡þëDrivenµSimulatorµSourceµCode"µlaterµinµthisµchapter.¡þiForµ²hierarchicalµ²models,µtheµfollowingµ²additional²µfilesµmustµexist:¡þÕ²S¡XÕ²TheµVHDLµarchitectureµ(.v_arc)µfile¡þ6²S¡X6²Theµschematicµ(.sch)µfile¡þ©Forµhierarchicalµmodels,µtheµVHDLµentityµdefinitionµ(.v_ent)µfileµis¡þòproducedµautomaticallyµwhenµyouµuseµtheµBDEµtoµcreateµtheµmodel.¡þ;Inµaddition,µtheµBDEµcreatesµtheµsymbolµ(.sym)µfileµandµupdatesµthe¡þƒ.mtblµfileµforµtheµmodel.¡þ	Theµfilesµforµaµmodelµshouldµbeµlocatedµinµanµappropriatelyµnamed¡þ	Jdirectoryµunderµtheµdµdirectory.µForµexample,µtheµfilesµforµaµmodel¡þ	“namedµaddµthatµisµpartµofµaµmathµlibraryµmightµbeµlocatedµinµthe¡þ	Ûsubdirectory¡þ
C²$COSSAP_PROJECT/d/math/¡þ
Ì²TheµmodelµfilesµprovidedµwithµtheµCOSSAPµlibrariesµareµlocatedµin¡þsubdirectoriesµinµ$COSSAP_DIR/models/.’1&D“I501ileaf_page_string1:5-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡nÁ²Files´µRelatedµtoµDSPµModels¡Ô¤ÿ¾5³3¡þÏ²
Attribute´µFile¡þp²The´µroleµofµtheµattributeµ(ATTR)µfileµisµtoµassignµattributesµtoµthe¡þ¹blocksµandµsignalsµofµaµblockµdiagram.¡þ^Anµexampleµofµaµfunctionµthatµcanµbeµperformedµbyµtheµattributeµfile¡þ§isµtoµmapµtheµblocksµofµtheµblockµdiagramµontoµprocessors.µThese¡þðprocessorsµmustµbeµdefinedµinµtheµarchitectureµ(ARCH)µfile.µInµthis¡þ8caseµtheµATTRµfileµwouldµprovideµtheµDCGµwithµallµtheµinformation¡þnecessaryµforµpartitioningµaµblockµdiagramµintoµsub³blockµdiagrams.¡þÊEachµsub³blockµdiagramµwouldµbeµrelatedµtoµaµprocessorµspecified¡þinµtheµARCHµfileµandµresultsµinµaµcodeµunitµthatµwouldµbeµgenerated¡þ[forµthisµprocessor.¡þAnµATTRµfileµcanµbeµcreatedµorµmodifiedµusingµtheµCOSSAPµBlock¡þIDiagramµEditorµ(BDE).¡þîChooseµEditµ²>²µAttributesµinµtheµBDEµtoµopenµtheµTargetµSpecific¡þ7Attributesµdialogµbox.µFromµthisµdialogµboxµyouµcanµassignµvaluesµto¡þtheµDCGµattributesµinµyourµdesign.µForµdetailedµinformationµonµusing¡þÈtheµBDEµtoµsetµDCGµattributes,µreferµtoµtheµ²COSSAPµBlockµDiagram¡þEditorµUserµGuide².¡þ¶Theµfollowingµareµtwoµexceptionsµwhenµspecifyingµtheµblockµand¡þÿsignalµmappingµattributes:¡þ	…²S¡X	…²Delayµblocks:µTheµDCGµremovesµeachµdelayµblockµandµitsµoutput¡X	Ìsignal.µTheµinputµsignalµofµaµdelayµblockµisµthenµconnectedµtoµthe¡X
blocksµprecedingµandµsucceedingµtheµdelay.µThisµsignalµis¡X
Yappropriatelyµinitializedµwithµtheµinitialµsignalµelements.¡X
ŸTherefore,µdo²µ²notµspecifyµaµmappingµattributeµforµdelayµblocks.¡þ²S¡X²Forkµblocks:µTheµmappingµofµforkµblocksµisµoptional.’&cD“I501ileaf_page_string1:5-4¥	öä¥	öä¡8Á²âFiles´µRelatedµtoµDSPµModels¡.5³4¡þÉ²For´µmoreµinformation,µseeµtheµsectionµPartitioningµtheµBlock¡þDiagram:µDelayµandµForkµBlocks"µinµChapterµ7.¡þë²
Attribute´µFileµSyntax¡þ„²The´µsyntaxµofµanµattributeµfileµisµasµfollows:¡þ²¡…OBJECT´µ¡þ5¡…5OBJTYPEµinstanceµ|µnet¡þi¡…iOBJNAMEµ²obj_name²¡þ¡…MODELNAME²µmodel_name²¡þÑ¡…ÑPRIMITIVEµyesµ|µno¡þ¡…ATTRIBUTE²µattribute²µ"²attribute_name²"µ¡þx²OBJTYPE´µinstanceµ|µnet¡XÁSpecifiesµthatµtheµobjectµwhoseµattributeµisµbeingµdefinedµis¡X
eitherµaµmodelµinstanceµorµaµnet.µSpecifyingµsignalµattributes¡XRusingµtheµnetµkeywordµisµdoneµtoµdefineµsignalµlinksµbetween¡X›processors,µandµtoµassignµspecificµdriversµtoµaµlink.µAssigning¡Xãsignalµattributesµtoµaµnetµisµoptional.µIfµnoµsignalµattributeµis¡X,specified,µtheµfirstµlinkµconnectingµtheµprocessorsµisµselectedµas¡Xuappropriateµforµtheµcutµsignal.µNoteµthatµitµisµnotµpossibleµto¡X½specifyµsignalµattributesµforµFORKµsignalsµbecauseµtheµsignal¡Xidentifierµisµnotµuniqueµ(forµmoreµinformation,µseeµtheµsection¡XOPartitioningµtheµBlockµDiagram:µDelayµandµForkµBlocks"µin¡X—Chapterµ7).¡þüOBJNAMEµ²obj_name¡X	E²Specifiesµaµblockµbyµitsµinstanceµnameµorµaµnetµbyµitsµsignal¡X	name.µEveryµinstanceµorµnetµinµaµCOSSAPµblockµdiagramµhasµa¡X	Öuniqueµname.¡þ
:MODELNAMEµ²model_name¡X
ƒ²Specifiesµtheµmodelµnameµofµtheµinstanceµwhoseµattributeµis¡X
Ìbeingµdefined.µmodel_nameµisµasµdefinedµbyµtheµNAMEµtokenµin¡Xtheµ.mdefµfile.µItµisµnotµrequiredµforµnets.’c=D“I501ileaf_page_string1:5-5¥	öä¥	öä¡nÁ²âFiles´µRelatedµtoµDSPµModels¡Ô¤ÿ¾5³5¡þÉ²PRIMITIVE´µyesµ|µno¡XSpecifiesµwhetherµtheµmodelµinstanceµwhoseµattributeµisµbeing¡XZdefinedµisµaµprimitiveµmodel,µorµnot.µThisµstatementµisµnot¡X£requiredµforµnets.¡þATTRIBUTEµ²attribute²µ²attribute_name²"¡XYSpecifiesµtheµattributeµbeingµdefinedµandµtheµattributeµname.µAn¡X¡attributeµforµtheµDCGµcanµbeµoneµofµtheµfollowingµdependingµon¡Xêtheµobjectµtype:¡þW²Forµinstances:¡þ²²dcg_processor¡Ê²¡XúSpecifiesµtheµprocessorµontoµwhichµtheµblockµisµmapped.µThe¡XCprocessorµnameµprovidedµisµtheµnameµofµtheµprocessorµspecified¡XŒinµtheµprocessorµsectionµofµtheµcorrespondingµarchitectureµfile.¡þùdcg_inliningµ²n²¡XASpecifiesµwhetherµtoµinlineµtheµcodeµ(²n²=1)µinsteadµofµmakingµa¡XŠfunctionµcallµ(²n²=0).¡þ÷dcg_loop_0overhead_paµ²n²¡X@Specifiesµwhetherµ(²n²=1)µorµnotµ(²n²=0)µtoµprecomputeµtheµloopµend¡Xˆconditionsµofµallµtheµloopsµthatµdoµnotµdependµonµtheµlocalµblock¡XÑfactor.¡þ>dcg_loop_0overhead_bfµ²n²¡X†Specifiesµwhetherµ(²n²=1)µorµnotµ(²n²=0)µtoµprecomputeµtheµloopµend¡XÏconditionsµofµallµloops.¡þ	<dcg_loop_unfolding_paµ²upper_bound²¡X	…Specifiesµthatµallµtheµloopsµthatµdoµnotµdependµonµtheµlocalµblock¡X	Ífactorµareµtoµbeµunfolded.µTheµargumentµspecifiesµtheµinteger¡X
upperµboundµofµunfolding.¡þ
ƒdcg_loop_unfolding_bfµ²µupper_bound²¡X
ÌSpecifiesµthatµallµtheµloopsµareµtoµbeµunfolded.µTheµargument¡Xspecifiesµtheµintegerµupperµboundµofµunfolding.’=ÔD“I501ileaf_page_string1:5-6¥	öä¥	öä¡8Á²âFiles´µRelatedµtoµDSPµModels¡.5³6¡þÉ²dcg_exitcond_inports´µ²no_samples²¡XSpecifiesµthatµtheµexitµconditionµisµdependentµonµtheµnumberµof¡XZsamplesµconsumedµatµtheµinputµportsµofµtheµblock.µWhenµthe¡X£specifiedµintegerµnumberµofµsamplesµhasµbeenµconsumedµatµthe¡Xìinputµports,µthisµblockµsetsµanµexitµflag.µTheµDSPµprogram¡X4terminatesµwhenµtheµexitµflagsµofµallµtheµblocksµandµtheµglobal¡X}exitµflagµconditionsµareµsatisfied.¡þêdcg_exitcond_outportsµ²no_samples²¡X3Specifiesµthatµtheµexitµconditionµisµdependentµonµtheµnumberµof¡X{samplesµproducedµatµtheµoutputµportsµofµtheµblock.µWhenµthe¡XÄspecifiedµintegerµnumberµofµsamplesµhasµbeenµproducedµatµthe¡Xoutputµports,µthisµblockµsetsµanµexitµflag.µTheµDSPµprogram¡XUterminatesµwhenµtheµexitµflagsµofµallµtheµblocksµandµtheµglobal¡Xžexitµflagµconditionsµareµsatisfied.¡þdcg_processorµ²processor²¡XSForµmulti-DSPµarchitectures:µIdentifiesµtheµprocessorµontoµwhich¡Xœthisµblockµisµmapped.¡þ	dcg_ipc_linkµ²link_name²¡XRForµmulti-DSPµarchitectures:µSpecifiesµtheµlinkµforµthe¡Xšinterprocessµcommunicationµ(IPC)µsignal.¡þdcg_ipc_driverµ²ipc_driver²¡XPForµmulti-DSPµarchitectures:µSpecifiesµtheµdriverµforµtheµIPC¡X™signal.¡þ	²Forµnets:¡þ	`²dcg_ipc_linkµµ²link_name²¡Ê	`¡X	©Providesµtheµcorrespondenceµbetweenµtheµsignalµandµthe¡X	òprocessorµlink.µTheµnameµofµtheµlinkµmustµcorrespondµtoµthe¡X
:nameµofµtheµlinkµinµtheµtopologyµsectionµofµtheµarchitectureµfile.¡X
ƒTheµDCGµdoesµnotµsupportµmappingµaµsingleµsignalµonto¡X
Ìmultipleµlinks.µAlso,µthereµisµnoµsupportµforµautomaticµroutingµof¡Xsignalsµoverµmultipleµlinksµandµprocessors.’ÔD“I501ileaf_page_string1:5-7¥	öäÃËÁâÊË¡Ä,R,<¡Ä,<	c<¡Ä	c<	cR¡Ä	cR,RÆÃÁÊËÃ¡Äþ<Ê<ÆÃ¥	öä¥	öä¡nÁ²Files´µRelatedµtoµDSPµModels¡Ô¤ÿ¾5³7¡þÉ²dcg_ipc_driver´µµµ²ipc_driver²¡XSpecifiesµtheµnameµofµaµspecificµdriver.µIfµthisµattributeµisµnot¡XZusedµtoµspecifyµaµdriverµforµaµparticularµlinkµ(net)µandµtheµlinkµcan¡X£beµdrivenµbyµmoreµthanµoneµdriver,µtheµfirstµdriverµinµtheµdriverµlist¡XìofµtheµlinkµspecificationµinµtheµArchitectureµfileµisµselectedµasµthe¡X4default.µYouµcanµmapµmoreµthanµoneµsignalµontoµtheµsameµlink.¡X}TheµschedulingµimplementedµbyµtheµDCGµresolvesµthisµcase¡XÆveryµefficiently.¡þŒ²
Stream´µDrivenµSimulatorµSourceµCode¡þ+²If´µyouµwantµtoµsimulateµaµdesignµcontainingµyourµcustomµprimitive¡þtmodelµinµtheµStreamµDrivenµSimulator,µyouµmustµalsoµdefineµa¡þ¼C³languageµsimulationµmodel.¡þ_UseµtheµcoinsµutilityµtoµgenerateµaµsourceµcodeµfileµforµtheµCOSSAP¡þ¨StreamµDrivenµSimulatorµfromµaµgenericµCµcodeµfile.¡þJForµexample,µtheµnameµofµtheµcorrespondingµCµsourceµcodeµfileµfor¡þ“aµmodelµnamedµaddµwouldµbe:¡þ²add.c¡þ¤²ForµadditionalµinformationµonµdevelopingµC³languageµsimulation¡þímodels,µseeµtheµ²COSSAPµModelµUserµGuide².’ŸD“I501ileaf_page_string1:5-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Files´µRelatedµtoµDSPµModels¡.5³8¡þÏ²
Example´µofµtheµFilesµRequiredµforµaµDSPµModel¡þn²If´µmy_first_modelµisµaµprimitiveµmodel,µtheµfollowingµfilesµmustµexist¡þ¶inµtheµdirectoryµthatµcontainsµtheµmodelµtableµ(.mtbl)µfile:¡þ8²my_first_model.mdef¡þlmy_first_model.v_ent¡þ symbol/my_first_model.sym¡þ2²Theµsameµdirectoryµcanµalsoµcontainµaµsimulationµsourceµcodeµfile¡þzforµtheµCOSSAPµStreamµDrivenµSimulator:¡þü²my_first_model.c¡þŽ²Additionally,µifµmy_first_modelµisµaµprimitiveµmodel,µtheµfollowingµfile¡þÖmustµexistµinµaµtargetµdirectory,µwhichµisµaµsubdirectoryµofµthe¡þdirectoryµthatµcontainsµtheµmodelµtableµ(.mtbl)µfile:¡þ ²target_dir²/my_first_model.gc¡þ2²Ifµanother_modelµisµaµhierarchicalµmodel,µtheµfollowingµfilesµmust¡þ{existµinµtheµdirectoryµthatµcontainsµtheµmodelµtableµ(.mtbl)µfile:¡þý²another_model.mdef¡þ0another_model.v_ent¡þdanother_model.v_arc²¡þ˜²schematic/another_model.sch¡þÌsymbol/another_model.sym’Ÿ’D“I501ileaf_page_string1:5-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,¸,¢¡Ä,¢	c¢¡Ä	c¢	c¸¡Ä	c¸,¸ÆÃÁÊËÃ¡Ä,¢Ê¢ÆÃ¥	öä¥	öä¡nÁ²Files´µRelatedµtoµDSPµModels¡Ô¤ÿ¾5³9¡,Õ²Netlist´µDescriptionµofµaµDSPµSystemµorµModel¡þ˜²A´µnetlistµdescriptionµofµaµDSPµsystemµorµmodelµisµrequiredµbyµthe¡þáDCGµforµcodeµgeneration.µWhenµyouµuseµtheµCOSSAPµBlock¡þ)DiagramµEditorµ(BDE)µtoµcreateµaµnetlistµforµtheµDCG,µtheµfollowing¡þrfilesµareµcreatedµinµtheµcµdirectoryµofµtheµcurrentµproject¡Xð²¥	öä¡u²~snnnnn².asn¡ð¥	öä¡7²Assignment´µfileµof²>µnnnnn²µnetlist²¡¥ð¡XX¥	öä¡uu²~snnnnn².sch¡X¥	öä¡7x²Schematicµfileµofµ²>nnnnn²µnetlistµ(forµhierarchical¡7®modelsµonly)²¡¥X¡Xô¥	öä¡u²²~snnnnn².mdef¡ô¥	öä¡7²Modelµdefinitionµfileµofµ²>nnnnn²µnetlist²¡¥ô¡X\¥	öä¡uy²~snnnnn².v_ent¡\¥	öä¡7|²VHDLµentityµfileµofµ²>nnnnn²µnetlist²¡¥\¡XÄ¥	öä¡uá²~snnnnn².v_arc¡Ä¥	öä¡7ä²VHDLµarchitectureµfileµofµ²>nnnnn²µnetlist²¡¥Ä¡X,¥	öä¡uI²²~snnnnn².attr¡,¥	öä¡7L²Attributeµfileµofµ²>nnnnn²µnetlist²¡¥,¡þê²where´µ²nnnnn²µisµtheµnetlistµnumber.¡,ø²DSP´µModelµLibraries¡þ»²All´µCOSSAPµDSPµmodelsµareµorganizedµintoµDSPµmodelµlibraries.¡þ	InµadditionµtoµtheµDSPµmodelµlibrariesµdeliveredµwithµCOSSAP,µyou¡þ	LcanµcreateµyourµownµDSPµmodelµlibrariesµ(seeµtheµ²COSSAPµModel¡þ	•UserµGuide²µforµdetails).¡þ
:TheµCOSSAPµSystemµDSPµLibrariesµareµlocatedµinµsubdirectories¡þ
ƒofµtheµ$(COSSAP_MODELS)µdirectory,µasµdepictedµinµFigure 5³1.¡þ
ÌTheµcorrespondingµgenericµCµcodeµfilesµareµlocatedµinµsubdirectories¡þofµtheµdirectoryµthatµcontainsµtheµDSPµLibrary.’’SD“I501ileaf_page_string1:5-10¥	öä¥	öä¡8Á²âFiles´µRelatedµtoµDSPµModels¡.5³10¡þÉ²User´µDSPµModelµLibrariesµareµlocatedµinµoneµofµtheµsubdirectories¡þofµtheµdµdirectoriesµ(seeµFigure 5³2)µ.µTheµcorrespondingµgenericµC¡þZfilesµareµlocatedµinµaµsubdirectoryµofµtheµdirectoryµthatµcontainsµthe¡þ£DSPµLibrary.¡,U²Figure 5³1³COSSAPµDSPµModelµLibraries¡þ…²´µ¥	öä²¡Z3¤ÿ½modelsÁÊËÃ¡ÄRÂSùÆÃÃ¡ÄU^V•ÆÃÃ¡Ä“•ÆÃÊËÃ¡Ä‘•“ßÆÃÊËÃ¡Ä“ÛÆÃ¡%¤ÿÙdsp/¡‘¤ÿ¬dsp_lib2/Ã¡Ä6"ìÆÃÃ¡Ä\éBìÆÃÃ¡ÄXìZ3ÆÃ¡mz¤ÿ”dspgeneric/¡=z¤ÿé.../Ã¡ÄBìD4ÆÃÃ¡Ä•<™íÆÃÃ¡ÄîDïÆÃÃ¡Äî4ÆÃ¡Uz¤ÿ‘target_dsp1¡Ez¤ÿé.../Ã¡ÄBñD<ÆÃÊËÃ¡Ä·Ü@ßÆÃÊËÃ¡ÄFßGÆÃÊËÃ¡Ä‘–è—ÆÃËÃ¡Äè—êíÆÃ²7¡Qª¤ÿ_$(COSSAP_DIR)ËÃ¡Ä¶Ü·ÆÃ²¡qz¤ÿŒtarget_dsp1/ÊËÃ¡Äfëg2ÆÃ¡‰z¤ÿŒtarget_dsp2/Ã¡Äwìy3ÆÃÊËÃ¡ÄUî­ïÆÃËÃ¡Ä­ï®EÆÃ²¡²…’S”D“I501ileaf_page_string1:5-11¥	öä¥	öä¡nÁ²âFiles´µRelatedµtoµDSPµModels¡Ô¤ÿ¤5³11¡,É²Figure 5³2³COSSAP´µUserµEnvironment¡,¥²¥	öä²¡?¤ÿƒcossap_user/¡?´¤ÿ¸cossap/ÁÊËÃ¡Ä?=?sÆÃÃ¡Ä?Ù?ÆÃÃ¡Ä7GÆÃÃ¡ÄFFYÆÃÃ¡Ä88VÆÃ¡8‹¤ÿ°project1/¡F¤ÿ°project2/Ã¡Ä8±8gÆÃÃ¡Ä™fÙfÆÃÃ¡Ä™i™¯ÆÃ¡™Ý¤ÿðc/¡ÛÝ¤ÿïd/Ã¡ÄÛgÛ®ÆÃÃ¡ÄF¶FfÆÃÃ¡ÄªhähÆÃÃ¡Ä§j§±ÆÃ¡§ß¤ÿðc/¡äß¤ÿïd/Ã¡Ääjä´ÆÃÊËÃ¡Ä>XÛXÆÃËÃ¡ÄàXà–ÆÃËÃ¡ÄFdÆÃÊËÃ¡ÄddeÆÃÊËÃ¡Ä˜÷˜>ÆÃÁÊËÃ¡Ä@@ÆÃÁÊËÃ¡ÄCŠÆÃÃ¡ÄB‰ÆÃ¡Á°²;schematic/¡á°symbol/¡›dproject1/Ã¡ÄÙ÷Ù>ÆÃÃ¡Ä×‚×)ÆÃÁÊËÃ¡ÄS(W(ÆÃÁÊËÃ¡ÄS*SqÆÃÃ¡ÄW*WqÆÃ¡ÿ˜schematic/¡˜symbol/ÁÊËÃ¡ÄŸìŸFÆÃËÃ¡ÄÝìÝFÆÃ²¡Ê¥¡þc²Objectµcodeµplacedµunderµtheµ$COSSAP_USER/dµdirectoryµis¡þ«automaticallyµlinkedµwithµtheµmodelµwhenµitµisµcompiled.µTheµlinking¡þôcanµbeµcontrolledµbyµaµfileµcalledµdspobjcode.ftbl.µThisµfileµsimply¡þ=listsµtheµnamesµofµtheµfilesµ(extensionsµ.oµandµ.a)µthatµcontainµthe¡þ…linkµobjects.¡þ	(Note:²¡X	q²Forµinformationµaboutµmodelµlibraryµtablesµ(models.ltbl),µseeµthe¡X	¹²COSSAPµModelµUserµGuide².’”ÐOPS Í4Í4D€‚Document:dcg6ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:47ÿ„pspsƒ*16š°wst:helvps12±:††††††††††††††††††††††††††††††††;;Gvv¼/GGR|;v;;vvvvvvvvvv;;|||v×™™‚¥™;jv±™¥¥™‚™È‚;;;cv/vvjvv;vv//j/±vvvvGj;vj™jjjG7G|G†††††††††††††††††††††††††††††††††Gvvvv†vG†Nv†††G††††††r;††Mv†††‚Ô™;;;;†™¥¥¥¥¥†¥™™™™††‚vvvvvv¼jvvvv;;;;†vvvvvv†‚vvvv††j†;vjÔGv††Ô†††††††††vvGGG††††††Ô#†††††††††††††††v††††Ô†††È°wst:helvps60±:&&`LL­Âë``œj&L&&LLLLLLLLLL&&jjjL2ÂÂüüÂ†7ü&ÂLqü7Â7üÂ†üÂçÂÂ†&&&ðLëLLLL&LLëëëqLLLL`&Lüaaj``LLLLL`‡L`8&‚L†ÂÂÂÂÂÂ"üÂÂÂÂ&&&&ü777777üüüü†LLLLLL­LLLL&&&&LLLLLL†LLLL&L"`L"LL```"±L"ç°wst:helvps72±:################################aa§ÂÂiO§§îæaÂaaÂÂÂÂÂÂÂÂÂÂaaæææÂ	OO••OÜ•a{OÂ"•ÜOÜ•O•O¯OOaaaTÂÂÂ{ÂÂaÂÂ{"ÂÂÂÂ§{aÂ{•{{{¨J¨æ§#################################§ÂÂÂÂ#Â§#ÖÂ###§######ªa##ÐÂ###OOOOOOö•OOOOaaaa#•ÜÜÜÜÜ#Ü••••##ÂÂÂÂÂÂi{ÂÂÂÂaaaa#ÂÂÂÂÂÂ#ÂÂÂÂ##{#aÂ{ö§Â##ö#########ÂÂ§§§######öÔ###############Â####ö###¯°wst:courps10±:oooooooooooooooooooooooooooooooojjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjooooooooooooooooooooooooooooooooojjjjjojjojjooojoooooojjoojjooojjjjjjjjjjjjjjjjjojjjjjjojjjjjoojjjjjjjjjjjjjjjjjojjjjjjojjjjjoojojjX°jjoojooooooooojjjjjoooooojjooooooooooooooojoooojoooj°wst:helvps14±:œœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœEER‰‰Ü¥7RR`E‰EE‰‰‰‰‰‰‰‰‰‰EE‰û¥¥²²¥—À²E|¥‰Î²À¥À²¥—²¥é¥¥—EEEt‰7‰‰|‰‰E‰‰77|7Î‰‰‰‰R|E‰|²|||R@RRœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœR‰‰‰‰œ‰Rœ[‰œœœRœœœœœœ…EœœZ‰œœœ—¥¥¥¥¥¥÷²¥¥¥¥EEEEœ²ÀÀÀÀÀœÀ²²²²œœ—‰‰‰‰‰‰Ü|‰‰‰‰EEEEœ‰‰‰‰‰‰œ—‰‰‰‰œœ|œE‰|÷R‰œœ÷œœœœœœœœœ‰‰RRRœœœœœœ÷)œœœœœœœœœœœœœœœ‰œœœœ÷œœœé°wst:helvps14b±:œœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœER|‰‰Ü²ERR`E‰EE‰‰‰‰‰‰‰‰‰‰RR—ñ²²²²¥—À²E‰²—Î²À¥À²¥—²¥é¥¥—RER‰E‰—‰—‰R——EE‰EÜ————`‰R—‰À‰‰|`E`|œœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœR‰‰‰‰œ‰Rœ[‰œœœRœœœœœœ‰EœœZ‰œœœ—²²²²²²÷²¥¥¥¥EEEEœ²ÀÀÀÀÀœÀ²²²²œœ—‰‰‰‰‰‰Ü‰‰‰‰‰EEEEœ——————œ—————œœ‰œE‰|÷R‰œœ÷œœœœœœœœœ‰‰RR|œœœœœœ÷)œœœœœœœœœœœœœœœ‰œœœœ÷œœœé°wst:helvps10±:oooooooooooooooooooooooooooooooo11;bbœu';;Dg1b11bbbbbbbbbb11gggb³uuul‰1Xub“‰u‰ulu¦uul111Sb'bbXbb1bb''X'“bbbb;X1bXXXX;.;g;ooooooooooooooooooooooooooooooooo;bbbbob;oAbooo;oooooo_1oo@boooluuuuuu°uuuu1111o‰‰‰‰‰o‰oolbbbbbbœXbbbb1111obbbbbbolbbbbooXo1bX°;boo°ooooooooobb;;;oooooo°oooooooooooooooboooo°ooo¦°wst:helvps24±:vvëëx^¥÷vëvvëëëëëëëëëëvv÷÷÷ë­11I1vÔë`1II11vvvÆë^ëëÔëëvëë^^Ô^`ëëëëÔvëÔ1ÔÔÔn÷ëëëëëëãvšë§1vvvv1IIIIII1111ëëëëëëxÔëëëëvvvvëëëëëëëëëëÔvëÔ§ë§ëë§Gë§°wst:helvps18b±:ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉXjŸ±±æXjj|ºX±XX±±±±±±±±±±jjºººÂ6ææææÔÂ÷æX±æÂ	æ÷Ô÷æÔÂæÔ,ÔÔÂjXjº±X±Â±Â±jÂÂXX±XÂÂÂÂ|±jÂ±÷±±Ÿ|Y|ºŸÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉj±±±±É±jÉv±ÉÉÉjÉÉÉÉÉÉ±XÉÉt±ÉÉÉÂææææææ>æÔÔÔÔXXXXÉæ÷÷÷÷÷É÷ææææÉÉÂ±±±±±±±±±±±XXXXÉÂÂÂÂÂÂÉÂÂÂÂÂÉÉ±ÉX±Ÿ>j±ÉÉ>ÉÉÉÉÉÉÉÉÉ±±jjŸÉÉÉÉÉÉ>5ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ±ÉÉÉÉ>ÉÉÉ,°wst:helvps16b±:²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²N^ûÌN^^n¥NNN^^¥¥¥¬ÌÌÌÌ¼¬ÛÌNÌ¬ëÌÛ¼ÛÌ¼¬Ì¼
¼¼¬^N^¥N¬¬^¬¬NNNû¬¬¬¬n^¬ÛnOn¥²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²^²^²h²²²^²²²²²²N²²g²²²¬ÌÌÌÌÌÌÌ¼¼¼¼NNNN²ÌÛÛÛÛÛ²ÛÌÌÌÌ²²¬ûNNNN²¬¬¬¬¬¬²¬¬¬¬¬²²²N^²²²²²²²²²²²^^²²²²²²/²²²²²²²²²²²²²²²²²²²²²²
°wst:helvps12i±:††††††††††††††††††††††††††††††††;;Gvv¼/GGR|;v;;vvvvvvvvvv;;|||v×™™‚¥™;jv±™¥¥™‚™È‚;;;cv/vvjvv;vv//j/±vvvvGj;vj™jjjG7G|G†††††††††††††††††††††††††††††††††Gvvvv†vG†Nv†††G††††††r;††Mv†††‚Ô™;;;;†™¥¥¥¥¥†¥™™™™††‚vvvvvv¼jvvvv;;;;†vvvvvv†‚vvvv††j†;vjÔGv††Ô†††††††††vvGGG††††††Ô#†††††††††††††††v††††Ô†††È°sym:clas14±€œœœœœœœœœœœœœœœœœœœœœœœ÷qîqqqqŠqqqœííŠqqqqqqqqqqíòœœŠqîòÊ”Ôâq˜ŠâŠÔœœŠÙÔfÙÀ»ŠœòÔŠŠqŠéÊ”ŠâÀ˜Nâ’ÔÓñŠŠÙŠÀÙÀÙ†ÙéÔ°wst:helvps14i±:œœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœEER‰‰Ü¥7RR`E‰EE‰‰‰‰‰‰‰‰‰‰EE‰û¥¥²²¥—À²E|¥‰Î²À¥À²¥—²¥é¥¥—EEEt‰7‰‰|‰‰E‰‰77|7Î‰‰‰‰R|E‰|²|||R@RRœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœœR‰‰‰‰œ‰Rœ[‰œœœRœœœœœœ…EœœZ‰œœœ—¥¥¥¥¥¥÷²¥¥¥¥EEEEœ²ÀÀÀÀÀœÀ²²²²œœ—‰‰‰‰‰‰Ü|‰‰‰‰EEEEœ‰‰‰‰‰‰œ—‰‰‰‰œœ|œE‰|÷R‰œœ÷œœœœœœœœœ‰‰RRRœœœœœœ÷)œœœœœœœœœœœœœœœ‰œœœœ÷œœœé°wst:helvps11±:{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{66All¬+AAKq6l66llllllllll66qqqlÅŒŒw—Œ6al¢Œ——ŒwŒ·w666[l+llall6ll++a+¢llllAa6laŒaaaA2AqA{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{Allll{lA{Hl{{{A{{{{{{h6{{Gl{{{wÂŒ6666{Œ—————{—ŒŒŒŒ{{wllllll¬allll6666{llllll{wllll{{a{6laÂAl{{Â{{{{{{{{{llAAA{{{{{{Â {{{{{{{{{{{{{{{l{{{{Â{{{·°wst:helvps18±:ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉXXj±±ÔGjj|ºX±XX±±±±±±±±±±XXººº±CÔÔææÔÂ÷æXŸÔ±	æ÷Ô÷æÔÂæÔ,ÔÔÂXXX•±G±±Ÿ±±X±±GGŸG	±±±±jŸX±ŸæŸŸŸjSjºjÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉj±±±±É±jÉv±ÉÉÉjÉÉÉÉÉÉ«XÉÉt±ÉÉÉÂÔÔÔÔÔÔ>æÔÔÔÔXXXXÉæ÷÷÷÷÷É÷ææææÉÉÂ±±±±±±Ÿ±±±±XXXXÉ±±±±±±ÉÂ±±±±ÉÉŸÉX±Ÿ>j±ÉÉ>ÉÉÉÉÉÉÉÉÉ±±jjjÉÉÉÉÉÉ>5ÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ±ÉÉÉÉ>ÉÉÉ,°wst:timsps11b±:{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1AaaaÂ¢AAAao1a16aaaaaaaaaaAAoooa´ŒŒŒw——Ka—·Œ—w—ŒlŒŒÂŒŒA6AqaAalVlVAal6Al6¢lallVKAlaŒaaVL+Lea{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{Aaaaa{aA{:a{{{A{{{{{{i1{{@a{{{aŒŒŒŒŒŒÂŒKKKK{Œ—————{—ŒŒŒŒ{{laaaaaaŒVVVVV6666{laaaaa{allll{{a{1aaÂAa{{Â{{{{{{{{{aaAAa{{{{{{Â {{{{{{{{{{{{{{{a{{{{Â{{{Œ°wst:timsps11bi±:{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1Kaaa¢—AAAao1a16aaaaaaaaaaAAoooa¡ŒŒ—Kaw¬ŒŒwŒlwŒ¬wwA6AoaAaaVaVAal66a6—laaaKK6lVaVKD+Doa{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{Kaaaa{aA{4a{{{A{{{{{{a1{{:a{{{a·KKKK{ŒŒŒŒŒŒ{ŒŒŒŒŒ{{aaaaaaaŒVVVVV6666{laaaaa{allll{{V{1aaÂAa{{Â{{{{{{{{{aaAAa{{{{{{Â {{{{{{{{{{{{{{{a{{{{·{{{Œåååå å@å€å¿ÿåÿÿåšå	™™ÿÿNîÍáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡ÉþwÉ¦UDUÉüUÉˆ3É"UÉ¨UDUDUÉSU"UÉ"©É	ä’,«ëD“I501ileaf_page_string1:6-1¥*16š²â¡ð¡"ð¡ Dð¥*16š¡u1È²Files´6µGeneratedµbyµtheµDCG¡%e3¤þè6³1¡÷¾²²6â	²¥*16š¡Â¾²â¡÷²Files´vµGeneratedµbyµtheµDCG¡ ²¥*16šÁÊËÃ¡Ä÷ª%;ªÆÃ¡*1 ¡qThis´EµchapterµdescribesµtheµfilesµgeneratedµbyµtheµDCG.µYouµcan¡qDuseµtheµDCGµtoµgenerateµtheµfollowingµtwoµtypesµofµCµsourceµcode:¡qz²S¡	îz²AµCµprogramµ(.cµfile)µthatµdescribesµaµcompleteµDSPµsystem¡q!g²S¡	î!g²GenericµCµcodeµ(.gcµfile)µthatµhasµinputµand/orµoutputµports¡	î"’whichµcanµthenµbeµusedµtoµcreateµaµblockµwithinµanotherµDSP¡	î#½system¡q&ùTheµDCGµalsoµcreatesµadditionalµfilesµthatµareµassociatedµwithµthe¡q(-generationµofµtheµCµandµgenericµCµsourceµcode.’ëiD“I501ileaf_page_string1:6-2¥*16šÃËÁâÊË¡Ä÷
÷¯¡Ä÷¯'Â¯¡Ä'Â¯'Â
¡Ä'Â
÷
ÆÃÁÊËÃ¡Ä÷¯%;¯ÆÃ¥*16š¥*16š¡*1È²Files´6µGeneratedµbyµtheµDCG¡ÿ36³2¡qŒ²This´Eµchapterµisµorganizedµintoµtheµfollowingµsections:¡q	Ö²S¡	î	Ö²Cµprogramµ(completeµDSPµsystem)¡qÒ²S¡	îÒ²GenericµCµprogramµ(containsµinput/outputµports)¡qÏ²S¡	îÏ²FilesµassociatedµwithµtheµCµandµgenericµCµcode¡qË²S¡	îË²Filesµcreatedµafterµcompilation,µassembly,µandµlinking¡÷²C´XµProgram¡qj²Specifying´EµoneµofµtheµfollowingµtargetsµinµxdcgµgeneratesµaµC¡qžsourceµcodeµprogramµ(.cµfile)µthatµdescribesµaµcompleteµDSP¡qÒsystem:¡q²S¡	î²Pentekµ(singleµdcg)¡q²S¡	î²DSP96000¡q ²S¡	î ²Pentekµ(multiµdcg)¡q"²S¡	î"²lsic30s¡q$²S¡	î$²K&RµC¡q&	²S¡	î&	²Ariel32C¡q(²S¡	î(²ADSP210X¡q*²S¡	î*²ANSIµC¡q,ƒTheµgeneratedµCµsourceµcodeµisµaµmainµprogram,µwhichµcanµbe¡q-¶compiledµandµlinkedµ(chooseµCodeµ²>²µCompileµinµxdcg).µItµcanµthen¡q.êbeµdownloadedµandµexecutedµ(chooseµCodeµ²>²µDownloadµinµxdcg).’iÞD“I501ileaf_page_string1:6-3¥*16šÃËÁâÊË¡Ä÷°÷U¡Ä÷U'ÂU¡Ä'ÂU'Â°¡Ä'Â°÷°ÆÃÁÊËÃ¡ÄqU%;UÆÃ¥*16š¥*16š¡u1È²Files´6µGeneratedµbyµtheµDCG¡%e3¤þè6³3¡q§²Structure´NµofµtheµGeneratedµCµCode¡q
F²Example 6³1´EµshowsµtheµstructureµofµtheµCµcodeµgeneratedµbyµthe¡qzDCG.µNoteµthatµexampleµcodeµfragmentsµareµshownµhereµfor¡q®illustrationµpurposes;µtheyµdoµnotµrepresentµaµcompleteµsystem.’ÞD“I501ileaf_page_string1:6-4¥*16š¥*16š¡*1È²âFiles´6µGeneratedµbyµtheµDCG¡ÿ36³4¡ËŒ²Example 6³1³Example´EµofµCµCodeµStructureµGeneratedµbyµDCG¡ž(ô¥*16š¡žq²/*****************************************************************¡ž	2´jµµFileµnameµ:µµtest1/test1.c¡ž	ôµ¡ž
µµµCreatedµby:µµwberger,µWedµOctµ23µ23:52:14µ1996¡žwµ¡ž8µµgeneratedµbyµtheµCOSSAPµDSPµCodeµGenerator,µReleaseµ1997.01¡žúµµSynopsys,µInc.µ1997¡ž»*****************************************************************/¡ž}µ¡ž>/*µTableµofµCOSSAP-DSP-blocks:¡žµ*µMODEL_NAMEµµµµµµµµµµMSEQNAMEµµµµµµµµµµµµIMPLEMENTATION_NAME¡žÁµ*µFILEDPµµµµµµµµµµµµµµM5µµµµµµµµµµµµµµµµµµfiledp¡žƒµ*µCONST_GENµµµµµµµµµµµM4µµµµµµµµµµµµµµµµµµconst_gen¡žDµ*µFIRDS_SRCµµµµµµµµµµµM0µµµµµµµµµµµµµµµµµµfirds_src¡žµ*µHOLDµµµµµµµµµµµµµµµµM2µµµµµµµµµµµµµµµµµµhold¡žÇµ*µADD2µµµµµµµµµµµµµµµµM3µµµµµµµµµµµµµµµµµµadd2¡ž‰µ*µFORKRµµµµµµµµµµµµµµµFORKR_SIG_3µµµµµµµµµfork¡žJ*/¡žµ¡žÍ/*µlistµofµincludeµdirectivesµforµallµmodelsµ*/¡žŽ#includeµ"math.h"¡žP#includeµ"stdio.h"¡ž#includeµ"string.h"¡žR/*****************************************************************¡žµµstates,µparametersµandµinputµdatasetsµforµblockµfirds_src¡žÕµµMSEQN:µM0¡ž–*****************************************************************/¡žX/*µSTATEµInBufferµ*/¡žfloatµdcg_InBuffer_3µ[9];¡žÛµ¡žœ/*µINPUTDATASETµFilterCoeff,µCOSSAPµname:µFILTERCOEFFICIENTSµ*/¡ž ^floatµdcg_FilterCoeff_3[9]µ=µ{¡ž!µ1,µ-1,µµ3,µµ7,µµ15,µµ7,µµ3,µ-1,µµ1¡ž!á};¡ž"¢µ¡ž#d/*µLENGTH(INPUTDATASET)µNumOfCoeffµ*/¡ž$%longµdcg_NumOfCoeff_3µ=µ9;¡ž$çµ¡ž%¨/*µPARAMETERµDecimationFactor,µCOSSAPµname:µDECIMATIONFACTORµ*/¡ž&jlongµdcg_DecimationFactor_3µ=µ3;¡ž'+µ¡ž'í/*µPARAMETERµInterpolFactor,µCOSSAPµname:µINTERPOLATIONFACTORµ*/¡ž(®longµdcg_InterpolationFactor_3µ=µ1;ÃËÁÊË¡Äl_bp¡Ìÿÿÿÿÿÿ÷óÿÿÿÿÿÿö‚ÿÿÿÿÿíÅ½
ÿùÄbp‡¾““Û“¡Ä““n¡Ìÿÿÿÿÿÿ«˜ÿÿÿÿÿÿÿþÿÿÿÿÿÿí3FìÅ“
N“n¦ðÙC'¹‹ÙC¡Ìÿÿÿÿÿÿ«Æÿÿÿÿÿÿí3	¼T'»÷ÙC¦—““9“¡Ä““t¡Ìÿÿÿÿÿÿ÷úÿÿÿÿÿÿö‚ÿÿÿÿÿêªæÿÿÿÿÿÿÿÿ“¬“t‡ÈbùÂb¡Äbl(¡Ìÿÿÿÿÿÿ×Äÿÿÿÿÿÿä´ÿÿÿÿÿµ#îÿÿÿÿÿÇÒ7æl(«­À ÀæÀ ¡ÄÀ ÀÅ¡ÌÿÿÿÿÿÿÛ'ÿÿÿÿÿÿõ[:¨À#ÀÅÏyõQ(ùYõQ¡ÄõQõ5¡ÌÿÿÿÿÿÿÛ'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ[,ñÿÿÿÿÿöYü(ù-õ5ÏÀÁÀ
dÀÁ¡ÄÀÁÀf¡Ìÿÿÿÿÿÿ×µÿÿÿÿÿÿä´ÿÿÿÿÿš½gÿÿÿÿÿÿÿúÀ Àf«Ùl_¡l_ãÇÆÃ¡ H²T¤ÿîable´1µof¡ Hõblocksµused¡ HÚinµblock¡ H¾diagramÃ¡Äl—b¹¡ÌÿÿÿÿÿÿáY	ÿÿÿÿÿÿöÿÿÿÿÿºŸ·mÁù«b¹‡Q“÷“$ˆ“÷¡Ä“÷““¡Ìÿÿÿÿÿþ¼íÿÿÿÿÿÿÿûÿÿÿÿÿÿí3y”
“¢““¦ Ù!4'¹-}Ù!4¡Ìÿÿÿÿÿþ½šÿÿÿÿÿÿí3_Ö=J¥'»áÙ!4¦!Ø“"Ö“0È“"Ö¡Ä“"Ö“'r¡Ìÿÿÿÿÿÿáuÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ®Î‚ÿÿÿÿÿÿÿþ“à“'r‡(b(°ù5½b(°¡Äb(°l(Ò¡Ìÿÿÿÿÿÿj8	ÿÿÿÿÿÿåtÿÿÿÿþéXwÿÿÿÿÿ•Þ…0el(Ò«'ãÀ&ÎÀØÀ&Î¡ÄÀ&ÎÀ"2¡Ìÿÿÿÿÿÿróÿÿÿÿÿÿõ[EÆ‰À0›À"2Ï!žõ!O(ùõ!O¡Äõ!Oõ!¡Ìÿÿÿÿÿÿróÿÿÿÿÿÿÿþÿÿÿÿÿÿõ['³ÿÿÿÿÿí€(ù&èõ!Ï ÊÀ 6ÀÍÀ 6¡ÄÀ 6Àš¡Ìÿÿÿÿÿÿj
ÿÿÿÿÿÿåtÿÿÿÿþ‡IÿÿÿÿÿÿÿðÀ'Àš«†l—…l—ÇÆÃ¡ YvParameter¤ÿî,¡ Y Zstate,´'µandµinput¡ Y!?dataset¡ Y"#declarations²¡%”(ô’zD“I501ileaf_page_string1:6-5¥*16š¥*16š¡u1È²âFiles´6µGeneratedµbyµtheµDCG¡%e3¤þè6³5¡qŒ²Structure´EµofµtheµGeneratedµCµCodeµ(exampleµ6-1µcontinued)¡c)²¥*16š¡c	g²/*****************************************************************¡c
(´jµµCµfunctionµdefinitionµofµmodelµconst_gen¡c
ê*****************************************************************/¡c«voidµdcg_M0_0_2_const_gen_0µ(µregisterµfloatµ*Output,¡cmµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµfloatµConstantValue,¡c.µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµintµBlockFactor¡cðµµµµµµµµµµµµµµµµµµµµµµµµµµµµ)¡c±{¡csµintµdcg_LOOPCnt_1;µ/*µloopµcounterµgeneratedµ¡c4µµµµµµµµµµµµµµµµµµµµµµµforµgenericµloopsµµµµµµµµ*/¡cöµintµdcg_LOOPLim_1;µ/*µloopµvariableµgeneratedµ¡c·µµµµµµµµµµµµµµµµµµµµµµµforµgenericµloopsµµµµµµµµ*/¡cyµ¡c:µ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡cüµdcg_LOOPLim_1µ=µBlockFactor;¡c½µforµ(µdcg_LOOPCnt_1µ=µ1;µ¡cµµµµµµdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;¡c@µµµµµµ++dcg_LOOPCnt_1µ)¡cµ{¡cÃµµµµ*Output++µ=µConstantValue;¡c„µ}¡cFµ¡c}¡cH/*µMemoryµallocationµforµsignalµbuffersµ*/¡c	/*µSignal,µCOSSAPµname:µ:SIG_4,withµDELAYµ(size=2)µ*/¡cËfloatµsignal1[5]µ=µ{0,0};¡cŒfloatµsignal2[1];µµµµµµ/*µSignal,µCOSSAPµname:µ:SIG_3µ*/¡cN/*µSignal,µCOSSAPµname:µ:SIG_1,withµDELAYµ(size=3)µ*/¡cfloatµsignal3[6]µ=µ{0,0,0};¡cÑfloatµsignal4[3];µµµµµµ/*µSignal,µCOSSAPµname:µ:SIG_2µ*/¡c ’floatµsignal5[1];µµµµµµ/*µSignal,µCOSSAPµname:µ:SIG_3_1µ*/¡c!Tfloatµsignal6[1];µµµµµµ/*µSignal,µCOSSAPµname:µ:SIG_3_2µ*/¡c"µ¡c"×/*µSchedule:¡c#˜µ*µ3µxµCONST_GENµ(M4)¡c$Zµ*µ3µxµADD2µ(M3)¡c%µ*µ1µxµFIRDS_SRCµ(M0)¡c%Ýµ*µ1µxµFORKRµ(FORKR_SIG_3)¡c&žµ*µ1µxµHOLDµ(M2)¡c'`µ*µ1µxµFILEDPµ(M5)¡c(!*/ÃËÁÊË¡Äß¶ÔÝ¡ÌÿÿÿÿÿÿÚ	ÿÿÿÿÿÿöªÿÿÿÿÿªªïã ŽÔÝù	ˆ
@÷
@¡Ä
@j¡ÌÿÿÿÿÿþnRÿÿÿÿÿÿÿúÿÿÿÿÿÿíZQ…øœj†K=&+þK=¡Ìÿÿÿÿÿþo(ÿÿÿÿÿÿíZw'[DÚ&-qK=ôß¡Ä9¡ÌÿÿÿÿÿÿÚ'ÿÿÿÿÿÿöªÿÿÿÿÿ›_˜ÿÿÿÿÿÿÿþƒ9ùòÔ  ìÔ¡ÄÔßÃ¡ÌÿÿÿÿÿÿDNÿÿÿÿÿÿåtÿÿÿÿþ¢ÂáÿÿÿÿÿˆVh÷">ßÃ¸3‚3
3‚¡Ä3‚3Y¡ÌÿÿÿÿÿÿO¶ÿÿÿÿÿÿõbW4"3j3YA³g['k
Ûg[¡Äg[g¡ÌÿÿÿÿÿÿO·ÿÿÿÿÿÿÿþÿÿÿÿÿÿõb0íÿÿÿÿÿêí$'kŸgAÇ3!33!¡Ä3!3
ø¡ÌÿÿÿÿÿÿD
ÿÿÿÿÿÿåtÿÿÿÿþ'˜ÿÿÿÿÿÿÿî3[3
ø	Âß¶÷<ß¶ãÇÆÃ¡r²Definition´1µof¡Vfunctionsµusedµin¡;theµinit,¡post³pr¤ÿýocessing,¡and/orµsignal¡èpr¤ÿýocessingµphasesÃ¡Äß|ÔŒ¡ÌÿÿÿÿÿÿùMÿÿÿÿÿÿö{ÿÿÿÿÿðÖá
ÿ™eÔŒùÓ $ ¡Ä E¡Ìÿÿÿÿÿÿ¹µÿÿÿÿÿÿÿÿÿÿÿÿÿÿí ;IKE»K&+#¿K¡Ìÿÿÿÿÿÿ¹Üÿÿÿÿÿÿí Ú¥¼&-KKSÊ+ÅÊ¡ÄÊ ï¡ÌÿÿÿÿÿÿùRÿÿÿÿÿÿÿÿÿÿÿÿÿÿö{ÿÿÿÿÿîAÇÿÿÿÿÿÿÿÿ ïù!<Ô!ƒ-ªÔ!ƒ¡ÄÔ!ƒß!“¡ÌÿÿÿÿÿÿÞ ÿÿÿÿÿÿä´ÿÿÿÿÿÁèäÿÿÿÿÿÌÖ9( ß!“!#3 £3€3 £¡Ä3 £3}¡Ìÿÿÿÿÿÿápÿÿÿÿÿÿõ[Æ3%33}A8g'k`g¡Äggû¡Ìÿÿÿÿÿÿápÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ[¢Mÿÿÿÿÿ÷6j'k ¯gûAÖ3‘3Ü3‘¡Ä3‘3l¡ÌÿÿÿÿÿÿÞ”ÿÿÿÿÿÿä´ÿÿÿÿÿ¬/ÿÿÿÿÿÿÿù3&Ž3lëß|nß|ÇÆÃ¡þƒMemoryµallocation¡þgforµsignalµbuffersÃ¡ÄØ!çÍ!ó¡ÌÿÿÿÿÿÿüAÿÿÿÿÿÿö{ÿÿÿÿÿ÷„£:üÜÍ!óò")þ"bþ)þ"b¡Äþ"bþ#ý¡ÌÿÿÿÿÿÿØ­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿí ! ÿHþ#ý$UD$Ž&$(ÕD$Ž¡ÌÿÿÿÿÿÿØÃÿÿÿÿÿÿí ªPmX&& DD$Ž$Çþ% þ.Öþ% ¡Äþ% þ&º¡ÌÿÿÿÿÿÿüDÿÿÿÿÿÿö{ÿÿÿÿÿöÆþ þ&ºò&ôÍ')ü0@Í')¡ÄÍ')Ø'5¡Ìÿÿÿÿÿÿí=ÿÿÿÿÿÿä’ÿÿÿÿÿÝâÿÿÿÿÿÙi91ÂØ'5&â,&,.,&¡Ä,&,$ç¡ÌÿÿÿÿÿÿîáÿÿÿÿÿÿõWx”,.ð,$ç;$³`$˜'d"’`$˜¡Ä`$˜`$…¡ÌÿÿÿÿÿÿîáÿÿÿÿÿÿÿÿÿÿÿÿÿÿõWyÅÿÿÿÿÿùjþ'd&Š`$…;$i,$6,-,$6¡Ä,$6,"›¡Ìÿÿÿÿÿÿí6ÿÿÿÿÿÿä“ÿÿÿÿÿÐËÿÿÿÿÿÿÿú,*ï,"›";Ø!ç9[Ø!çÇÆÃ¡æ$xGeneratedµschedule²¡%Ï)’zàD“I501ileaf_page_string1:6-6¥*16š¥*16š¡*1È²âFiles´6µGeneratedµbyµtheµDCG¡ÿ36³6¡qŒ²Structure´EµofµtheµGeneratedµCµCodeµ(exampleµ6-1µcontinued)¡"^²¥*16š¡	u²Begin´1µmain¡
Ypr¤ÿýogram¡ˆ	E²main()¡ˆ
{¡ˆ
È¡ˆ‰´jµ/*µCallµinit-codeµofµblockµfiledp,µMSEQN:µM5µ*/¡ˆKµinit_M0_0_2_filedpµ(µdcg_n_samples_1,dcg_no_of_file_1,¡ˆµµµµµµµµµµµµµµµµµµµµµµ&dcg_FD_out_1,¡ˆÎµµµµµµµµµµµµµµµµµµµµµµ1¡ˆµµµµµµµµµµµµµµµµµµµµµµ);¡ˆÐµ/*µInfiniteµloopµ*/¡ˆ‘µfor(µ;µ;µ)µ{¡ˆSµ¡ˆµµµ/*µCallµblockµconst_gen,µMSEQN:µM4µ*/¡ˆÖµµµdcg_M0_0_2_const_gen_0µ(µsignal1µ+µ2,¡ˆ—µµµµµµµµµµµµµµµµµµµµµµµµµµµµdcg_ConstantValue_2,¡ˆYµµµµµµµµµµµµµµµµµµµµµµµµµµµµ3¡ˆµµµµµµµµµµµµµµµµµµµµµµµµµµµµ);¡ˆÜµµµ...¡ˆµµµ/*µTheµfollowingµcopyµoperationsµareµ¡ˆÞµµµµµµcausedµbyµDELAYµinµsignal3µ*/¡ˆŸ¡ˆaµµµ*signal3µµµµµµµ=µ*(signal3µ+µ3);¡ˆ"µµµ*(signal3µ+µ1)µ=µ*(signal3µ+µ4);¡ˆäµµµ*(signal3µ+µ2)µ=µ*(signal3µ+µ5);¡ˆ¥µ¡ˆgµ}¡ˆ§µ/*µCallµpost-codeµofµblockµfiledp,µMSEQN:µM5µ*/¡ˆiµpost_M0_0_2_filedpµ(µdcg_n_samples_1,dcg_no_of_file_1,¡ˆ*µµµµµµµµµµµµµµµµµµµµµµ&dcg_FD_out_1,¡ˆìµµµµµµµµµµµµµµµµµµµµµµ1¡ˆ ­µµµµµµµµµµµµµµµµµµµµµµ);¡ˆ!oµ¡ˆ"0}ÃËÁÊË¡Ää¶Ùº¡Ìÿÿÿÿÿÿÿ¦ÿÿÿÿÿÿövÿÿÿÿÿÿ2mˆÊ	ïÙºþÊÜÜ¡ÄÜ	Z¡ÌÿÿÿÿÿÿüGÿÿÿÿÿÿí!\ýl	Z	vQ	‡$0
ØQ	‡¡ÌÿÿÿÿÿÿüIÿÿÿÿÿÿíÞš§$26Q	‡	™	´¤	´¡Ä	´
2¡Ìÿÿÿÿÿÿÿ¦ÿÿÿÿÿÿöuÿÿÿÿÿÿk
2þ
DÙ
T	Ù
T¡ÄÙ
Tä
X¡Ìÿÿÿÿÿÿþ9ÿÿÿÿÿÿäyÿÿÿÿÿü±ÿÿÿÿÿô$E–ä
X"
>8
!8ÿä8
!¡Ä8
!8	¢¡ÌÿÿÿÿÿÿþbÿÿÿÿÿÿõTÌú8ø8	¢G	’m	Š%qëm	Š¡Äm	Šm	„¡ÌÿÿÿÿÿÿþbÿÿÿÿÿÿõT#µÿÿÿÿÿýùÂ%q
#m	„G	|8	l8ý8	l¡Ä8	l8î¡Ìÿÿÿÿÿÿþ9ÿÿÿÿÿÿäzÿÿÿÿÿû†iÿÿÿÿÿÿÿÿ8*8î"Ðä¶Eyä¶ãÇÆÃ¡,²Call´Sµinit´Rµpr¤ÿýocessing¡,öfunctionsÃ¡Äõ´êÒ¡Ìÿÿÿÿÿÿç%
ÿÿÿÿÿÿöÿÿÿÿÿÇÍ±Õ‚êÒ\ññ¡Äñ¡ÌÿÿÿÿÿþúFÿÿÿÿÿÿÿüÿÿÿÿÿÿí3Ûì	‹/ûbŽ$A bŽ¡ÌÿÿÿÿÿþúÖÿÿÿÿÿÿí3M££7*ß$C
wbŽ/"#”¡Ä,¡Ìÿÿÿÿÿÿç;ÿÿÿÿÿÿÿýÿÿÿÿÿÿöÿÿÿÿÿ¾;=ÿÿÿÿÿÿÿþ,ÁêK‚(
êK¡ÄêKõi¡Ìÿÿÿÿÿÿ„f	ÿÿÿÿÿÿäõÿÿÿÿÿ‰ÿÿÿÿÿÿŒ&*õi3’I™IÖI™¡ÄI™Is¡Ìÿÿÿÿÿÿ½ÿÿÿÿÿÿõ[8†ÓI#kIsXî}§%‚m}§¡Ä}§}v¡Ìÿÿÿÿÿÿ½ÿÿÿÿÿÿÿþÿÿÿÿÿÿõ[	ØÞÿÿÿÿÿïV%‚°}vX/IªI²Iª¡ÄIªI„¡Ìÿÿÿÿÿÿ„:	ÿÿÿÿÿÿäõÿÿÿÿþÈò3ÿÿÿÿÿÿÿñIGI„3‹õ´&õ´ÇÆÃ¡¿Loop´1µcontainingµfunction¡£callsµorµinlineµexpansions¡ˆofµsignalµpr¤ÿýocessingµcode¡laccordingµtoµgenerated¡Qschedule¡šContainsµcopiesµofµsignal¡~elementsµdueµtoµdelays¡ÇLoopµwillµexecuteµthe¡«numberµofµtimesµgivenµby¡theµnumberµofµschedule¡tperiodsµtoµpr¤ÿýocessÃ¡Äõ­ê¸¡Ìÿÿÿÿÿÿüöÿÿÿÿÿÿöwÿÿÿÿÿùjp‰ê¸è)¡Ä¡Ìÿÿÿÿÿÿà$ÿÿÿÿÿÿÿýÿÿÿÿÿÿí Æ°Ð/Ýb$A"êb¡Ìÿÿÿÿÿÿà5ÿÿÿÿÿÿí 	s©I|$C3b/C“(Q“¡Ä“!¡Ìÿÿÿÿÿÿüùÿÿÿÿÿÿöwÿÿÿÿÿ÷ò!!8ê!h)—ê!h¡Äê!hõ!s¡ÌÿÿÿÿÿÿðËÿÿÿÿÿÿä’ÿÿÿÿÿã¹ÿÿÿÿÿÝdbV*òõ!s3!(I ÑIRI Ñ¡ÄI ÑI`¡Ìÿÿÿÿÿÿò!ÿÿÿÿÿÿõWÝDI(hI`X1}%‚G}¡Ä}}¡Ìÿÿÿÿÿÿò!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõW2ÿÿÿÿÿú&%‚ Ù}XïIÀI¸IÀ¡ÄIÀIO¡ÌÿÿÿÿÿÿðÆÿÿÿÿÿÿä“ÿÿÿÿÿÙÀÿÿÿÿÿÿÿûI$ÎIO3øõ­V.õ­ÇÆÃ¡ƒCallµµpost³pr¤ÿýocessing¡gfunctionsÃ¡Äõê	¡Ìÿÿÿÿÿÿþˆÿÿÿÿÿÿöwÿÿÿÿÿü­	']Yê	*N¤N¡ÄNO¡Ìÿÿÿÿÿÿð•ÿÿÿÿÿÿíõ*O/†bª$AWbª¡Ìÿÿÿÿÿÿðžÿÿÿÿÿÿí“nŠ$C	ûbª/Í+¡Ä¡ÌÿÿÿÿÿÿþŠÿÿÿÿÿÿöwÿÿÿÿÿü°*êKûêK¡ÄêKõR¡Ìÿÿÿÿÿÿø¤ÿÿÿÿÿÿä‚ÿÿÿÿÿòOEÿÿÿÿÿçãúVìõR3IâIwIâ¡ÄIâIá¡ÌÿÿÿÿÿÿùLÿÿÿÿÿÿõUQ5IoIáXÁ}°%‚l}°¡Ä}°}¤¡ÌÿÿÿÿÿÿùLÿÿÿÿÿÿõU“ïÿÿÿÿÿûá9%‚è}¤X“IrIÿäIr¡ÄIrIq¡Ìÿÿÿÿÿÿø¡ÿÿÿÿÿÿä‚ÿÿÿÿÿí{DÿÿÿÿÿÿÿýIÝIq35õVhõÇÆÃ²¡%¥"^’àBD“I501ileaf_page_string1:6-7¥*16šÃËÁâÊË¡Ä÷°÷U¡Ä÷U'ÂU¡Ä'ÂU'Â°¡Ä'Â°÷°ÆÃÁÊËÃ¡Ä÷U%;UÆÃ¥*16šÃÁÊË¡Ä÷¢÷G¡Ä÷G'ÂG¡Ä'ÂG'Â¢¡Ä'Â¢÷¢ÆÃÁÊËÃ¡ÄqG%;GÆÃ¥*16š¥*16š¡u1È²Files´6µGeneratedµbyµtheµDCG¡%e3¤þè6³7¡÷Â²Generic´XµCµProgram¡q
è²Specifying´EµtheµGenericµCµtargetµinµxdcgµgeneratesµaµgenericµC¡qcodeµprogramµ(.gcµfile)µforµaµdesignµthatµhasµinputµand/orµoutput¡qPports.¡qThisµ.gcµfileµcanµbeµusedµtoµcreateµaµprimitiveµmodelµwhichµcanµthen¡q5beµusedµasµaµblockµwithinµanotherµDSPµsystem.µForµdetailsµon¡qhcreatingµaµDCGµprimitiveµmodel,µreferµtoµtheµsectionµCreating¡qœPrimitiveµModels,µHierarchicalµModels,µandµLibraries"µinµChapterµ1¡qÐofµthisµmanual.¡qš²Structure´NµofµtheµGeneratedµGenericµCµCode¡q9²Example 6³2´EµshowsµtheµstructureµofµtheµgenericµCµcodeµgenerated¡qlbyµtheµDCG.¡qNoteµthatµexampleµcodeµfragmentsµareµshownµhereµforµillustration¡q Qpurposes;µtheyµdoµnotµrepresentµaµcompleteµsystem.’B3D“I501ileaf_page_string1:6-8¥*16š¥*16š¡*1È²âFiles´6µGeneratedµbyµtheµDCG¡ÿ36³8¡÷Œ²Example 6³2³Example´EµofµGenericµCµCodeµforµInput/OutputµPorts¥*16š¡•×²/*****************************************************************¡•	˜´jµµFileµnameµ:µµcod_mod/cod_mod.gc¡•
Zµ¡•µµCreatedµby:µµwberger,µWedµOctµ23µ17:26:11µ1996¡•Ýµ¡•žµµgeneratedµbyµtheµCOSSAPµDSPµCodeµGenerator,µReleaseµ1997.01¡•`µµSynopsys,µInc.µ1997¡•!*****************************************************************/¡•b#defineµCOSSAP_RCSQL2µ1.20112240878644960µ/*µ1/sqrt(lnµ2)µ*/¡•##defineµCOSSAP_DSQ2PIµ0.398942280401432675µ/*µ1./sqrt(2.*PI)µ*/¡•d#includeµ<math.h>¡•¤/*µInputµportµsectionµ*/¡•fINPUT_PORT(1)µregisterµintµ*m0;¡•'RATE(INPUT_PORT(1))µ=µ3;¡•h/*µOutputµportµsectionµ*/¡•)OUTPUT_PORT(1)µregisterµintµ*m9;¡•ëRATE(OUTPUT_PORT(1))µ=µ130;¡•¬µ¡•nOUTPUT_PORT(2)µregisterµfloatµ*m62;¡•/RATE(OUTPUT_PORT(2))µ=µ8;¡•p/*µParameterµsectionµ*/¡•1PARAMETER(1)µintµdelay_vals;¡•óPARAMETER(2)µintµM;¡•3/*µInputµdatasetµsectionµ*/¡•õLENGTH(INPUT_DATASET(1.1))µlongµPATTERN_IDSET_len;¡•¶INPUT_DATASET(1.1)µintµPATTERN_IDSETµ[PATTERN_IDSET_len];¡•÷/*µStatesµofµblocksµ*/¡• ¸STATEµfloatµdcg_InBuffer_11[46];¡•!zSTATEµfloatµdcg_Phase_11[598];¡•"º/*µDelayedµinputµportµsection:µ*/¡•#|DELAY(INPUT_PORT(1))µ=µ7;¡•$=DELAY_VALUES(INPUT_PORT(1))µ=µdelay_vals;¡•%~/*µMemoryµallocationµforµdelayedµsignalµbuffersµ*/¡•&?/*µSignal,µCOSSAPµname:µ:SIG_1µ(DELAY-size=3)µ*/¡•'STATEµfloatµsignal2[6]µ=µ{0,0,0};¡•'Â/*µSignal,µCOSSAPµname:µ:SIG_4µ(DELAY-size=2)µ*/¡•(„STATEµfloatµsignal4[5]µ=µ{0,0};¡•)ÄBLOCKFACTORµlongµBlockFactor;ÃËÁÊË¡Äx$àn$é¡ÌÿÿÿÿÿÿýÛÿÿÿÿÿÿöwÿÿÿÿÿû##;Ên$é“%Ÿ%<Ÿ/RŸ%<¡ÄŸ%<Ÿ&s¡Ìÿÿÿÿÿÿé}ÿÿÿÿÿÿí ê„ŸŸ&s²&¶å&á%Å*å&á¡ÌÿÿÿÿÿÿéŠÿÿÿÿÿÿí ­Ÿ6\%Ç#¢å&á²'Ÿ'OŸ.¨Ÿ'O¡ÄŸ'OŸ(†¡ÌÿÿÿÿÿÿýÝÿÿÿÿÿÿöwÿÿÿÿÿúOŸqŸ(†“(²n(Ú/»n(Ú¡Än(Úx(ã¡Ìÿÿÿÿÿÿõ=ÿÿÿÿÿÿä‚ÿÿÿÿÿëøþÿÿÿÿÿâÖ×Ù0Þx(ã·(¤Ì([ÌÁÌ([¡ÄÌ([Ì'$¡Ìÿÿÿÿÿÿö3ÿÿÿÿÿÿõWÙŒÌ.¼Ì'$Û&ý&è'%a&è¡Ä&è&Ú¡Ìÿÿÿÿÿÿö3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõWØGÿÿÿÿÿû'(b&ÚÛ&ÅÌ&žÌÌ&ž¡ÄÌ&žÌ%h¡Ìÿÿÿÿÿÿõ9ÿÿÿÿÿÿä‚ÿÿÿÿÿäèàÿÿÿÿÿÿÿýÌ2Ì%h·%x$àÙäx$àãÇÆÃ¡T%É²Memory¡T&­allocation´1µfor¡T'’²delayedµ²signal¡T(vbuffersÃ¡ÄxÈnò¡ÌÿÿÿÿÿÿÒ"
ÿÿÿÿÿÿöªÿÿÿÿÿ˜'189	ênò“®ŸyŸ>Ÿy¡ÄŸyŸ%¡Ìÿÿÿÿÿþ"zÿÿÿÿÿÿÿøÿÿÿÿÿÿí¥‘DŸ‘Ÿ%²]å&!Õ"µå&¡Ìÿÿÿÿÿþ#uÿÿÿÿÿÿí¤¨¦I£9!Ö‘å&²ðŸ(Ÿ%¼Ÿ(¡ÄŸ(Ÿ"Ô¡ÌÿÿÿÿÿÿÒKÿÿÿÿÿÿöªÿÿÿÿÿ†wÿÿÿÿÿÿÿþŸŸ"Ô“#Ÿn$[9,bn$[¡Än$[x$…¡ÌÿÿÿÿÿÿHÿÿÿÿÿÿåtÿÿÿÿþZ6fÿÿÿÿÿ|~û‘-Öx$…·#^Ì"
ÌTÌ"
¡ÄÌ"
Ì^¡Ìÿÿÿÿÿÿ+ÿÿÿÿÿÿõbiS5Ì%<Ì^Û¨G'#G¡ÄG¡Ìÿÿÿÿÿÿ+ÿÿÿÿÿÿÿýÿÿÿÿÿÿõbYÿÿÿÿÿèÖò'"*Û¤ÌîÌÌî¡ÄÌîÌB¡Ìÿÿÿÿÿÿ÷ÿÿÿÿÿÿåtÿÿÿÿýÅu±ÿÿÿÿÿÿÿìÌ"ùÌB·îxÈ‘vxÈÇÆÃ¡e+Port,µparameter¤ÿî,¡einputµdataset,µstate,¡eôandµdelay¡eØdeclarationsÃ¡Är)g)¡ÌÿÿÿÿÿÿÿÄÿÿÿÿÿÿövÿÿÿÿÿÿvÅô–&¿g)Œ)˜)$˜/Õ˜)$¡Ä˜)$˜)‹¡Ìÿÿÿÿÿÿýƒÿÿÿÿÿÿí,˜Ê˜)‹«)¡Þ)¯%¾*ÂÞ)¯¡Ìÿÿÿÿÿÿý…ÿÿÿÿÿÿí¼ûf%À(›Þ)¯«)¾˜)Ô˜3•˜)Ô¡Ä˜)Ô˜*;¡ÌÿÿÿÿÿÿÿÄÿÿÿÿÿÿöuÿÿÿÿÿÿ_f˜#‰˜*;Œ*Ig*W–,Ÿg*W¡Äg*Wr*Z¡ÌÿÿÿÿÿÿþÐÿÿÿÿÿÿäyÿÿÿÿÿýÊ_ÿÿÿÿÿöNøÒ-r*Z°*EÆ*-Æ!ÏÆ*-¡ÄÆ*-Æ)Å¡ÌÿÿÿÿÿÿþìÿÿÿÿÿÿõTˆîÆ3ÚÆ)ÅÔ)¹ú)²&þ)0ú)²¡Äú)²ú)­¡ÌÿÿÿÿÿÿþìÿÿÿÿÿÿõTÚÿÿÿÿÿþXe&þ*/ú)­Ô)¦Æ)™Æ„Æ)™¡ÄÆ)™Æ)2¡ÌÿÿÿÿÿÿþÐÿÿÿÿÿÿäzÿÿÿÿÿýâÿÿÿÿÿÿÿÿÆ1Æ)2°)r)Ò&_r)ÇÆÃ¡‡)ìBlockµfactor’3	D“I501ileaf_page_string1:6-9¥*16š¥*16š¡u1È²âFiles´6µGeneratedµbyµtheµDCG¡%e3¤þè6³9¡qŒ²Structure´EµofµtheµGeneratedµGenericµCµCodeµ(exampleµ6³2¡q¦continued)¥*16š¡s
²/*´jµInitializationµfunction:µ*/¡s
Ãvoidµinit_cod_mod_DCGBack()¡s…{¡sFµµ...¡s}¡sH/*µSignalµprocessingµfunction:µ*/¡s
voidµcod_mod_DCGBack()¡sË{¡s/*µTableµofµCOSSAP-DSP-blocks:¡sNµ*µMODEL_NAMEµµµµµµµµµµMSEQNAMEµµµµµµµµµIMPLEMENTATION_NAME¡sµ*µFILEDPµµµµµµµµµµµµµµM5µµµµµµµµµµµµµµµfiledp¡sÑµ*µCONST_GENµµµµµµµµµµµM4µµµµµµµµµµµµµµµconst_gen¡s“µ*µFIRDS_SRCµµµµµµµµµµµM0µµµµµµµµµµµµµµµfirds_src¡sTµ*µHOLDµµµµµµµµµµµµµµµµM2µµµµµµµµµµµµµµµhold¡sµ*µADD2µµµµµµµµµµµµµµµµM3µµµµµµµµµµµµµµµadd2¡s×µ*µFORKRµµµµµµµµµµµµµµµFORKR_SIG_3µµµµµµfork¡s™µ*/¡sÙµ/*µSchedule:¡s›µµ*µ3µxµCONST_GENµ(M4)¡s\µµ*µ3µxµADD2µ(M3)¡sµµ*µ1µxµFIRDS_SRCµ(M0)¡sßµµ*µ1µxµFORKRµ(FORKR_SIG_3)¡s¡µµ*µ1µxµHOLDµ(M2)¡sbµµ*µ1µxµFILEDPµ(M5)¡s$µµ*/¡sdµ/*µMemoryµallocationµforµsignalµbuffersµ*/¡s&µstaticµintµsignal1[5];µµµ/*µSignal,µCOSSAPµname:µ:SIG_49µ*/¡sçµstaticµintµsignal2[1];µµµ/*µSignal,µCOSSAPµname:µ:SIG_25µ*/¡s ©µstaticµintµsignal3[6];µµµ/*µSignal,µCOSSAPµname:µ:SIG_39µ*/¡s!jµstaticµintµsignal4[3];µµµ/*µSignal,µCOSSAPµname:µ:SIG_46µ*/¡s"«µ...ÃËÁÊË¡Äï	Qä	Y¡ÌÿÿÿÿÿÿþrÿÿÿÿÿÿöwÿÿÿÿÿüyRNá~ä	Y		{	 6	 ¡Ä	 
©¡Ìÿÿÿÿÿÿï¥ÿÿÿÿÿÿí¾mþ'
©)
â[&;È[¡Ìÿÿÿÿÿÿï­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÙóÔ¥&=C[)+dèd¡Ädm¡Ìÿÿÿÿÿÿþsÿÿÿÿÿÿöwÿÿÿÿÿûß“×m	’ä´ä´¡Ää´ï¼¡Ìÿÿÿÿÿÿø2ÿÿÿÿÿÿä‚ÿÿÿÿÿñzeÿÿÿÿÿç+OPˆï¼-†CHCCH¡ÄCHC@¡ÌÿÿÿÿÿÿøãÿÿÿÿÿÿõU„§C.C@Rw'{	¿w¡Äww¡ÌÿÿÿÿÿÿøãÿÿÿÿÿÿõUœåÿÿÿÿÿûÁÔ'{NwR
ïC
ÎCýßC
Î¡ÄC
ÎC	Å¡Ìÿÿÿÿÿÿø/ÿÿÿÿÿÿä‚ÿÿÿÿÿì[ZÿÿÿÿÿÿÿýC€C	Å-	‡ï	QP…ï	QãÇÆÃ¡ö
Â²Initialization´1µphaseÃ¡Äè¼ÝÆ¡Ìÿÿÿÿÿÿý¬ÿÿÿÿÿÿöwÿÿÿÿÿúºh}‡œÝÆð(œ¡Äa¡Ìÿÿÿÿÿÿç˜ÿÿÿÿÿÿí ‚)»a"¦TÓ&4#2TÓ¡Ìÿÿÿÿÿÿç¦ÿÿÿÿÿÿí =†á&6rTÓ"  F'ì F¡Ä F!‰¡Ìÿÿÿÿÿÿý®ÿÿÿÿÿÿöwÿÿÿÿÿùÔˆ
!‰!·Ý!á)
Ý!á¡ÄÝ!áè!ê¡ÌÿÿÿÿÿÿôTÿÿÿÿÿÿä‚ÿÿÿÿÿêIsÿÿÿÿÿá£I*9è!ê&!¨<!\<=<!\¡Ä<!\< ¡Ìÿÿÿÿÿÿõ`ÿÿÿÿÿÿõWAÁ<(< KðpÚ'tCpÚ¡ÄpÚpÌ¡Ìÿÿÿÿÿÿõ`ÿÿÿÿÿÿõWêoÿÿÿÿÿúÐº't!cpÌK¶<<¦<¡Ä<<J¡ÌÿÿÿÿÿÿôPÿÿÿÿÿÿä‚ÿÿÿÿÿâ¡#ÿÿÿÿÿÿÿü<+i<J&þè¼Imè¼ÇÆÃ¡öOMemoryµallocation¡ö 3forµsignalµbuffersÃ¡Äè Ý.¡Ìÿÿÿÿÿÿú·ÿÿÿÿÿÿö{ÿÿÿÿÿô¶	Ä0dÝ.m²›²¡Ä²™¡ÌÿÿÿÿÿÿÈ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿí .’‰™"TF&4ZTF¡ÌÿÿÿÿÿÿÈ²ÿÿÿÿÿÿí q6pj&6.TF"Šó&zó¡ÄóÚ¡Ìÿÿÿÿÿÿú¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿö{ÿÿÿÿÿòpñÚÝ^((Ý^¡ÄÝ^èl¡ÌÿÿÿÿÿÿåŽÿÿÿÿÿÿä’ÿÿÿÿÿÎÏ³ÿÿÿÿÿÒZÐI)òèl&	<—<´<—¡Ä<—<¯¡ÌÿÿÿÿÿÿçÞÿÿÿÿÿÿõWð˜<&™<¯KrpQ'tëpQ¡ÄpQp;¡ÌÿÿÿÿÿÿçÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿõWwÿÿÿÿÿø/ƒ't¡p;K<Ý<ó<Ý¡Ä<Ý<õ¡Ìÿÿÿÿÿÿå„ÿÿÿÿÿÿä“ÿÿÿÿÿ½vÔÿÿÿÿÿÿÿù<!Ø<õ&ƒè I
šè ÇÆÃ¡ö8GeneratedµscheduleÃ¡ÄèÝ+¡ÌÿÿÿÿÿÿúRÿÿÿÿÿÿö{ÿÿÿÿÿó&s
 ûÝ+l³ç³¡Ä³­¡ÌÿÿÿÿÿÿÄmÿÿÿÿÿÿÿýÿÿÿÿÿÿí 2Éº­"T`&4£T`¡ÌÿÿÿÿÿÿÄŒÿÿÿÿÿÿí ¬j_­&6T`"¦ ¡Ä¡ÌÿÿÿÿÿÿúWÿÿÿÿÿÿÿÿÿÿÿÿÿÿö{ÿÿÿÿÿðö(ÿÿÿÿÿÿÿÿÙSÝ•!ÅÝ•¡ÄÝ•è£¡Ìÿÿÿÿÿÿã’ÿÿÿÿÿÿä’ÿÿÿÿÿËúÿÿÿÿÿÐ¬ÖI#Ÿè£&=<Æ<†<Æ¡Ä<Æ<Ì¡ÌÿÿÿÿÿÿæÿÿÿÿÿÿõWÕ„< '<ÌKpk'tîpk¡ÄpkpT¡ÌÿÿÿÿÿÿæÿÿÿÿÿÿÿÿÿÿÿÿÿÿõW<Vÿÿÿÿÿ÷æ'tÑpTK2<ó<™<ó¡Ä<ó<ù¡Ìÿÿÿÿÿÿãˆÿÿÿÿÿÿä“ÿÿÿÿÿ¸z/ÿÿÿÿÿÿÿû<9<ù&ƒèI èÇÆÃ¡ö½T¤ÿîableµofµblocks¡ö¡usedµinµblock¡ö†diagramÃ¡Ä×3Ì9¡Ìÿÿÿÿÿÿþýÿÿÿÿÿÿöwÿÿÿÿÿýµ6GŽû€Ì9ñTþrþ_þr¡ÄþrþH¡Ìÿÿÿÿÿÿõ^ÿÿÿÿÿÿíïwþ2þHvC“&#ÌC“¡Ìÿÿÿÿÿÿõcÿÿÿÿÿÿí'm&ã&%YC“±þßþöþß¡Äþßþ´¡ÌÿÿÿÿÿÿþþÿÿÿÿÿÿöwÿÿÿÿÿýQFþÈþ´ñÒÌîû§Ìî¡ÄÌî×ô¡Ìÿÿÿÿÿÿúíÿÿÿÿÿÿä‚ÿÿÿÿÿö%ÿÿÿÿÿëúŸ8o×ôÉ+—+ð+—¡Ä+—+Á¡ÌÿÿÿÿÿÿûaÿÿÿÿÿÿõUI~+.+Á:¦_˜'c‹_˜¡Ä_˜_Ž¡ÌÿÿÿÿÿÿûaÿÿÿÿÿÿõUeÿÿÿÿÿÿü”B'c›_Ž:€+e+ø+e¡Ä+e+¡Ìÿÿÿÿÿÿúëÿÿÿÿÿÿä‚ÿÿÿÿÿó:Ñÿÿÿÿÿÿÿý+7+^×38¸×3ÇÆÃ¡öúBeginµSignal¡öÞPr¤ÿýocessingµphase’	³D“I501ileaf_page_string1:6-10¥*16š¥*16š¡*1È²âFiles´6µGeneratedµbyµtheµDCG¡ÿ36³10¡qŒ²Structure´EµofµtheµGeneratedµGenericµCµCodeµ(exampleµ6-2¡q¦continued)¡ž(]²¥*16š¡ž
€²´jµLOOP(µBlockFactorµ)¡žÀ/*µInlineµexpansionµofµblockµmuls,µMSEQN:µM1µ*/¡ž‚µµµ{¡žCµµµµµ/*µINPUT_PORT,µµCOSSAPµname:µINPUTµ*/¡žµµµµµregisterµfloatµ*Inputµ=µsignal1;¡žÆµ¡žˆµµµµµ/*µOUTPUT_PORT,µCOSSAPµname:µOUTPUTµ*/¡žIµµµµµregisterµfloatµ*Outputµ=µmuls_out;¡žµ¡žÌµµµµµ/*µPARAMETER,µµµCOSSAPµname:µSCALARµ*/¡žŽµµµµµfloatµScalarµ=µdcg_Scalar_2;¡žOµ¡žµµµµµ/*µlocalµblocking-factorµ*/¡žÒµµµµµintµBlockFactorµ=µ7;¡ž”µµµµµµintµdcg_LOOPCnt_1;µµµµµ/*µloopµcounterµgeneratedµ¡žUµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµforµgenericµloopsµµ*/¡žµµµµµµintµdcg_LOOPLim_1;µµµµµ/*µloopµvariableµgeneratedµ¡žØµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµforµgenericµloopsµ*/¡žšµ¡ž[µµµµµµ/*µloopµgeneratedµbyµtheµcodeµgeneratorµ*/¡žµµµµµµdcg_LOOPLim_1µ=µBlockFactor;¡žÞµµµµµµforµ(µdcg_LOOPCnt_1µ=µ1;µ¡ž µµµµµµµµµµµµdcg_LOOPCnt_1µ<=µdcg_LOOPLim_1;¡žaµµµµµµµµµµµµ++dcg_LOOPCnt_1µ)¡ž"µµµµµµ{¡žäµµµµµµµµ*Output++µ=µ*Input++µ*µScalar;¡ž¥µµµµµµ}¡žgµµµ}¡ž §µµµ...¡ž!èµENDLOOP¡ž"ª}¡ž%+/*µPost³processingµfunction:µ*/¡ž%ìvoidµpost_cod_mod_DCGBack()¡ž&®{¡ž'oµµ...¡ž(1}ÃËÁÊË¡ÄDr¡ÌÿÿÿÿÿÿÉà
ÿÿÿÿÿÿöªÿÿÿÿÿ…f~øÔÜ¸r6>BBåB¡ÄBBD¡ÌÿÿÿÿÿýÌDÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿí¥Ù·kB	óBDU˜ˆr!x¨ˆr¡ÌÿÿÿÿÿýÍgÿÿÿÿÿÿí¤§;[P÷!y6ˆrUMB B óB ¡ÄB BÊ¡ÌÿÿÿÿÿÿÊÿÿÿÿÿÿöªÿÿÿÿÿp…pBBÊ6§sÜ(,s¡Äs ¡ÌÿÿÿÿÿþýÉ	ÿÿÿÿÿÿædÿÿÿÿþ¬zÿÿÿÿÿv+ù4)À Zaoïoñoï¡ÄoïoÆ¡Ìÿÿÿÿÿÿ§ÿÿÿÿÿÿõb|Xo goÆ~¤–&¨Ó¤–¡Ä¤–¤N¡Ìÿÿÿÿÿÿ§ÿÿÿÿÿÿÿüÿÿÿÿÿÿõb©BÿÿÿÿÿæÕ¿&¨¤N~åoo
}o¡Äooõ¡ÌÿÿÿÿÿþýoÿÿÿÿÿÿædÿÿÿÿývD¨ÿÿÿÿÿÿÿëoôoõZ„D4$DãÇÆÃ¡Lü²Inline´1µexpansionµof¡Làtheµsignalµpr¤ÿýocessing¡LÅphaseµaccordingµto¡L©theµscheduleÃ¡Ä H M¡ÌÿÿÿÿÿÿÿRÿÿÿÿÿÿövÿÿÿÿÿþuL‚å@n M6 cB |B+ÖB |¡ÄB |B!+¡ÌÿÿÿÿÿÿøÛÿÿÿÿÿÿícBæB!+U!Pˆ!i%h#;ˆ!i¡ÌÿÿÿÿÿÿøßÿÿÿÿÿÿíÃ	$ß%j•ˆ!iU!B!§B)ìB!§¡ÄB!§B"V¡ÌÿÿÿÿÿÿÿSÿÿÿÿÿÿöuÿÿÿÿÿþ2BüB"V6"n"…@&d"…¡Ä"…"Š¡Ìÿÿÿÿÿÿü—ÿÿÿÿÿÿä‚ÿÿÿÿÿù§žÿÿÿÿÿï–|'"ŠZ"fo"=o%o"=¡Äo"=o!Ž¡ÌÿÿÿÿÿÿüåÿÿÿÿÿÿõU‰‘o*o!Ž~!x¤!m&¨ ¤!m¡Ä¤!m¤!e¡ÌÿÿÿÿÿÿüåÿÿÿÿÿÿõUDÿÿÿÿÿý1û&¨"A¤!e~!Yo!Co·o!C¡Äo!Co ”¡Ìÿÿÿÿÿÿü–ÿÿÿÿÿÿä‚ÿÿÿÿÿ÷jÆÿÿÿÿÿÿÿþo'¬o ”Z k H|Ê HÇÆÃÃ¡Ä	É
	Ì¡ÌÿÿÿÿÿÿÿÄÿÿÿÿÿÿövÿÿÿÿÿÿvÅô9„
	Ì/	Ù;	è;š;	è¡Ä;	è;
O¡Ìÿÿÿÿÿÿýƒÿÿÿÿÿÿí,;;
ON
e
t%a‡
t¡Ìÿÿÿÿÿÿý…ÿÿÿÿÿÿí¼ûf%c	`
tN
‚;
˜;Z;
˜¡Ä;
˜;
ÿ¡ÌÿÿÿÿÿÿÿÄÿÿÿÿÿÿöuÿÿÿÿÿÿ_f;N;
ÿ/
9d
¡Ä
¡ÌÿÿÿÿÿÿþÐÿÿÿÿÿÿäyÿÿÿÿÿýÊ_ÿÿÿÿÿöNøuÄS	i
ñi“i
ñ¡Äi
ñi
Š¡ÌÿÿÿÿÿÿþìÿÿÿÿÿÿõTˆîiŸi
Šw
}
v&¡	ô
v¡Ä
v
q¡ÌÿÿÿÿÿÿþìÿÿÿÿÿÿõTÚÿÿÿÿÿþXe&¡
ó
qw
ji
]iIi
]¡Äi
]i	ö¡ÌÿÿÿÿÿÿþÐÿÿÿÿÿÿäzÿÿÿÿÿýâÿÿÿÿÿÿÿÿiTi	öS	Þ	Éu#	ÉÇÆÃ¡*
lBeginµBlockfactor¡*Ploop¡; ˜End´GµBlockfactorµloop¡;!|and´Iµsignalµpr¤ÿýocessing¡;"aalgorithmÃ¡Ä$ ù$(¡ÌÿÿÿÿÿÿþrÿÿÿÿÿÿöwÿÿÿÿÿüyRNá(Mù$($J*$o*-*$o¡Ä*$o*%x¡Ìÿÿÿÿÿÿï¥ÿÿÿÿÿÿí¾m*ö*%x=%±p%Ö%P(—p%Ö¡Ìÿÿÿÿÿÿï­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÙóÔ¥%R#p%Ö=%û*&3*2·*&3¡Ä*&3*'<¡Ìÿÿÿÿÿÿþsÿÿÿÿÿÿöwÿÿÿÿÿûß“*¦*'<'aù'„(-_ù'„¡Äù'„'‹¡Ìÿÿÿÿÿÿø2ÿÿÿÿÿÿä‚ÿÿÿÿÿñzeÿÿÿÿÿç+Od.W'‹B'VX'X\X'¡ÄX'X&¡ÌÿÿÿÿÿÿøãÿÿÿÿÿÿõU„§X2ýX&f%îŒ%Ü&$ŽŒ%Ü¡ÄŒ%ÜŒ%Ð¡ÌÿÿÿÿÿÿøãÿÿÿÿÿÿõUœåÿÿÿÿÿûÁÔ&'Œ%Ðf%¾X%X¯X%¡ÄX%X$”¡Ìÿÿÿÿÿÿø/ÿÿÿÿÿÿä‚ÿÿÿÿÿì[ZÿÿÿÿÿÿÿýX/OX$”B$V$ dU$ ÇÆÃ¡%‘Post³pr¤ÿýocessing¡&uphase²¡%”(]’³D“I501ileaf_page_string1:6-11¥*16šÃËÁâÊË¡Ä÷°÷U¡Ä÷U'ÂU¡Ä'ÂU'Â°¡Ä'Â°÷°ÆÃÁÊËÃ¡Ä÷U%;UÆÃ¥*16šÃÁÊË¡Ä÷S÷ø¡Ä÷ø'Âø¡Ä'Âø'ÂS¡Ä'ÂS÷SÆÃÁÊËÃ¡Ä÷ø%;øÆÃ¥*16š¥*16š¡u1È²Files´6µGeneratedµbyµtheµDCG¡%e3¤þ|6³11¡÷Â²Files´XµAssociatedµwithµtheµCµandµGenericµCµCode¡q
è²During´Eµcodeµgeneration,µtheµDCGµcreatesµtheµfollowingµfilesµinµthe¡qdirectoryµyouµspecifyµinµtheµ²²Outputµdirectory²µ²textµentryµfieldµinµxdcg:¡qN²basedir².dcg_gcpaths¡	î‚Fileµcontainingµtheµpathsµofµtheµ.gcµfilesµusedµinµtheµdesign¡q5²basedir².dcg_genfils¡	îhFileµcontainingµinformationµforµtheµcompileµandµdownloadµshell¡	îœscripts¡qÎwhereµ²basedir²µisµtheµoutputµdirectoryµnameµwithoutµpath¡qinformation.¡÷e²Files´XµCreatedµafterµCompiling,µAssembly,µandµLinking¡qŒ²The´Eµfollowingµfilesµareµgeneratedµwhenµusingµxdcgµtoµcompile,¡q¿assemble,µandµlinkµaµCµprogramµandµareµcreatedµinµtheµdirectory¡q ófromµwhichµyouµstartedµxdcg:¡q#%²modelname².exe¡	î$YExecutableµprogramµforµtheµgeneratedµcode.¡q&²modelname².asm¡	î'?Assemblyµlistingµfileµofµtheµgeneratedµcode.µNoteµthatµtheµ.asm¡	î(sextensionµisµcompiler³specific.’ÐOPS m:m:D€‚Document:dcg7ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:47ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°
wst:helvps16b±
:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps12i±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12i±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7° wst:courps10± :*°!wst:courps10i±!:*°"wst:newcsps12i±":                                *+
%#$$'$!'*%!/)'!'%!")#.#"!
,'                                            !     ######,$$$$$ )''''' '))))  $     2  2               2                   1   '°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°:wst:helvps10b±::%)!#!!(%!*!!!!!!%****(°;wst:helvps9±;:

!




&
#






%



!




%%%%#åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€å™™ÿÿNîÍåÿÿ‘hˆå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’C‚D“I501ileaf_page_string1:7-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¾7³1¡,m²²7â²¥	öä¡Õm²â¡,v²Multiprocessor´µDSPµCodeµGeneration¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡This´µchapterµdescribesµtheµstepsµinvolvedµinµgeneratingµDSPµcode¡þéthatµtargetsµmultipleµprocessors.µTheµfollowingµsectionsµare¡þ2presented:¡þ¶²S¡X¶²Introduction¡þ*²S¡X*²Architectureµ(ARCH)µfile¡þž²S¡Xž²Partitioningµtheµblockµdiagram:µdelayµandµforkµblocks¡þ	²S¡X	²Interprocessorµcommunicationµ(IPC)¡þ	…²S¡X	…²Examples’‚D“I501ileaf_page_string1:7-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,·,¡¡Ä,¡	c¡¡Ä	c¡	c·¡Ä	c·,·ÆÃÁÊËÃ¡Äþ¡Ê¡ÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³2¡,Õ²Introduction¡þ”²This´µsectionµprovidesµanµoverviewµofµmultiprocessorµDSPµcode¡þÝgenerationµandµgivesµaµsimpleµexampleµtoµintroduceµyouµtoµtheµsteps¡þ%requiredµtoµcreateµtheµmulti³DSPµcode.¡þÈUsingµtheµblockµdiagramµdescriptionµfromµtheµCOSSAPµBlock¡þDiagramµEditorµasµitsµinput,µtheµDCGµautomaticallyµgeneratesµcode¡þYforµdistributedµprocessingµplatforms.µTheseµdistributedµplatformsµcan¡þ¢rangeµfromµDSPµboardsµwithµmultipleµprocessingµunitsµtoµmultiple¡þëworkstationsµconnectedµviaµaµnetwork.µAlso,µtheµDCGµcanµbeµeasily¡þ3retargetedµtoµaµwideµrangeµofµmultiprocessingµenvironmentsµand,¡þ|therefore,µcoversµaµvarietyµofµuser³defined,µhomogeneous,µand¡þÅheterogeneousµarchitecturesµandµinterprocessorµcommunication¡þ(IPC)µprotocols.¡þñ²
An´µIntroductoryµExample¡þ‘²Multiprocessor´µDSPµcodeµgenerationµrequiresµaµdescriptionµofµthe¡þÙprocessorµarchitectureµforµwhichµyouµwantµtoµcreateµcode.µThe¡þ"processorµarchitectureµisµdefinedµinµtheµArchitectureµ(ARCH)µfile.¡þkForµmultiprocessorµDSPµcodeµgenerationµtargetsµprovidedµwith¡þ³COSSAP,µanµARCHµfileµisµsupplied.µToµcreateµcodeµforµaµspecific¡þüprocessorµarchitecture,µyouµmustµcreateµyourµownµARCHµfile.’²D“I501ileaf_page_string1:7-3¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¾7³3¡þÉ²The´µstepsµthatµyouµmustµperformµtoµcreateµmultiprocessorµDSPµcode¡þare¡þ£1.¡X£CreateµorµmodifyµaµblockµdiagramµbyµusingµtheµCOSSAPµBlock¡XéDiagramµEditorµ(BDE).¡þf2.¡XfCreateµaµnetlistµusingµtheµBDE.¡þã3.¡XãCreateµanµattributeµfileµdescribingµtheµmappingµofµblocksµand¡X)signalsµontoµprocessorsµandµlinks,µrespectively.¡þ¦4.¡X¦Generate,µcompile,µload,µandµrunµtheµprogramsµusingµxdcg.¡þyFigure 7³1µisµaµsimpleµCOSSAPµblockµdiagram.µBlocksµA_BLOCK¡þÁandµB_BLOCKµareµconnectedµinµdirectionµfromµA_BLOCKµto¡þ
B_BLOCKµbyµsignalµSIG_0003.µUsingµtheµBDE,µtheµblocksµandµthe¡þSsingleµconnectionµareµdrawn,µandµtheµnetlistµisµcreated.¡,²Figure 7³1³BlockµDiagramµofµTwoµBlocks¡þ²¥	öäÃËÁÊË¡ÄþYVY¡ÄVYVÕ¡ÄVÕþÕ¡ÄþÕþYÆÃÃ¡ÄÒY*Y¡Ä*Y*Õ¡Ä*ÕÒÕ¡ÄÒÕÒYÆÃÊËÃ¡Ä¹#U#ÆÃÃÊË¡Äµ,Ó#¡ÄÓ#µ¡Äµµ,ãÇÆÃ¡¾!²;BLOCK_A¡©'BLOCK_B¡ÚSIG003²¡.¡þ	©²InµFigure 7³2,µtheµarchitectureµofµtheµtargetµconsistsµofµtwo¡þ	òprocessors,µPROC_FIRSTµandµPROC_SECOND,µbothµofµtype¡þ
:TMS320C40.µProcessorµPROC_FIRSTµhasµaµportµnamed¡þ
ƒPORT_FIRSTµandµprocessorµPROC_SECONDµhasµaµportµnamed¡þ
ÌPORT_SECOND.µTheµprocessorµportsµareµconnectedµbyµaµlink¡þnamedµTHE_LINK.’²qD“I501ileaf_page_string1:7-4¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³4¡,É²Figure 7³2³Architecture´µofµtheµTwo-ProcessorµSystem¡þ‹²¥	öäÃËÁÊË¡Äÿÿü¡Äÿütü¡Ätüt¡ÄtÿâãÇÆÃÃâ¡Äððü¡Äðüdü¡Ädüd¡ÄdðâÇÆÃâÊËÃ¡ÄrÆíÆÆÃÃÊË¡ÄÐµíÆ¡ÄíÆÐ×¡ÄÐ×ÐÆ¡ÄÐÆÐµÇÆÃ²;¡Ö­THE_LINK²¡58PROC_FIRST¡
8PROC_SECOND²;¡|ÓPOR¤ÿÿT_FIRST¡þÓPOR¤ÿÿT_SECOND²¡j‹¡þÌ²Theµsoftwareµlayerµcontrollingµtheµcommunicationµbetweenµtheµtwo¡þprocessors,µtheµ²driver²,µisµnamedµTHE_DRIVER.¡þ·Example 7³1µshowsµtheµARCHµfile,µexample.dcg_arch,µthat¡þdescribesµtheµarchitectureµshownµinµFigure 7³2.¡,±²Example 7³1³Two-ProcessorµSystemµCode¡þ	²--´µprocessorµsectionµ¡þ<--------------------µ¡þpPROC{¡þ¤µµµµµµµNAME{µµPROC_FIRSTµ}µµ¡þØµµµµµµµTYPE{µµtms320c40µ}µ¡þµµµµµµµPORTS{µPORT_FIRSTµ}µ¡þ@}µ¡þtPROC{µ¡þ¨µµµµµµµNAME{µµPROC_SECONDµ}µ¡þÜµµµµµµµTYPE{µµtms320c40µ}µ¡þµµµµµµµPORTS{µPORT_SECONDµ}µ¡þC}¡þ€--µtopologyµsectionµ¡þ´-------------------µ¡þèLINK{µ¡þ	µµµµµµµNAME{µTHE_LINKµ}µ¡þ	PµµµµµµµSOURCE{µPROC{µPROC_FIRSTµµ}µPORT{µPORT_FIRSTµµ}}µ¡þ	„µµµµµµµSINK{µµµPROC{µPROC_SECONDµ}µPORT{µPORT_SECONDµ}}µ¡þ	¸µµµµµµµDRIVER{µTHE_DRIVERµ}µ¡þ	ë}’qD“I501ileaf_page_string1:7-5¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¾7³5¡þÃ²--´µdriverµsectionµ¡þ÷-----------------µ¡þ+DRIVER{µ¡þ_µµµµµµµNAME{µTHE_DRIVERµ}µ¡þ’µµµµµµµLIB{µµ$COSSAP_DIR/models/ipcµ}µ¡þÆµµµµµµµSEND{µµµµNAME{µsend_dataµ}}µ¡þúµµµµµµµRECEIVE{µNAME{µreceive_dataµ}}µ¡þ.µµµµµµµPAR{µµµµµNAMEµ{CHANNEL_Identifierµ}}µ¡þbµµµµµµµµµµµµµµµPROC{µNAME{µPROC_FIRSTµ}µ¡þ–µµµµµµµµµµµµµµµµµµµµµMAP{µµPORT{µµPORT_FIRSTµ}µµVAL{µ0µ}}µ¡þÊµµµµµµµµµµµµµµµ}µ¡þþµµµµµµµµµµµµµµµPROC{µNAME{µPROC_SECONDµ}µ¡þ2µµµµµµµµµµµµµµµµµµµµµMAP{µµPORT{µµPORT_SECONDµ}µVAL{µ3µ}}µ¡þeµµµµµµµµµµµµµµµ}µ¡þ™µµµµµµµ}µ¡þÍ}¡þ]²The´µprocessorµsectionµdescribesµtheµtwoµprocessors,µgivingµtheir¡þ¦names,µports,µandµtype.¡þHTheµtopologyµsectionµdescribesµtheµIPCµlinksµofµtheµtarget¡þ‘architecture.µItµcontainsµtheµnameµofµtheµlink,µtheµsourceµandµsink¡þÚprocessors,µandµtheµports,µasµwellµasµtheµnameµofµtheµdriverµthatµis¡þ"usedµforµimplementingµthisµlink.¡þÅInµtheµlastµsection,µtheµ²driver²µsection,µtheµIPCµdriverµisµspecified.¡þThisµspecificationµincludesµtheµdriverµname,µtheµCOSSAPµlibrary¡þVwhereµitµisµlocated,µtheµmodelsµforµtheµsendingµandµreceivingµIPC¡þŸmodels,µasµwellµasµtheirµparametersµdescribingµtheµcommunication¡þèchannels.µTheµparameterµCHANNEL_Identifierµisµspecifiedµforµeach¡þ	0portµofµtheµprocessors.µCHANNEL_IdentifierµforµportµPORT_FIRST¡þ	yofµprocessorµPROC_FIRSTµisµsetµtoµ0µandµforµPORT_SECONDµof¡þ	ÁprocessorµPROC_SECOND,µitµisµsetµtoµ3.’ÿD“I501ileaf_page_string1:7-6¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³6¡þÉ²The´µmappingµofµtheµblockµdiagramµontoµtheµarchitectureµis¡þstraightforward.µBlockµA_BLOCKµisµmappedµontoµprocessor¡þZPROC_FIRSTµandµB_BLOCKµontoµprocessorµPROC_SECOND.¡þ£Mappingµisµdoneµbyµusingµtheµmodelµinstanceµnameµ(OBJNAME)µin¡þìtheµblockµdiagram.µTheµsignalµSIG_0003µisµmappedµontoµlink¡þ4THE_LINK.µIfµaµspecificµlinkµisµnotµspecified,µaµdefaultµlink,¡þ}connectingµbothµprocessingµelements,µisµselectedµbyµtheµDCG.¡þ Example 7³2µshowsµtheµATTRµfileµexample.attr.¡,Ñ²Example 7³2³MappingµontoµBlocks¡þ(²#´µµmappingµofµA_BLOCKµtoµprocessorµPROC_FIRSTµ¡þ\OBJECTµ¡þµµOBJTYPEµµµµinstance¡þÄµµOBJNAMEµµµµM4¡þøµµMODELNAMEµµFIRVP¡þ,µµPRIMITIVEµµyes¡þ`µµATTRIBUTEµµdcg_processorµPROC_FIRST"¡þÎ#µµmappingµofµB_BLOCKµtoµprocessorµPROC_SECONDµ¡þOBJECTµ¡þ6µµOBJTYPEµµµµinstance¡þjµµOBJNAMEµµµµM5¡þžµµMODELNAMEµµFIRVP¡þÒµµPRIMITIVEµµyes¡þµµATTRIBUTEµµdcg_processorµPROC_SECOND"¡þtOBJECTµ¡þ¨µµOBJTYPEµµµµnet¡þÜµµOBJNAMEµµµµSIG_0003¡þ	µµATTRIBUTEµµdcg_ipc_linkµTHE_LINK"¡þ	D}¡þ	Ô²After´µcreatingµtheµARCHµandµATTRµfiles,µyouµthenµuseµxdcgµto¡þ
create,µcompile,µandµdownloadµtheµcode.’ÿ«D“I501ileaf_page_string1:7-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,z¡Ä,z	cz¡Ä	cz	c¡Ä	c,ÆÃÁÊËÃ¡ÄþzÊzÆÃ¥	öä¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¾7³7¡,Õ²Architecture´µFile¡þ”²The´µArchitectureµ(ARCH)µfileµisµonlyµrequiredµwhenµgeneratingµcode¡þÝforµmultiprocessors.µTheµroleµofµtheµARCHµfileµisµtoµprovideµtheµDCG¡þ%withµallµtheµnecessaryµdetailsµaboutµtheµmultiprocessorµarchitecture¡þnofµtheµtarget.¡þTheµARCHµfileµconsistsµofµthreeµsections:¡þ•²S¡X•²Processorµsection,µwhichµlistsµtheµprocessorsµinµtheµarchitecture¡þ	²S¡X	²Linkµsection,µwhichµdescribesµtheµlinksµbetweenµtheµprocessors¡þ}²S¡X}²Driverµsection,µwhichµspecifiesµtheµsoftwareµdriversµfor¡XÃcontrollingµtheµlinks¡þUThreeµkeywords,µPROC,µLINK,µandµDRIVERµareµusedµtoµspecifyµthe¡þinformationµthatµisµprovidedµinµeachµsection.µTheµsyntaxµforµeach¡þæsectionµisµdescribedµinµtheµfollowingµpages.¡þÊ²
Processor´µDescription¡þi²The´µdescriptionµofµaµprocessorµstartsµwithµtheµkeywordµPROCµand¡þ²hasµtheµfollowingµgeneralµform:¡þ	3²PROC{´µ¡þ	gµµµµµµNAME{µµ²processor_name²,µ²processor_name²,µ...µ}µ¡þ	›µµµµµµTYPE{µµ²processor_type²µ}µ¡þ	ÏµµµµµµPORTS{µ²port_name²,µ²port_name²,µ...µ}µ¡þ
µµµµ}’«¹D“I501ileaf_page_string1:7-8¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³8¡þÉ²NAME¡XSpecifies´µtheµprocessorµname.µThisµnameµuniquelyµidentifiesµthe¡XZprocessorµwithinµtheµarchitectureµandµisµreferencedµduringµthe¡X£attributionµprocess.µIfµaµsetµofµprocessorsµisµofµtheµsameµtypeµand¡Xìhasµtheµsameµports,µtheµdescriptionµofµtheµprocessorsµcanµbe¡X4simplified.µInµthisµcase,µtheµNAMEµspecificationµconsistsµofµaµlist¡X}ofµprocessorµnames,µforµexample,¡þà²´µ¡…àPROC{µ¡þµ¡…µµµµµµNAME{µµPROC_FIRST,µPROC_SECONDµ}µ¡þH¡…HµµµµµµµTYPE{µµtms320c40µ}µ¡þ|¡…|µµµµµµµPORTS{µP1,µP2,µP3µ}µ¡þ°¡…°µµµµµ}¡þ$²TYPE¡XmSpecifies´µtheµsubdirectoryµofµtheµmodelµlibraryµthatµcontainsµthe¡Xµprocessor-specificµimplementation.µReferµtoµtheµfile¡Xþ$COSSAP_DIR/models/implementations.defµforµaµlistµofµthe¡XGavailableµimplementationµsubdirectoriesµsupportedµbyµtheµDCG.¡XImplementationµkeywordsµinµthisµlistµbeginningµwith¡XØDSP_CODE_µareµsupportedµbyµtheµDCG.¡þ>PORTS¡X‡SpecifiesµtheµnamesµofµallµI/Oµportsµofµtheµprocessorsµgivenµby¡XÐtheµNAMEµkeyword.µ(Forµanµalternativeµwayµofµspecifyingµports,¡XseeµExample 7³3.)’¹ÔD“I501ileaf_page_string1:7-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¾7³9¡þÏ²
Link´µDescription¡þt²Links´µareµlogicalµconnectionsµbetweenµprocessorsµthatµenable¡þ½interprocessorµcommunicationµ(IPC).µUseµtheµLINKµkeywordµto¡þspecifyµtheµlinksµofµtheµmultiprocessorµarchitecture.µTheµpartitioning¡þNofµtheµblockµdiagramµisµspecifiedµinµtheµAttributeµFileµ(seeµthe¡þ—sectionµAttributeµFile"µinµChapterµ5).µCutµsignalsµareµderivedµfrom¡þàtheµpartitioning.µAµ²cutµsignal²µisµaµsignalµconnectingµtwoµblocksµthat¡þ(areµmappedµontoµ²different²µprocessors.µEachµcutµsignalµisµmapped¡þqontoµaµlinkµtoµenableµtheµflowµofµdataµbetweenµtheµtwoµblocks.¡þTheµgeneralµformµofµtheµlinkµspecificationµis¡þ ²LINK{´µ¡þÔµµNAME{µ²link_name²µ}µ¡þµµSOURCE{µPROC{µ²src_processor_name²µ}µPORT{µ²port_name²µ}µ}¡þ<µµSINKµµ{µPROC{µ²sink_processor_name²µ}µPORT{µ²port_name²µ}µ}¡þpµµDRIVER{µ²driver_name²,µ²driver_name²,µ...µ}µµµ¡þ¤µµ}¡þØ¡þL²NAME´µ¡X•Specifiesµtheµnameµofµtheµlink.µThisµnameµisµusedµduringµthe¡XÝattributionµphaseµtoµmapµtheµsignalsµontoµlinks.¡þFSOURCE¡XSpecifiesµtheµnameµofµtheµsourceµprocessorµthatµwritesµtheµdata¡X×toµtheµlinkµandµtheµnameµofµtheµportµthroughµwhichµdataµisµsent.¡þ	@SINK¡X	‰Specifiesµtheµprocessorµthatµreadsµdataµfromµtheµlinkµandµthe¡X	Òportµthroughµwhichµitµisµread.¡þ
:DRIVER¡X
ƒSpecifiesµtheµlistµofµsoftwareµdriversµthatµcanµbeµusedµtoµtransfer¡X
Ìdataµoverµthisµlink.µTheµdriverµtoµbeµusedµforµaµspecificµsignalµis¡Xspecifiedµduringµtheµattributionµphase.’Ô´D“I501ileaf_page_string1:7-10¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³10¡þÏ²
Driver´µDescription¡þ`²A´µdriverµisµaµpairµofµIPCµblocksµthatµtransferµdataµoverµaµlink¡þ¨accordingµtoµaµcommonµprotocol.µDuringµtheµattributeµspecification,¡þñyouµnotµonlyµhaveµtheµoptionµtoµspecifyµtheµphysicalµlinksµoverµwhich¡þ:theµdataµwillµbeµtransferredµbutµalsoµtheµsoftwareµcontrollingµthe¡þ‚transfer.µTheµgeneralµformµofµtheµdriverµspecificationµisµasµfollows:¡,ô² DRIVER´µ{µµµµµ¡,!¡þ!¡…!NAMEµ{µ²!driver_name² µ}µ¡,O¡þO¡…OLIBµµ{µ²!driver_library² µ}µ¡,}¡þ}¡…}SENDµ{µNAMEµ{µ²!send_model_name² µ}µ}¡,ª¡þª¡…ªRECEIVEµ{µNAMEµ{µ²!receive_model_name² µ}µ}¡,Ø¡þØ¡…ØPAR{¡,¡þ¡…µNAMEµ{µ²!parameter_name² µ}¡,3¡þ3¡…3µPROCµ{µNAMEµ{µ²!processor_name² µ}¡,a¡þa¡…a¡aµµµMAPµ{µPORTµ{µ²!processor_port² µ}µVALµ{µ²!parameter_value² µ}µ}¡,¡þ¡…¡µµµMAPµ...¡,¼¡þ¼¡…¼¡¼¡“¼µ}µ¡,ê¡þê¡…êµPROCµ{µNAMEµ{µ²!processor_name² µ}¡,¡þ¡…¡µµµMAPµ{µPORTµ{µ²!processor_port² µ}µVALµ{µ²!parameter_value² µ}µ}¡,E¡þE¡…E¡EµµµMAPµ...¡,s¡þs¡…s¡sµ}¡,¡¡þ¡¡…¡}¡,Î¡þÎµµ}¡,ü¡þi²NAME¡Êi¡X²Specifies´µtheµdriverµname.µEachµdriverµmustµhaveµaµname.µItµis¡XúusedµtoµreferenceµtheµdriverµinµtheµlinkµsectionµofµtheµARCHµfile,¡XCasµwellµasµduringµtheµattribution.¡þ¥LIB¡…¥¡XíSpecifiesµtheµlibraryµinµwhichµtheµIPCµmodelsµcanµbeµfound.µThe¡X	6absoluteµpathµofµtheµlibraryµmustµbeµspecified,µforµexample,¡X	${COSSAP_DIR}/models/ipc_40.¡þ	áSEND¡Ê	á¡X
)UsingµtheµNAME²´µ²keyword,´µdeclaresµtheµbaseµnameµofµthe¡X
rimplementationµfileµ(.gcµfile)µofµtheµsendingµIPCµmodel.µFor¡X
»example,µifµtheµsendingµIPCµmodelµisµasµfollows¡…²${COSSAP_DIR}/models/ipc_c40/sendmodel.gc’´*D“I501ileaf_page_string1:7-11¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³11¡XÉ²the´µSEND²´µ²statement´µwouldµlookµlike¡…A²SEND´µ{µNAMEµ{µsendmodelµ}µ}¡þÙ²RECEIVE¡ÊÙ¡X"Using´µtheµNAME²´µ²keyword,´µdeclaresµtheµbaseµnameµofµthe¡Xjimplementationµfileµ(.gcµfile)µofµtheµreceivingµIPCµmodel.µFor¡X³example,µifµtheµreceivingµIPCµmodelµis¡…²${COSSAP_DIR}/models/ipc_c40/receivemodel.gc¡X­²theµRECEIVE²´µ²statement´µwouldµlookµlike¡…%²RECEIVE´µ{µNAMEµ{µreceivemodelµ}µ}¡þÁ²PAR¡…Á¡X
Specifies´µaµparameterµforµbothµtheµsendingµandµreceivingµIPC¡XRmodels.µDeclaringµaµparameterµisµnecessaryµonlyµwhenµyou¡X›haveµimplicitµinterprocessorµcommunicationµinµaµblockµdiagram.¡XäWithµimplicitµinterprocessorµcommunication,µaµblockµdiagram¡X,showsµonlyµaµsignal,µcalledµaµ²cutµsignal²,µconnectingµtwo¡XuprocessorsµratherµthanµtheµIPCµblockµpairµthatµimplementsµthe¡X¾interprocessorµcommunication,µseeµInterprocessor¡XCommunication"µlaterµinµthisµchapter.¡þkNAME¡Êk¡X³TheµkeywordµNAME²´µ²specifies´µtheµparameterµname.µThe¡Xüparameterµnameµmustµbeµidenticalµforµbothµtheµsendingµand¡X	EreceivingµIPCµmodels.¡þ	©PROC¡Ê	©¡X	òTheµkeywordµPROC²´µ²specifies´µaµrelationshipµbetweenµa¡X
:processorµandµtheµparameter.µTheµkeywordµNAMEµinµtheµPROC¡X
ƒdeclarationµidentifiesµtheµprocessorµtoµwhichµtheµparameter¡X
Ìapplies.µTheµvalueµofµNAMEµµmustµreferenceµoneµofµthe¡X²processor_name²sµlistedµinµtheµprocessorµdeclaration.’*´D“I501ileaf_page_string1:7-12¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³12¡þÉ²MAP¡…É¡XThe´µkeywordµMAP²´µ²specifies´µaµrelationshipµbetweenµaµportµofµthe¡XZprocessorµidentifiedµinµtheµPROCµstatementµandµanµintegerµvalue¡X£assignedµtoµtheµparameterµparameter²_²name.µTheµprocessorµport¡XìisµindicatedµbyµtheµkeywordµPORT,µandµtheµintegerµvalueµofµthe¡X4parameterµisµspecifiedµbyµtheµkeywordµVAL.¡X£Eachµportµofµtheµprocessorµ(specifiedµinµtheµprocessorµsection)¡XémayµhaveµoneµMAPµdeclarationµinµtheµPROCµsection.µTheµMAP¡X0declarationµcanµbeµinterpretedµasµfollows:µifµanµIPCµblockµofµthe¡Xwdriverµimplementsµdataµtransferµforµportµ²²processor²_²portµof¡X½processorµ²processor_name²,µtheµparameterµparameter²_²nameµis¡Xassignedµtheµintegerµvalueµ²²parameter²_²value.¡þ¼Asµanµalternativeµtoµusingµparametersµforµportµnames,µyouµcanµuse¡þintegersµthatµdirectlyµcorrespondµtoµtheµvaluesµofµtheµparameter¡þMCHANNEL_Identifier.µThisµmakesµtheµDCGµbindµtheµparameters¡þ–implicitlyµandµshortensµtheµspecification,µasµshownµinµExample 7³3.¡,c²Example 7³3³UsingµIntegers¡þÁ²¡…ÁPROC´µµ{µ¡þõ¡…õ¡õNAMEµ{µP1,µP2µ}µ¡þ)¡…)µ¡)TYPEµµ{µtms320c40µ}µ¡þ]¡…]µ¡]PORTSµ{µ0,3µ}µ¡þ‘¡…‘}¡þÐµµ¡…ÐLINKµ{µ¡þ	µµµµ¡…	¡	NAMEµµ{µIL1µ}µ¡þ	8µµµµ¡…	8¡	8SOURCEµµµ{µPROCµ{µP1µ}µPORTµ{µ0µ}µ}µ¡þ	lµµµµ¡…	l¡	lSINKµµµ{µPROCµ{µP2µ}µPORTµ{µ3µ}µ}µ¡þ	 µµµµ¡…	 ¡	 DRIVERµ{µD1µ}µ¡þ	Ôµµ¡…	Ô}¡þ
µµ¡…
DRIVERµ{µ¡þ
Gµµµµ¡…
G¡
GNAMEµ{µD1µ}µ¡þ
{µµµµ¡…
{¡
{LIBµµ{µinmarsatµ}µ¡þ
¯µµµµ¡…
¯¡
¯SENDµ{µNAMEµ{sDMA}µ}µ¡þ
âµµµµ¡…
â¡
âRECEIVEµ{µNAMEµ{rDMA}µ}µ¡þµµ¡…}’´D“I501ileaf_page_string1:7-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,),¡Ä,	c¡Ä	c	c)¡Ä	c),)ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,	 ,	
¡Ä,	
	c	
¡Ä	c	
	c	 ¡Ä	c	 ,	 ÆÃÁÊËÃ¡Äþ	
Ê	
ÆÃ¥	öä¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³13¡,Õ²Partitioning´µtheµBlockµDiagram:µDelayµandµFork¡,(Blocks¡þë²The´µDCGµallowsµyouµtoµdistributeµaµsystemµspecifiedµinµaµblock¡þ4diagramµontoµdifferentµprocessors.µAllµprocessorsµandµtheµlinks¡þ}betweenµthemµmustµbeµspecifiedµinµtheµArchitectureµ(ARCH)µfile.¡þÅPartitioningµspecifiesµwhichµblockµisµexecutedµonµwhichµprocessor.¡þTheµpartitioningµisµdefinedµbyµtheµ²cutµsignals²µinµtheµblockµdiagram.µA¡þWcutµsignalµisµaµsignalµconnectingµblocksµthatµhaveµaµdifferent¡þŸprocessorµmapping.µYouµspecifyµtheµpartitioningµofµtheµblock¡þèdiagramµinµtheµAttributeµ(ATTR)µfile.µYouµshouldµnotµspecifyµdelay¡þ1blocksµandµforkµblocksµforµtheµreasonsµdescribedµinµtheµfollowing¡þyparagraphs.¡þc²
Delay´µBlocks¡þ²The´µDCGµremovesµeachµdelayµblockµandµitsµoutputµsignal,µand¡þNconnectsµtheµinputµsignalµwithµtheµblocksµprecedingµandµsucceeding¡þ–theµdelay.µTheµoutputµsignalµisµappropriatelyµinitializedµwithµtheµinitial¡þßsignalµelements.µDelayµblocksµmustµnotµbeµmappedµontoµa¡þ(processorµbecauseµtheyµwillµbeµremovedµbyµtheµDCG.µTherefore,¡þpdelayµblocksµmustµnotµbeµspecifiedµinµtheµATTRµfile.¡þ	Z²
Fork´µBlocks¡þ	ü²There´µareµtwoµkindsµofµforkµblocks:¡þ
ƒBlockµforksµ¡X
ÌTheµuserµplacesµaµforkµblockµinµtheµblockµdiagram.µBlockµforks¡Xhaveµaµmodelµinstanceµname.’1D“I501ileaf_page_string1:7-14¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³14¡þÉ²Signal´µforksµ¡XAµsignalµforkµisµcreatedµinµaµblockµdiagramµbyµstartingµaµnew¡XZsignalµonµtheµpathµofµanµexistingµsignal.µSignalµforksµappearµas¡X£dotsµinµtheµblockµdiagram.µSignalµforksµdoµ²not²µhaveµaµmodel¡Xìinstanceµname.µTherefore,µsignalµforksµcannotµhaveµattributions¡X4becauseµnoµidentifierµisµavailable.¡þõForkµblocksµdoµnotµhaveµtoµbeµmappedµontoµprocessors.µForµfork¡þ>blocksµthatµareµnotµmappedµusingµtheµATTRµfile,µtheµDCGµperforms¡þ‡theµfollowingµactions:¡þ1.¡XEachµforkµblockµ(thatµisµnotµmappedµtoµaµprocessor)µthatµis¡X\precededµbyµanotherµforkµblock,µisµmergedµwithµtheµpreceding¡X£forkµblock.µTheµmergedµforkµblockµisµremovedµfromµtheµblockµlist¡Xéofµtheµblockµdiagram.¡XeFigure 7³3µillustratesµtheµmergingµofµforkµblocks.µInµthisµexample,¡X«theµoutputµportsµofµtheµforkµblockµfeedingµtheµblocksµSucc4,¡XòSucc5,µandµSucc6µ(fork3)µareµaddedµtoµitsµpredecessorµfork.µThe¡X9forkµblockµfork3µisµremovedµfromµtheµblockµlistµofµtheµblock¡Xdiagram.µNoteµthatµtheµmergedµforksµhaveµnoµprocessor¡XÆmapping.µTheµforkµmappedµontoµprocessorµP2µisµnotµmerged.¡XSAfterµtheµprocessing,µnoµtwoµforkµblocksµwithoutµprocessor¡X™mappingµshareµtheµsameµsignal.µThatµis,µtheµpredecessorµblock¡Xàandµallµsuccessorµblocksµofµunmappedµforkµblocksµhaveµa¡X	&processorµmapping.¡þ	³2.¡X	³Afterµanalyzingµtheµprocessorµmappingµofµtheµsuccessorµblocks,¡X	úanµunmappedµforkµblockµisµmappedµasµfollows:µIfµallµsuccessors¡X
Aareµmappedµontoµtheµsameµprocessor,µtheµforkµblockµisµmapped¡X
‡ontoµthisµprocessorµ(seeµFigure 7³4).µIfµtheµsuccessorsµare¡X
Îmappedµontoµdifferentµprocessors,µtheµforkµblockµgetsµtheµsame¡Xprocessorµmappingµasµitsµpredecessorµblock.’1ÕD“I501ileaf_page_string1:7-15¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³15¡XÉ²For´µallµsuccessorsµmappedµontoµtheµsameµprocessor,µaµnewµfork¡Xblockµfeedingµtheseµsuccessorsµisµgenerated.µTheµnewµfork¡XVblockµhasµtheµsameµprocessorµmappingµasµitsµsuccessorsµandµis¡Xaddedµtoµtheµblockµlistµofµtheµblockµdiagramµ(seeµFigure 7³5).¡XBecauseµblocksµgeneratedµbyµtheµDCGµhaveµnoµmodelµinstance¡Xfname,µtheµmodelµinstanceµnameµinµtheµgeneratedµcodeµis¡X­replacedµbyµaµcharacterµstring.µThisµcharacterµstringµindicates¡Xówhereµinµtheµschematicµtheµblockµhasµbeenµinserted.¡þ”AfterµtheµDCGµcompleteµtheseµsteps,µallµforkµblocksµhaveµa¡þÜprocessorµmapping.’ÕD“I501ileaf_page_string1:7-16¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³16¡,É²Figure 7³3³Merging´µofµForkµBlocksµbyµtheµDCG¡þS²¥ü.rÊÒÓÐTR1‰ãŠä
XûÈüüüüüüü¾ÉääääääääÚü¾ÁääääääääÕüüüüüüüüüüüü€<-ü€þ5ü¿ÁÀÃÈtü€	È|ü½ÎˆÈü½Ò	ÈÄÅàÖÏü½Éà?ÐÕü¾Õ|zÌü°äÈÓ?ääÈÌ
1ü°ÀÏÕãääÈÌI	Èü±ïÀÅŠÁÕ	Èü±ÅÂŠ×Èü²ÈŠÎ	YÆÁ1ü±ÁéŒÁÀƒÈÎÀÃÌÎü±ÅùäÐÏàÖÏü°ÖÏ÷ÝÉæØÐÈÅü°ÖÕØü²Ôü±ÁÏü²êü²Õü²ÀÞü°ÀÌ1ü°áÁÑüüüüü¾ÁääääääääÕü¾ÉääääääääÚü­âäääääääãü­ßäääääääáüŠ×{üŠÌ
åüÂüŽÎüµÁääääÏüŠÁÚÛÀŒÀÁÞÀwÀÃÚ?ÀïÏàÀ=ÀáãÛÈ˜ÁääääÕü‹ÞÖÀÌÏÀôÀcø#À×åÀ¼À3ÈÀöÐÏüŠÁÃÍIÄËÀEÄÁïÂî(ü‹ÄA7üŒÀ_ÈÃ!øÚ|OÈüŒÛÏKÞÿÏÁäÐüÃÃÖüŒÇ
EÞë’äÖÏâYÛÈü‹Ä9"Ú9’ÓÕÉÈÌÍÏüŠÁôÓÏÉÀœÌÀCQ(Ï’ÅÍjüŠÁÞÀÀŒÀÁÀhÀlÂÚ&ÀÍÀ˜ãÀ3ùáÀÈ–ÎüŠÊÕÖÖÏÚÝÁÕ>ÀýÞØßÉÀòÖËs4üšËÉÏÈÏüšÊ‘ØøÁÏyü™ÐáÐääÚÉøzÉ	Èü™ÉÞÉääÚÉÎÉü¬ØrQiÊü«ÉÏ_ü«ËlÉaÌü¯ÓÎkü¯ÛÏÁÈËÀ_Õü­ÁÈÈèÃâÕüüüüüüüµÁääääÕüµÁääääÏüüüüü­ßäääääääáü­âäääääääãü¾ÉääääääääÚü¾ÁääääääääÕüüüüüüüüüüü€ðÏü¿ÉÞLÚü¿ÐÑTÆü€Q\Ìüü½ÎQ1ïÞßÄÌü½×IÈüÛÈü½ÁÕÁÚIqiüºÛääÈÌxAÎüºßääÈÌYQ{ü½ÁÕQÈü½×Tü½ÎiÈÃƒü¿ÊÑÁÀƒËÀaÀ†ü¿ÉáÛÁÞßÀáü¿ÁÚÑÇÚ×Öáüüüüüüüüüüüüüü¾ÁääääääääÕü¾ÉääääääääÚüüüüüüüüüüüüüüüüüü›ÚÞËIÏÙÅÛÕü›ÀØÀØßIaÞüŒÁä)‹ÅrÈ1ÈðüŒÁÀŸÏÆ‹ô	Ç%üŽÈÇÈ,üŽÆÏ‹÷BPüÈ‹ÉÁÇ
ÈÎ!ü›Ê4
ÉÀôüŽÆŒÂÈ#JÞüÛÈ‘ÉyüÛÏŒÁïÇÈ)yü Ã|üœÈêÇüÀbÈ
ÁéÈü›ÀØÇÀ=IÀaÀžÀÆÀ[ü›ÞÆ×ÛäÀåäÀÇÀßüŒÁÀ˜ÌŽÛáüŒÁÞüüüüüüüü‰ÁääääääääÞˆÖääääääääÏ™ÉääääääääÚüŠääääääääÚˆÐääääääääÈ™ÁääääääääÕüüüüüü¤ßäääÞü¤ßäääáüüüü‹ßÞ,ü‹ÛÚÖÞÓÐÕÆÆÅœÚÞüŒËÐÞàÉÞqÆ›ÉÞÀèüÁÀÇyÎ›ÐÑmüžêÈ	ÈÏœÊüÀÏÕÉÈÉA¢ÎüÐÀÃÞÖÕÈJŸÎQ1ïÞß üŒÒËÐÒÒÎˆÙ]Ê›×IÈüÛÈÚü‹ÛÞÄŒÐÈÐÏIÞÑ›ÁÕÁÚIqaü‹ÛÕYiääääääãqÐÏIÀÐÌ?ääääääääääääääääääääääääÈÌxAËüŽÐÞääääääãq?ääääääääääääääääääääääääÈÌYQüŽÐáŠÐÈIjÁÈšÁÕQüšÙ¢×T"üŽËiˆÁÈÈÌyšÎiÈÃAËüÃÁÀÃ ÊÑÁÀƒËÀaÀŒÌüŽÊËÌÆŒãYqœÉáÛÁÞßÐÚüŽÉÞÖÕŠÄ<ÃÃÆÆÅ›ÁÚÑÇÚ×ÉÕü‹Æ)ÁÚÐÀÐüüüüüü¤ßäääáü¤ßäääÞüüüüüŠääääääääÚˆÐääääääääÈ™ÁääääääääÕü‰ÁääääääääÞˆÖääääääääÏ™ÉääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¾ÉääääääääÚü¾ÁääääääääÕüüüüüüüüüüü€ð5ü¿ÉÞ=ü¿ÐÑü€Q}ü…	Èü½ÎQ1ïÞßü½×IÈüÛÀƒü½ÁÕÁÚIqÊüºßääÈÌxAüºÛääÈÌYQÀÜü½ÁÕQÀÜü½×Tü½ÎiÈÃAü¿ÊÑÁÀƒËÀaÈü¿ÉáÛÁÞßü¿ÁÚÑÇÚ×1üüüüüüüüüüüüüü¾ÁääääääääÕü¾ÉääääääääÚüüüüüüüüüüüüüüüüüüüüü¬ÐÀ‡ÏÎÉÏÈäü¬ÊÀÆÀÁÞayßÏü­ÈÉÀ”	ÃÁÇ ü­å
>ü®ÃEü­ëÈ1ü­Ì÷[É:ü­ÍPÛåü­ô<Ïü²ÌÊü­÷÷ÃBÉÀÈü²ÆÉÕü­ÃÃ÷ü®ÉôPËôü¬ÊÀÂÁÀèËÀöÀ2ÀØü¬ÐÀÁðääÀ/ãÜÞü°äÕüüüüüü­âäääääääãˆÉääääääääÚü­ßäääääääáˆÁääääääääÕüüüüüµÁääääÏüµÁääääÕüüüüü­ÁäÐüÃÃßÏŠÚÚü®äÖÏâYßÇ‰ÉÞLÚü¯ÓÕÉÈÌ‹ÐÑü¯ÅÍjÁÈŠÊü³Î‘Ëü«ËsÈwQ1ïÞßÐÚü«ÉÏÈÏÉÏIÈüÛÀ‡Þü¬ØøÁÏ‰ÁÕÁÚIqÄü¨ÉääÚÉøzÉaäääääääÈÌxAËü¨ÐääÚÉÎ	äääääääÈÌYQü¬ØrQi‰ÁÕQü«ÉÏ?ˆ×T"ü«ËlÉaÎÎwiÈÃAËü¯ÓÎ|‰ÊÑÁÀƒËÀaÀŒÌü¯ÛÏÁÈËßÈ‰ÉáÛÁÞßÐÚü­ÁÈÈèÃÛŠÁÚÑÇÚ×ÉÕüüüüüüüµÁääääÕüµÁääääÏüüüüü­ßäääääääáˆÁääääääääÕü­âäääääääãˆÉääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¾ÉääääääääÚü¾ÁääääääääÕüüüüüüüüüüü€ð}ü¿ÉÞLÚü¿ÐÑÓü€QTÄüü½ÎQ1ïÞßËÏü½×IÈüÛÀƒÚü½ÁÕÁÚIqÐÓüºÛääÈÌxAËüºßääÈÌYQü¾ÕQü½ÉTZü½ÒiÈÃAËü½ÎQÑÁÀƒËÀaÀ†Ìü¿ÉáÛÁÞßÉÚü¿ÁÚÑÇÚ×ÁÕüüüüüüüüüüüüüü¾ÁääääääääÕü¾ÉääääääääÚüüüüüüüüüüüÿÒÓÐ—W:èŽé	 ûÈüüüüüüüüüü¿âäääääääãü¿ßäääääääáüüüüüüüüüüüü€Èü€Ïü€8Ô\üidü½ËˆÅü½ÉÈiÁÂÖÀÁÞü¾ÎÕáü¾ÒÈaÉü°ÛÚÐääÚÉIÏ2Ãü°ÀáÛÏNääÚÉriü±ÄÓåŠØjü±Â9‰ÉÏlü²ÅŠË2Áè1Ãü²ÍÇŒÍÔËÌÀcËü±Â ŒÛÕÞÖÀÁÞü°ÁÞÁÇŒÖÈÀrÐÈÚÂü°ÁáÐÈü²Ñü²Óü²ÅÆü²Òü²ÀÏü°ÀÈÊÆü°ÛÈóÏüüüüü¿ßäääääääáü¿âäääääääãüŒÉÄŸÖääääääääÏüŒÑ ÐääääääääÈüŒÊüŒÉüüŠÁÞÀ7À7ÉÀñÀïÀýÞÛÀÝÀ=ÀƒÚü‹áÀ7À7ÁÀáÀœÀûÚÖÀÌðÀ_À…Õ›ßäääÞüŽÊÄõ	ÂiÜÀ¡÷Ä›ßäääáüŠÁÌ&üŠÁÞÕ_ÈÈIÕü‹ÕJÞÏ¡ÐÞüŠÂ#>ÞÃüÃÇÄ><!“ßÕÕÛÈÈêÕüŠÂ÷ÆÌ8Ï
Ì“ÛÀáÞÖÕÁÀƒÚüŠÁÀýÀ6ÀÀƒÀñÀ˜À›À6ÀÀŒÏâÐÚ”ÐÒpÉÊÌü‹ÀóÜÐÁÀáÞÀŸÜÖÖÏÝêÕ”ÂÊRü—ÁÀƒšËü—ÁêÈ‘ÁÈZü˜ä“ÙmÌü˜à“ÐÈÛÕÓaü©ääãqÛÇÎiü©âäãqLqü¬ÐÈYzÊyü¬ÙÈü«ÁÈSqÉÉü¯ÐËSü¯ÉÞiÁÀ‹áü®ÆðÅÅÈÀáüüüüüüü¶ßäääáü¶ßäääÞüüüüü­ÐääääääääÈü­ÖääääääääÏü¿âäääääääãü¿ßäääääääáüüüüüüüüüüü€8ü€~ü€áÏÄüyÀƒüü½ËzÃÄßÐÀáÉü½ÉÏpÀƒÚü¾Ø>rËQüºÉääÚÉCÅËüºÐääÚÉ	Èybü¾Øzlü½ÉÏ|ü½ËBÊÅAÅÎü€ÁÏÍÀaÀŒÍÏü€ÀƒÕßÐÀáâÈü€>ÁÀÈ×ÉÀÁäÈüüüüüüüüüüüüüü¿ßäääääääáü¿âäääääääãüüüüüüüüüüüüüüüüüü›×ÛÁÈxÖÂÉáü›ÀÀÐÕqÉIâüßÕÂ‹ÂëÅùÈüÀ3ÞÃ‹ÂÈ(üŽÅÄÅüŽÃÌ‹ÁÇ)
BüÅŒÎðkË	üœÏ	ÇàÈüŽÃëüÉÚ’ÎÌüÉÞððÅÆü¡ÈÖÈüœÅÅðüËë	ÇÍëü›ÀÄÐålÀ3ÀØÀËÎü›ÛÃÉÀÃäáÀ¿ÞÀûÕüÀ3ÈÉäÈüßÈüüüüüüüŠßääääääääˆÁääääääääÞšâäääääääãüŠÛäääääääã‰ääääääääÚšßäääääääáüüüüüü¤Ðääääü¤ÐääääÈüüüü‹Ðäü‹ÉãÁäÐüÃÃÂœ×ÿüŒÁÈäÖÏâYÃœâýüžÓÕÉÈÌËœÀáÏTüžÅÍjÌÏüÂÙÒpÎÅ¢ËüŽÞâÁáˆÍsžËzÃÄßÐÕôüŒÉêÈÀãÀƒÀŒˆÖÈÏšÉÏpÀƒÚ×ü‹ÉäÁÚøÁÏ›Ø>rËIü‹Éá	ÈÊÿääääääÏËøzÉääääääääääääääääääääääääÚÉCÅÁÈüäÿääääääÏËÎääääääääääääääääääääääääÚÉ	ÈyüäÈŠÚrQi›ØzüšÖ¢ÉÏ|	üŽÁÈÊ‰ÍlÉašËBÊÅAÅÁÈüÈÓÎ ÀÁÏÍÀaÀŒÀ1ÀƒüÀÁÀƒÃŒÛÏÁÈËâÀƒÕßÐÕãüâÁáŠÁÈÈèÃÂœÜÁÀÈ×ÉÏÝü‹Ã>úüüüüüü¤ÐääääÈü¤ÐääääüüüüüŠÛäääääääã‰ääääääääÚšßäääääääáüŠßääääääääˆÁääääääääÞšâäääääääãü¡Áüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¿âäääääääãü¿ßäääääääáüüüüüüüüüüü€ü€%ü€áÏüydü†iü½ËzÃÄßÐÕü½ÉÏpÀƒÚÎü¾Ø>rËyü©âäääääääääääääääääääÚÉCÅü©ääääääääääääääääääääÚÉ	Èy	À{Èü¾ØzÀûÈü½ÉÏ|ü½ËBÊÅAÅü€ÁÏÍÀaÀŒÍü€ÀƒÕßÐÕü€>ÁÀÈ×ÉÏÃüüüüüüüüüüüüüü¿ßäääääääáü¿âäääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¿âäääääääãü¿ßäääääääáüüüüüüüüüüü€þü€~ü€áÏüyü…	Èü½ËzÃÄßÐÕãü½ÉÏpÀƒÚäü¾Ø>rËÁü£ÁäääääääääääääääääääääääääÚÉCÅÁÈü£ÉäääääääääääääääääääääääääÚÉ	Èyü¾Øzü½ÉÏ|	ü½ËBÊÅAÅÁÈü€ÁÏÍÀaÀŒÀ1Àƒü€ÀƒÕßÐÕãü€>ÁÀÈ×ÉÏÝüüüüüüüüüüüüü¿ßäääääääáü¿âäääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¿âäääääääãü¿ßäääääääáüüüüüüüüüüü€eü€~ü€áÏ'üyÁüü½ËzÃÄßÐÀáÀ˜ü½ÉÏpÀƒÚàü¾Ø>rËçü¢äääääääääääääääääääääääääääÚÉCÅÁÈü¡ÁäääääääääääääääääääääääääääÚÉ	ÈyBü¾Òzü¾Î|	Èü½ÉÈAÊÅAÅÁÈü½ËÁÏÍÀaÀŒÍÀÃü€ÀƒÕßÐÕàü€>ÁÀÈ×ÉÏØüüüüüüüüüüüüüü¿ßäääääääáü¿âäääääääãüüüüüüüüüüüüüÿ¥	öä¡pS’D“I501ileaf_page_string1:7-17¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³17¡,É²Figure 7³4³Fork´µMappingµWhenµSuccessorsµAreµMappedµontoµtheµSame¡²Processor¡þ,²¥ü>rîÒÓÐHgËŒèé
áûÈüüüüüüüüüüüüüüüüüüüüü¼ÁäÕßÕü¼ÁÀŸÀÐâÀÐü×Ï«ð(üÌDü‘ÀÏ¬Æü’È¬Îü€(üŽÔðÀ3ÈÔÖÒÉÏÀœÑ<ÉÀÎžððüÁÀìÉÙÀ3êÀ¼ËÀzÀÕQâßÈâÉÛÈœÛÚÉÏüÁÀšùÀŒÀÏèÀÍbÀñÇÀƒÈÀ1ÎœÛÏÐüŽÃÂÂ	ÄÄ;yÇÆÈžÒüŽÁÄÂÈÈÆPžÙüÉÞÕ?¡ÆÄüÉãÞøüœÁÇ¡ÓÅüŽÁÄÂÈ1‰ëžÀ7ÀèüÂ&¤ÁÀ˜YÅüÁÑÐÑIÀ…ÓÀCÈÀ1å›ÁÞCÕüÁáÉáÀ3ÁãËÏÖÚQÀfÀsÍÀ¿ÔÜÏüÊÚðßxÖÏÉÏÀçÀóÚÝÍÖüüüüüžÉÓüžÉÞüüüü¹ÛääääääääääÏü¹ÖääääääääääÈüüüüüüüüüüüüüüüü»äÈüºÁäÏüºÉWü¼Çü‚aü·ËJ	ÁpÁÏü·ÉÈ	È
áÐÚü¢ÁÕÝÐÚIÏÖAßá‰ÙðJÀŽÑÓü¢ÁæÀlÀÀèIÈÐ3Àú‰Ð~!ü‘ßáqŽÆÅ2ÅÁÇLäääÚyÈQaü‘À3ÀúÄŒÁäääÚy	Ïü’ùAŽô( ‹Ðü“ÉÈ”ÍÍÉŒÙü“É÷P÷ÉÈUaü£ù%ÎPˆË	é!ü©ÅKã‹ÉêÏÊÉÊËÌü’ùÂÈVÆÉÞ‹ÁäÈáÁáÐÚü‘Éã–ÃÏ!ŽàyøÉÕÁü‘ÉÞÁÇë÷Õü¤å$Àôü¥ðKÈü¤Çü¥ôÓa÷ü¢ÁÀ°ÆÖÚIÀ°ÀwÀnÀÀ3ü¢ÁÚÅÉÏIÀòâàÛßü‘À3IÀœ’äáü‘ßIá’äáüüüüüüüü¹ÖääääääääääÈü¹ÛääääääääääÏüÛääääääääääÏŠÛääääääääääÏüÖääääääääääÈŠÖääääääääääÈüüüüüüü®Ûääääáü®ÛääääãüüüüâÚüßáüÑüÉ”ßÞÛÏâÚÆÃü¥ÛÞßÕßÞYü§Îdü¨Íkü‘ÃØÉÏðÏtü’áÖÚÉá‘Ì{üÉÁÏÒÓÐÑŠÒÈÈüÑÉiËËÂŠÉÏÈ?ÞÉüßá‘ÜÈ?ÔÐüßÚÂqaääääääääÕÁÏÈü“ßÞääääääääÕy~ÌÐäÈäÈü“ßáÖÈ+ÏÊâïäÇü¢Ôeqq‘å ü¡ÐÈ|lü“Îa‹Ìni”Èü”Ã’ÔÎc‘ÁÈü“ÍËËÂßÏaY“åü“ÌÌÊÊŽÆÈÇÄÆÃ‘åÉÏü“ÖÚÉá¦âÏÖüÇÕÁÀù¦âü¿Ôü¾ÁÕü¿ÈÆüü¿ÕÇü¿Àßåü¼ÊÎiÇü®ÛääääãˆÐÕÁÖÈü®ÛääääáüüüüüüüÖääääääääääÈŠÖääääääääääÈüÛääääääääääÏŠÛääääääääääÏü¹ÛääääääääääÏü¹ÖääääääääääÈüüüüüüüüüüüüüüüºÉãÈüºÐä?ÏüºËü»Á~üü·ËZÃÁÏÐAü·ÉÈQÚÛÏü¸ÙIÏÓÓÕyü¸Ð	Þ#1ÁÈü³ÁäääÚy>bqIü³ÉäääÚyVü¸Ð‰Ëü¸Ù‰Ìü·ÉÈeqiü·Ë"QÄ!1ÎüºÑÐaËÌÍÎÏüºÐãÉÚÐÚÛÀÁâÕüºÁÞÁÀäÉÕÖêäÕüüüüüüüüüüüüüüüüüü¹ÖääääääääääÈü¹ÛääääääääääÏüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÁÚÎªÁäÕßÕüÇ«ÁÀŸÀÐâÀÐüå­ð(üÅü¿ÆüŽÞÑÀóÀœÁÕÙÕÓØxÖÀœ¡ÎüÁáÑÀóÀœÊÞÀaÀÐaãÀûÁáÑÀ{¢ðüÂÊÅÐ
ÀÅÀÆÂÀ†fÈŸððüÉÁÂÍ	JÁ¡ÛÚÉÏüŽÒ^	ÇžÛÏÐüŽáÚü£ÒüÉÕáNÔ£ÙüùŒÁÈ£ÆÄü’ôŠÁÇü‘ï«ÓÅüùÑÈI÷ÒÊÈîÈ À7ÀèüÂÀýÀNÕÜÐÞÀgÀŒÀÎÀãÀýÇâžÁÀ˜YÅüÁÚÀÏÕÒÁÕâÀÀÏÕÞÏØžÁÞCÕüüüüüœÑÎüœÖÕüüüüüü¹ÛääääääääääÏü¹ÖääääääääääÈüüüüüüüüüüüüüüü»äÈüºÁäÏüºÉWü¼Çü‚aü·ËJ	ÁpÁÏü·ÉÈ	È
áÐÚü¸ÙðJÀŽÑÓü§äÚÛÚÐ~!ü§ÀÏÀèßÀèˆÉäääÚyÈQaü‘ßáq“ôˆÁäääÚy	Ïü‘À3Àú¥Ðü’ùA”ÅŽÙü“ÉÈ”ÍÉÈUaü“É–ôŒË	é!ü¨ôxÉêÏÊÉÊËÌü§ÖÞÁÕÁäÈáÁáÐÚü’ù”ÖÕÉÈàyøÉÕÁü‘Éã–Ñü‘ÉÞ–Øü©ÅÃüü©ÒÄü©ÀÀôü§ÀÌQÄü§á!Úü‘À3IÀœü‘ßIáüüüüüüü¹ÖääääääääääÈü¹ÛääääääääääÏüÛääääääääääÏŠÛääääääääääÏüÖääääääääääÈŠÖääääääääääÈüüüüüüü®Ûääääáü®ÛääääãüüüüüâÚüßáüÑüÉ”ßÞÛÏâÚÆÃü¥ÛÞßÕßÞYü§Îdü¨Íkü‘ÃØÉÏðÏtü’áÖÚÉáŠÌf{üÉÁÏÒÓÐÑŠÐÈÈÈüÑÉiËËÂ‹ÔÈ?ÞÉüßá‘ÖÈ?ÔÐüßÚÂqaääääääääÕyÈÐäÈäÈü“ßÞääääääääÕy~ÌÊâïäÇü“ßáÖÈ+Ï‘å ü¢Ôeqqü¡ÐÈ|l’Èü“Îa‹Ìni“ÁÈü”Ã’ÔÎc“åü“ÍËËÂßÏaY‘åÉÏü“ÌÌÊÊŽÆÈÇÄÆÃâÏÖü“ÖÚÉá¦âüÇÕÁÀù¨Ôü¾ÁÕü¿ÈÆüü¿ÕÇü¿Àßåü¼ÊÎiÇü¼ÐÕÁÖÈü®Ûääääãü®ÛääääáüüüüüüÖääääääääääÈŠÖääääääääääÈüÛääääääääääÏŠÛääääääääääÏü¹ÛääääääääääÏü¹ÖääääääääääÈüüüüüüüüüüüüüüüüºÉãÈüºÐä?ÏüºËü»Á~üü·ËZÃÁÏÐAü·ÉÈQÚÛÏü¸ÙIÏÓÓÕyü¸Ð	Þ#1ÁÈü³ÁäääÚy>bqIü³ÉäääÚyVü¸Ð‰Ëü¸Ù‰Ìü·ÉÈeqiü·Ë"QÄ!1ÎüºÑÐaËÌÍÎÏüºÐãÉÚÐÚÛÀÁâÕüºÁÞÁÀäÉÕÖêäÕüüüüüüüüüüüüüüüüü¹ÖääääääääääÈü¹ÛääääääääääÏüüüüüüüüüüüüüüüüÿ¥	öä¡p,’:D“I501ileaf_page_string1:7-18¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³18¡,É²Figure 7³5³Fork´µMappingµWhenµSuccessorsµAreµMappedµontoµDifferent¡²Processors¡þf²¥	öäÒÓÐþCe™èŽéëûÈüüüüüüüüüüüüüüüüüüüüüºÖäÉáüºÑãÀ‡Àúü»Áü¼Âü¼Âü¼Ãùü»Á
ü»ãÈÀ4ü»äØü¼ÁÕü¼Ðü¼ÂÁü¼Éü¼ÉÀÂüÙx¥ÑÏýüÔ3¥ÖÏÃÜü”çü”ÅüÁÏÐÉÍËÐÀžÉÈ<ÕÕÐêÀçüÉÀ°ÛÀÃÍßÊØÖÕ3ÀûÀØÛÀÁÀŽÏüÊÀhÄÈSÈÃÃÇ	ÀÍÄÎÀåüÃiÆ ÇÀdÌÅÃ+ü‘ô Â.ÏPü’À_È99À/ÏÏü’ÛÕÚ˜ÉäääääääääÞü’Ç:25˜ÁäääääääääÚü‘ô1 *PüÃi Ça5ëÅüÐÀèÖÀãÍÀ_À†ÎÐÚ3À7ÀvÖÀÌÛåüÀÚÛÀÃÚßÐÕÖÕ?ßàÛÀ¼ÖÏüüüüŸÁÀ˜üŸÁÞüüüüü¹ÛÕ%ü¹ßÚ-ü¹ÎðüºÅàü¶ÏrAÈÕÐü¶Ój
ÞÖÏü¶ÐJÒÌÕü·ÕÈQiü²ÉäääaIÕ1ü²Áäääa:sü¶ÁÕjü¶×wü¶Õ:1ü¹ÎÁÊiü¹ßÚßÉáÛÕü¹ÛÕàêÞÖÏÄüüüüüüüüüüüüüüüü·ÁäääääääääÚü·ÉäääääääääÞüüüüüüüüüüüüüüüüüüüüüü£×ÐÀÁá	ÏÒÂÉäÏü£ÀÊÏÀz	ÈËIÀ¿åü“Ûã9ŽÂè2Æù:‹ÛãÐÞü“ÀÀýAÈùÁ“ÀÀýÖÀôü”ÂÉÈŒÁÇ,Â
ü•ÉŽÈ÷ÂÈ1ÎËÈÃü¤Æ$<Ãü¤ë,	ÇßåÄ÷ü”Âð}Ì?ÏŒÂü“ÁÀýÅÁÀýhü“ÁãÃ÷ÂÈ	ÈÀ/ÆÁãÁÀ°ü¤÷ÈÉÏü¤ÃùÁ•Ñü¥ÂèqëÃÂü£Àéz	À°ÀìÀ¸ÀËÀ°ŽÊü£ÛêÁá	ÀòáÞÀûÚŽÐèü“ÀÈÉÀ¸ßá‘ÀÈÁÀúü“ÛÈÉÞßá‘ÛÈÄÝüüüüüüüüüäääääääääã‰Áäääääääääá‰ÉäääääääääÞüâääääääääáŠäääääääääÞ‰ÁäääääääääÚüüüüüüü­Áääääáü­Áääääãüüü‘Ðá%ü‘Éäü’ÉÈü“Ï‘ÐãÖÏâÕÈÆŒäÚü¥ÉãÛÕßÏq‹ÁäÈLÞü§ÍÍiy‹É^ü«ÁÈÈü“ÁÜÖÚÖÕÌJŒÉÃÐ8Äü“ÏàÐÕÐÚ‰ÎtjÑŠÏ	ÈÏàü’ÉÈÏÌÌÌÅ‰×?ôŠØàbÕÀÇaü‘ÉäÁÕIÕ?ÕØŠÉÏ|jÁÈiü‘ÉáAÍi	ääääääääÈÒIÕ>ÈÀf	ääääääää83Áqü•ÛÚ
ääääääääÈË?	ääääääääaKzü•ÛÞŒÔs	ÈÉ‹Õ	ÈÈü¢ÉÈdyÁÈ‰ÐNIü•ÍiŠÒwy‰Ó4ÁÊü–Ä‹ÎlÍÏIQÄÍÁÈËü•ÌaÅŽÛÕiq‹ÁäêÞÛÕäÀáü–ÌiŒÃÏÇÅÈÆŒäÉÀôÖÏàÛáü•ÖÚÖÕü‘Ã	ÕÐÀÈüüüüüüü­Áääääãü­ÁääääáüüüüüüâääääääääáŠäääääääääÞ‰ÁäääääääääÚüäääääääääã‰Áäääääääääá‰ÉäääääääääÞüªÂüüüüüüüüüüüüüüüüüüüüüüüüºÛãÐÞüºÀÀýÖÀôü»Âü¼Ãü¼Ãü¼Äôü»ÂèüºÁÀýèüºÁãü½÷ü¼Äü¼Ãü¼Ãü½÷üºÀÈÖÀôüºÛÈÐÞüüüüüüüüü·ÉäääääääääÞü·ÁäääääääääÚüüüüüüüüüüüüüü¹äÞü¸ÁäÈÀèü¸ÉoüºÈü¶ÏIÃÐ8qü¶Ó	ÈÏà ü¶ÐàbÕÀÇøü·Õ|jÁÈ)ü²Áäääa3ÁYü²ÉäääaKü·Õ	Èü¶ÐNü¶Ó4ÁÅËü¶ÏIQÄÍÁÈÌü¸ÁäêÞÛÕäÖÞü¹äÉÀôÖÏàÐÚüüüüüüüüüüüüüüüü·ÁäääääääääÚü·ÉäääääääääÞüüüüüüüüüüüüüüüüüüüüüüüüºâÞ9üºÀwÀôAü»ÄÁüü¼Éü¼Êü»ÄËüºÐÀôÌüºÐÞü¼Íü¼À_Óü¼âÓüüüºÀvIÍüºàIÚüüüüüüüüü·ÉäääääääääÞü·ÁäääääääääÚüüüüüüüüüüüüüü¹ä6ü¸ÁäÈ=ü¸ÉüºÈü¸ÉÃÐ8ÁÈü¶Ï	ÈÏàÉü¶ØàbÕÀÇÊü¶ÉÏ|jÁÈü¬Áäääääääää83ÁËü¬ÉäääääääääaKÀÞü·Õ	ÈÀÞü¶ÐNü¶Ó4Áü¶ÏIQÄÍÁÈü¸ÁäêÞÛÕäü¹äÉÀôÖÏà1üüüüüüüüüüüüüüüü·ÁäääääääääÚü·ÉäääääääääÞüüüüüüüüüüüüüüüüüüüüüüüüüºâÞ9üºÀwÀôAü»ÄÁüü¼Éü¼Êü»ÄËüºÐÀôÌüºÐÞü¼Íü¼À_Óü¼âÓüüüºÀvIÍüºàIÚüüüüüüüüü·ÉäääääääääÞü·ÁäääääääääÚüüüüüüüüüüüüüü¹äÞü¸ÁäÈLÞü¸ÉüºÈü¶ÏIÃÐ8ÀÏü¶Ó	ÈÏàÐÚü¶ÐàbÕÀÇÊÓü·Õ|jÁÈÄüªÁäääääääääääa3ÁYüªÉäääääääääääaKü·Õ	Èü¶ÐNü¶Ó4ÁÅËü¶ÏIQÄÍÁÈÌü¸ÁäêÞÛÕäÖÞü¹äÉÀôÖÏàÐÚüüüüüüüüüüüüüüüü·ÁäääääääääÚü·ÉäääääääääÞüüüüüüüüüüüüüüÿÒÓÐÌâMŠç‹èûÈüüüüüüüüüüüüüüüüüüüü„ãÐÞü„ÀýÖÀôü…
ü†ü†ü†!÷ü…ü„	Àýhü„	ãÁÀ°ü†IÏü†ü†Âü†Qü†èü„ÈÁÀúü„ÈÄÝüüüüüüüüüäääääääääÚüIäääääääääÕüüüüüüüüüüüüüüƒ?Ï-üƒÕ5üƒyÕü„1Ïü¿ÁÈzÁÁÁÏÑü€prJÚÛÈü€8RÓÀ1Ïü€	ÏZqü°ÖäÉáˆÖääãiÏ"9ü°ÑãÀ‡ÀúˆÐääãiB{ü±ÁŒÉÏrü²ÂØü²ÂŒÁÏB#9ü²ÃùÏÁéËqü±Á
âÕàÐÞßÏü±ãÈÀ4ßÏÀýÉÚÛÈÅü±äØü²ÁÕü²Ðü²ÂÁü²Éü²ÉÀÂü°ÑÏýü°ÖÏÃÜüˆÛËüˆÃüˆøüˆÂüNÏÀnÀ3pØÕyÀÁÏÖÁÀÎüÕÀnÀ3ÁáÀ1ÀÐgÀ÷ÚÛêÀŸÈü&ÍŽÉÀ*ðÆÏÀ1Çü'JÅÃ2ÆÈ«ÉäääääääääÕü^Î51È1«ÐäääääääääÚüÕá?È™ÉäääääääääÚüNÈ
ãšÁäääääääääÕüPüŠÆÂ‰ÆüÍ!ÉP1ÈüNÀæÀnÉÕãÀ3fÀfÀfÖÀØßÇüÀÎàÐÀÁáß~ààßÀ¸ÛÈü·ÐääääÚü·ÐääääÞüü“ÁÀ¸ü“ÁÞüüüü¯ÖáÛÈäÀÁ9ü¯ÐáßÏâÈyü±ÎÎqÁÈüµÉü¬ÏmRü¬Ó|rÒü¬ÐGðü­ÕÏÏÙü¨ÐäääaÏ}ÌŽâÞÛÕü¨ÉäääaGŽÀwÀôßÀÐü¬ÁÕ{IQÄ(ü¬×mÁÈÉÅü¬ÕÁÈÅü±ÎÎ“Æðü±ßÏqyŽÄPü¯ÄÈÈó9ÐÀôÁåü„ÞÊÏü†ü†8ü†)Äü†aü†Åü„vÀèü„~!Úü·ÐääääÞü·ÐääääÚüüüüüü­ÁäääääääääÕü­ÉäääääääääÚ‰ÐäääääääääÚüIäääääääääÕüüüüü¯×ÐÏü¯ÀÊÏüü°Èü¯ÁÇpáÀÏÈü°ÈÁÞÀìÀÈü°ÆÂÀŒøÀ¦ü°ëùÂÅü°ðü°ÅøÞ9ÁãÕü°ÃÉãÐÒÉäÚü°÷÷Êfü°ÃÄÁü±ùÊÂðÊ!ÄÑpÅü¯ÀéÂáŒÁÈIÈáü¯ÛêÁÞÃÅ‹Ù	Ï1ÀÁÀŽiü€ÈørÉrü¼Ðääãp>;Âyü¼ÖääãiS	Èü€	ÏIMü€VQü€p<ÂËü¿ÁÈQYÅÎÉaü‚IäÉÚßÀÁãÀ/Þü‚	ãÐÀèÛÈáßÞüüüüüüüüüüüüüüüüIäääääääääÕüäääääääääÚüüüüüüüüüüüüüüüüüüüüüüüüü‰Ûã9äÚÂ¤âÞÛÕü‰ÀÀýAÀïÀèÃ¤ÀwÀôßÀÐüŠÂÉÈ‘ÅÒ¥Äü‹É“Ì¦Åü†)ü†1ëüŠÂ“Å¦ÄÉåü‰ÁÀý’ÖÀè¥ÐÀôÉåü‰Áã’ÖÚ¥ÐÞPü‡(ü†1ü†)ü†)ü‡(ü‰ÀÈÉÀ¸ÀìÏ£Àv?ÀÐü‰ÛÈÉÞáÏ£àÕüüüüüüüüüäääääääääá‰ÉäääääääääÞÐäääääääääÚüÿääääääääÞ‰ÁäääääääääÚÉäääääääääÕüüüüüü£ÉääääÞü£ÉääääáüüüüÞ-üãüˆÐüˆÁÈ‘ÖáÛÈäÀÁ9ŸÁãÚü›ÐáßÏâÈyŸÉäÀÐüÎÎqÁÈŸÊwü¡É¡Áü‰ÂÝÛÕÛÏ‰ÏmRÁÈQ!ÄÑpyüˆÁÈáÖÏÖÕ‰Ó|rÒžÔIÈáÁÇüˆÐÁÈÍÍÍÆ‰ÐÈFðžÑ	Ï1ÀÁÀŽÁÚüãÔÏÏÙžÁÏørÉ2üÞÁqq	ääääääääYÏ}ÌIäääääääääääääääääääääääääääãi>;Âaü‹ßÕ
ääääääääYGIäääääääääääääääääääääääääääãiSü‹ßÚŒÔ{IQžÁÏIü˜ÐÈlÁÈÉžÑVü‹ÎqŠÓÁÈÔ<ÂÆÌüŒÅ‹ÏtÎ ÁÈQYÅÎÉiü‹ÍiÆŽßÏqyŸÉäÉÚßÀÁãÛÚüŒÍqŒÄÈÈó9ŸÁãÐÀèÛÈáÖÕü‹ÛÕÛÏü'ÏÖæüüüüüüü£Éääääáü£ÉääääÞüüüüüüÿääääääääÞ‰ÁäääääääääÚÉäääääääääÕüäääääääääá‰ÉäääääääääÞÐäääääääääÚüüüüüüüüüüüüüüüüüüüüüüüü„ÿÚAü„ïÀèÁü…)Âüü†Qü†Yü…)Ìü„ÀèÍü„Úü†qü†¾Ôü†þÔüüü„ìQÎü„üÕüüüüüüüüüäääääääääÚüIäääääääääÕüüüüüüüüüüüüüü‚	ã>ü‚IäFü‚QÈüƒ	ü‚Q!ÄÑpÉü¿ÁÈIÈáÊü€x	Ï1ÀÁÀŽËü°äÚAŒÐÈørÉü°ÀïÀèÁ‰Öääãp>;ÂÌü±ÅÂ‰ÐääãiS/À¼ü€	ÏI?À¼ü²ÊÑVü²ËÔ<Âü±ÅÌŒÁÈQYÅÎÉü°ÖÀèÍÉäÉÚßÀÁãü°ÖÚÁãÐÀèÛÈá9ü²Îü²À¾Ôü²ãÔüüü°ÀìQÎü°áÕüüüüüüüüüIäääääääääÕüäääääääääÚü­ÉäääääääääÚü­ÁäääääääääÕüüüüüü·ÐääääÚü·ÐääääÞüüüüüüü¯ÖáÛÈäÀÁ9ü¯ÐáßÏâÈyü±ÎÎqÁÈüµÉü²ÍRü¬Ï|rÒü¬ØGðü¬ÉÏÏÏÙü¨Éäää8Ï}Ìü¨ÐäääaGŽäÚAü­Õ{IQŽÀïÀèÁü¬ÐmÁÈÉÅÂü¬ÓÁÈü¬ÏtÎ“Êü±ßÏqyËü¯ÄÈÈó9ŽÅÌü„ÀèÍü„Úü†qü†¾Ôü†þÔüüü„ìQÎü·ÐääääÞüÕü·ÐääääÚüüüüüü­ÁäääääääääÕü­ÉäääääääääÚüäääääääääÚüIäääääääääÕüüüüü¯×ÐÏü¯ÀÊÏüü°Èü¯ÁÇpáÀÏÈü°ÈÁÞÀìÀÈü°ÆÂÀŒøÀ¦ü°ëùÂÅü°ðü°ÅøÞ9ÁãÚü°ÃÉãÐÒÉäÚü°÷÷Êü°ÃÄÁü±ùÊÂðŠÁÈQ!ÄÑpÀÈü¯ÀéÂáÔIÈáÖÕü¯ÛêÁÞÃÅ‹Ñ	Ï1ÀÁÀŽËÔü€	ÏørÉ)ü¼Ðääãi>;Âaü¼ÖääãiSü€	ÏIü€Vü€p<ÂÆÌü¿ÁÈQYÅÎÉiü‚IäÉÚßÀÁãÛÚü‚	ãÐÀèÛÈáÖÕüüüüüüüüüüüüüüüüIäääääääääÕüäääääääääÚüüüüüüüüüüüüüüÿ¡pf’:¯D“I501ileaf_page_string1:7-19¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³19¡,Õ²Interprocessor´µCommunicationµ(IPC)¡þ”²The´µDCGµgeneratesµprogramsµforµmultiprocessorµarchitecturesµfrom¡þÝaµblockµdiagram.µTheµpartitioningµofµtheµblockµdiagramµdefinesµthe¡þ%²cutµsignals²,µeachµofµwhichµconnectsµblocksµthatµareµtoµbeµexecuted¡þnonµdifferentµprocessors.µAnµinterprocessorµcommunicationµ(IPC)¡þ·capabilityµmustµbeµintroducedµforµtheµcutµsignals.¡þYEachµcutµsignalµisµreplacedµbyµanµIPCµpairµ(seeµFigure 7³6).µAnµIPC¡þ¢pairµconsistsµofµtwoµblocks,µaµsendingµIPCµblockµandµaµreceivingµIPC¡þëblock.µThereµisµnoµsignalµbetweenµtheµsendingµandµreceivingµIPC¡þ3blocks.¡þÖIPCµblocksµareµinstantiationsµofµstandardµCOSSAPµmodels.µThe¡þmodelsµofµanµIPCµpairµmustµbeµprogrammedµtogetherµbecauseµthe¡þginterprocessorµcommunicationµtheyµareµimplementingµisµbasedµonµa¡þ°commonµprotocol.µThisµprotocolµtypicallyµdependsµonµtheµtarget¡þùhardware,µtherefore,µIPCµmodelsµmustµbeµwrittenµaccordingly.µThe¡þAsendingµandµreceivingµmodelµofµanµIPCµpairµmustµbelongµtoµthe¡þŠsameµCOSSAPµlibrary.¡þ,YouµcanµreplaceµcutµsignalsµinµtheµblockµdiagramµwithµIPCµpairs.¡þuTheµDCGµautomaticallyµreplacesµallµremainingµcutµsignalsµinµthe¡þ¾blockµdiagramµwithµIPCµpairs.’¯èD“I501ileaf_page_string1:7-20¥	öäÃËÁâÊË¡Ä,Ë,µ¡Ä,µ	cµ¡Ä	cµ	cË¡Ä	cË,ËÆÃÁÊËÃ¡ÄþµÊµÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³20¡,É²Figure 7³6³Replacing´µaµCutµSignalµwithµanµIPCµModelµPair¡²:¥	öäÃÁÊË¡Äµ®µ/¡Äµ/y/¡Äy/y®¡Äy®µ®âãÇÆÃÃâ¡Ä®/¡Ä/D/¡ÄD/D®¡ÄD®®âÇÆÃâÊËÃ¡ÄDn­nÆÃ²¡•zBlock_AÃÊË¡ÄŒa­n¡Ä­nŒ|¡ÄŒ|Œn¡ÄŒnŒaÇÆÃ¡ÙzBlock_BÊËÃ¡Äõn€nÆÃÃ¡ÄynnÆÃ¡˜bCut Signal¡Ü$P1¡÷$P2ÃÊË¡Äô ô ¡Äô ž ¡Äž ž ¡Äž ô âÇÆÃÃâ¡Äia€n¡Ä€ni|¡Äi|in¡ÄiniaÇÆÃ¡ìBlock_AÊËÃ¡Ä²àõàÆÃ¡6•P1ÃÊË¡Äían¡Äní|¡Äí|ín¡ÄíníaÇÆÃÃ¡Äà&à ¡Äà Á ¡ÄÁ Á&¡ÄÁ&à&âÇÆÃâ¡üìIPC_SendÊËÃ¡ÄžàâàÆÃ¡"•P1ÃÊË¡ÄM&M ¡ÄM  ¡Ä &¡Ä&M&âÇÆÃâ¡kìIPC_RecÊËÃ¡ÄäSäÆÃÃÊË¡ÄÞÓõà¡ÄõàÞí¡ÄÞíÞà¡ÄÞàÞÓÇÆÃ¡·•P2Ã¡Äb b ¡Äb  ¡Ä  ¡Ä b âÇÆÃâ¡pìBlock_BÊËÃ¡ÄàcàÆÃ¡¤•P2ÃÁÊË¡Ä#¡Ä#ùT¡ÄùTÐ¡ÄÐäâÇÆÃÃÁâÊË¡ÄÊÓâà¡ÄâàÊí¡ÄÊíÊà¡ÄÊàÊÓÇÆÃÃÁÊË¡ÄÐ¡ÄÐäÐ¡ÄäÐäâÇÆÃÃÁâÊË¡Ä<ÖSä¡ÄSä<ñ¡Ä<ñ<ä¡Ä<ä<ÖÇÆÃÃ¡ÄLÓcà¡ÄcàLí¡ÄLíLà¡ÄLàLÓÇÆÃ²¡V:¡þ²
Interface´µofµIPCµModels¡þ«²Example 7³4´µshowsµtheµentriesµinµaµmodelµdefinitionµfileµforµanµIPC¡þómodel.¡,­²Example 7³4³ModelµDefinitionµFileµEntries¡þ².NAME¡þ:´µ²name¡þn².SHORT_DESCRIPTION¡þ¡µ...¡þß.DESCRIPTION¡þµ...¡þG.CLASSES¡þ„µ1µIPC¡þÂ.IMPLEMENTATIONS¡þöµ...¡þ	*.PARAMETERS¡þ	^µ1µDCG_IPC_Identifierµ(I)¡þ	‘µ2µCHANNEL_Identifierµ(I)¡þ	Åµ3µ...¡þ
.INPUT_PORTS¡þ
7µ1µ²input_port_name²µ(²data_type²)¡þ
t.HISTORY¡þ
¨µ...¡þ
Ü.END’è D“I501ileaf_page_string1:7-21¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³21¡þÉ²An´µIPCµmodelµrequiresµtwoµspecificµparameters.µTheseµtwo¡þparametersµmustµbeµdeclaredµasµparametersµ1µandµ2,µandµtheyµmust¡þZhaveµtheµfollowingµnames:¡…î²1´µDCG_IPC_Identifier¡…$2µCHANNEL_Identifier¡þû²Parameter´µ1,µDCG_IPC_Identifier,µidentifiesµtheµcorrespondingµIPC¡þDblocksµofµanµIPCµpair.µThatµis,µtheµsendingµandµreceivingµblocksµof¡þŒanµIPCµpairµmustµhaveµtheµsameµintegerµvalueµforµparameter¡þÕDCG_IPC_Identifier.µBecauseµthisµintegerµvalueµmustµbeµuniqueµin¡þtheµdesign,µnoµotherµIPCµblockµcanµhaveµtheµsameµvalueµforµthis¡þfparameter.µAnµIPCµblockµisµidentifiedµbyµparameter¡þ¯DCG_IPC_Identifier.¡þqParameterµ2,µCHANNEL_Identifier,µservesµasµanµidentifierµforµthe¡þºchannelµthatµisµusedµbyµtheµsendingµandµreceivingµmodelµofµanµIPC¡þpairµforµinterprocessorµcommunication.¡þÄAnµIPCµmodelµmayµhaveµadditionalµparameters.µAµsendingµIPC¡þmodelµmustµhaveµoneµinputµportµandµnoµoutputµports.µAµreceiving¡þVIPCµmodelµmustµhaveµoneµoutputµportµandµnoµinputµports.¡þ	Ifµyouµuseµaµcutµsignalµinµyourµblockµdiagram,µtheµDCGµautomatically¡þ	`setsµtheµvaluesµofµtheµDCG_IPC_IdentifierµandµCHANNEL_Identifier¡þ	©parametersµwhenµitµreplacesµtheµcutµsignalµwithµIPCµblocks.µIfµyou¡þ	òplaceµIPCµblocksµinµtheµblockµdiagramµmanually,µyouµmustµassign¡þ
:valuesµtoµtheseµparametersµwithinµtheµBlockµDiagramµEditor.µIPC¡þ
ƒblocksµwithµmoreµthanµtheseµtwoµparametersµcannotµbeµinserted¡þ
ÌautomaticallyµbyµtheµDCG;µtheyµmustµbeµinsertedµmanuallyµinµa¡þblockµdiagramµandµtheirµparameterµvaluesµmustµbeµexplicitlyµset.’ GD“I501ileaf_page_string1:7-22¥	öäÃËÁâÊË¡Ä,¿,©¡Ä,©	c©¡Ä	c©	c¿¡Ä	c¿,¿ÆÃÁÊËÃ¡Äþ©Ê©ÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³22¡þÉ²The´µimplementationµfilesµ(.gc)µofµIPCµmodelsµmustµspecifyµtheµname¡þofµtheµmodelµbyµusingµtheµkeywordµMODELNAME.µIfµthe¡þZMODELNAMEµkeywordµisµnotµspecified,µautomaticµIPCµpair¡þ£insertionµofµinstantiationsµofµtheseµmodelsµisµnotµpossible.µFor¡þìexamples,µseeµtheµ²COSSAPµModelµUserµGuide²µandµtheµfollowing¡þ4section,µIPCµModelµLibraryµforµtheµTMS320C40."¡þÓAutomaticallyµinsertedµIPCµmodelsµmustµspecifyµtheirµdataµratesµin¡þtheµimplementationµfileµ(.gc)µbyµusingµtheµkeywordµRATE.¡þù²
IPC´µModelµLibraryµforµtheµTMS320C40¡þ•²Example 7³5´µshowsµaµsendµandµreceiveµpairµofµIPCµmodels.µThese¡þÝIPCµmodelsµoperateµviaµtheµhigh³speedµcommunicationµportsµofµthe¡þ&TMS320C40.µTheseµmodelsµcanµbeµusedµforµdifferent¡þncommunicationµchannelsµbyµsettingµtheµCHANNEL_Identifier¡þ·parameter.µAµblockµfactorµisµspecifiedµtoµenableµvectorization.¡,d²Example 7³5³IPCµModelµPair¡,´² /******************************************************************¡,ê´µµSendingµinterprocessorµcommunicationµmodel,µTMS320C40.¡, ******************************************************************/¡,WMODELNAMEµout_msg¡,Ã#includeµ<compt40.h>¡,	0INPUT_PORT(1)µregisterµSIGNALµ*ipc_in;¡,	fRATE(INPUT_PORT(1))=µ1;¡,	ÓPARAMETER(1)µintµDCG_IPC_Identifier;¡,
	PARAMETER(2)µintµCHANNEL_Identifier;¡,
vBLOCKFACTORµintµblockfactor;’G6D“I501ileaf_page_string1:7-23¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³23¡,½² void´µipc_out_msg()¡,ó{¡,*µµlong*µmsgµ=µ(longµ*)ipc_in;¡,–µµ/*--------------------------------------------------------------*/¡,Íµµ/*µSETµUPµCOMMµPORTµCHANNELµMEMORYµPOINTERµµµµµµµµµµµµµµµµµµµµµµ*/¡,µµ/*--------------------------------------------------------------*/¡,:µµvolatileµCOMPORT_REGµ*cp_ptrµ=µCOMPORT_ADDR(CHANNEL_Identifier);¡,pµ¡,§µµ/*--------------------------------------------------------------*/¡,Ýµµ/*µµSENDµOUTµTHEµLENGTHµANDµTHEµMESSAGEµDATAµµµµµµµµµµµµµµµµµµµµ*/¡,µµ/*--------------------------------------------------------------*/¡,JµµLOOP(blockfactor)¡,€µµµµcp_ptr->out_portµ=µ*msg++;¡,·µµENDLOOP¡,í}¡,Z/******************************************************************¡,‘µµReceivingµinterµprocessorµcommunicationµmodel,µTMS320C40.¡,Ç******************************************************************/¡,þMODELNAMEµin_msg¡,k#includeµ<compt40.h>¡,×OUTPUT_PORT(1)µregisterµSIGNALµ*ipc_out;¡,RATE(OUTPUT_PORT(1))µ=µ1;¡,{PARAMETER(1)µintµDCG_IPC_Identifier;¡,±PARAMETER(2)µintµCHANNEL_Identifier;¡,BLOCKFACTORµintµblockfactor;¡,‹voidµipc_in_msg()¡,Á{¡,øµµlong*µmsgµ=µ(longµ*)ipc_out;¡,	eµµ/*--------------------------------------------------------------*/¡,	›µµ/*µSETµUPµCOMMµPORTµCHANNELµMEMORYµPOINTERµµµµµµµµµµµµµµµµµµµµµµ*/¡,	Òµµ/*--------------------------------------------------------------*/¡,
µµvolatileµCOMPORT_REGµ*cp_ptrµ=µCOMPORT_ADDR(CHANNEL_Identifier);¡,
?µ’6ÝD“I501ileaf_page_string1:7-24¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³24¡,½² ´µµ/*--------------------------------------------------------------*/¡,ñµµ/*µµREADµINµTHEµMESSAGEµDATAµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ*/¡,&µµ/*--------------------------------------------------------------*/¡,ZµµLOOP(blockfactor)¡,µµµµ*msg++µ=µcp_ptr->in_port;¡,ÃµµENDLOOP¡,ø}¡þ²The´µsendingµIPCµmodelµOUT_MSGµhasµoneµinputµportµofµtype¡þÊSIGNAL.µTheµreceivingµIPCµmodelµIN_MSGµhasµoneµoutputµportµof¡þtypeµSIGNAL.¡þ Whenµactivated,µtheµnumberµofµsamplesµprocessedµbyµtheseµmodels¡þèisµoneµtimesµtheµblockµfactor.µTheµblockµfactorµallowsµaµvectorized¡þ1executionµofµtheseµmodels.¡þ¾TheµparameterµDCG_IPC_Identifierµidentifiesµtheµsendingµand¡þreceivingµIPCµblocksµthatµbelongµtoµoneµIPCµpair.µTheseµtwoµIPC¡þOblocksµimplementµanµinterprocessorµcommunication.¡þÜTheµparameterµCHANNEL_Identifierµspecifiesµtheµchannelµthrough¡þ$whichµdataµbetweenµtheµtwoµprocessorsµisµexchanged.µInµthisµcase,¡þmCHANNEL_Identifierµrepresentsµoneµofµtheµsixµcommunicationµports¡þ¶ofµtheµTMS320C40.¡þBTheµstructureµCOMPORT_REGµisµdefinedµinµtheµparallelµruntime¡þ‹supportµlibraryµ(prts-library)µforµtheµTMS320C40µandµprovides¡þÔsimpleµaccessµtoµtheµcommunicationµportµregisters.µHeader³file¡þ	compt40.hµofµprts-libraryµis,µtherefore,µincluded.¡þ	©COMPORT_ADDRµreturnsµtheµmemoryµlocationµofµone¡þ	òcommunicationµport.µWithinµtheµLOOPµconstruct,µtheµinputµsamples¡þ
:ofµtheµsendingµIPCµmodelµareµlatchedµinµtheµFIFOµofµthe¡þ
ƒcorrespondingµTMS320C40.µTheµreceivingµIPCµmodel,µinµturn,µreads¡þ
ÌfromµtheµinputµFIFOµofµtheµselectedµcommunicationµportµofµthe¡þcorrespondingµTMS320C40.’ÝMD“I501ileaf_page_string1:7-25¥	öäÃËÁâÊË¡Ä,Á,«¡Ä,«	c«¡Ä	c«	cÁ¡Ä	cÁ,ÁÆÃÁÊËÃ¡Ä,«Ê«ÆÃ¥	öäÃÁÊË¡Ä,,	¡Ä,		c	¡Ä	c		c¡Ä	c,ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡·Á²Multiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³25¡þÉ²For´µmoreµinformation,µseeµtheµ²TMS320C4xµUser'sµGuide,¡þCommunicationµPorts².¡,²Examples¡þ¯²Thisµsectionµpresentsµthreeµexamplesµofµmultiprocessor¡þøconfigurations.µTheseµexamplesµareµdesignedµtoµhelpµyouµgainµan¡þAunderstandingµofµtheµstepsµrequiredµtoµgenerateµmultiprocessorµDSP¡þ‰code.¡þY²
DEMUX¡þë²ThisµexampleµdemonstratesµtheµinsertionµofµtheµIPCµblocksµinµthe¡þ4generatedµcodeµwithoutµpresentingµcomplexµsignalµprocessing¡þ}functionalityµinµtheµblockµdiagram.µTheµfilesµforµthisµexampleµare:¡þõ²${COSSAP_DIR}/demos/mdcg_ex/schematic/demux.sch¡þ)${COSSAP_DIR}/demos/mdcg_ex/demux.attr´µ¡þ]${COSSAP_DIR}/demos/mdcg_ex/hydra01.dcg_arch¡þï²
Block´µDiagram¡þ‚²The´µDEMUXµdesignµconsistsµofµtwoµindependentµconstantµsample¡þÊgenerators,µlocatedµonµtheµfirstµprocessor,µthatµsendµtheµsignals¡þ	immediatelyµtoµtheµsecondµprocessor.µTheµsecondµprocessor¡þ	\receivesµbothµsignals,µperformsµtheµoperationsµshownµinµFigure 7³7¡þ	¤andµsendsµtheµresultsµbackµtoµtheµfirstµprocessor,µwhereµfinal¡þ	íprocessingµisµperformed.¡þ
ƒSuchµaµbidirectionalµtaskµmappingµisµsometimesµnecessaryµto¡þ
Ìachieveµanµoptimalµload³balancingµforµaµspecialµconfigurationµandµa¡þgivenµhardwareµstructure.’MrD“I501ileaf_page_string1:7-26¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³26¡þÉ²Before´µgeneratingµcode,µcreateµaµCOSSAPµDSPµnetlistµfirstµinµthe¡þBlockµDiagramµEditor.¡,Î²Figure 7³7³DEMUXµBlockµDiagram¡Å¥	öäÒÓÐÅëeÞbßcûÈüüüüOá>üˆÂÉÁÈÍÚµÖÚøüˆÀùÒ	ÜÇïÄ”ÐÞ|œÄËIÊÃÏüˆÃAAÎ•Ã×	ÀƒaÕ˜ÉÀäÔÀùÁÃÆü‰ÒÁîÀ””ÁÀòÀaÝÈéÅ™Å
ÃÂÁÈüˆÃCÂÈ–Ä×È‚ÁyšÔ!Éù÷ëüˆÀùÎÁéÀ…ð™Å
üˆÂ—ÄÂ	šÉÀäüˆá
–ÁÀòÃÈžÄüŒÈÉÀÈ–Ãø
šÉÚ(ü‹Ây–ÁÞõžÂÆüŒïÖÀÊÀ”–ñ	æÄÉü‹ÁÜÇq–ìÁÈžÁÃßÀ*ëüŒÀÁÈÁÄ–Å‚ÛÀ•ðœÃÀù	ÈüOI>iÚ–ÛÈÂÝÈyœÉÊÆü¨ÁÀƒÅ˜ËYøÃÏüŠÛÞ˜ÊÈ|aÕüˆÕüŠÛÞ›ßÚüˆÕü§ßÚüüüüüüüüüüüÖääÚÖääÚÖääÚÖääÚÖääÚÖäÏüÐääÚÖääÚÖääÚÖääÚÖääÚÖäÏüü¸ÖääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕüœÛäÕÛääÕÛääÕÛääÕÛääÕÛääÕääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÏü–ÆäÕÛääÕÛääÕÛääÕÛääÕÛääÏüœÆ›ÅüüüüüüüüüüüüüüüÄü²Æüü›1üüüüüÄ•ÆüœÆ•Æ-üü›1üüüüü–ÆüœÆ›ÅüüüüüüüüüüüüüüüÄü²Æüü›1üüüüüÄ•ÆüœÆ•Æ-üü›1üüüüü–ÆüœÆ›Åüüüüüüüüüüüü?ääääääääääääääääŒÛääääääääääääääääÏüäääääääääääääääãŒÖääääääääääääääääÈüüÄü²Æüü›1üüüüüÄ•ÆüœÆ•Æ-üü›1üü”ÀéÏöÀŒÎ˜ÀtÏÌÀÆÅü“ÁÀãÏÀ[ÀÞÔ˜ÀñÏÀ=Àïü”ÏÎp˜ÎÅ2ü“ÁÕÇÆp˜ÚHüœÆ˜Àh*ü“ÁÀãÕÀ[ÀÞÔ˜ÀñÀÐÀ=Àïü<×ÅÀGÀŸÏÖÛæÇÀÉÀßöÀŒÎÀÃÀòÂîïÄìÀ#È3ÀäÀÏÀ˜ÀÆÅü~ßÄÖÀÝÏÛÀç<‰ÈKÀáÀñÃcÍÃÐÏ+ÈüÂÀaÀŒ9iÈË4‹ÇllÊÃ$ü‰Ñ‰Å‘ÁÀŒ6{üˆÊÐÈIÀÀ†$‹ÆÚIÁÈüˆÉÁÏIÖÀƒääÀßäääääÀßäãÚÀØ	ÀƒLäÀßäääääÀïäääääääü‰Ä‰ÐääÀßäääääÀßäã‰À6RLäÀßäääääÀïäääääääÈüÂÀaêÈ1	È#‹Ælp|ü~ßÏÖÈÈk‹ÇKÀáÚ~ÀcCÏ#ü<×ÅÀGéÀŸæÇ;‹ÈÀÃÀòòØïÄìÀ'Ï+ü‹ßÈFŠÁ‘Æü‹ßÈüüÄü²Æüü›1üüü*ÅÇšÄøÚü"ÆÈšÃÅÚüÄ
È‘Æ§ÑÀœÉÌÀÂüZÎ˜ÆRÍÕÆ-ØÐÀ½ÕüKœÁÚœËÊüRÀÆ›ÉÎ×Ã	˜ÆüKå›Á¡ÀüJÀ‡åšÁÏ×ÜÐÀ½Õü ÁÚœÒÀƒÀ{ÌÀÂüÅÇšÄçÕÅÄü–Æ¨ÄÅüäääääääääääääääã‰ÆääääääääääääääääÈ/VÆü?ääääääääääääääääŒÛäääääääãÿääääääÏ‰ÛääääãßääääÚˆÖääääääääääáü§ÁÁ‘ÖääääääääääÕˆÐääääääääääÞü¨éüü¨íü¨ðüüüüüüüüüÄü²Æüü†ÀœÉÌÀÆÆü†ØÐÀ½Àïü†YÊü†ÃüüÄ•Æ¥ÂÂîïÒìóÜÐÀ½ÀïõÇÈüœÆ•Æ-ÃcÜÃÊ"ÒÀÀóÌÀÆClü€1ÊÊ	Ú=tü¼ÁÀŒ6ÊLˆÆ|7ü¿ÒËÉD/ü½ÀØÌÁÈäääääääÏü¿À6Íäääääääuü½Ô|C/lü–Æ§àÀc×9
ÌØÙüœÆ›ÅòØïÜìóˆÆ÷ÝÞü…YˆÏüüüüüüüüüüºÄøÚ‘ÃÃÔüºÃöÕ‘ÂÄÞü§ÀéÏÀ1ÀŒÔÍü¦ÁÀãÏÀ{ÀÞÚŽÊÍ’ÉÌÞüÄ¦ÏÎrÎ“Þü¦ÁÕÇp6OÎ’ÁÀ°üü¦ÁÀãÕÀ{ÀÞÚŽÁÏÏ’Õ‹Æü¦ÁÀÈÀ/À1ÀŒÎ¤Þü§ÁÁ‘ÄçÈ‘ÃíÔü¨éü¨í‘ÖääääääääääÕˆÐääääääääääÞüÄ?ääääääääääääääää3‹ÉäääääÀÇäääääŒÛäääääâääääÚˆÖääääääääääáüäääääääääääääääã‰Æääääääääääã4-Çü¿ÂÆü¿Ã›Æü¿ÄÅü¿ÅÄü¿ÛÙüü–ÆüœÆ›Åüüüüüüüü”ÀéÏöÀŒÎLÀ§ÆÀ1È‹ÁÀÓÈÀcÀÕü“ÁÀãÏÀ[ÀÞÚÀÁÀïÀ{Ï‹ÉÀÇÈÀ÷ÀÏü”ÏÎOÁÈŽÁÈÏrü“ÁÕÇàêJÈ‹ÉÏÈzü˜ÎˆÁÈü<×ÅÀGÀŸÏÖÛæÇÀãÕÀ[ÀÞÔÀêÀïÀyÏÖÀ‡ÀÁÏKÀÇÏÀ÷Àœü~ßÄÖÀÝÏÛÀçÀÉÀßöÀŒÎÀ'ÝÀÆÀ1åÐÀÃÀãÕƒÀ“À¾ÀcÌÈüÄÂÀaÀŒ9iÈË<‰Ý*uÀ2<>ü‰Ñ‰ÍŽÄÈr33üˆÊÐÈIÀÀ†$ŽÃ+üˆÉÁÏIÖÀƒääÀßäääääÀßäääääÏ
ÈäääääääääÀïäääääää›Æü‰Ä‰ÐääÀßäääääÀßäääääÏÏIäääääääääÀïäääääääÈüÂÀaêÈ1	È#ŽÃuÍ,ü~ßÏÖÈÈ+“ÐÀÃÀáÕü<×ÅÀGéÀŸæÇ3ŽÄ+ÀOÀ‡ÀÃÕ3üÄŠßÈ>2‹Å‹Çü‹ßÈFˆÆ5‹È3-üü›1üüüüü–ÆüœÆ›Åü*öÏÁÁÒü"À#ÕžéÜü¤ÂüZÎŸÀÆËüKÏŸ×üRÀÁÏžÀlÅüüJéŸÓüKÕŸÜüöÏÁöÒ™ÑÀœÉÌÀÏü¾×ØÐÀ½ÀîüäääääääääääääääãÁääääääääääãËÊJü?ääääääääääääääääÉäääääääääää×ÃRüüÄ½×ÜÐÀ½Õü²Æ‹ÒÀÀóÌÀÄü¿ÁÚü›1üüüüüÄ•ÆüœÆ•Æ-üü›1üüüüü–ÆüœÆ›ÅüüüüüüüüüüüüüüüÄü²Æüü›1üüüüüÄ•ÆüœÆ•Æ-üü›1üüüüü–ÆüœÆ›ÅüüüüüüüüüüüüüüÐäÕÛääÕÛääÕÛääÕÛääÕÛääÏüÖäÕÛääÕÛääÕÛääÕÛääÕÛääÕääÏßääÏßääÏßääÏßääÏßäÏüœßääÏßääÏßääÏßääÏßääÏßäÕü¸ÖääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÏü¸ÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕüüüüüüüÿ¡	1¡þÄ²
Architecture¡þl²TheµarchitectureµonµwhichµtheµDEMUXµblockµdiagramµisµmapped¡þµconsistsµofµtwoµprocessors,µP1_C40µandµP2_C40,µofµtheµsameµtype¡þþTMS320C40.µBothµprocessorsµmakeµuseµofµdataµexchangeµvia¡þ	Fspecializedµcommunicationµchannels.¡þ	òDespiteµtheµtwoµlinksµ(oneµforµeachµdirection)µshownµinµthe¡þ
:architectureµdiagramµinµFigure 7³8,µtheµconnectionµconsists¡þ
ƒphysicallyµofµtwoµbidirectionalµchannels,µoneµforµaµcommunication¡þ
Ìportµonµeachµprocessorµandµoneµforµaµdataµchannelµforµbidirectional¡þdataµtransfer.’raD“I501ileaf_page_string1:7-27¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³27¡þÉ²The´µarchitectureµfileµhydra01.dcg_archµprovidesµtheµcodeµgenerator¡þwithµallµinformationµconcerningµtheµhardwareµstructureµandµthe¡þZsuppliedµintercommunicationµdriversµ(seeµExample 7³6).¡,²Example 7³6³ArchitectureµFileµhydra01.dcg_arch¡þc²--´µprocessorµdeclaration¡þ–------------------------¡þÊPROC{¡þþµµNAME{P1_C40}¡þ2µµTYPE{tms320c40}¡þfµµPORTS{p1,p2}¡þš}¡þÎ¡þPROC{¡þ6µµNAME{P2_C40}¡þiµµTYPE{tms320c40}¡þµµPORTS{p1,p2}¡þÑ}¡þ¡þ9--µtopologyµsection¡þm-------------------¡þ¡LINK{¡þÕµµNAME{PL1}¡þ	µµSOURCE{µPROC{P1_C40}µPORT{p1}}¡þ<µµSINK{µPROC{P2_C40}µPORT{p1}}¡þpµµDRIVER{D1}¡þ¤}¡þØ¡þLINK{¡þ@µµNAME{PL2}¡þtµµSOURCE{µPROC{P2_C40}µPORT{p2}}¡þ¨µµSINK{µPROC{P1_C40}µPORT{p2}}¡þÜµµDRIVER{D1}¡þ	}¡þ	C¡þ	w--µipcµdriverµsection¡þ	«--------------¡þ	ß¡þ
DRIVER{¡þ
GµµNAME{D1}¡þ
{µµLIB{/{$COSSAP_DIR}/models/ipc}¡þ
¯µµSEND{µNAME{out_msg}}¡þ
âµµRECEIVE{µNAME{in_msg}}¡þµµPAR{µNAME{µCHANNEL_Identifierµ}’a6D“I501ileaf_page_string1:7-28¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³28¡þÃ²´µµµµµµµPROC{µNAME{µP1_C40µ}¡þ÷µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{0}}¡þ+µµµµµµµµµµµµµMAP{µPORT{p2}µVAL{0}}¡þ_µµµµµµµ}¡þ’µµµµµµµPROC{µNAME{µP2_C40µ}¡þÆµµµµµµµµµµµµµMAP{µPORT{p1}µVAL{3}}¡þúµµµµµµµµµµµµµMAP{µPORT{p2}µVAL{3}}¡þ.µµµµµµµ}¡þbµµ}¡þ–}¡þô²The´µlinksµPL1µandµPL2,µwhichµconnectµprocessorsµP1_C40µand¡þ=P2_C40µdeclaredµinµtheµ²processorµdeclaration²,µareµdeclaredµinµthe¡þ…topologyµsection.µInµtheµtopologyµsection,µforµexample,µlinkµPL1µis¡þÎdefinedµasµconnectingµportµp1µofµprocessorµP1_C40µwithµportµp1µof¡þP2_C40,µusingµdriverµD1µforµtheµimplementationµofµtheµlink.¡þ¹Theµipcµdriverµsectionµdoesµtheµfollowing:¡þ>²S¡X>²specifiesµwhichµIPCµblocksµ(inµpairs)µtoµuseµforµaµspecificµlink¡þ±²S¡X±²ConfiguresµparametersµofµtheµIPCµblocks¡þ%²S¡X%²IndicatesµthatµtheµIPCµmodelsµcanµbeµfoundµinµtheµlibrary¡Xldirectoryµ${COSSAP_DIR}/models/ipcµandµareµspecifiedµas¡X²out_msgµandµin_msg.¡þDFollowingµtheµPARµkeyword,µtheseµprotocolsµareµparameterizedµwith¡þŒhardware³dependentµchannelµnumbers.µForµexample,µportµp1µof¡þÕP1_C40µusingµtheµout_msgµprotocolµisµphysicallyµmappedµonto¡þ	channelµnumberµ0"µaccordingµtoµtheµHYDRAµhardware.’6¯D“I501ileaf_page_string1:7-29¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³29¡,É²Figure 7³8³Architecture´µDiagramµofµExampleµQuad2PE¡,#²¥*þžÃËÁÊË¡Äƒžƒ.¡Äƒ.H.¡ÄH.Hž¡ÄHžƒžâãÇÆÃÃâ¡Ä>ž>.¡Ä>..¡Ä.ž¡Äž>žâÇÆÃâÊËÃ¡ÄF8:8ÆÃÃÊË¡ÄcIF8¡ÄF8c(¡Äc(c8¡Äc8cIÇÆÃ²¡!%PL2¡,Þ¤ÿ´P1_C40¡PÞ¤ÿ´P2_C40¡Fp2¡YFp2¡,¤ÿštms320c40¡P¤ÿštms320c40ÊËÃ¡ÄF¢:¢ÆÃÃÊË¡Ä’:¢¡Ä:¢³¡Ä³¢¡Ä¢’ÇÆÃ¡!PL1¡°p1¡Y°p1¥	öä²¡Ê#¡þ²
Attribute¡þº²Onceµtheµarchitectureµhasµbeenµspecified,µyouµnowµdefineµthe¡þmappingµinµtheµattributeµfile.µFirst,µallµblocksµ(exceptµforksµand¡þLdelays)µareµassignedµtoµaµprocessorµbyµusingµtheµinstanceµname¡þ”assignedµtoµeachµblockµbyµtheµBlockµDiagramµEditor.µNext,µthe¡þÝcutarcsµareµoptionallyµassignedµtoµtheµlinksµdefinedµinµthe¡þ&architectureµfile.µWeµuseµtheµtermµ²cutarc²µinµthisµexampleµtoµreferµtoµa¡þnsignalµconnectingµtwoµblocksµthatµareµmappedµonµdifferent¡þ·processors.¡þ]Ifµtheµcutarcµlinksµareµnotµspecifiedµinµtheµattributeµfile,µtheµDCG¡þ¦automaticallyµmapsµtheµcutarcsµontoµtheµsuitableµlinks.¡þ	LBecauseµthereµareµnoµoptionalµlinksµdefinedµinµtheµarchitectureµfile¡þ	”forµthisµexample,µtheµsignalµmappingµpartµinµtheµattributeµfileµisµnot¡þ	Ýnecessaryµbutµisµincludedµforµillustrationµpurposes.¡þ
ƒYouµcanµdetermineµtheµcutarcµnumberµbyµusingµtheµBlockµDiagram¡þ
ÌEditorµtoµviewµtheµsignal'sµidentifier,µwhichµisµdisplayedµonµtheµblock¡þdiagram.’¯‹D“I501ileaf_page_string1:7-30¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³30¡þÉ²The´µattributeµfileµisµpartµofµtheµgeneratedµCOSSAPµnetlist.¡þExample 7³7µshowsµanµexampleµofµanµattributeµfile.¡,ª²Example 7³7³AttributeµFile¡þû²OBJECT¡þ/´µµOBJTYPEµinstance¡þcµµOBJNAMEµM9¡þ–µµMODELNAMEµconst_gen¡þÊµµLIBRARYµDSP¡þþµµPRIMITIVEµyes¡þ2µµATTRIBUTEµdcg_processorµ"P1_C40"¡þfOBJECT¡þšµµOBJTYPEµinstance¡þÎµµOBJNAMEµM4¡þµµMODELNAMEµconst_gen¡þ6µµLIBRARYµDSP¡þiµµPRIMITIVEµyes¡þµµATTRIBUTEµdcg_processorµ"P1_C40"¡þÑOBJECT¡þµµOBJTYPEµinstance¡þ9µµOBJNAMEµM6¡þmµµMODELNAMEµadd2¡þ¡µµLIBRARYµDSP¡þÕµµPRIMITIVEµyes¡þ	µµATTRIBUTEµdcg_processorµ"P2_C40"¡þ<OBJECT¡þpµµOBJTYPEµinstance¡þ¤µµOBJNAMEµM5¡þØµµMODELNAMEµdemux1in2¡þµµLIBRARYµDSP¡þ@µµPRIMITIVEµyes¡þtµµATTRIBUTEµdcg_processorµ"P2_C40"¡þ¨OBJECT¡þÜµµOBJTYPEµinstance¡þ	µµOBJNAMEµM7¡þ	CµµMODELNAMEµmux2in1¡þ	wµµLIBRARYµDSP¡þ	«µµPRIMITIVEµyes¡þ	ßµµATTRIBUTEµdcg_processorµ"P1_C40"¡þ
OBJECT¡þ
GµµOBJTYPEµinstance¡þ
{µµOBJNAMEµM8¡þ
¯µµMODELNAMEµkill¡þ
âµµLIBRARYµDSP¡þµµPRIMITIVEµyes’‹ßD“I501ileaf_page_string1:7-31¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³31¡þÃ²´µµATTRIBUTEµdcg_processorµ"P1_C40"¡þ÷OBJECT¡þ+µµOBJTYPEµnet¡þ_µµOBJNAMEµSIG_0009¡þ’µµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þÆOBJECT¡þúµµOBJTYPEµnet¡þ.µµOBJNAMEµSIG_0003¡þbµµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þ–OBJECT¡þÊµµOBJTYPEµnet¡þþµµOBJNAMEµSIG_0007¡þ2µµATTRIBUTEµdcg_ipc_linkµ"PL2"¡þeOBJECT¡þ™µµOBJTYPEµnet¡þÍµµOBJNAMEµSIG_0004¡þµµATTRIBUTEµdcg_ipc_linkµ"PL2"BLOCKµ{¡þÖ²
Verification¡þv²After´µhavingµspecifiedµtheµattributeµfile,µyouµcanµgenerateµtheµcode¡þ¿forµallµprocessingµunitsµbyµinvokingµxdcg.µTheµgeneratedµcodeµis¡þstoredµinµtheµdirectoryµyouµspecifyµinµtheµOutputµdirectoryµtextµentry¡þPfieldµinµxdcg.µTheµnamesµofµtheµgeneratedµcodeµfilesµhaveµthe¡þ™followingµform:¡þ²basedirectory²_²processor².c¡þ­²whereµ²basedirectory²µisµtheµoutputµdirectoryµnameµwithoutµpath¡þöinformationµandµ²processor²µisµtheµnameµofµtheµprocessorµforµthat¡þ	?code.¡þ	ãForµexample,µifµyouµenterµ/user/dcg/projectµforµtheµoutputµdirectory,¡þ
+theµDCGµgeneratesµtheµfollowingµfilesµinµdirectoryµ/user/dcg/project:¡…
ª²project_P1_C40.c¡…
àproject_P2_C40.c’ß¯D“I501ileaf_page_string1:7-32¥	öäÃËÁâÊË¡Ä,¡,‹¡Ä,‹	c‹¡Ä	c‹	c¡¡Ä	c¡,¡ÆÃÁÊËÃ¡Äþ‹Ê‹ÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³32¡þÉ²For´µthisµexample,µtheµgeneratedµcodeµisµbasedµonµtheµfollowing¡þschedules:¡þ›GeneratedµscheduleµforµP1_C40:¡…²2´µxµCONST_GENµ(M4)¡…>2µxµout_msgµ(ipcs_SIG_0003)¡…t1µxµin_msgµ(ipcr_SIG_0004)¡…ª1µxµCONST_GENµ(M9)¡…à1µxµout_msgµ(ipcs_SIG_0009)¡…1µxµin_msgµ(ipcr_SIG_0007)¡…L1µxµMUX2IN1µ(M7)¡þ½²Generated´µscheduleµforµP2_C40:¡…+²2´µxµin_msgµ(ipcr_SIG_0003)¡…a1µxµDEMUX1IN2µ(M5)¡…–1µxµout_msgµ(ipcs_SIG_0004)¡…Ì1µxµin_msgµ(ipcr_SIG_0009)¡…1µxµADD2µ(M6)¡…81µxµout_msgµ(ipcs_SIG_0007)¡þÚ²
Route¡þ`²This´µexampleµpresentsµaµsolutionµforµmappingµaµconnectionµofµtwo¡þ¨blocksµonµaµhardwareµtopology;µinµwhichµtheµhostµprocessorsµof¡þñtheseµblocksµareµnotµconnectedµdirectlyµwithµaµphysicalµlink,µbutµwith¡þ:aµcommonµprocessor.µTheµfilesµforµthisµexampleµare¡…§²${COSSAP_DIR}/demos/mdcg_ex/schematic/route.sch¡…Ý${COSSAP_DIR}/demos/mdcg_ex/route.attr¡…	${COSSAP_DIR}/demos/mdcg_ex/hydra05.dcg_arch¡þ	µ²
Block´µDiagram¡þ
:²The´µblockµdiagramµforµtheµROUTEµdesignµisµshownµinµFigure 7³9.¡þ
ƒTheµgeneratedµsourceµsignalµonµP1µisµsplitµupµbyµaµdemultiplexer.¡þ
ÌOneµsignalµisµsentµtoµprocessorµP2,µandµtheµotherµisµsentµto¡þprocessorµP3.’¯œD“I501ileaf_page_string1:7-33¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³33¡þÉ²The´µrequiredµlinkµofµtheµunconnectedµprocessorsµcanµbeµrouted¡þmanuallyµthroughµtheµintermediateµprocessorµbyµinsertingµan¡þZadditionalµblock.¡,²Figure 7³9³RouteµBlockµDiagram¡¹c²¥	öäÒÓÐ¹@|'àápûÈüüüüüüüüüüüÑêšÑÀ‡ÈüßêÛÈÖÀFšßêÛÈÖÀOÏüöÉ†šöÉCüÎÀ†žÎÀ†#•ÐGÈÖÀÃÏü‘ËC›ËCÏ”ÛÏÀÏÐÀ§Õü‘ÌÇ›ÌïÈ”ÄêÈ:ü”ÖÈžÖÀƒ•ÍÀCü‘ÖÇžÖÇR–Ê;üÎÀŸÇÎÀŸÇZ–ËÀ¡ÕüöŸöžÐÀÁÕüßÈÛÈœßÈÛÈÏ•ÐåüÑ)ÁšÑ)ÖÏ”ÍÀOåü‹!Èü“ßÏžßÏ–ÛÏÖÏÕü“ßÏžßÏ–ÐGÈÄÉÏüüŽÕüŽÕüüüüüüüüü	ääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãääÈâääÈâääÈâääÈâääÈÿääÿääÿääÿääÿääÿääÿäãüÿäãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÂ?ääÈâääÈâääÈâääÈâääÈääÿääÿääÿääÿääÿääÿäáüšüüüü¼Åüüü€Aüšüüüüüüü©Ç–Èüüüüüüüü	£Â;üüüüü¼Åüü®âääääääääÈü	£Âˆßääääääääüšüüüü¼Åüüü€Aüšüü«ÅèÆŒÅèÆü¨ÁÀœÎÀ9ÀÎÇ‰ÁÀœÎÀ9ÀÎÎü¨ÉÀ”Õz‰ÉÀ”Õü¨ÉÈÎP‰ÉÈÎ2ü¨É9Ð‰É92ü¨ÁÀÔÏÀ9ÀÎŠÁÀ”ÏÀ9ÀÎÆCü¨ÉÒÀoæèñíÀƒÈCÒÀoæèÎüªÖÈ
È2Èü­ÁI+ü®ÈÈ"üÁäääääääÀýäääääääÞ‰ÐääääÀïäääâäääääÚüžäääääääÀýäääääääÞ|ÀgÈääääÀïäääâäääääÞü­ÁÈÓÀçcü	£Â;‰Æü­Ã‰Çüüüü¼Åüüü	£Âü®öÓªÂü®÷Ìü®ÑÅü¯Óü¼Åü¯ÓüŸèóÀÍüœËÀâÁÀÎÀrŸÈüœÒÀ¦Rßääääääää£ÂüœÒÂÈŒâääääääääÈüœÌÂRÈüœËÀ¦ÁÀÎÔüœÌÀâÝèóüžÝüÂÈ¨ÃóËüÃÇŠÇ–ÈgÅÑÀsÀœüÄÆ¦ÀåÍüäääääääääääääÏääääääÚÛäääääÏ ÕÅZüKäääääääääääääÈLäääääääääääääÈ ÏÅ"ü…eÍÑÀsÀŒü…ÇÀçÀäóÌü†AÕü†Aü	£Â;œòü‚ÿäääÀãääääääääääääÚü‚äääääääãääääääääÕüüü”ÅèÆ¥Åü‘ÁÀœÎÀ9ÀÎÔü‘ÉÀ”Õrü	ÉÈÎ2ŽÂü‘É9:ƒü‘ÁÀ”ÏÀ9ÀÎÔü‘ÉÒÀoæèÆüÒçÀîÉÀí3È1×ÀEõíÀ¢Î­óÄÕüÀ¾ïÀêÐÀ‡Æ+,ÀŽð!ÅÚ›ÅŽÉÓÏÀsÀœÇüˆÈÎÏÆÍ#$\ÓÉÀÈÌÈªÐÀ)Ïàü‰ÁÕ†ääääÏ\lªÐyàüˆÈÍcääääÏNÏËÎŸÈŠÊAüÀ¾öÕÐÀÇÄŒÐÀŽÁÚÀ°ªÉÀ)ÈÀsÀœÕ‰ÂüÒÀ‰ÀÅÀóÀí#$×ÀTÀâíÀ¢ÚªÊÓÀßóÄÇüŠÁÚ-,®ÄÀóÀÆCBJîü‘Æ4¯ÀyÀï;<cü…!34kü…!I+,+ü…>Qääää8ü©Ç–ÈyÀëääää1Èü…"ÀóÀÏklJÀsÈü‹9<ü‹ADüöÌÁöü¢Ø‘åüâ’Àâü—ÃÈü	•ÊÈŒÂ;ü<üÀQÌÁÀQü‚"ÚŒÂÀ&üKäääääääääääääÈLäääääääääääääÈôÕŒÁÀOüäääääääääääääÏääääääÕÖäääääÏ—ÅÍŒÁÀÏüÅÅ¤ÎÖüÄÆü	›ÃÇ«ÖüÂÈ£À*ÇŒÂÀ¦ˆÂüü‚äääääääãääääääääÕü‚ÿäääÀ÷ääääääääääääÚü¼Å‰ôü†"ü†Aü€AEÈü†÷È’Âüüüüüüü©Ç–Èüüüüüüüü	£Â;üüüüü¼Åüüü	£ÂüžäääääääÀýäääÀ¿ääääääääääääääääääääääâäääääÚ“ÂüÁäääääääÀýäääÀ¿ääääääääääääääääääääääâäääääÞüüŸèÀ#ÈüœËÀãÁÀÎÀqÈšÅüœÒÀ§
üœÒÉJÈüœÌÂ¢ÈüœËÀ¦ÁÀÎÀsÈ¸ÂüœÌÀãÝèÀ#üžÝ¨ÃóÒü…gÌÑÀsÀŒü…åÓ"ü…àÌü…yÅü©Ç–ÈeÍÑÀsÀœü…ÇÀÀäóÌü†IÕüüüüüü	£Â;üüüüü¼Åüüü	£Âüšüüüü¼Åüüü€Aüšüüüüüüü©Ç–Èüüüüüüüü	£Â;üüüüääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕüääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕ?äÚÖääÚÖääÚÖääÚÖääÚÅÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÒü©âäÚÖääÚÖääÚÖääÚÖääÚÿÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕ×üüüüüüüüüüüüüÿ¡	=c¡þ#²Figure 7³10µshowsµhowµtheµproblemµyouµcanµrouteµtheµcriticalµsignal¡þkthroughµprocessorµP2,µwhichµisµdirectlyµconnectedµtoµP1µandµP3¡þ´accordingµtoµtheµarchitectureµdiagramµ(Figure 7³11).µToµdoµso,µan¡þýadditionalµblockµisµmappedµontoµtheµintermediateµprocessorµP2.µThe¡þEexistenceµofµthisµblockµonµP2µforcesµxdcgµtoµinsertµtheµrequired¡þŽtransferµfunctions.µInµthisµexample,µaµsimpleµforkµblockµisµused.’œVD“I501ileaf_page_string1:7-34¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³34¡,É²Figure 7³10³New´µConfigurationµofµExampleµRoute¡ó ²¥	öäÒÓÐóý
ÿaBbC
ÚûÈüüüüüüüü“Ü?ÏŸÞÿü“ÀÁÈÍÚ2ÍÉÊÃÏƒÏü’ÁÜÇïÄÀ‘ÏÃÀùÁÃÆ>ÀLÆü“ïAÎ:žÁÃÂÁÈ	ÉÀÐ—ÁÚãü’ÂÁîÀ”
ÏÄÉù÷ëZ˜ÊËÁÀ‡È	ÐÈü“ÈÂÈ;žÂ
9—øÀòÂÄÇ|çÇü˜Öæ¤ÜÇæ—ÂÄÃÉÀåü”ù4 ôÆ—ÅÊ÷ôåü”÷Ï ð?ÂÇ—ÃÌåü“ÈÉÀÈ¢ÂÆÈÝÀƒÇü’Ây£ÄÉ	šð9ü“ïÖÀÊÀ”¡ÁÃßÀ*ëšë~ÉÆü’ÁÜÇq¡ÃÀù	ÈJÚ—ÃÇDü“ÀÁÈÁÄ¡ÉÊÆ›ÅÊeü“ÜiÚiižÞÃÏyÖÚ—ÂÄàÀTåCü˜	ÀòIÆü–ÁäÈ£ÐãšÊË!Ç"Çü˜	ÚÁÀ‡ÈÁÈÐÈü–ÁäÈ£Ðãüœáüüœáüüüüüüüüüüüüüüü°ßääÏßääÏßääÏßääÏßääÏßääüÿääÿääÿääÿääÿääÿääÿääÿääÿääÿääÿäÚääÏßääÏßääÏßääÏßääÏßäã?ääÏßääÏßääÏßääÏßääÏßääÏßääÏßääÏüääÿääÿääÿääÿääÿääÿääÿääÿääÿääÿäÕžÛääÏßääÏßääÏßääÏßääÏßääÏßääÏßääÏü†	ü‹1üªü¬Åüüüüü†	ü‹1üü¬ÅüüBüüüüüüü°ÆüBüüüüüªüü°Æüüüü†	ü‹1üªü¬Å‰âäääääääääáü¶ßäääääääääÞüüüü†	ü‹1üü¬ÅüüBüüüüü±ÀtÕÌÀÆÅ‹ÐÀNÁÀŒÀcÈü±ÀñÕÀ=ÀïŒÖ×ÉÀÞÀ÷Èü°ÆÎÍ2‹ÊÉJüB®ÚÆH‹ÖÂJÈüµÀhü±ÀñÚÀ=ÀïŒÖÛÉÀÞÀ÷Èü±ÀäÀïÀ˜ÀÆôøøÉÈÑÀNÀùÀŒÀcü²ÖÈÅÏ
øüµÁ?C¨Âü¹ÁÀ°Èü°ÆEMÏ;ü£äääääääääÀïäääÀßääääÞà?ääääãääääÀßääääääãü£âääääääääÀïäääÀßääääÞ‹ßääääãääääÀßäääääääü¶ÈÞÀçÏ;üµÁìÀñÀãÈCüµÂŠÁŠÆüµÃŠÂ©Âü¬Åüüüüü†	ü‹1üü¬Å‰ÆÀ¾ü¶ö×üBü¶ÀÒü·Üü¶Ñü·Æü·Üü¶ñÀœü¡ÑÀœÉÌÀÂŠÆüBž×ØÐÀ½ÕßäääääääääÞü¡ËÊâäääääääääáü¡×Ã	ü¥Àü¡×ÜÐÀ½Õü¡ÒÀÀsÌÀÂ„ü£Íü¢ÂÆŒÆü¢Ã®ÑÀœÉÌÀÇü¢ÄÅ­×ØÐÀ½ÀïüäääääääääääääääÈäääääääÚÖääääääÕ¦ËÊRü?ääääääääääääääääääääääääääääääÏ›ÁŠ×Ãü‹1ü‘ÜÐÀ½Àï”Âü¬Å¤ÒéÀóÌÀÆü’)Åü’!Æü’ÇüääääáâääääÈääääääääääÏü†	ääääääääääNääääääääääÈü‹1üü¬ÅüüBü•ÀéÏÀ1ÀŒÎü”ÁÀãÏÀ{ÀÞÔü•ÏÎpü”ÁÕÇpüü”ÁÀãÕÀ{ÀÞÔüˆ××À1ÒÞÐÀÀ˜ÈAÀÉÀßÀ1ÀŒÀaÀ‡ÀÈññíÀ&À'ŠÆüB?ß>ÀØÖÀÇÈ4CKÀÃÀÄÇ!ÈüˆÁaÂ:Ë,utRÀÈÉÄ³ÀtÕÌÀÆÍü‹ØÈ$-LÀÆÏÉÈµÀñÕÀ=ÀïÙüŠË×ÇÀ†ääääãMÏIÈÁÀƒÈ²ÎÍxü‹ÆBääääãNÈ³ÚÆxüˆÁQCÉ$-tRÏÌ„üˆßß>À‡È,uKÀÃÏÐÕÈ²ÀñÚÀ=ÀïÙüˆ××À#ÒÆÐÀOÀ‘È3EÀ‡ÀÉÀ#ÀÄíñÀoÈ‰Æ ÄÙÙÔ;ÀäÀïÀ˜ÀÆÍÈÀIÃüŒÐÕ>¸ØØÞ3È:|üŒÐÕƒÊÊÈ+5Èü˜!-ü†	ŠÀ68%KÈü‹1pKäääääü‘ÊÊÏKäääää}ü¬Å¥ØØÙ%ãÈü‘AÙÙÞcmÀIÀçÈü˜1=ü˜9Eü4çÔ“ÃÅÈüÅÞ“ÂóªÁü-•É¯Æü•ÉÎü›ÊÅü•ÁÀÃÇüB˜ÐÇüøü$çÔ“ÃæÈ°ÃÀÏŽÂøÏüÀ'ÈŽÁÀÕü?ääääääääääääääääääääääääääääääÏ¤ÏüäääääääääääääääÈäääääääÕÐääääääÕ¢ÉÎÁÀ³Õü¢ÅÄªÁÈÉÕü¢ÄÅŒÆœÁÏÕüBŸÊÆªÉü¢ÁÇ»ÉÕüÀ’ÂÀIÏüüääääääääääNääääääääääÈüääääãäääääÈääääääääääÏÂü’Èü°Æ¡ÃÇü’!Æü’)Åü’Úü†	ü‹1üªü¬Å‰âäääääääääáü¶ßäääääääääÞüüüü†	ü‹1üü¬ÅüüBüüüüü±ÀtÕÌÀÆÓ‹ÐÀNÁÀŒÀgÈü±ÀñÕÀ=ÀïÌ‹Ö×ÉÀÞÀ÷ü°ÆÎÍ*‹ÊÉ
ÈüB®ÚÆ8‹ÖÂJüü±ÀñÚÀ=ÀïÓ‹ÖÛÉÀÞÚü±ÀäÀïÀ˜ÀÆÀ4ÀóÀÇçÈÑÀNÀùÀŒÀbü²ÖÈ÷ÀãÀÁÈ
øüµÁND¨Âü¶ÈàÉÀÄ<ü£âääääääääÀïääääääääÞàÉÀÇ?ääääãääääÀßääääääãü£äääääääääÀïäääÀßääääÞ‹ßääääãääääÀßäääääääü¶ÈÈ;üºÐÕüµÁÉÀÄìÈCü¡ÑÀœÉÌÀÇÂŠÁŠÆü¡×ØÐÀ½ÀãÃŠÂ©Âü¡ËÊ.ü¡×Ãüü¡×ÜÐÀ½Àçü¡ÒÀÀóÌÀÆü¢ÁÚ¢Áü‹1ÀœÉÌÀÏü‘ØÐÀ½Àîü¬Å‰ÆÀœ™ËÊJü¶öÜ™×ÃRüBü¶ÀÃ™×ÜÐÀ½Õü·Ø™ÒÀÀóÌÀÄü¶ÑÌšÁÚü·Æü·Üü¶ñÀœü°ÆüB³ßäääääääääÞü¶âäääääääääáüüüüªüü°Æüüüü†	ü‹1üªü¬Åüüüüü†	ü‹1üü¬ÅüüBüüüüüüü°ÆüBüüüüüªüü°Æüüüü†	ü‹1üÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕ¾ÂüÿÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÅäÕÛääÕÛääÕÛääÕÛääÕÛääÕÿääÿääÿääÿääÿääÿääÿääÿäáü°ßäÕÛääÕÛääÕÛääÕÛääÕÛääÕÿääÿääÿääÿääÿääÿääÿääÿäãüüüüüüüüüüüüüüüÿ¡	 ¡þù²
Architecture¡þ™²TheµarchitectureµonµwhichµtheµRouteµblockµdiagramµisµmapped¡þáconsistsµofµthreeµprocessors,µC40_P1,µC40_P2,µandµC40_P3,µofµthe¡þ*sameµtypeµTMS320C40.µAllµofµtheseµprocessorsµmakeµuseµofµdata¡þrexchangeµoverµspecializedµcommunicationµchannels.µFigure 7³11¡þ»illustratesµtheµspecifiedµarchitecture.µNoteµthatµthereµisµnoµlink¡þbetweenµprocessorµP1µandµP3.’VSD“I501ileaf_page_string1:7-35¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³35¡,É²Figure 7³11³Architecture´µDiagramµofµExampleµRoute3PE¡, ²¥*ûžJÃËÁÊË¡ÄW0¡Ä0×0¡Ä×0×W¡Ä×WWâãÇÆÃÃâ¡ÄTWT0¡ÄT0¬0¡Ä¬0¬W¡Ä¬WTWâÇÆÃâÊËÃ¡ÄÕQÆÃÃÊË¡ÄëÕ¡ÄÕëø¡Äëøë¡ÄëëÇÆÃ²¡›ö¤ÿÛPL2¡ÿ½¤ÿ´C40_P1¡$½¤ÿ´C40_P2¡£p1¡hp2¡ÿå¤ÿštms320c40¡$å¤ÿštms320c40ÊËÃ¡ÄÕQÆÃÃÊË¡Ä;€Q¡ÄQ;›¡Ä;›;¡Ä;;€ÇÆÃ¡›~¤ÿÛPL1¡£˜p2¡h˜p3Ã¡ÄíÆ¡ÄÆ×Æ¡Ä×Æ×í¡Ä×ííâÇÆÃâ¡ÿS¤ÿ´C40_P3¡£¦p1¡ÿ{¤ÿštms320c40¡£.p2¡ÊCp4¡ECp1Ã¡Ä×(Ý(¡ÄÝ(ÝWÆÃÃ¡ÄÑnÝW¡ÄÝWên¡ÄênÝn¡ÄÝnÑnÇÆÃÃ¡ÄUWU¡ÄU×ÆÃÃ¡Äíª×¡Ä×í¡Äíí¡ÄííªÇÆÃ¡›Œ¤ÿÛPL4¡›¤ÿÛPL3¥	öä²¡Ê ¡þø²Evenµthoughµthisµtopologyµisµnotµveryµconvenient,µtheµadvantageµof¡þ@notµhavingµlinksµbetweenµcertainµprocessorsµbecomesµconsiderable¡þ‰asµtheµnumberµofµprocessorsµincreases.¡þ,Theµarchitectureµfileµhydra05.dcg_archµprovidesµtheµcodeµgenerator¡þtwithµallµinformationµconcerningµtheµhardwareµstructureµandµthe¡þ½suppliedµintercommunicationµdriversµ(seeµExample 7³8).¡þ`Theµarchitectureµfileµisµstructuredµtheµsameµwayµasµtheµarchitecture¡þ¨fileµofµtheµ²demux²µ(seeµExample 7³6),µbutµadditionallyµdeclaresµaµthird¡þñprocessor,µtheµlinksµPL3µandµPL4,µandµanµextendedµdriver¡þ	:parameterizationµforµtheµadditionalµports.µTheµprocessorµdeclaration¡þ	‚forµthisµexampleµbecomesµshorterµbyµcollectingµallµprocessorsµofµthe¡þ	Ësameµtypeµinµoneµdeclarationµsection.’SD“I501ileaf_page_string1:7-36¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³36¡,É²Example 7³8³Architecture´µFileµhydra05.dcg_arch¡þ+²--´µprocessorµdeclaration¡þ_------------------------¡þ“PROC{¡þÇµµNAME{C40_P1,C40_P2,C40_P3}¡þûµµTYPE{tms320c40}¡þ/µµPORTS{p1,p2,p3,p4}¡þc}¡þ–¡þÊ--µtopologyµsection¡þþ-------------------¡þ2LINK{¡þfµµNAME{PL1}¡þšµµSOURCE{µPROC{C40_P1}µPORT{p2}}¡þÎµµSINK{µPROC{C40_P2}µPORT{p3}}¡þµµDRIVER{D1}¡þ6}¡þi¡þLINK{¡þÑµµNAME{PL2}¡þµµSOURCE{µPROC{C40_P2}µPORT{p2}}¡þ9µµSINK{µPROC{C40_P1}µPORT{p1}}¡þmµµDRIVER{D1}¡þ¡}¡þÕ¡þ	LINK{¡þ<µµNAME{PL3}¡þpµµSOURCE{µPROC{C40_P3}µPORT{p2}}¡þ¤µµSINK{µPROC{C40_P2}µPORT{p4}}¡þØµµDRIVER{D1}¡þ}¡þ@¡þtLINK{¡þ¨µµNAME{PL4}¡þÜµµSOURCE{µPROC{C40_P2}µPORT{p1}}¡þ	µµSINK{µPROC{C40_P3}µPORT{p1}}¡þ	CµµDRIVER{D1}¡þ	w}¡þ	«¡þ	ß¡þ
--µipcµdriverµsection¡þ
G--------------¡þ
{DRIVER{¡þ
¯µµNAME{D1}¡þ
âµµLIB{µ${COSSAP_DIR}/models/ipc}µµ¡þµµSEND{µNAME{µout_msgµ}}µµ’™D“I501ileaf_page_string1:7-37¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³37¡þÃ²´µµRECEIVE{µNAME{µin_msgµ}}µ¡þ÷µµPAR{µNAME{µCHANNEL_Identifierµ}¡þ+µµµµµµµPROC{µNAME{µC40_P1µ}¡þ_µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{0}}¡þ’µµµµµµµµµµµµµMAP{µPORT{p2}µVAL{0}}¡þÆµµµµµµµ}¡þúµµµµµµµPROC{µNAME{µC40_P2µ}¡þ.µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{0}}¡þbµµµµµµµµµµµµµMAP{µPORT{p2}µVAL{3}}¡þ–µµµµµµµµµµµµµMAP{µPORT{p3}µVAL{3}}¡þÊµµµµµµµµµµµµµMAP{µPORT{p4}µVAL{0}}¡þþ¡þ2µµµµµµµ}¡þeµµµµµµµPROC{µNAME{µC40_P3µ}¡þ™µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{4}}¡þÍµµµµµµµµµµµµµMAP{µPORT{p2}µVAL{4}}¡þ¡þ5µµµµµµµ}¡þiµµ}¡þ}¡þW²
Attribute¡þ²Once´µtheµarchitectureµhasµbeenµspecified,µyouµnowµdefineµthe¡þXmappingµinµtheµattributeµfile.µFirst,µallµblocksµ(exceptµforksµand¡þ¡delays)µareµassignedµtoµaµprocessorµbyµusingµtheµinstanceµname¡þéassignedµtoµeachµblockµbyµtheµBlockµDiagramµEditor.µNext,µthe¡þ2cutarcsµareµoptionallyµassignedµtoµtheµlinksµdefinedµinµthe¡þzarchitectureµfile.¡þ	6Ifµtheµcutarcµlinksµareµnotµspecifiedµinµtheµattributeµfile,µtheµDCG¡þ	automaticallyµmapsµtheµcutarcsµontoµtheµsuitableµlinksµfoundµinµthe¡þ	Çarchitectureµfile.¡þ
ƒBecauseµthereµareµnoµoptionalµlinksµdefinedµinµtheµarchitectureµfile¡þ
Ìforµthisµexample,µtheµsignalµmappingµpartµinµtheµfollowingµattribute¡þfileµisµnotµnecessaryµbutµisµincludedµforµillustrationµpurposes.’™·D“I501ileaf_page_string1:7-38¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³38¡þÉ²You´µcanµdetermineµtheµcutarcµnumberµbyµusingµtheµBlockµDiagram¡þEditorµtoµviewµtheµsignal'sµidentifier,µwhichµisµdisplayedµonµtheµblock¡þZdiagram.¡þòTheµattributeµfileµisµpartµofµtheµgeneratedµCOSSAPµnetlist.¡þ:Example 7³9µshowsµtheµattributeµfile,µroute.attr.¡,Þ²Example 7³9³AttributeµFileµroute.attr¡þ2²OBJECT¡þf´µµOBJTYPEµinstance¡þšµµOBJNAMEµM8¡þÎµµMODELNAMEµkill¡þµµLIBRARYµDSP¡þ6µµPRIMITIVEµyes¡þiµµATTRIBUTEµdcg_processorµ"C40_P3"¡þOBJECT¡þÑµµOBJTYPEµinstance¡þµµOBJNAMEµM7¡þ9µµMODELNAMEµadd2¡þmµµLIBRARYµDSP¡þ¡µµPRIMITIVEµyes¡þÕµµATTRIBUTEµdcg_processorµ"C40_P3"¡þ	OBJECT¡þ<µµOBJTYPEµinstance¡þpµµOBJNAMEµM5¡þ¤µµMODELNAMEµmuls¡þØµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þ@µµATTRIBUTEµdcg_processorµ"C40_P2"¡þtOBJECT¡þ¨µµOBJTYPEµinstance¡þÜµµOBJNAMEµM9¡þ	µµMODELNAMEµfork¡þ	CµµLIBRARYµDSP¡þ	wµµPRIMITIVEµyes¡þ	«µµATTRIBUTEµdcg_processorµ"C40_P2"¡þ	ßOBJECT¡þ
µµOBJTYPEµinstance¡þ
GµµOBJNAMEµM10¡þ
{µµMODELNAMEµconst_gen¡þ
¯µµLIBRARYµDSP¡þ
âµµPRIMITIVEµyes¡þµµATTRIBUTEµdcg_processorµ"C40_P1"’·ÁD“I501ileaf_page_string1:7-39¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³39¡þÃ²OBJECT¡þ÷´µµOBJTYPEµinstance¡þ+µµOBJNAMEµM4¡þ_µµMODELNAMEµdemux1in2¡þ’µµLIBRARYµDSP¡þÆµµPRIMITIVEµyes¡þúµµATTRIBUTEµdcg_processorµ"C40_P1"¡þ.OBJECT¡þbµµOBJTYPEµnet¡þ–µµOBJNAMEµSIG_0006¡þÊµµATTRIBUTEµdcg_ipc_linkµ"PL4"¡þþOBJECT¡þ2µµOBJTYPEµnet¡þeµµOBJNAMEµSIG_0007¡þ™µµATTRIBUTEµdcg_ipc_linkµ"PL4"¡þÍOBJECT¡þµµOBJTYPEµnet¡þ5µµOBJNAMEµSIG_0004¡þiµµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þOBJECT¡þÑµµOBJTYPEµnet¡þµµOBJNAMEµSIG_0005¡þ8µµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þ²
Verification¡þ¡²After´µspecifyingµtheµattributeµfile,µyouµcanµgenerateµtheµcodeµforµall¡þêprocessingµunitsµbyµinvokingµxdcg.¡þ‡Ifµyouµenterµ/user/dcg/projectµforµtheµoutputµdirectory,µtheµDCGµwill¡þÐgenerateµtheµfollowingµfilesµinµdirectoryµ/user/dcg/project:¡…	K²project_P1_C40.c¡…	project_P2_C40.c¡…	·project_P3_C40.c¡þ
:²Forµthisµexample,µtheµgeneratedµcodeµisµbasedµonµtheµfollowing¡þ
ƒschedulesµ(noteµthatµtheµinsertedµforkµblock,µFORK,µinµtheµcodeµfor¡þ
ÌP2µservesµonlyµasµaµtransferµtaskµforµgeneratingµtheµrequiredµsend¡þandµreceiveµfunctions)’Á#D“I501ileaf_page_string1:7-40¥	öäÃËÁâÊË¡Ä,R,<¡Ä,<	c<¡Ä	c<	cR¡Ä	cR,RÆÃÁÊËÃ¡Äþ<Ê<ÆÃ¥	öä¥	öä¡8Á²Multiprocessor´µDSPµCodeµGeneration¡.7³40¡þÉ²Generated´µscheduleµforµC40_P1:¡þ2²2´µxµCONST_GENµ(10)¡þf1µxµDEMUX1IN2µ(4)¡þš1µxµout_msgµ(ipcs_SIG_0005)¡þÎ1µxµout_msgµ(ipcs_SIG_0004)¡þQ²Generated´µscheduleµforµC40_P2:¡þº²1´µxµin_msgµ(ipcr_SIG_0005)¡þî1µxµFORKµ(M9)¡þ"1µxµout_msgµ(ipcs_SIG_0007)¡þV1µxµin_msgµ(ipcr_SIG_0004)¡þŠ1µxµMULSµ(M5)¡þ¾1µxµout_msgµ(ipcs_SIG_0006)¡þB²Generated´µscheduleµforµ²C40_P3²:¡þª²1´µxµin_msgµ(ipcr_SIG_0007)¡þÞ1µxµin_msgµ(ipcr_SIG_0006)¡þ1µxµADD2µ(M7)¡þŒ²
Notch¡þ²This´µrealisticµexampleµdemonstratesµtheµmappingµofµaµfeedback¡þQstructureµonµhardwareµthatµconsistsµofµfourµprocessors.µDespiteµthe¡þšlossµofµcomputationµpower,µtheµcompleteµdesignµisµmappedµonto¡þâthreeµprocessorsµinµorderµtoµkeepµtheµinterprocessorµcommunication¡þ+toµaµminimum.µTheµfilesµforµthisµexampleµare:¡þ”²${COSSAP_DIR}/demos/mdcg_ex/schematic/notch.sch¡þÈ${COSSAP_DIR}/demos/mdcg_ex/notch.attr¡þü${COSSAP_DIR}/demos/mdcg_ex/hydra04.dcg_arch¡þ	v²
Block´µDiagram¡þ	ò²The´µblockµdiagramµforµtheµNotchµdesignµisµshownµinµFigure 7³12.¡þ
:ThreeµgeneratedµsourceµsignalsµofµC40_P1µareµsentµtoµprocessors¡þ
ƒC40_P2µandµC40_P3.µTheµfeedbackµstructureµconsistsµofµprocessor¡þ
ÌC40_P3µsendingµtwoµsignalsµtoµprocessorµC40_P2µandµinµturn¡þrequiringµoneµsignalµfromµprocessorµC40_P2.’#rD“I501ileaf_page_string1:7-41¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³41¡þÉ²Because´µofµsomeµdelaysµincludedµinµtheµsubconfigurationµmapped¡þontoµprocessorµC40_P3,µtheµentireµstructureµwillµbeµfreeµofµa¡þZdeadlockµbecauseµtheµscheduleµofµC40_P3µcanµstartµwithµexecution¡þ£ofµtheµforkµblocksµsucceedingµtheµdelaysµbeforeµexecutingµthe¡þìreceiveµfunctionµfromµC40_P2.µThen,µC40_P2µisµableµtoµstart¡þ4executionµandµinµturnµprovideµC40_P3µwithµtheµrequiredµdata.¡þ×TheµNotchµexampleµillustratesµthatµsplitµsignalsµmustµbeµduplicated¡þ byµforkµblocksµifµtheyµareµsentµtoµdifferentµprocessorsµandµifµyouµwant¡þhtoµmapµtheµcutarcsµexplicitlyµontoµoptionalµlinks.µThisµappliesµforµthe¡þ±forkµblocksµonµP1µandµtheµforkµblocksµonµP3µsucceedingµtheµdelays.¡þTIfµnoµexplicitµlinkµmappingµisµspecified,µtheµforkµblocksµareµallowedµto¡þœbeµreplacedµbyµaµpointµconnectionµinµtheµblockµdiagram,µforcingµthe¡þåcodeµgeneratorµtoµautomaticallyµinsertµtheµforksµandµmapµtheµcutarcs¡þ-ontoµsuitableµlinks.¡þÐFurthermore,µdelaysµmustµnotµbeµmappedµexplicitlyµsinceµtheyµare¡þtransformedµbyµtheµDCG.µThisµappliesµforµtheµdelaysµonµP1µandµP3.¡þ»ReferµtoµPartitioningµtheµBlockµDiagram:µDelayµandµForkµBlocks"¡þearlierµinµthisµchapterµforµdetailedµinformationµregardingµtheµhandling¡þMofµdelayµandµforkµblocksµbyµtheµDCG.’r$kD“I501ileaf_page_string1:7-42¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³42¡,É²Figure 7³12³Block Diagram of Notch Design¡}z²¥{ûþ
ÃËÁÊË¡Äå¥Ã¥¡ÄÃ¥Ã	ñ¡ÄÃ	ñå	ñ¡Äå	ñå¥ÆÃÒÓÐó”#*ûÈüüüüüüüüüüüüüüüüüüüü
äÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕüÿÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÏüüüü»ÖÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞü»ÖÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÞÐääÚüüüüü¸Æ*üüüüüüüü¸Æüüüüü
üü¦ääääääääã$ü¦Iääääääääáüüü¢ÅÀ†Áü 3ÀŒÐÀ9ÀÎÂü
rÀœü pËRü qÄÄü»Å¤À2À˜ÐÀ9ÀÆÂÈü cÀÀòÅÀŒÀûÈü¡	ÚøÆü¦)ŒîÅÈü°QÀqÈÀçóü¦!‰ÑÀSÈ#üžâäääääääääääääääääääääääääÀßäääääääääääääääääääääääääääääääääääääääääääääÏ‰ÑÁÈ	ÇüžßäääääääääääääääääääääääääÀßäääääääääääääääääääääääääääääääääääääääääääääÏ‰ËÁJÇü¸Æ*ªÄ‰ÊÀSçÆü¦)À‰Ï
ËÀqÀ¾îÍÈü¤„óåàC>ü¡YÀãÁÀÎÀs\à;ü¡À§à3ü¡ÉJŠÒü¡aÂ
ÞÕü¡YÀ¦ÁÀÎÀsÈÀqÏ3üªÖè+2ÆÁ3¨ÌÀãÝèÀ#ŠÇüŸóÄÎÅÏ.°Ý2‰ÈüœÉÓÈÀsÀœÕÆoÀdf	±ÅˆÁˆØÊÐIÚÓüœÐÀ)È3ˆÃÀ:À^Ûá×Ñ¯Ä‘ãËÖÈÁÞÝüœÐArˆÍÆÝßßÈZÁÚßÛ¡ÁäääääääääääääÏÁÀÃ\ÀÆü
™ÊA:ˆÒÄÆÆSÉÌ1È¡äääääääääääääÏ‘ÁÌÌÏüœÉÀ)ÈÀsÀœÎðÈ
I]ÈüœÊÓÀŸóÄÀÏÀ¸OÏ=ÕÉ<Û¯ÄÄl
ÞÊüžÛÈ7Î>=ÕÁÈÛÈ®Å•ÁÚËüžå–òA®Æ’Î8üÁÅ‹ÍÎÀÄ	ÃÌ1È®ÁÀÌŽÉ=ÈpüÂÄ‹ÛÏÝ?ÇAÚßÛ°À§À¼ÁÀ}À˜ÏzüäääääääääääääÈäääáÐäääáèÓï×ÀÐÂ1ÆÀá×Ñ°ÀäÁÀÃü
äääääääääääääääääääääÞ‰ÈºÁÈãÈ~ü¬ÊºÉØÂÐþü¬áºùÀ¼‹Äü¬ÙŽÅžîÅÏ‰ÁÀWÀ˜’ÛÚü—QÔÈÀçÀ9ÈžÛÚü—ÀRÈŒÉääääääääáü—A	È‰Ðääääääääãü—YDü—QÀRçÀ9Ïü—YÔÀ¾îöÈü™>ü–óÄÇŸÆ*œÂÏü“ÉÓÏÀsæÈ¿ÃÆü“ÐÀ)Ï)È»ßäääÞÛäääÚü“Ðy¾ÛääääääääÕü“ÊAü“ÉÀ)ÈÀsÀ”åü‰ÒÀrÀ#À¸ÑÀ=ÅFÓÀßóÒÕÇGÀžÍü‰ÜÀùÐÀ¨×ÒÈ33KÀÏÙü‰ÂÁÀƒIÌÏÕ9˜Æü‹ÐÈÂÌ,-;aü‰ÂysäääääÈ
Úiü‰ÜÞÀGÈÛÒÆäääääÈKÀÏÀXü‰ÒÀrÀ'ÀÀÎÀ=Å+-
ÀÀžÙü
‰ÐÏ55ü“Ç=·ÃóËügÌÑÀsÀœ ÄüåÓüàÌZüyÅ"üeÍÑÀsÀŒüÇÀÀäóÌü
ÃíÚ­ÉÕ	×ÙÏüíÔ˜ÂçÕ±ÈÀ=ÕüçÍ˜ÉçÍ±ÇJÈÁšÄüMçÆšÎ˜Åääääääääääääääääãrüp»ääääääääääääääääãÏyü˜À=Îüp˜ùíÇ±ÇÀ^ÀyÕüíÎŒAü“	üüäääääääääääääääääääääÞüäääääääääääääÈääääÀ¿äääá•Æ*üžÀ°üÉÄüÃÃüÐÀ¼ü”!Àœü”Ëü”Äü¸ÆœÒüü•ü”
À˜üü
‘ääääääääÕü‰ÐÀÂ#…?äääãääääÚü‰ÖÕÈšÄü‰ÌÀ2ÇüŠÂÀÀ/ÖÈŠ1ü‰ÌÅÜÛÀŸÏ‰!Åü‰ÑbÅÅŠÚü‰ÐÏCü
ÕÈü‰ÅÍü´!ü‰ÌÍÀbB¬Åü‰ÖÕÜåü‰ÐÀÂÒÆÀÀhü‹Çü‹Éü‹àü‹Øüü¸Æ*üüüüüüüŸóÄÇüœÉÓÈÀsæÕ–ÆüœÐÀ)È)È¢èóÈ“îöÏüœÐArŸËÀâÁÀÎÀsÈÊÔÈÀçÓÏüœÊAzŸÒÀ¦”ÑÀRÈBüœÉÀ)ÈÀsÀ”ÎŸÒÂ
ÈÑA	Ïü
™ÊÓÀŸóÒÕŸÌÂ
‘ËüžÛ¢ËÀ¦ÁÀÎÀqÈÊÀRçÀ9ÏüaÀâÝèÀ#‘ËÔÀ¾îöÈ—Äüƒ|•Üü‚Ï”ÂÏü‚YÆ”ÃÆü¾ßäääÚÛäääÚŒßäääÞÛäääÚü¾ÛääääääääÕŒÛääääääääÕü
üü´!ü»ÅüüüüüüüŠóËÂ’ÂÅÀ†ü¸Æ*ŒÀgÌÑÀrÌÃÀ3ÀŒÐÀ9ÑüˆåÓÀrÀœ	üˆàÌb‘ÔËRüˆyÅ"‘ÎÄüˆeÍÑÀrÀœùÀ2À˜ÐÀ9ÀFüˆÇÀÀäÀ#À™À÷ÀcÀÀòöÀÌüðæÏ
IÕ	Ú‰ÂðæÏCÁÚü	ÇÁÕÁÇÁÕ
ü¸ÆˆÁÏÁÁÏÁSü„q"äÏÎ"âÕü„y"äÕÏ"âÚü‚ÀÎÖÀÎüÀ§ÀÕ’ÂÀ§ÀÕü
„•Áü‡	–Èü´!üüüüüü
ü¾ÄÀœ”ÄÀ¼ü¾ùØ”ùÓžÄüäääääääääääääÈŽÉääääääääãÅÌ”ÐËüäääääääääääääÁääääääääá“Ò•Ìüü¿Øü¾÷À˜”÷æüü¾ÛääääääääÕŒÛääääääääÕü¾ßäääãääääÚŒßäääãääääÚü¸Æ*È”ÂÈü‚Ç”ÃÇü‚!Æ•Æü‚)Å”ÄÅü–óÄÇ„óîÅÏÆ×Ú”ÑÚü“ÉÓÏÀsæÕ\À£ÁÀÎÀCÈ‰ÊÀqÈÀçóÈÇü“ÐÀ)Ï)ÈÀ§BŠÑÀSÈ19ü“ÐyrÉ
È‰ÑÁÈ	Èü“ÊAzdÂJŠËÁC6ü“ÉÀ)ÈÀsÀ”Î\À¦ÁÀÎÀQÈ‰ÊÀSçÀ)Ïëü‰ÀuÅÒÀzÆÀsçFÓÀßóÒÕdÀ£ÝèÀså{ÀŽñ
ËÀqÀ¾îÀ9ÀŸÔü‰ÚÈØÀ9QÏ3‰Ý*?ÀÇËC>ü‰ÎÏÊÀ1ÈÁÏŽÈ#ka;ü
ðÍ	Ï+‰ÁÆkÐÄ3üŠÎzäJäääääãÛäääÏÒäääääääääääÀßääÀïääääääãääääääÏü‰ÚÆÜÓÇÁÀÆäÈ	ääääääßäääÏÏäääääääääääÀßääÀïääääääãääääääÕªÄü‰ÀåÛÀœÀzßÀ#ÀŽŽÏCÀ‰ñ3üŠÖÈ-ŽÄ‰Çü“ÆŽÅ‰Èü“ÇŽÆˆÁüü
üü´!ü»ÅüüüíÎ›çÀŽüçÚ›ÀQ×üMç’ÖäääääqËüà‘Ðääääãüwüpœ×“Æ*€ÉÉÈÁÞÒüíÎ›À¨ÀŒ—ÊÐÏüÜü¼áÈSÀcüäääääääääääääÁääääääääá‘ŒËÎüäääääääääääääÈŽÉäääãÁäääã	ÈTÀCü¦ÁÂ•aü×üšÊÏ‹è™ø×üšÉÕ‹Ä•iLüšÉÕ‹ëÆ‚	È×Ï;üšÊÏ¡¾ÀÌÎü¼áÈcüšÉÕÁäääääääääÈ†Ï>üšÂÕäääääääää‡ÁÉÈÁü
˜ÈüšÂÎŸÖääÕÛääÀáÛääÕÛääÕÛääÕÛääÕÛääÕÛãäÕÛääÕÖääÕÛääÕÛääÕÛääÕÛÀýäÕÛÚŠÖÞüšÉÕŸÛääÕÛääÀáÛääÕÛääÕÛääÕÛääÕÛääÕÛãäÕÛääÕÖääÕÛääÕÛääÕÛääÕÛÀýäÕÛÞŠÖÞü%Ä9"ÜÅ<ñüeâVüU:Áæ<ü8ÀGÀƒÈÀñÃÙÓÀCÈüM|ÖÀÇÏÍÏêÞüÝÐÀÃü

ÈÀÆYÎpÁÆËÇüˆÃÇ>Dü~ÐÏðÄî‰óÄÇ!ÄÇŒÁÄÎüvIÀÇÕÈ<ÀFÉÀœÀ‡NÓÏÀsÀœÈIÌÏÀsÀœÈ‰ÉÓÏÀSæÕüˆÄÈÆˆ9ÀN„À)Ï)ÈøÏ)È‰ÐÀ)Ï)ünÀÆYÎÁÈ!ÆËÇÓÊJ[yYyYŠÐyrü.ÝÖÀÇÏ	ÞáÝÐÏÍÃRÈQAaRAaŠÊA:ü%ÄÓÀGÀƒÈÍÜõÄÀôÙÓÀCÀ£ÀÀLÉÀœÀ£JÀ)ÈÀsÀŒåIøÈÀsÀŒå‰ÉÀ)ÈÀSÀ”Îü”À1ÀFÀùÄÀçÈQÓÀßóÒÕQÌÀßóÒÕ‰ÊÓÀßÁÒÏü–Þ:ZÈA"ÀãÀ‰;?ääÏßääÀÁßääÏßääÏßääÏßääÏßääÏßãäÏßääÏÀ/ääÏßääÏßääÏßääÏßÀýäÏßääÏßääÏßääÏßäÕü‹ÌW5r‹ÃÀñÀÃ3?ääÏßääÀÁßääÏßääÏßääÏßääÏßääÏßãäÏßääÏÀ/ääÏßääÏßääÏßääÏßÀýäÏßääÏßääÏßääÏßäÏü‹Ä[)È)‹Â[Q+2ü•âäÀñäÈÈäääääääÀßäääÚ[ÁÀÂäääääÀýääääääãäääääääääääääääääääääãääääääÕü•ääÀñäÈäääääääÀßäääÚÀÇäääääÀýääääääãäääääääääääääääääääääãääääääÚü—ÑE)ÁÚü™Å
È1‹Â+ÀâÀI+ü™Æ
:‹Ã‰Æü™ÇB‹Ä‰ÇŽèÀ#È“îöÏüœÐ¤ËÀâÁÀÎïÈÊÔÈÀçÓÈüœÄÈšÆˆÒÀ¦A‘ÑÀRÈ!üœÀÈ£ÒÂJÈÑAaÏüœÐ¤ÌÂ”Ëküœù¤ËÀ¦ÁÀÎÀSÈÊÀRçÌüœÐ¤ÌÀâÝèÀs‘ËÔÀ¾îÓÈü
™ÄÈ¤Âá”ÂÀ¾üœÐíÀF”ÃÇ”ÃÇüœÖÈŽðÀ”ÄÆ•ÆüœÐÓÀ’âäÚÛäÞâäÞÛäÞüœÐÖ’ßääääÚßääääÚüœÄÈü­Öü¬ÀTÀFÂü
ü¬äääääääääŒ1ü¨ÄîÅùäääääääÈ‹Ä•À&œÖääääääääÞü¦ÀÎÅÒÀäÓÄDÈÀv•ÖœÐääääääääÚü¥ÁÀÊëÆÄAÀV•Åü¥ÁÏÅb"Í•À9ü¥ÁÈkÌü¦ÀÊÇÒÀåÌ÷Â2•Àü¥ÁÀŽÀÀÈÀGÀ;Àî•Ù•Øü§ÐÏIÕ•Àl•À6©Æü&•Àü¸Æü>•Ûü.•Àü!•Ã™ÂÅèü&•À—À3ÀŒÐÀ9Äü™Ðääääã¢Ü•Û—ÀrÀœ	Ìü™ÖäääääpË
ü¯qÄü¸Æ¶À2À˜ÐÀ9Çü¯cÀÀòöÀÄü°	ÚBJîü½ÅèÔ“ÅèÔžÇcüºÁÀœÎÀ9ÀÎÍÁÀœÎÀ9ÀÎÆšÃ3kü
·ÉÀ”Õ!ÆÉÀ”Õ!Ôšø++üºÉÈÎQÔDŒÉÈÎQÔD–Ääää8üºÉ9YlŒÉ9Yl–ùäää1ÈüºÁÀ”ÏÀ9ÀÆÔ8ŒÁÀ”ÏÀ9ÀÆÔ8šÍJÀsÈüºÉÒÀoæÀŽÎlŒÉÒÀoæÀŽÆlšÇü¼ÖÈB8ŽÖÈB8šÈü¿Á;‘Á;ü»Â<‘Â<ü
ºÛäáhÛäáhü½Öäá,Öäá,§Æü¿Â8‘Â8ü–ÖÀÂÄÔÉÚÈ>ÅÄÎšÁD‘ÁDü–ÐÕøÁÞä›È8’È8ü—ÍÀÀŒYÁÈÄŸÝ•ÝšÂòüœØÜ×ÑÀ‰ÀkžÝ•ÝšÁÇü—ÍÁZàâßÛyÀÀÁÀk–Â8•ÓšÁÀÄü–ÐÕYÁÞÇÇ1ÈÔÄ’	ü–ÐÏÍÌÁÚö>¡Î•Î›À‹Æü™Ô>ØÛ¡Í•Íü™Õ|ÖÛÈêÈ•ÆŠÀ,•À,šÂÀ¢ü˜ÀaÈ"A¢Ó•ÓüÂ1ÈÀÁÈ í•íü™á~À¿ÛääääääääÚü–ÄÂïáÂ‚À=ÀžÑ>ÅìÀƒääääääääÞüüüü¸Æüü±ÃóËÂü¯ÀgÅÑÀrÒÃü¯ÀåÍü
¬ÕÅZü¯ÏÅ"ü¯ÀeÍÑÀrÀŒùü¯ÀÇÀÀäÀ#À™À÷ü°ÉÕ	Úüüü»Âü
ü2üüü€?ääääÚßääääÚü€äãääÞâäãääÞü‚Ï”ÂÏü»Â^Æ”ÃÆü‚)Å”ÄÅü‚Ú”ÑÚ§ÆüÿäãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁÀßäãÁääãÁäÀ÷ãÁääãÁäÏü
ääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁääãÁÀßäãÁääãÁäÀ÷ãÁääãÁäÕüüüüü„„ó9’îÅÏüYÀâÁÀÎÀrAÊÔÈÀçÀ9ÏüÀ¦BAÑÀRÈ1üÂj‘ÑAaÏüaÂr‘ËkÈü<ÊÐIÚÄ¶ËÀ¦ÁÀÎÀ2ÈåÊÀRçÌÏüþËÖÈÁÞ·ÌÀâÝèÀsÀ¾ÕËÔÀ¾îÀ9ÈüÀÃ\Å¸Ý>’ÜüÌÌÏj·ÂÈ”ÂÈüK]Æ·ÃÇ”ÃÇüm
Þ¸ÄÆ•ÆüˆÁÚ´ßäääÚÛäääÚŒßäääÞÛäääÚüu¸ÛääääääääÕŒÛääääääääÕüK=ÈüÀ}À˜ÏüÀÃ¶ÂüþÈü<ÂÐ!¶1üüÚüÚüüü»Âüü2üüüü<ÀyÃÀd’ØÀyÃÀdüÓ9’×Ó9ü‚iÑ”ÍÑü‚iÃØ“ÍÃØüƒÄ”ÛÄüÓÏ“×ÓÏü<ÀyÀÑÅ’ØÀyÀÑÅüüüüüüüüüü¾ÄçÇ“ÄçÏü¾ùÅÈ“ùÅÕü»ÂÅÈ“ÐÅÕü–àü2ü–àü¾÷çÇ“÷çÏüüü¾ÛääääääääÕŒÛääääääääÕü»Â?äääãääääÚŒßäääãääääÚü‚Ï”ÂÏü‚YÆ”ÃÆ§Æü‚)Å”ÄÅü‚Ú”ÑÚüüüüüüüüüüüüüüüüüüüü»Âüü2üüüüüü»Âüü„„À#ÈÇ’îÅÏ¤ÆüYÀâÁÀÎïÈÈÊÔÈÀçóÈüÀ¦AAÑÀRÈ1üÂJÈÑA	ÈüaÂ”ËDüYÀ¦ÁÀÎÀSÈåÊÀRçÀ)ÏüaÀâÝèÀsÜÕËÔÀ¾îÀ9Èü‚á>‘ÂÀ¾ü‚Ç”ÃÇü‚!Æ•Æü¾ßäääÚÛäääÚŒßäääÞÛäääÚü¾ÛääääääääÕŒÛääääääääÕüüüüüüüüüüü»÷îð“ÃóËü¹ÀÎÍÒÀçÄ‘ÀgÌÑÀsçü¸ÁÀÊÔ’ÀåÓË­Æü¸ÁÏÍIð‘ÕÌ	ÀŒüyÂC:Ç*õ§ÁÈÆQ’ÏÅIü%3	?1§ÀÊÎÒÀãð‘ÀeÍÑÀqÀŒüÁÕDj.§ÁÀŽÀ7ÀÈÀGò×ÙÏŠÀÇÀÀäÀ#À‰×ÙÏü8ÜÀ.ÀåÀ‡
ÀÂÀÇÐÈ)ÀXÀáÎ¦ÐÏ	À=Õ‹ÉÕBÀ=Õü|âÛÀÈÌÉÀâÀÏÀÏYÚÕ§ÂBJÈÁ“ÉÈÁüÉÍÀÄÇöÈÀ1À˜ÏËÊÍÌÀÈ?IÌÈªÇ
rÇ
rü‰Ç?­ËÏyŽÑÏy¦ÆüùÀè>ÈÊÚªÒÀ=ÎŽ×À=ÎüÉÚ|ÖÏÉÞ«ÇÀ^ÀyÕ’ÃÀ^ÀyÕüˆÇ<$«È•ÇüËËÀÄÂöÈÃÌÏÁÀ†ÍÌÏKÌªÁ–Èü|àÀŸÑ÷ÖÈƒÀáÀÏÈ9ÚªÂ•ÁüÄÃÀ:À=ÀŽÊèÐ9ïÏÀÇÅÇÇõÌÀáüüüü4üüü¾ÄçÇ“ÄÀ˜ü¾ùÅ”ùØü¾ÐÅÈ“Ðü¿ÁÆ”Óü¿Áå”Ìü•ü¾÷çÇ“÷À˜üü¾ÛääääääääÕŒÛääääääääÕü»Â?äääãääääÚŒßäääãääääÚü‚È”ÂÈüYJÏHlÖè,ÄAÈk¡ÃÇ”ÃÇ§ÆüÕ>pÛÏ‰Âp¡ÄÆ•ÆüÍmÀd,©ÅÅ”ÄÅü,ÔÀ°ÀñÙÓÓøÀ´ÓÀ^pÀ°À¼ï×ÑÅÕÞÀÅÀŽÀÀ±ÀÂÀÇÀÀÁÀÁÏ›×Ú”ÑÚü,ÞÔÍÉÞáÝÝÁáÀ°ÝßøÀ°ÍÆà?ÛÁÀñáÀåÀŸÑÀ³ÀáÀÏÀ‡ÀãÀãÕü	ÀŒÇAÀÆÀÆÁÆÆÁÀŒ91Àƒö1çÊÀ1ÌÀÄÊÀ6Íü."È#ŠÅ•ÂüÚ|øNÏ<øIÕÖÈIÕülÉÕ~ÁÚ6Î
ÚÈÉÚÖÏIÚš1ü-ÂŒòˆÈ)9)Åü	ÀŒÍÅÆÀÆ!Æ	ÀŒiÎ1ÀƒÅÄ1ÈÊÍÌÏÊÀ6ÍüøÀãÀô|ÝÁÀúÔÝøÏ~ßÛÁÀñÀúJÀŸIÕÖÈÉÀãÕü)ÔÈÉÀÁÀíÃÓÓìÀöÀ4ÓïpÇÖèéÀ=×ÑÅÀèÀöÈçóÀŽÅïÀÂÐÄóÀÁÏüüüüüüüüüüüüüüüüüü»Âüü„„ó9’îöÏ¤ÆüYÀâÁÀÎîAÊÔÈÀçÆÈüÀ¦FAÑÀRÈ!ÏüÂÈÑA	ÏüaÂRÈËüYÀ¦ÁÀÎë ÊÀRçÀ)Ïü»ÂeÀâÝèÀqÜÕËÔÀ¾îÓÈü‚á>‘ÂÀ¾ü‚Ç”ÃÇ§Æü‚!Æ•Æü¾ßäääÚÛäääÚŒßäääÞÛäääÚü¾ÛääääääääÕŒÛääääääääÕüüüüüüüüüüüüüüüüüÀQÆÕ’ÃÀQÆÕüÈÁÕ’ÂÈÁÕü»ÂMÈy’ÉÈyüƒ	Õ”ÁÕü2ü‚ÀÕ“ÛÀÕüÀNÀ9Ï’ùÀNÀ9Ïüüüü»Âüü2üüüüü¾ÄÀ˜Ï“ÄçÏü¾ùÀ=Õ“ùöÕü¾Ðó”Ðöü¿ËÎ•Îü¿ÌÏ•Ïü¿À-Î”ÁÎü¾÷À½Õ“÷À‰Õüü¾ÛääääääääÕŒÛääääääääÕü¾ßäääãääääÚŒßäääãääääÚü‚È”ÂÈü‚Ç”ÃÇü‚!Æ•Æü‚)Å”ÄÅü‚Ú”ÑÚüüü»Âüü2üüüüüü»Âüü2üüüüüüüüüüüüüüœÌ9*ü ÁüœØ,¢èó”îÅÈÆÄîÌÃüÐÐÀÅÀÂÀÔÅÕËÀâÁÀÎÀCÈÊÔÈÀçó9‹ÀÎÍÒÀçÍÄüÖÀÀãÀâÏÁÚÒÀ¦:‘ÑÀRÈ!9ŠÁÀÊÔ#üœÀfÌçÂÍÊÀ3ÌÒÂ?äääääääääääääÀ÷ÀÜäÀZÀïâÀßääääääääääãÀûÀ°jüŸÇ¡ÌÂäääääääääääääÀõÀÜâÀZÀïâÀßääääääääääãÀ»å*üœÀ½Ï
ÚËÀ¦ÁÀÎÀSÈÊÀRçÀ)Çë‹ÀÊÎÒÀçÓ÷üœàÈIÀaÞ—ÂeÀâÝèÀq‘ËÔÀ¾îÀ9ÀßÔŠÁÀŽÀ'ÀÈîÀ3Àîü£ÄžÂá”ÂÀ¾À/ÏIÕü›ÁêÀ˜ÈîÍƒÌžÃÇ”ÃÇÇ–ÆüÖÀÀÓÀáÀÁïÚžÄÆ•Æèü›Á‡ÀGÀ±ÏÀÐÈÕšßäääÚÛäääÚŒßäääÞÛäääÚOääääÉääääü¾ÛääääääääÕŒÛääääääääÕääääääääãüüüŸÃ›Âüü2üüü›ÉÏ1åÃü›ÖÕsÈ+ü›ÒÍ3ÃüœÅÕÔÀµÀ¡ÀÄÓÀ^À,¥ÃóËÂ’ÂÅÀŽîÅÈü›ÍÁÚÞÀµÀƒÕÝßÀ,£ÀgÌÑÀsÀ˜ÃÀ3ÀŒÐÀ9ÀÄŒÊÀqÈÀçóüœÉÀÀŒQÍÀÆÆ¤ÀåÌÀrÀœŒÑÀQÈ#ü¡Å¦ÕÌb‘ÔËŒÑÁÈ	ÇüžÞ|¥ÏÅ"‘ÎÄËÁJÇü›Íü~¥ÀeÅÑÀsÀœùÀ2À˜ÐÀ9ÀÎŒÊÀQçðüœÅ*Â¤ÁÀÇÀÀäóÀÀ÷ÀãÀÀòÅèŒÒÀqÀ¾îÓÈü›ÒÀ3ÀÀŒQÍÀÆžÂðæÏIÕ	Ú‰ÂðæÏ
	Ú=ÀÇõ3>ü›ÖÀáÚÞIÕÝœÁÇÁÕÁÇÁÕ'ÀãÀ†;ü›ÉÏÕÔîóÀÄÓïËœÁÏÁ“ÁÏÁ/cYü„q"äÏÎ"âääääääÕcÉèáü„y"äÕÏ"âääääääÕLÀŽãü‚ÀÎÖÀÎ/KÕ<üÀ§ÀÕ’ÂÀ§ÀÕ'!ÀÄÀ’ü‡•Á‰Æü‡	–ÈÅü»Âüü2üü›Øü›ã%1ˆ!À˜ÏüšÁÀÃˆØÕü›ÁÑÀÀœÀ\ÆÀ–ÝÀZÒÀ/˜ÄçÏ“ÄÀ˜Ç•ÐÆÕüšÉÐãÜãÀXÜÛÈ”ÂöÕ“ùØÈ–ËÕüœÀ1èÆÀ#BcÅ˜ÐÅ”ÐÆÈ–Ìü¢Ã²Ë—À,Õ’Æü¢Ý²Ì–÷À¼ÏüšÉøœÁÕ”À,ü›Á¢÷çÏ“÷À¼ÇüšÁÀÃÀ1È#Ácü›ãÛ>ßÑÀýÓÜ™ÛääääääääÕŒÛääääääääÕääääääääãü›ØÑÄîÒ×À†À{ÀÒÆÈ—ßäääãääääÚŒßäääãääääÚOäääääääääü‚È”ÂÈü‚Ç”ÃÇü‚!Æ•ÆüŸÇ¢ÅÅ”ÄÅü‚Ú”ÑÚüüüüüüüüüü°ÐääääääääääÀýääääääãäääääääääääääääääääääãü°Öäääääääääääääääääãääääääääääääääääääääääüü2üüüü§Ûääääääääääääääääääääääääääãü§ßäääääääääääääääääääääääääääü»Âüü2üüüüüüüüüüüüüüüüüüüüü»ÁäÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÏü»ÉäÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕÛääÕüüü„„ó9’îÅÏÆüYÀãÁÀÎÀCÈÈÊÀqÈÀçóÏÇüÀ§BAÑÀSÈ19üÉ
ÈÑÁÈzüaÂJ‘ËÁCüYÀ¦ÁÀÎÀQÈåÊÀSçðÏëüaÀãÝèÀsÀ¾ÕËÀqÀ¾îÀ9ÀŸÔüƒ|>’Üüüüüüüüüÿ¥	öä¡	yz’$k
ÿD“I501ileaf_page_string1:7-43¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³43¡þÏ²
Architecture¡þr²As´µalreadyµremarkedµinµtheµpreviousµsection,µtheµarchitectureµon¡þ»whichµtheµpresentedµblockµdiagramµhasµtoµbeµmappedµconsistsµof¡þfourµprocessors,µC40_P1,µC40_P2,µC40_P3,µandµC40_P4,µofµthe¡þLsameµtypeµTMS320C40.µAllµofµtheseµprocessorsµmakeµuseµofµdata¡þ”exchangeµoverµspecializedµcommunicationµchannels,µbutµonlyµthree¡þÝareµused.¡þ„UnlikeµinµtheµRouteµexample,µinµtheµproposedµarchitectureµforµthe¡þÌNotchµexampleµeachµprocessorµisµconnectedµwithµeveryµother¡þprocessor,µsoµthatµroutingµproblemsµwillµnotµoccur.¡þ¼Figure 7³13µshowsµtheµarchitectureµdiagramµforµthisµexample.¡,r²Figure 7³13³ArchitectureµDiagramµofµExampleµNotch¡þË²´µ¡,¥*ãž2ÃËÁÊË¡Äƒwƒ¡ÄƒH¡ÄHHw¡ÄHwƒwâãÇÆÃÃâ¡Ä>w>¡Ä>¡Äw¡Äw>wâÇÆÃâÊËÃ¡ÄF„:„ÆÃÃÊË¡Äc”F„¡ÄF„cs¡Äcsc„¡Äc„c”ÇÆÃ²¡Ku¤ÿÑPL1¤ÿý1¡,·¤ÿ´C40_P1¡P·¤ÿ´C40_P2¡‘p4¡Y‘p4¡,é¤ÿštms320c40¡Pé¤ÿštms320c40ÊËÃ¡ÄF9:9ÆÃÃÊË¡Ä(:9¡Ä:9I¡ÄI9¡Ä9(ÇÆÃ¡K%¤ÿÛPL1¡Fp3¡YFp3Ã¡Äƒ
ºƒ	J¡Äƒ	JH	J¡ÄH	JH
º¡ÄH
ºƒ
ºâÇÆÃâ¡,	ú¤ÿ´C40_P3¡	Ôp5¡,
,¤ÿštms320c40¡	‰p2¡^p6¡|^p1¡K
|¤ÿÛPL2¡K
1¤ÿÏPL12ÊËÃ¡ÄF
:
ÆÃÃÊË¡Ä
~:
¡Ä:

 ¡Ä
 
¡Ä

~ÇÆÃÊËÃ¡ÄF
D:
DÆÃÃÊË¡Äc
UF
D¡ÄF
Dc
3¡Äc
3c
D¡Äc
Dc
UÇÆÃ¡Up5¡YUp5¡
p2¡Y
p2¡
˜p3¡
Mp4Ã¡Ä>
º>	J¡Ä>	J	J¡Ä	J
º¡Ä
º>
ºâÇÆÃâ¡P	ö¤ÿÂC40_4¡Y	Ðp5¡P
(¤ÿštms320c40¡Y	…p2¡	up6¡|	up1¡Y
”p3¡Y
Ip4¡á^p1¡Q^p6¡á	up1¡Q	up6ÊËÃ¡Äö{ö	LÆÃÃÊË¡Ä	/ö	L¡Äö	Lå	/¡Äå	/ö	/¡Äö	/	/ÇÆÃÊËÃ¡Äb	LbwÆÃÃÊË¡ÄQ”bw¡Äbws”¡Äs”b”¡Äb”Q”ÇÆÃÊËÃ¡Ä { 	LÆÃÃÊË¡Ä˜ {¡Ä {1˜¡Ä1˜ ˜¡Ä ˜˜ÇÆÃÊËÃ¡Ä	LwÆÃÃÊË¡Ä	/	L¡Ä	L|	/¡Ä|	/	/¡Ä	/	/ÇÆÃÊËÃ¡ÄG	z?þÆÃÃÊË¡Ä?þ¡Ä?þ2¡Ä2(¡Ä(ÇÆÃÊËÃ¡ÄG	É?NÆÃÃÊË¡Äh	ÅG	É¡ÄG	ÉT	ª¡ÄT	ª^	·¡Ä^	·h	ÅÇÆÃÊËÃ¡Ä?	uGÆÃÃÊË¡Ä2	W?	u¡Ä?	u	r¡Ä	r(	d¡Ä(	d2	WÇÆÃÊËÃ¡Ä?	ÉGTÆÃÃÊË¡ÄTrGT¡ÄGThW¡ÄhW^e¡Ä^eTrÇÆÃ¡uPL6¡ËPL5¡C¶PL7¡ý²PL8¡¬ðPL10¡ªðPL4¡šðPL3¡ðPL9¥	öä²¡Ê’
ÿOD“I501ileaf_page_string1:7-44¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³44¡þÉ²The´µarchitectureµfileµhydra04.dcg_archµprovidesµtheµcodeµgenerator¡þwithµallµinformationµconcerningµtheµhardwareµstructureµandµthe¡þZsuppliedµintercommunicationµdriversµ(seeµExample 7³10).¡þõTheµarchitectureµfileµforµtheµNotchµexampleµisµstructuredµtheµsame¡þ>wayµasµtheµfileµhydra01.dcg_archµofµtheµdemuxµexample.µTheµNotch¡þ‡architectureµfileµdiffersµfromµtheµdemuxµexampleµarchitectureµfileµin¡þÏtwoµkeyµways:¡þO²S¡XO²Becauseµitµdeclaresµ10µmoreµlinks,µitµhasµanµextendedµIPC¡X•parameterµsection.¡þ²S¡X²Becauseµallµtheµprocessorsµofµtheµsameµtypeµareµcollectedµinto¡XKoneµdeclarationµsection,µtheµprocessorµdeclarationµisµshorter.¡,ä²Example 7³10³ArchitectureµFileµhydra04.dcg_arch¡þ9²--´µprocessorµdeclaration¡þm------------------------¡þ¡PROC{¡þÕµµNAME{C40_P1,C40_P2,C40_P3,C40_P4}¡þ	µµTYPE{tms320c40}¡þ<µµPORTS{p1,p2,p3,p4,p5,p6}¡þp}¡þ¤¡þØ--µtopologyµsection¡þ-------------------¡þ@LINK{¡þtµµNAME{PL1}¡þ¨µµSOURCE{µPROC{C40_P1}µPORT{p3}}¡þÜµµSINK{µPROC{C40_P2}µPORT{p3}}¡þ	µµDRIVER{D1}¡þ	C}¡þ	wLINK{¡þ	«µµNAME{PL11}¡þ	ßµµSOURCE{µPROC{C40_P2}µPORT{p4}}¡þ
µµSINK{µPROC{C40_P1}µPORT{p4}}¡þ
GµµDRIVER{D1}¡þ
{}¡þ
¯¡þ
âLINK{¡þµµNAME{PL2}’OD“I501ileaf_page_string1:7-45¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³45¡þÃ²´µµSOURCE{µPROC{C40_P3}µPORT{p3}}¡þ÷µµSINK{µPROC{C40_P4}µPORT{p3}}¡þ+µµDRIVER{D1}¡þ_}¡þ’LINK{¡þÆµµNAME{PL12}¡þúµµSOURCE{µPROC{C40_P4}µPORT{p4}}¡þ.µµSINK{µPROC{C40_P3}µPORT{p4}}¡þbµµDRIVER{D1}¡þ–}¡þÊ¡þþLINK{¡þ2µµNAME{PL3}¡þeµµSOURCE{µPROC{C40_P1}µPORT{p1}}¡þ™µµSINK{µPROC{C40_P3}µPORT{p1}}¡þÍµµDRIVER{D1}¡þ}¡þ5LINK{¡þiµµNAME{PL9}¡þµµSOURCE{µPROC{C40_P3}µPORT{p6}}¡þÑµµSINK{µPROC{C40_P1}µPORT{p6}}¡þµµDRIVER{D1}¡þ8}¡þl¡þ LINK{¡þÔµµNAME{PL4}¡þµµSOURCE{µPROC{C40_P2}µPORT{p1}}¡þ<µµSINK{µPROC{C40_P4}µPORT{p1}}¡þpµµDRIVER{D1}¡þ¤}¡þØLINK{¡þµµNAME{PL10}¡þ?µµSOURCE{µPROC{C40_P4}µPORT{p6}}¡þsµµSINK{µPROC{C40_P2}µPORT{p6}}¡þ§µµDRIVER{D1}¡þÛ}¡þ	¡þ	C¡þ	wLINK{¡þ	«µµNAME{PL5}¡þ	ÞµµSOURCE{µPROC{C40_P3}µPORT{p2}}¡þ
µµSINK{µPROC{C40_P2}µPORT{p2}}¡þ
FµµDRIVER{D1}¡þ
z}¡þ
®LINK{¡þ
âµµNAME{PL8}¡þµµSOURCE{µPROC{C40_P2}µPORT{p5}}’JD“I501ileaf_page_string1:7-46¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³46¡þÃ²´µµSINK{µPROC{C40_P3}µPORT{p5}}¡þ÷µµDRIVER{D1}¡þ+}¡þ_¡þ’¡þÆLINK{¡þúµµNAME{PL6}¡þ.µµSOURCE{µPROC{C40_P1}µPORT{p2}}¡þbµµSINK{µPROC{C40_P4}µPORT{p2}}¡þ–µµDRIVER{D1}¡þÊ}¡þþLINK{¡þ2µµNAME{PL7}¡þeµµSOURCE{µPROC{C40_P4}µPORT{p5}}¡þ™µµSINK{µPROC{C40_P1}µPORT{p5}}¡þÍµµDRIVER{D1}¡þ}¡þ5¡þi--µipcµsection¡þ--------------¡þÑDRIVER{¡þµµNAME{D1}¡þ8µµLIB{µ${COSSAP_DIR}/models/ipc}µµ¡þlµµSEND{µNAME{µout_msgµ}}¡þ µµRECEIVE{µNAME{µin_msgµ}}¡þÔµµPAR{µNAME{µCHANNEL_Identifierµ}¡þµµµµµµµPROC{µNAME{µC40_P1µ}¡þ<µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{1}}¡þpµµµµµµµµµµµµµMAP{µPORT{p2}µVAL{2}}¡þ¤µµµµµµµµµµµµµMAP{µPORT{p3}µVAL{0}}¡þØµµµµµµµµµµµµµMAP{µPORT{p4}µVAL{0}}¡þµµµµµµµµµµµµµMAP{µPORT{p5}µVAL{2}}¡þ?µµµµµµµµµµµµµMAP{µPORT{p6}µVAL{1}}¡þsµµµµµµµ}¡þ§µµµµµµµPROC{µNAME{µC40_P2µ}¡þÛµµµµµµµµµµµµµMAP{µPORT{p1}µVAL{4}}¡þ	µµµµµµµµµµµµµMAP{µPORT{p2}µVAL{0}}¡þ	CµµµµµµµµµµµµµMAP{µPORT{p3}µVAL{3}}¡þ	wµµµµµµµµµµµµµMAP{µPORT{p4}µVAL{3}}¡þ	«µµµµµµµµµµµµµMAP{µPORT{p5}µVAL{0}}¡þ	ÞµµµµµµµµµµµµµMAP{µPORT{p6}µVAL{4}}¡þ
¡þ
Fµµµµµµµ}¡þ
zµµµµµµµPROC{µNAME{µC40_P3µ}¡þ
®µµµµµµµµµµµµµMAP{µPORT{p1}µVAL{3}}¡þ
âµµµµµµµµµµµµµMAP{µPORT{p2}µVAL{4}}¡þµµµµµµµµµµµµµMAP{µPORT{p3}µVAL{5}}’J·D“I501ileaf_page_string1:7-47¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³47¡þÃ²´µµµµµµµµµµµµµMAP{µPORT{p4}µVAL{5}}¡þ÷µµµµµµµµµµµµµMAP{µPORT{p5}µVAL{4}}¡þ+µµµµµµµµµµµµµMAP{µPORT{p6}µVAL{3}}¡þ_¡þ’µµµµµµµ}¡þÆµµµµµµµPROC{µNAME{µC40_P4µ}¡þúµµµµµµµµµµµµµMAP{µPORT{p1}µVAL{0}}¡þ.µµµµµµµµµµµµµMAP{µPORT{p2}µVAL{3}}¡þbµµµµµµµµµµµµµMAP{µPORT{p3}µVAL{1}}¡þ–µµµµµµµµµµµµµMAP{µPORT{p4}µVAL{1}}¡þÊµµµµµµµµµµµµµMAP{µPORT{p5}µVAL{3}}¡þþµµµµµµµµµµµµµMAP{µPORT{p6}µVAL{0}}¡þ2µµµµµµµ}¡þeµµ}¡þ™}¡þ/²
Attribute¡þÅ²The´µattributeµfileµisµpartµofµtheµgeneratedµCOSSAPµnetlist.¡þExample 7³11µshowsµtheµattributeµfile,µnotch.attr.¡,´²Example 7³11³AttributeµFileµnotch.attr¡þ	²OBJECT¡þ<´µµOBJTYPEµinstance¡þpµµOBJNAMEµM4¡þ¤µµMODELNAMEµkill¡þØµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þ@µµATTRIBUTEµdcg_processorµ"C40_P3"¡þtOBJECT¡þ¨µµOBJTYPEµinstance¡þÜµµOBJNAMEµM17¡þ	µµMODELNAMEµadd2¡þ	CµµLIBRARYµDSP¡þ	wµµPRIMITIVEµyes¡þ	«µµATTRIBUTEµdcg_processorµ"C40_P1"¡þ	ßOBJECT¡þ
µµOBJTYPEµinstance¡þ
GµµOBJNAMEµM14¡þ
{µµMODELNAMEµadd2¡þ
¯µµLIBRARYµDSP¡þ
âµµPRIMITIVEµyes¡þµµATTRIBUTEµdcg_processorµ"C40_P3"’·YD“I501ileaf_page_string1:7-48¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³48¡þÃ²OBJECT¡þ÷´µµOBJTYPEµinstance¡þ+µµOBJNAMEµM9¡þ_µµMODELNAMEµadd2¡þ’µµLIBRARYµDSP¡þÆµµPRIMITIVEµyes¡þúµµATTRIBUTEµdcg_processorµ"C40_P3"¡þ.OBJECT¡þbµµOBJTYPEµinstance¡þ–µµOBJNAMEµM5¡þÊµµMODELNAMEµadd2¡þþµµLIBRARYµDSP¡þ2µµPRIMITIVEµyes¡þeµµATTRIBUTEµdcg_processorµ"C40_P2"¡þ™OBJECT¡þÍµµOBJTYPEµinstance¡þµµOBJNAMEµM20¡þ5µµMODELNAMEµsub¡þiµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þÑµµATTRIBUTEµdcg_processorµ"C40_P2"¡þOBJECT¡þ8µµOBJTYPEµinstance¡þlµµOBJNAMEµM23¡þ µµMODELNAMEµfork¡þÔµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þ<µµATTRIBUTEµdcg_processorµ"C40_P3"¡þpOBJECT¡þ¤µµOBJTYPEµinstance¡þØµµOBJNAMEµM25¡þµµMODELNAMEµfork¡þ?µµLIBRARYµDSP¡þsµµPRIMITIVEµyes¡þ§µµATTRIBUTEµdcg_processorµ"C40_P3"¡þÛOBJECT¡þ	µµOBJTYPEµinstance¡þ	CµµOBJNAMEµM24¡þ	wµµMODELNAMEµfork¡þ	«µµLIBRARYµDSP¡þ	ÞµµPRIMITIVEµyes¡þ
µµATTRIBUTEµdcg_processorµ"C40_P3"¡þ
FOBJECT¡þ
zµµOBJTYPEµinstance¡þ
®µµOBJNAMEµM18¡þ
âµµMODELNAMEµfork¡þµµLIBRARYµDSP’YsD“I501ileaf_page_string1:7-49¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³49¡þÃ²´µµPRIMITIVEµyes¡þ÷µµATTRIBUTEµdcg_processorµ"C40_P1"¡þ+OBJECT¡þ_µµOBJTYPEµinstance¡þ’µµOBJNAMEµM16¡þÆµµMODELNAMEµfork¡þúµµLIBRARYµDSP¡þ.µµPRIMITIVEµyes¡þbµµATTRIBUTEµdcg_processorµ"C40_P1"¡þ–OBJECT¡þÊµµOBJTYPEµinstance¡þþµµOBJNAMEµM10¡þ2µµMODELNAMEµmul2¡þeµµLIBRARYµDSP¡þ™µµPRIMITIVEµyes¡þÍµµATTRIBUTEµdcg_processorµ"C40_P3"¡þOBJECT¡þ5µµOBJTYPEµinstance¡þiµµOBJNAMEµM6¡þµµMODELNAMEµmul2¡þÑµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þ8µµATTRIBUTEµdcg_processorµ"C40_P2"¡þlOBJECT¡þ µµOBJTYPEµinstance¡þÔµµOBJNAMEµM21¡þµµMODELNAMEµmul2¡þ<µµLIBRARYµDSP¡þpµµPRIMITIVEµyes¡þ¤µµATTRIBUTEµdcg_processorµ"C40_P3"¡þØOBJECT¡þµµOBJTYPEµinstance¡þ?µµOBJNAMEµM7¡þsµµMODELNAMEµmul2¡þ§µµLIBRARYµDSP¡þÛµµPRIMITIVEµyes¡þ	µµATTRIBUTEµdcg_processorµ"C40_P2"¡þ	COBJECT¡þ	wµµOBJTYPEµinstance¡þ	«µµOBJNAMEµM22¡þ	ÞµµMODELNAMEµmuls¡þ
µµLIBRARYµDSP¡þ
FµµPRIMITIVEµyes¡þ
zµµATTRIBUTEµdcg_processorµ"C40_P3"¡þ
®OBJECT¡þ
âµµOBJTYPEµinstance¡þµµOBJNAMEµM12’s‰D“I501ileaf_page_string1:7-50¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³50¡þÃ²´µµMODELNAMEµmuls¡þ÷µµLIBRARYµDSP¡þ+µµPRIMITIVEµyes¡þ_µµATTRIBUTEµdcg_processorµ"C40_P3"¡þ’OBJECT¡þÆµµOBJTYPEµinstance¡þúµµOBJNAMEµM15¡þ.µµMODELNAMEµconst_gen¡þbµµLIBRARYµDSP¡þ–µµPRIMITIVEµyes¡þÊµµATTRIBUTEµdcg_processorµ"C40_P1"¡þþOBJECT¡þ2µµOBJTYPEµinstance¡þeµµOBJNAMEµM19¡þ™µµMODELNAMEµsin_gen_tbl¡þÍµµLIBRARYµDSP¡þµµPRIMITIVEµyes¡þ5µµATTRIBUTEµdcg_processorµ"C40_P1"¡þiOBJECT¡þµµOBJTYPEµnet¡þÑµµOBJNAMEµSIG_0006_1¡þµµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þ8OBJECT¡þlµµOBJTYPEµnet¡þ µµOBJNAMEµSIG_0014¡þÔµµATTRIBUTEµdcg_ipc_linkµ"PL8"¡þOBJECT¡þ<µµOBJTYPEµnet¡þpµµOBJNAMEµSIG_0016¡þ¤µµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þØOBJECT¡þµµOBJTYPEµnet¡þ?µµOBJNAMEµSIG_0027¡þsµµATTRIBUTEµdcg_ipc_linkµ"PL5"¡þ§OBJECT¡þÛµµOBJTYPEµnet¡þ	µµOBJNAMEµSIG_0016_1¡þ	CµµATTRIBUTEµdcg_ipc_linkµ"PL3"¡þ	wOBJECT¡þ	«µµOBJTYPEµnet¡þ	ÞµµOBJNAMEµSIG_0019_1¡þ
µµATTRIBUTEµdcg_ipc_linkµ"PL1"¡þ
FOBJECT¡þ
zµµOBJTYPEµnet¡þ
®µµOBJNAMEµSIG_0015¡þ
âµµATTRIBUTEµdcg_ipc_linkµ"PL5"¡þOBJECT’‰âD“I501ileaf_page_string1:7-51¥	öä¥	öä¡·Á²âMultiprocessor´µDSPµCodeµGeneration¡Ô¤ÿ¤7³51¡þÃ²´µµOBJTYPEµnet¡þ÷µµOBJNAMEµSIG_0012_1¡þ+µµATTRIBUTEµdcg_ipc_linkµ"PL3"--µconst_genµ(M15)¡þþ²
Verification¡þ²After´µyouµhaveµspecifiedµtheµattributeµfile,µyouµcanµgenerateµtheµcode¡þæforµallµprocessingµunitsµbyµinvokingµxdcg.¡þ‰Ifµyouµenterµ/user/dcg/projectµforµtheµoutputµdirectory,µtheµDCG¡þÑgeneratesµtheµfollowingµfilesµinµdirectoryµ/user/dcg/project:¡…P²project_P1_C40.c¡…†project_P2_C40.c¡…¼project_P3_C40.c¡þy²Forµthisµexample,µtheµgeneratedµcodeµisµbasedµonµtheµfollowing¡þÂschedule:¡þdGeneratedµscheduleµforµC40_P1:¡…ã²4´µxµCONST_GENµ(M15)¡…1µxµSIN_GEN_TBLµ(M19)¡…O4µxµFORKµ(M26)¡……4µxµFORKµ(M16)¡…»4µxµout_msgµ(ipcs_SIG_0012_1)¡…ð4µxµout_msgµ(ipcs_SIG_0019_1)¡…	&4µxµADD2µ(M17)¡…	\4µxµout_msgµ(ipcs_SIG_0006_1)¡…	’4µxµFORKµ(M18)¡…	È4µxµout_msgµ(ipcs_SIG_0016_1)¡…	þ4µxµout_msgµ(ipcs_SIG_0016)’â‚D“I501ileaf_page_string1:7-52¥	öä¥	öä¡8Á²âMultiprocessor´µDSPµCodeµGeneration¡.7³52¡þÉ²Generated´µscheduleµforµC40_P2:¡…H²4´µxµin_msgµ(ipcr_SIG_0019_1)¡…}4µxµin_msgµ(ipcr_SIG_0006_1)¡…³4µxµin_msgµ(ipcr_SIG_0016)¡…é4µxµ{¡…µµ1µxµin_msgµ(ipcr_SIG_0015)¡…Uµµ1µxµMUL2µ(M6)¡…‹µµ1µxµin_msgµ(ipcr_SIG_0027)¡…Áµµ1µxµMUL2µ(M7)¡…÷µµ1µxµADD2µ(M5)¡…-µµ1µxµSUBµ(M20)¡…cµµ1µxµout_msgµ(ipcs_SIG_0014)¡…™}¡þ ²Generated´µscheduleµforµC40_P3:¡…Ÿ²4´µxµin_msgµ(ipcr_SIG_0012_1)¡…Õ4µxµin_msgµ(ipcr_SIG_0016_1)¡…4µxµ{¡…Aµµ1µxµFORKµ(M24)¡…wµµ1µxµout_msgµ(ipcs_SIG_0015)¡…­µµ1µxµFORKµ(M25)¡…ãµµ1µxµout_msgµ(ipcs_SIG_0027)¡…µµ1µxµin_msgµ(ipcr_SIG_0014)¡…Oµµ1µxµFORKµ(M27)¡……µµ1µxµFORKµ(M23)¡…»µµ1µxµMUL2µ(M21)¡…ñµµ1µxµMULSµ(M12)¡…'µµ1µxµADD2µ(M9)¡…]µµ1µxµMUL2µ(M10)¡…“µµ1µxµMULSµ(M22)¡…Éµµ1µxµADD2µ(M14)¡…ÿ}’‚ÐOPS m:m:D€‚Document:dcg8ÿ‚Last saved on:Fri, Jan 2, 1998 14:24:48ÿ„ileafileafƒ	öä°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:helvps14i±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:courps12±:                                                                                          2                                       °wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps60±:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°wst:helvps72±:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°wst:courps12i±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°!wst:courps10i±!:*°0wst:helvps8±0:							!								!									!!!!°3wst:helvps8b±3:					 								!									!!!!°4wst:newcsps12±4:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°:wst:helvps10b±::%)!#!!(%!*!!!!!!%****(°;wst:helvps9±;:

!




&
#






%



!




%%%%#åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿåšå€å™™ÿÿNîÍåÿÿ‘hˆå
«ÿÿÊªmÞå«ÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’8ìD“I501ileaf_page_string1:8-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡äÁ²Installing´µaµNewµTarget¡Ô¤ÿ¾8³1¡,m²²8â²¥	öä¡Õm²â¡,v²Installing´µaµNewµTarget¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡To´µgenerateµmultiprocessorµDSPµcodeµforµaµnewµprocessor¡þéarchitecture,µorµifµyouµneedµaµnewµcompileµandµdownload¡þ2environment,µitµmayµbeµnecessaryµtoµinstallµaµnewµtarget.µToµinstallµa¡þznewµtarget,µperformµtheµfollowingµsteps:¡þÿ1.¡XÿWriteµaµnewµtargetµfile.¡þs2.¡XsSetµtheµenvironmentµvariableµCOSSAP_DCG_PATH.¡þæ3.¡XæInstallµshellµscriptsµforµcompilingµandµdownloading.¡þ	Z4.¡X	ZInstallµoptimizationµfiles.¡þ	Í5.¡X	ÍWriteµtheµprocessorµarchitectureµfile.¡þ
_Theseµstepsµareµdescribedµinµtheµfollowingµsections.’ùD“I501ileaf_page_string1:8-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Installing´µaµNewµTarget¡.8³2¡,Õ²Target´µFile¡þ†²A´µtargetµfileµdefinesµaµnewµtargetµforµxdcg.µTheµsuffixµofµaµtargetµfile¡þÏmustµbeµ.dcg.µAµtargetµfileµhasµtheµfollowingµstructure:¡þH²DCG_COMMENT_POPUP¡H¡¡H²pop_up_text²´µ¡þ|DCG_COMMENT_EXTENDED¡¡|²extended_text²µ¡þ°DCG_TARGET²¡“°¡°¡¡°target²µ¡þäDCG_BASE_DIRECTORY¡¡ä²target_directory²µ¡þDCG_MULTI_DCG²¡“¡¡¡multi_dcg²µ¡þLDCG_ARCH_FILE_NAME¡¡L²architecture_file¡þ¿²pop_up_text´µ¡X²Theµtextµthatµwillµbeµdisplayedµinµtheµpop³upµlistµofµtheµsupported¡XQtargetsµwhenµtheµrightµmouseµbuttonµisµpressedµinµtheµTarget¡X™areaµ(seeµtheµsectionµTarget"µinµChapterµ2).µTheµkeyword¡XâDCG_COMMENT_POPUPµmustµbeµtheµfirstµlineµinµtheµtarget¡X*file.¡þŽ²extended_textµ¡XÖ²Theµtextµthatµwillµbeµdisplayedµalongµwithµ²pop_up_text²µinµthe¡X²Targetµarea²µwhenµtheµnewµtargetµisµselected.¡þ‚²target¡XË²Theµtargetµprocessor.µForµsingleµprocessorµcodeµgeneration,µthe¡Xfollowingµtargetµprocessorsµareµvalid:¡Xv³¡”vtms320c30¡Xå³¡”åtms320c40¡X	S³¡”	Sdsp32c¡X	ÁForµmultiprocessorµcodeµgeneration,µtheµentryµforµ²target²µmustµbe¡X
MULTI_PROC_DCG.¡þ
ƒ²target_directoryµ¡X
Ì²Theµdirectoryµcontainingµtheµshellµscriptsµforµcompilingµand¡Xdownloading.’ù8D“I501ileaf_page_string1:8-3¥	öäÃËÁâÊË¡Ä,¨,’¡Ä,’	c’¡Ä	c’	c¨¡Ä	c¨,¨ÆÃÁÊËÃ¡Ä,’Ê’ÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡äÁ²Installing´µaµNewµTarget¡Ô¤ÿ¾8³3¡þÉ²multi_dcg´µ¡X²TheµBooleanµvariableµindicatingµifµtheµtargetµisµfor¡XZmulti³processorµDSPµcodeµgeneration.µReplaceµ²multi_dcg²µwith¡X£yesµorµno.¡þ²architecture_fileµ¡XO²Theµdefaultµprocessorµarchitectureµfile.¡X²TheµkeyµwordsµDCG_MULTI_DCGµand¡XøDCG_ARCH_FILE_NAMEµareµoptional.¡,è²COSSAP_DCG_PATH´µEnvironmentµVariable¡þ™²Set´µenvironmentµvariableµCOSSAP_DCG_PATHµtoµtheµdirectory¡þâcontainingµyourµnewµtargetµfile.µForµexample,µforµtheµtargetµfile¡þ*${HOME}/codegen/target.dcg,µset:¡þ¤²setenv´µCOSSAP_DCG_PATHµ${HOME}/codegen¡,Y²Shell´µScripts¡þ	²Selecting´µ²²Compileµorµ²²DownloadµfromµtheµxdcgµCodeµmenuµcallsµa¡þRshellµscriptµ(seeµtheµsectionµCodeµMenu"µinµChapterµ2).µThe¡þšfollowingµisµaµlistµofµtheµshellµscriptsµalongµwithµaµdescriptionµofµhow¡þãtoµinstallµthem:¡þ	`Compile¡X	©ForµmultiprocessorµDSPµcodeµgeneration,µshellµscript¡X	òtarget²_²directory/dcgcc_masterµisµcalled.µForµsingle³processor¡X
:DSPµcodeµgeneration,µshellµscriptµtarget²_²directory/dcgccµis¡X
ƒcalled.µWriteµaµshellµscriptµforµcompilingµandµlinkingµtheµcode¡X
Ìgeneratedµforµthisµtarget.µ(SeeµCOSSAPµtargetµpentekµfor¡Xmultiprocessorµcodeµgenerationµasµanµexample.)’8ÖD“I501ileaf_page_string1:8-4¥	öäÃËÁâÊË¡Ä,×,Á¡Ä,Á	cÁ¡Ä	cÁ	c×¡Ä	c×,×ÆÃÁÊËÃ¡Ä,ÁÊÁÆÃ¥	öä¥	öä¡8Á²Installing´µaµNewµTarget¡.8³4¡þÉ²Download¡XFor´µmulti³processorµDSPµcodeµgeneration,µshellµscript¡XZtarget²_²directory/dcgdl_masterµisµcalled.µForµsingle³processor¡X£DSPµcodeµgeneration,µshellµscriptµtarget²_²directory/dcgdlµis¡Xìcalled.µWriteµaµshellµscriptµforµdownloadingµtheµcodeµgenerated¡X4forµthisµtarget.µ(SeeµtheµCOSSAPµtargetµpentekµfor¡X}multiprocessorµcodeµgenerationµasµanµexample.)¡þóForµtheµtranslationµofµtheµµtarget²_²directoryµseeµtheµsectionµonµthe¡þ;DCG_BASE_DIRECTORYµkeywordµinµthisµmanual.¡,²Optimization´µFiles¡þ¹²Copy´µtheµfollowingµoptimizationµfilesµfromµtheµdirectory¡þ${COSSAP_DIR}/appl/dcg/pentekµtoµtheµtargetµdirectory:¡þx²S¡Xx²codesize.opt¡þà²S¡Xà²throughput.opt¡þI²S¡XI²default.opt¡þÈYouµcanµadaptµtheseµoptimizationµfilesµbyµperformingµtheµfollowing¡þsteps:¡þ†1.¡X†SelectµtheµnewµtargetµinµtheµTargetµareaµofµtheµxdcgµwindow.¡þï2.¡XïSelectµtheµdesiredµstrategyµinµtheµOptimizationsµareaµofµtheµxdcg¡X	5window.¡þ	ž3.¡X	žChooseµ²²Settingsµ²>²µSetµoptionsµtoµselectµaµsetµofµoptimization¡X	ästrategies.¡þ
M4.¡X
MSaveµtheµoptimizationµfileµbyµchoosingµ²²Fileµ²>²µSaveµas.¡þ
ÌForµmoreµdetailedµinformation,µseeµtheµsectionµSettingsµMenu"µin¡þChapterµ2.’Ö®D“I501ileaf_page_string1:8-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡äÁ²Installing´µaµNewµTarget¡Ô¤ÿ¾8³5¡,Õ²Processor´µArchitectureµFile¡þ”²Write´µtheµprocessorµarchitectureµfileµforµyourµnewµprocessor¡þÝarchitecture.µForµmoreµinformation,µseeµtheµsectionµArchitecture¡þ%File"µinµChapterµ7.’®ÐOPS m:m:D€‚Document:Indexÿ‚Last saved on:Fri, Jan 2, 1998 14:24:01ÿ„ileafileafƒ	öä°wst:timsps10±:#!'%(!%***%°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps24±:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps18±:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°>wst:helvps11i±>:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°Vwst:dutch10±V¿ '"#####) """( "" " )  *"*##!!!      ," """""#"""""  #**9 %.%   """"""""    """   """""")  åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’¼YD“I501ileaf_page_string1:IN-1¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿ©IN³1¡,m²¥	öä¡JmIndex¡,(²A¡,‡²architecture´µ(ARCH)µfile¡R¾DRIVERµkeyword,µ7³10¡RöLINKµkeyword,µ7³9¡R.PROCµkeyword,µ7³7¡Reselectingµinµxdcg,µ2³18¡,§assignmentµfile,µuseµwithµgenericµC,µ2³4¡,éattributes,µ3³32¡,+attributionµ(A¤ÿýTTR)µfile,µdescription,µ5³3¡,maudience,µDCGµmanual,µiv¡,O²B¡,®²(B)-loop,µ1³38,µ2³25¡,ð(B)-loops,µ3³30¡,	2BlockµDiagramµEditor¡R	ihierarchicalµmodels,µ5³2¡R	¡usingµtoµcreateµaµnetlistµforµtheµDCG¡w	ØforµCµcode,µ2³2¡w
forµgenericµCµcode,µ2³4¡,
Rblockµfactorµdependentµzeroµoverheadµloops,¡,
„1³37¡,
Æblockµfactorµloops,µ3³30¡,blocks,µdefined,µ1³10¡-(²C¡-o²CHANNEL_Identifierµparameter¤ÿý,µ7³21¡-¨codeµgenerationµstrategies,µ3³5¡SÝdescribed,µ1³17¡Soptimizationµfile,µ2³22¡SFselectingµinµxdcg,µ2³23¡-€codeµinlining,µ1³36,µ3³25¡-¹combinedµstrategy¤ÿý,µ1³34¡-òcontents,µDCGµmanual,µv¡-+cutµsignals,µdefined,µ7³19¡-µ²D¡-ü²dataµflows,µ3³3¡-6DCG.µ²>See²µDSPµCodeµGenerator¡-oDCGµmanual¡S£audience,µiv¡SØcontentsµdescribed,µv¡S	overview¤ÿý,µiv¡-	Fdcg_boarddefs.hµfile,µ2³32¡-	dcg_boardinit()µinitializationµfunction,µ2³32¡-	¸dcg_boardpost()µterminationµfunction,µ2³32¡-	ñdcg_dspdefs.hµfile,µ2³31¡-
*dcg_dspinit()µinitializationµfunction,µ2³31¡-
ddcg_dsppost()µterminationµfunction,µ2³31¡-
DCG_IPC_Identifierµparameter¤ÿý,µ7³21¡-
Ödelayµblocks,µandµmultiprocessorµDSPµcode¡-generation,µ7³13’Y
D“I501ileaf_page_string1:IN-2¥	öä¥	öäâ²¡.IN³2¡,Àdetecting´µperiodicµsubsequences,µ1³24¡,DRIVERµkeyword,µ7³10¡,IDSPµcodeµgeneration¡Rblockµfactorµdependentµzeroµoverhead¡´loops,µ1³37¡Rìcodeµinlining,µ1³36¡R%combinedµstrategy¤ÿý,µ1³34¡R]designµphases,µ1³2¡R–detectingµperiodicµsubsequences,µ1³24¡RÎexampleµof,µ3³6¡Rexecutingµblockµdiagrams,µ1³14¡R?flatµscheduling,µ1³21¡RxgeneratingµCµcode,µoverview¤ÿý,µ2³2¡R°generatingµGenericµCµcode,µoverview¤ÿý,µ2³4¡Réhierarchicalµscheduling,µ1³25¡R!implementationµspace,µ1³9¡RZlatency¤ÿý,µ1³9¡R’memoryµrequirements,µ1³9¡RËmodellingµconstraints,µ1³10¡Rmultiprocessor¤ÿý,µ7³1¡R<parameterµdependentµzeroµoverhead¡nloops,µ1³39¡R§performanceµmeasures,µ1³8¡Rßscalableµstaticµdataµflow¤ÿý,µ1³12¡Rsharedµbuf¤ÿÿfers,µ1³34¡RPstrategies,µ1³17¡R‰strategiesµatµtheµblockµlevel,µ1³34¡RÁunfoldingµblockµfactorµloops,µ1³38¡Rúunfoldingµparameterµloops,µ1³40¡,>DSPµCodeµGenerator¡Rwdescription,µ1³2¡R¯environment,µ1³4¡Règeneratedµcode,µ6³1¡R	 hierarchicalµversus.µprimitiveµmodels,µ5³1¡R	Yinputµspecification,µ1³9¡R	‘modelµlibraries,µ5³9¡R	ÊstructureµofµtheµGenericµCµcode,µ6³7¡R
tools,µ1³6¡R
;xdcg,µ2³5¡,
DSPµoptimization,µexampleµof,µ3³1¤ÿý1¡,
ÄDSP-specificµinitializationµroutines,µ2³31¡,dspobjcode.ftblµfile,µ5³1¤ÿý1¡-Õ²E¡-²examples¡STfilesµrequiredµbyµtheµDCG,µ5³8¡S‰multiprocessorµDSPµcodeµgeneration,µ7³25¡-²F¡-g²flatµscheduling,µ1³21,µ3³16¡-¡forkµblocks,µandµmulti-processorµDSPµcode¡-Ôgeneration,µ7³13¡-h²G¡-²²GenericµCµcode¡SçgeneratingµusingµtheµDCG,µ2³4¡SusingµinµaµDSPµsystem,µ1³7,µ3³47¡-VgenericµCµcodeµgeneration,µexampleµof,µ3³46¡-‘globalµblockµfactor¤ÿý,µ1³18,µ3³20,µ3³23¡-Ëglobalµblocking,µ2³27¡-globalµloopµunfolding,µ2³28,µ2³29¡-?globalµmodelµinlining,µ2³28¡-Ó²H¡-²sharedµbuf¤ÿÿfer¤ÿý,µxdcgµoption,µ3³21¡-Whelp,µSynopsysµT¤ÿûechnicalµSupportµCenter¤ÿý,µviii¡-’hierarchicalµmodels¡SÇdefined,µ1³4¡Sürequiredµfiles,µ5³2¡S1versus.µprimitiveµmodels,µ5³1¡-khierarchicalµscheduling,µ1³25,µ3³19¡-ÿ²I¡-	I²implementationµspace,µ1³9¡-	ƒinformation,µotherµsources,µvii¡-	½inlining,µxdcgµoption,µ3³27¡-	øinstallingµaµnewµtarget,µexmpleµof,µ3³41¡-
2interactiveµmode,µ4³2¡S
gspecifyingµinµxdcg,µ2³12¡-
¡interprocessorµcommunicationµ(IPC),µ7³19¡S
ÖIPCµmodelµlibraryµforµtheµTMS320C40,¡ž7³22’
mD“I501ileaf_page_string1:IN-3¥	öä¥	öäâ²¡Ô¤ÿ©IN³3¡RÀIPC´µmodelµpairs,µ7³19¡RöIPCµmodels¡w-CHANNEL_Identifierµparameter¤ÿý,µ7³21¡wdDCG_IPC_Identifierµparameter¤ÿý,µ7³21¡w›MODELNAMEµkeyword,µ7³22¡,a²L¡,¸²latency¤ÿý,µ1³9¡,÷LINKµkeyword,µ7³9¡,7loopµoptimizations,µ3³29¡,vloopµunfolding,µ3³30¡,<²M¡,”²manual¡RÊonline,µviii¡Rrelatedµpublications,µvii¡,@memoryµrequirements,µ1³9¡,modelingµconstraints,µDSPµcodeµgeneration,¡,²1³10¡,ñMODELNAMEµkeyword,µ7³22¡,0multi-DSPµcodeµgeneration,µexampleµofµ,¡,b3³37¡,¢multiprocessorµDSPµcodeµgeneration,µ7³1¡RØattributionµ(A¤ÿýTTR)µfile,µ5³3¡Rexamples,µ7³25¡RFinterprocessorµcommunicationµ(IPC),µ7³19¡,…multiprocessorµDSPµcodeµgeneration,¡,·handlingµofµdelayµandµforkµblocks,µ7³13¡,	~²O¡,	Õ²objectµcode,µlinkingµmodelµwith,µ5³1¤ÿý1¡,
onlineµdocumentation,µviii¡,
Soptimizationµfile,µ2³22¡R
Šwhenµinstallingµaµnewµtarget,µ8³4¡,
Éoptimizationµstrategies,µ3³14¡,overview¤ÿý,µDCGµmanual,µiv¡-Õ²P¡-!²(P)-loop,µ1³39,µ2³25¡-\(P)-loops,µ3³30¡-—parameterµdependentµzeroµoverheadµloops,¡-É1³39¡-parameterµloops,µ3³30¡-?Pentekµtarget,µ2³12¡-zperformanceµmeasures,µDSPµcode¡-¬generation,µ1³8¡-çperiodicµsequences,µdetectionµof,µ3³16¡-"primitiveµmodelsµ(DCG)¡SWdefined,µ1³4¡SMODELNAMEµkeyword,µ7³22¡SÂrequiredµfiles,µ5³2¡-ýPROCµkeyword,µ7³7¡-˜²R¡-ä²READMEµfiles,µ3³7,µ3³13,µ3³48¡-€²S¡-Ì²scalableµstaticµdataµflow¤ÿý,µ1³12,µ3³3¡-scheduleµperiod,µspecifyingµtheµnumberµof¡-:scheduleµperiods,µ2³33¡-tscheduling,µ3³4,µ3³16¡-¯schedulingµstrategies,µ2³25¡-êsharedµbuf¤ÿÿfers,µ1³34,µ2³24,µ3³21¡-%signalµbuf¤ÿÿfers,µ3³21¡-`signalµmonitor¤ÿý,µstartingµaµsignalµmonitorµfrom¡-’xdspint,µ4³1¤ÿý1¡-Ísignals,µdefined,µ1³10¡-	simulations,µgeneratingµfiles,µ3³8¡-	CSOLD,µviii¡-	~support,µSynopsysµT¤ÿûechnicalµSupport¡-	°Center¤ÿý,µviii¡-	ëSynopsysµOnlineµDocumentation,µviii¡-
‡²T¡-
Ó²target¡Sinstallingµaµnewµtarget,µ3³41,µ8³1’mlD“I501ileaf_page_string1:IN-4¥	öä¥	öäâ²¡.IN³4¡RÀsetting´µinµxdcg,µ2³21¡Rötargetµfileµdescription,µ8³2¡,3throughput,µ1³8¡,é²U¡,<²unfoldingµblockµfactorµloops,µ1³38¡,yunfoldingµdegree,µ3³30¡,·unfoldingµparameterµloops,µ1³40¡,l²V¡,¿²vectorization,µ3³20¡,u²X¡,È²xdcg,µ2³5¡RþCodeµmenu,µ2³19¡R4defaultµeditor¤ÿý,µ2³20¡RjFileµmenu,µ2³16¡R Interactiveµbutton,µ2³12¡RÖOptimizationµbuttons,µ2³13¡SÀsavingµaµsetµofµcodeµgenerationµstrategies,¡žò2³22¡S(selectingµtheµarchitectureµfile,µ2³18¡S]selectingµtheµmodelµfile,µ2³16¡S“settingµtheµtarget,µ2³21¡SÈSettingsµmenu,µ2³21¡SþspecifyingµadditionalµDSPµcodeµfeatures,¡ž02³30¡Sespecifyingµtheµnumberµofµscheduleµperiods,¡ž˜2³33¡SÍusingµanµexistingµsetµofµcodeµgeneration¡žstrategies,µ2³22¡S5window¤ÿý,µ2³6¡-qxdspint¡S¦commands,µ4³6¡SÜControlµmenu,µ4³10¡SDspintµmenu,µ4³8¡SGexiting,µ4³9¡S|overview¤ÿý,µ1³17¡S²V¤ÿÿiewµmenu,µ4³1¤ÿý1¡Sçwindowµdescription,µ4³4¡-‰²Z¡-Ö²zeroµoverheadµloops,µ2³25,µ3³31’l