Sie sind auf Seite 1von 5

TheFinerPointsofUVMSequencesWebinar104/10/139amGMTQ&ALog

Page1

AudienceQuestion:
Q:Howtouseparametrizedparametrizedtransactioninuvm_sequencer,Iamfacingissuewith$cast
A:Notsurewhatyourproblemis.Creatinganewtypenameforyourparameterizedtransactionclassusingatypedefmight
helpasafirststep.

AudienceQuestion:
Q:canugiveaexampleof$castusedinUVMenviorment?
A:Scast(variable_of_extended_type,variable_of_base_type);

AudienceQuestion:
Q:canugiveaexampleof$castusedinUVMenviorment?
A:Forexample,tocastthetypeofthecomponentreturnedfromuvm_top.find()

AudienceQuestion:
Q:ism_env_configsomereservedkeywordinOVM?UVM?
A:No,justauser-definedvariablename.Theprefixm_isaconventionusedtoshowthatitisaclassmember

AudienceQuestion:
Q:Howtousetheconstraint_modeinsequence??Iamfacingissue??
A:ThisisjustaSystemVeriloglanguagefeature.Youcancallobject_name.constraint_name.constraint_mode( <0or1> );
toturnaspecificconstraintonoroff

AudienceQuestion:
Q:whatisistheobjectiveofusingthescoperesolutionoperatortwiceasgivenintheexample?
A:my_seqisonescope(aclassname),type_idisanotherscope(anestedclassname,ineffect)

AudienceQuestion:
Q:Whycreateismorebeneficialthannewforcreatingaobject?
A:createisa"factorymethod".Thismeansthatyoudonotneedtoknowtheexacttypeoftheobjectbeingcreatedwhenyou
writeandcompilethecode.Theactuallytypeoftheobjectbeingcreatedcanbechangeddynamicallybysettingaso-called
factoryoverride.

AudienceQuestion:
Q:Whydeclaringp_sequencer@page8?notusingm_sequencer?
A:m_sequencerisNOTpartoftheUVMstandard,butisaninternalvariablewithintheUVMbaseclasslibrary.p_sequenceris
partoftheUVMstandard.Soisthemethodmy_sequence_instance.get_sequencer().

AudienceQuestion:
Q:whatisthedifferencebetweenp_sequencerandm_sequencer
A:m_sequencerisaninternalvariablewithintheUVMbaseclasslibraryandisNOTpartoftheUVMstandard.Youshoulduse
p_sequencerorget_sequencer()instead.

AudienceQuestion:
Q:whatisthedifferencebetween$randomandrandomizationusing .randomize()functionusedinSV?
A:$randombelongstotheorignalVeriloglanguageandusesapredefinedrandomizationalgorithmthatisthesameinevery
simulator. .randomize()isnewtoSystemVerilog,andmakesuseoftherandomnumbergeneratorassociatedwithevery
objectandprocessinSV.

AudienceQuestion:
Q:doesp_sequencerandm_sequencerpointtothesamesequencer
A:Yes.

AudienceQuestion:
Q:Does`uvm_dorandomizesthesequence?
A:Yes.`uvm_do(a_sequence)does(ineffect,notliterally)create-start_item-randomize-finish_item

AudienceQuestion:
Q:Thereisstillsomedifferencebetweenm_sequencerandp_sequencerright?m_sequencerisahandlecreatedwhen
.start()methodiscalled.Butp_sequencerhastobecreatedbythesequencewriterexplicitly.
A:m_sequencerisaninternalvariable,partoftheUVMimplementation.HANDSOFF!Thereisnoguarenteethat
m_sequencerwillalwaysbethere.p_sequencerisdefinedbyamacrothatneedstobeinvokedexplicitlybytheuser.The
otherpointisthatm_sequencerisoftypeuvm_sequence_base, p_sequencerisofatypeyousetwhenyouusethemacro-
soyoucanavoidthe$cast


TheFinerPointsofUVMSequencesWebinar104/10/139amGMTQ&ALog
Page2

AudienceQuestion:
Q:Isitgoodtouse`uvm_declare_p_sequencermacro?Oritisbettertogetp_sequenermanually?
A:Youshouldusethemacro,becauseitispartofthestandard.Otherwiseyoucouldcreateyourownuser-definedvariable
namedp_sequencer,butthenyourcodecouldgetout-of-stepwiththestandard(aswellasconfusingthereader). Callingthe
get_sequencer()methodwouldbefinetoo,althoughthatreturnstypeuvm_sequencer_base,soyoumayneedtodoa$cast.

AudienceQuestion:
Q:dowehaveis_relavant()forsequenceitems??I'veuseditwithsequencesbutcanweembedditinsidesequenceitem
itself??
A:No.is_relevant()isamethodofuvm_sequence_base,socannotbeuseddirectlyforsequenceitems(transactions)

AudienceQuestion:
Q:bydefault,whatprioritysequenceswilltake?
A:100

AudienceQuestion:
Q:Howtomakedriverparallelyprocesstwoormultiplesequenceitem?
A:Theshortansweris"don't"!Findanotherwayofdoingit.Ifyouhavetwo(partially)independenttransactions,havetwo
drivers.Viceversa,ifyouhaveonedriver,haveonesequencer. Youcancertainlymergestreamsoftransactionscoming
frommultiplesequencers,butyoushoulddosowithinasequencer,notwithinadriver.

AudienceQuestion:
Q:Howtotakecurrentphaseinformationinsidesequence
A:Usingthestarting_phasevariable,whichisdefinedintheclassuvm_sequence_base,butneedstobeexplicitlyassigned
andaccessedbytheuser.

AudienceQuestion:
Q:Whatisdifferencebetweenincludeandimport?
A:`includeisacompilerdirectivethatineffectcopiescodefragmentsaround.importmakesvisibledeclarationsfroma
package.

AudienceQuestion:
Q:whatistheuseoffactoryregistrationanddifferencebetweenuvm_componentanduvm_object
A:Thefactoryisamechanismthatallowsyoutooverridethetypesofobjectsbeforetheyarecreated(components,
sequences,transactions).Usingthefactory,youdonotneedtofixthetypesofobjectswhenyouwritethecode.

AudienceQuestion:
Q:whatistheuseoffactoryregistrationanddifferencebetweenuvm_componentanduvm_object
A:uvm_componentformpartofthecomponenthierarchy.uvm_objectscouldbeunrelatedtothecomponenthierarchy.

AudienceQuestion:
Q:isthereanyreg_sequencemethodwhichcanbeusedforburstwriteoperation.Forexamplemultiple.valueandaddress
field
A:Thereisno(registerlayer)methodwithmultiple.valuefields.

AudienceQuestion:
Q:ex.generatearesetuvchavingSyncAsync,polarityofresetasaparametersintransclass.
A:Sure,goahead.Thekeythingtounderstandisthattheresetsthemselvesmustbegeneratedinmodule-basedSVcode.So
youjustwanttheusualUVMstack ofasequencersendingatransactiontoadriver,whichwigglethepinstocontrolthereset
generationcircuitry,whichisitselfmodeledinthemodule-basedcode.

AudienceQuestion:
Q:whichmacrosweshouldavoidwhileworkingwithuvmmethodology?Pleasegivenamesifpossible.
A:Definitelyavoidanydeprecatedmacros(i.e.theoldsequencemacrosfromOVM).Asanewbie,avoidfieldmacrosandthe
`uvm_domacrofamily.Many,manynewbieproblemscomefromusing`uvm_doand/orfieldmacroswithoutreally
understandingwhatyouaredoing.ButifyouareaUVMexpert,dowhateveryoulike....

AudienceQuestion:
Q:stupidquestion..but...canyoulocktheseqrthatcalllockfunctionality.inthisexample:seqr0?
A:Ifthevirtualsequenceisrunningonasequencer,youcanlockthatsequencerfromanothersequencerunningonanother
(different)sequencer.

AudienceQuestion:
Q:inwhichapplicationsdoweusepriorityofsequencesinsidethesequencermethodasdescribedinthepresentation?
A:Wheneveryouwanttocontrolexactlyhowmultiplestreamsoftransactionsgetmerged,i.e.determiningtheorderofthe
transactionsinthemergedstream.
TheFinerPointsofUVMSequencesWebinar104/10/139amGMTQ&ALog
Page3

AudienceQuestion:
Q:InsimpleclockUVChowthedriverknowsthatholdclockcycleforaparticularrandomizeddelay?Alsohowwecancontrol
theclocktopauseandresume?
A:You'vegottounderstandthatyouMUSTnotdirectlygeneratetheclockfromtheclass-basedverificationenvironment.The
clockmustbegeneratedinmodule-basedcode.Onceyougetthat,everythingelsejustfallsoutnaturally.Youcanuseyour
UVMsequenceranddrivertowigglepinsinthemodule-basedcodetocontroltheclock(orreset)generator.

AudienceQuestion:
Q:whywearegoingforuvm_analysis_port/impinsteadofuvm_tlm_fifo?
A:That'showtothinkabouttransaction-levelconnectionsbetweencomponentsinUVM.Outgoingmethodcallsgothrough
ports.Incomingtransactioncallsarrivethroughexports.DonotthinkintermsofconnectingcomponentstogetherusingFIFOs.
TheUVMFIFOsareavailabletobuildinternaltransactionbufferswhereneeded.

AudienceQuestion:
Q:Basicquestion,Differencebetweensequenceandsequenceitem?
A:Toover-simplify,asequenceisasequenceoftransactionsinacertainorder,generatedbythebody()methodofthe
sequenceobject.Asequenceitemiseitherasequenceoranindividualtransaction.

AudienceQuestion:
Q:requesttorepeatuserdefinedarbitration
A:Thereisnotmuchtosay/understand.Itjustmeansthatthearbitrationalgorithmusedbythesequencerisprovidedbythe
user.Thearbitratationalgorithmhasthesetofsequenceitemstryingtorunavailabletoit,andchooseswhichitemrunsnext
onthesequencer.

AudienceQuestion:
Q:whym_seqrdeclaredhere??itshouldbep_seqr(slide23)
A:No.m_seqrisjusttheuser-definedstringnameforaspecificcomponentinstance,nothingtodowiththe
m_sequencer/p_sequencervariables.

AudienceQuestion:
Q:WhatsthepurposeofVerbositylevels?
A:Onewayoffilteringtheoutputfromthereportingsystem.EveryUVM_INFOreporthasaverbositylevel,andyoucanseta
thresholdabovewhichinfomessagesarefilteredoutsothesimulationlogdoesnotgetclutteredwithunwantedmessages.

AudienceQuestion:
Q:canIset,stringtypedefault_sequencefromcommandline?
A:Ummm...yes,Iguessso,usingtheUVMcommandlineprocessor.

AudienceQuestion:
Q:WhathappensifamnotpassingUVM_phasephaseasargumenttovariousphase(i.erun_phase(),
start_of_simulation_phase()?
A:Thebuilt-inUVMphasemethodsalltakeaphaseargument-theyjustdo-itwillalwaysbethere.Thesameisnottruefor
sequences.That'swhereyouwouldsetthestarting_phasevariableofthesequenceobject.

AudienceQuestion:
Q:requesttorepeatuserdefinedarbitration
A:Thereisnotmuchtosay/understand.Itjustmeansthatthearbitrationalgorithmusedbythesequencerisprovidedbythe
user.Thearbitratationalgorithmhasthesetofsequenceitemstryingtorunavailabletoit,andchooseswhichitemrunsnext
onthesequencer.

AudienceQuestion:
Q:isitpossibletousedelaysinsideRALadaptermethodsreg2busandbus2regforsynchronizingwithDUTreads/writes?
A:No.Eithersynchronizeinthedriverorintheregistersequence,dependingwhatyouaretryingtoachieve.

AudienceQuestion:
Q:canavirtualsequencegetarspfromasequence?
A:ThecommunicationbetweenavirtualsequenceandasequenceitstartsdoesnotusethesameREQ/RSPmechanismas
betweenthesequencerandthedriver.Butofcourseavirtualsequencecouldgetstateinformationfromanothersequencein
avarietyofways.

AudienceQuestion:
Q:Isthereanequivalenttoget_responseforsequences(ratherthansequence_items)
A:IfIunderstandyoucorrectly,theanswerisno.Asequencedoesnotreturnaresponseassuch.Itisthehandshakebetween
thesequenceandthedriverthatexplicitlysupportspassingaREQandRSP.

TheFinerPointsofUVMSequencesWebinar104/10/139amGMTQ&ALog
Page4

AudienceQuestion:
Q:Ifp_sequencercaneasilyfulfilthenecessitiesofaparentsequencerhandle,whyism_sequencernotmadealocal
variable?
A:That'sback-to-frontreasoning.m_sequencerwastherefirst.m_sequencerisaninternalvariablewithintheUVM
implementation.Thereasonitisnotliterally"local"couldjustbethatnotallsimulatorsfullysupported"local"whenthecode
wasfirstwritten(theydonow).

AudienceQuestion:
Q:IfIdon'tuseraiseanddropobjectionintestcasethenexcutiongetsdoneinZerosimulationtimeandcan'tseewaveforms.
Whyraiseanddropobjectioncallresolvethis?
A:That'sthepointofobjections!;-)Thetestwillendwhentherearenoobjectionsraisedtothetestending.Henceatleastone
objectionmustberaisedduringthefirsttimesteporelsesimulationwilljustendimmediately.

AudienceQuestion:
Q:thereisasimilarmechanismlikeseqr_upper.put/getinOVM?
A:ThisisnotanOVM/UVMmechanism.Itisjustuser-writtencode.Soyes,youcoulddothesameinOVM.

AudienceQuestion:
Q:whatisthedifferencebetweenfork-joinandfork-join_none(notfamiliarwiththelatter)?
A:fork-joinwaitsforeachoftheconcurrentprocesseswithinthefork-jointoterminate.fork-join_nonedoesnotwait:the
enclosingprocessgoesonexecuting(andtheprocessesinsidethefork-join_noneonlygetstartedwhentheenclosing
processfirstpauses)

AudienceQuestion:
Q:howtogettheresponsefirstbeforestartingarequest.PurposeistoknowtheinitialstateofDUTbeforestartingthe
sequence
A:SendarequesttogettheinitialstateoftheDUTfromanothersequencethanyourunbeforethemainsequence(orpeekat
thestateoftheDUTthroughsomebackdoor)

AudienceQuestion:
Q:whatispurposeofusingTLM1insteadofTLM2
A:Longstory.Checkouthttp://www.doulos.com/knowhow/systemc/tlm2/

AudienceQuestion:
Q:IamnewtoUVM.
iwanttohavetheseperatevirtualinterfacesformasterandslaveintity.
howtodosame.canwedosomethinglikebelow.
virtualmaster.mpmaster_vif;
virtualslave.mpslave_vif;
A:Soundslikeyouneedtohaveseparateagentsforyourmasterandslaveinterfaces.Youcanthencoordinatethebehavior
ofthosemasterandslaveagentsfromonevirtualsequence.

AudienceQuestion:
Q:Maybeasidequestionhere...isthereanyworktowardsAnalogMixedSignalinUVM?
A:Yes,thereissomeinterestinAMSinUVM.CompaniessuchasNXPandInfineonhavepublishedworkonthis.

AudienceQuestion:
Q:Areslidesavailable?
A:WewillbeprovidingalinktoavideorecordingofthepresentationonMondayevening.Youcanviewthepresentationslides
inthisway.

AudienceQuestion:
Q:couldyoupleasethisquestionsandseminarthroughemail
A:Yes,onMondayevening(midnightUKtime)we'll
sendalinktotherecordingandwewillincludereferencestoon-lineresourcesaswellasacopyoftheQ&Alog.

AudienceQuestion:
Q:whatisconnectionbetweendriver&sequencer,scoreboard&monitor???
A:DriverwigglespinsontheDUT.Sequencergeneratesthetransactionsthatrepresentthesepinwigglesatanabstractlevel.
Monitorisapassivecomponentthatjustlistenstowhat'sgoingonandassemblesthedataintotransactionsforcheckingand
coveragecollection.Ascoreboardhasnospecificpredefinedarchitecture,buttypicallyreceivesandcomparesmultiple
transactionstreamstochecktheDUTbehaviour.


TheFinerPointsofUVMSequencesWebinar104/10/139amGMTQ&ALog
Page5

AudienceQuestion:
Q:wheretodowloadthispresentation
A:WewillsendthroughalinktotherecordingonMondayeveningsothatyoucanreviewthepresentation.

AudienceQuestion:
Q:Thanlkyou,
A:Youarewelcome.Thanksforattending!

AudienceQuestion:
Q:funnyquestion..but...whyweusevirtualhabdleifinterfaceindriverandphysicalhandleintoptestmodule?
A:Becausethedriverisaclass,writteninapackage,andSystemVerilogforbidsyoufromhavingahierarchicalreferenceto
theactualinstanceofaninterfaceinapackage.Henceyouhavetouseavirtualinterfaceintheclass-basedenvironment.

Q:DowegettodownloadthevediocopyofthisPresentation.itwouldbeveryhelpfullforourfuturereference?
A:Thevideolinkwillbeavailableonlineforupto3months-soyoucanreviewitmorethanonceifyoulike.I'mverysorrybut
wedon'tallowdownloadsforcopyrightreasons.

AudienceQuestion:
Q:AndthisvirtualhandleispassedtoToptestmoduleusingConfig
A:ThevirtualhandleispassedFROMtheSystemVerilogmoduleintotheclass-basedenvusingtheconfig_db.

AudienceQuestion:
Q:Thanksalot..!!!:)
A:You'rewelcome

Das könnte Ihnen auch gefallen