లిబెరో SoC అనుకరణ
లైబ్రరీ సెటప్ సూచనలు
పరిచయం
లిబెరో SoC ప్రాజెక్ట్ను ఇన్పుట్గా ఉపయోగించి అనుకరణ వాతావరణాన్ని సెటప్ చేసే విధానాన్ని వివరించడం ఈ పత్రం యొక్క ఉద్దేశ్యం. ఈ డాక్యుమెంటేషన్ Libero SoC v11.9 మరియు కొత్త సాఫ్ట్వేర్ విడుదలలతో ఉపయోగించడానికి అందించబడిన ప్రీ-కంపైల్డ్ లైబ్రరీలకు అనుగుణంగా ఉంటుంది. అందించిన లైబ్రరీలు వెరిలోగ్ కోసం సంకలనం చేయబడ్డాయి. VHDL వినియోగదారులకు మిక్స్డ్-మోడ్ అనుకరణను అనుమతించే లైసెన్స్ అవసరం.
సంకలనం చేయబడిన అనుకరణ లైబ్రరీలు క్రింది సాధనాల కోసం అందుబాటులో ఉన్నాయి:
- ఆల్డెక్ యాక్టివ్-HDL
- Aldec రివేరా-PRO
- కాడెన్స్ ఇన్సైసివ్ ఎంటర్ప్రైజ్ మరియు Xcelium
- సిమెన్స్ క్వెస్టాసిమ్
- సారాంశం VCS
వేరే సిమ్యులేటర్ కోసం లైబ్రరీని అభ్యర్థించడానికి, సంప్రదించండి మైక్రోచిప్ టెక్నికల్ సపోర్ట్.
లిబెరో SoC ఇంటిగ్రేషన్
Libero SoC run.doని రూపొందించడం ద్వారా ModelSim MEని ఉపయోగించి అనుకరణకు మద్దతు ఇస్తుంది file. ఈ file అనుకరణను సెటప్ చేయడానికి మరియు అమలు చేయడానికి ModelSim ME/ModelSim Pro ME ద్వారా ఉపయోగించబడుతుంది. ఇతర అనుకరణ సాధనాలను ఉపయోగించడానికి, మీరు ModelSim ME/ModelSim Pro ME run.doని రూపొందించవచ్చు మరియు Tcl స్క్రిప్ట్ను సవరించవచ్చు file మీ సిమ్యులేటర్కు అనుకూలంగా ఉండే ఆదేశాలను ఉపయోగించడానికి.
1.1 లిబెరో SoC Tcl File తరం (ఒక ప్రశ్న అడగండి)
Libero SoCలో డిజైన్ని సృష్టించి మరియు రూపొందించిన తర్వాత, అన్ని డిజైన్ దశల్లో (ప్రెసింత్, పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్) మోడల్సిమ్ ME/మోడల్సిమ్ ప్రో ME అనుకరణను ప్రారంభించండి. ఈ దశ run.doని ఉత్పత్తి చేస్తుంది file ప్రతి డిజైన్ దశ కోసం మోడల్సిమ్ ME/మోడల్సిమ్ ప్రో ME కోసం.
ముఖ్యమైన: ప్రతి అనుకరణ పరుగును ప్రారంభించిన తర్వాత, స్వయంచాలకంగా రూపొందించబడిన run.do పేరు మార్చండి file లిబెరో SoCని ఓవర్రైట్ చేయకుండా నిరోధించడానికి అనుకరణ డైరెక్టరీ క్రింద file. ఉదాహరణకుampలే, ది files పేరును presynth_run.do, postsynth_run.do మరియు postlayout_run.doగా మార్చవచ్చు.
Active-HDL మరియు రివేరా-ప్రో కోసం Aldec సెటప్ (ఒక ప్రశ్న అడగండి)
The run.do file ModelSim ME/ModelSim Pro ME ద్వారా ఉపయోగించబడినది సవరించబడుతుంది మరియు Aldec అనుకరణ యంత్రాలను ఉపయోగించి అనుకరణ కోసం ఉపయోగించవచ్చు.
2.1 ఎన్విరాన్మెంట్ వేరియబుల్ (ఒక ప్రశ్న అడగండి)
మీ ఎన్విరాన్మెంట్ వేరియబుల్ని మీ లైసెన్స్కి సెట్ చేయండి file స్థానం:
LM_LICENSE_FILE: లైసెన్స్ సర్వర్కు తప్పనిసరిగా పాయింటర్ను చేర్చాలి.
2.2 కంపైల్డ్ లైబ్రరీని డౌన్లోడ్ చేయండి (ఒక ప్రశ్న అడగండి)
మైక్రోచిప్ నుండి Aldec Active-HDL మరియు Aldec Riviera-PRO కోసం లైబ్రరీలను డౌన్లోడ్ చేయండి webసైట్.
2.3 Aldec అనుకరణ కోసం run.doని మార్చడం (ఒక ప్రశ్న అడగండి)
The run.do fileActive-HDL మరియు Riviera-Pro సాధనాన్ని ఉపయోగించి అనుకరణల కోసం Libero SoC ద్వారా రూపొందించబడిన లు ఒకే మార్పుతో Active-HDL మరియు రివేరా-ప్రోని ఉపయోగించి అనుకరణల కోసం ఉపయోగించవచ్చు. ModelSim run.doలో సవరించడానికి Aldec-equivalent ఆదేశాలను క్రింది పట్టిక జాబితా చేస్తుంది. file.
పట్టిక 2-1. Aldec సమానమైన ఆదేశాలు
మోడల్సిమ్ | యాక్టివ్-HDL |
వ్లాగ్ | అలోగ్ |
వీకామ్ | ఏకామ్ |
vlib | అలిబ్ |
vsim తెలుగు in లో | అసిం |
vmap తెలుగు in లో | మ్యాప్ |
క్రింది విధంగా ఉందిample run.do Aldec సిమ్యులేటర్లకు సంబంధించినది.
- ప్రస్తుత పని డైరెక్టరీ స్థానాన్ని సెట్ చేయండి.
dsn సెట్ - పని చేసే లైబ్రరీ పేరును సెట్ చేయండి, దాని స్థానాన్ని మ్యాప్ చేయండి, ఆపై మైక్రోచిప్ FPGA కుటుంబం యొక్క స్థానాన్ని మ్యాప్ చేయండి
ముందుగా కంపైల్డ్ లైబ్రరీలు (ఉదాample, SmartFusion2) మీరు మీ డిజైన్ని అమలు చేస్తున్నారు.
అలిబ్ ప్రెసింత్
అమాప్ ప్రిసింత్ ప్రిసింత్
amap SmartFusion2 - అవసరమైన అన్ని HDLలను కంపైల్ చేయండి fileలు అవసరమైన లైబ్రరీతో డిజైన్లో ఉపయోగించబడ్డాయి.
alog-work presynth temp.v (Verilog కోసం)
లాగ్-వర్క్ ప్రిసింత్ testbench.v
acom –work presynth temp.vhd (Vhdl కోసం)
acom –work presynth testbench.vhd - డిజైన్ను అనుకరించండి.
asim –L SmartFusion2 –L presynth –t 1ps presynth.testbench
10us అమలు చేయండి
2.4 తెలిసిన సమస్యలు (ఒక ప్రశ్న అడగండి)
ఈ విభాగం తెలిసిన సమస్యలు మరియు పరిమితులను జాబితా చేస్తుంది.
- రివేరా-PRO ఉపయోగించి కంపైల్ చేయబడిన లైబ్రరీలు ప్లాట్ఫారమ్ నిర్దిష్టమైనవి (అంటే 64-బిట్ లైబ్రరీలు 32-బిట్ ప్లాట్ఫారమ్లో అమలు చేయబడవు మరియు వైస్ వెర్సా).
- SERDES/MDDR/FDDR ఉన్న డిజైన్ల కోసం, మీ run.doలో కింది ఎంపికను ఉపయోగించండి fileవారి డిజైన్లను కంపైల్ చేసిన తర్వాత అనుకరణలను అమలు చేస్తున్నప్పుడు:
– యాక్టివ్-HDL: asim –o2
– రివేరా-PRO: asim –O2 (ప్రిసింత్ మరియు పోస్ట్-లేఅవుట్ అనుకరణల కోసం) మరియు asim –O5 (పోస్ట్-లేఅవుట్ అనుకరణల కోసం)
Active-HDL మరియు Riviera-Pro కోసం Aldec సెటప్ క్రింది పెండింగ్ SARలను కలిగి ఉంది. మరింత సమాచారం కోసం, సంప్రదించండి మైక్రోచిప్ టెక్నికల్ సపోర్ట్. - SAR 49908 – Active-HDL: మ్యాథ్ బ్లాక్ సిమ్యులేషన్స్ కోసం VHDL ఎర్రర్
- SAR 50627 – Riviera-PRO 2013.02: SERDES డిజైన్ల కోసం అనుకరణ లోపాలు
- SAR 50461 – రివేరా-PRO: అనుకరణలలో asim -O2/-O5 ఎంపిక
కాడెన్స్ ఇన్సైసివ్ సెటప్ (ఒక ప్రశ్న అడగండి)
మీరు స్క్రిప్ట్ని సృష్టించాలి file ModelSim ME/ModelSim Pro ME run.doని అమలు చేయడానికి పోలి ఉంటుంది
కాడెన్స్ ఇన్సిసివ్ సిమ్యులేటర్. ఈ దశలను అనుసరించండి మరియు స్క్రిప్ట్ను సృష్టించండి file NCSim కోసం లేదా స్క్రిప్ట్ని ఉపయోగించండి file
ModelSim ME/ModelSim Pro ME run.doని మార్చడానికి అందించబడింది fileలు కాన్ఫిగరేషన్లోకి వచ్చాయి files
NCSim ఉపయోగించి అనుకరణలను అమలు చేయడానికి అవసరం.
ముఖ్యమైనది: కాడెన్స్ Incisive Enterprise యొక్క కొత్త వెర్షన్లను విడుదల చేయడం ఆపివేసింది
సిమ్యులేటర్ మరియు Xcelium సిమ్యులేటర్కు మద్దతు ఇవ్వడం ప్రారంభించింది.
3.1 పర్యావరణ వేరియబుల్స్ (ఒక ప్రశ్న అడగండి)
Cadence Incisive సిమ్యులేటర్ని అమలు చేయడానికి, కింది ఎన్విరాన్మెంట్ వేరియబుల్స్ను కాన్ఫిగర్ చేయండి:
- LM_LICENSE_FILE: తప్పనిసరిగా లైసెన్స్కు పాయింటర్ను చేర్చాలి file.
- cds_root: కాడెన్స్ ఇన్సైసివ్ ఇన్స్టాలేషన్ యొక్క హోమ్ డైరెక్టరీ స్థానాన్ని తప్పనిసరిగా సూచించాలి.
- PATH: cds_root ద్వారా సూచించబడిన సాధనాల డైరెక్టరీ క్రింద ఉన్న బిన్ స్థానాన్ని తప్పనిసరిగా సూచించాలి,
$cds_root/tools/bin/64bit (64-bit మెషీన్ కోసం మరియు $cds_root/tools/bin 32-బిట్ మెషీన్ కోసం).
64-బిట్ మరియు 32-బిట్ ఆపరేటింగ్ సిస్టమ్ల మధ్య మారినప్పుడు అనుకరణ వాతావరణాన్ని సెటప్ చేయడానికి మూడు మార్గాలు ఉన్నాయి:
కేస్ 1: PATH వేరియబుల్
కింది ఆదేశాన్ని అమలు చేయండి:
సెట్ పాత్ = (install_dir/tools/bin/64bit $path) 64bit యంత్రాల కోసం మరియు
సెట్ పాత్ = (install_dir/tools/bin $path) 32bit మెషీన్ల కోసం
కేస్ 2: -64bit కమాండ్-లైన్ ఎంపికను ఉపయోగించడం
కమాండ్-లైన్లో 64bit ఎక్జిక్యూటబుల్ను అమలు చేయడానికి -64bit ఎంపికను పేర్కొనండి.
కేస్ 3: INCA_64BIT లేదా CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ సెట్ చేయడం
INCA_64BIT వేరియబుల్ బూలియన్గా పరిగణించబడుతుంది. మీరు ఈ వేరియబుల్ని ఏదైనా విలువకు లేదా శూన్య స్ట్రింగ్కి సెట్ చేయవచ్చు.
setenv INCA_64BIT
ముఖ్యమైనది: ది INCA_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ IC సాధనాల వంటి ఇతర కాడెన్స్ సాధనాలను ప్రభావితం చేయదు. అయినప్పటికీ, ఇన్సిసివ్ టూల్స్ కోసం, INCA_64BIT వేరియబుల్ CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ కోసం సెట్టింగ్ను భర్తీ చేస్తుంది. INCA_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ సెట్ చేయబడితే, అన్ని ఇన్సిసివ్ టూల్స్ 64-బిట్ మోడ్లో రన్ అవుతాయి. setenv CDS_AUTO_64BIT ఉన్నాయి:INCA
ముఖ్యమైనది: ది స్ట్రింగ్ INCA తప్పనిసరిగా పెద్ద అక్షరంలో ఉండాలి. అన్ని ఎక్జిక్యూటబుల్స్ తప్పనిసరిగా 32-బిట్ మోడ్లో లేదా 64-బిట్ మోడ్లో అమలు చేయబడాలి, కింది విధంగా ఒక ఎక్జిక్యూటబుల్ని చేర్చడానికి వేరియబుల్ను సెట్ చేయవద్దు:
setenv CDS_AUTO_64BIT: ncelab
64-బిట్ లేదా 32-బిట్ ఎక్జిక్యూటబుల్స్ ఎంపికను నియంత్రించడానికి IC సాధనాల వంటి ఇతర కాడెన్స్ సాధనాలు కూడా CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ని ఉపయోగిస్తాయి. అన్ని మోడ్లలో ఇన్సైసివ్ టూల్స్ మరియు IC సాధనాలను అమలు చేయడానికి మీరు CDS_AUTO_64BIT వేరియబుల్ను ఎలా సెట్ చేయవచ్చో క్రింది పట్టిక చూపుతుంది.
పట్టిక 3-1. CDS_AUTO_64BIT వేరియబుల్స్
CDS_AUTO_64BIT వేరియబుల్ | కోత సాధనాలు | IC సాధనాలు |
setenv CDS_AUTO_64బిట్ అన్నీ | 64 బిట్ | 64 బిట్ |
setenv CDS_AUTO_64BIT కాదు | 32 బిట్ | 32 బిట్ |
setenv CDS_AUTO_64BIT మినహాయించండి:ic_binary | 64 బిట్ | 32 బిట్ |
setenv CDS_AUTO_64BIT మినహాయించబడింది:INCA | 32 బిట్ | 64 బిట్ |
ముఖ్యమైన: అన్ని ఇన్సిసివ్ టూల్స్ తప్పనిసరిగా 32-బిట్ మోడ్లో లేదా 64-బిట్ మోడ్లో అమలు చేయబడాలి, కింది వాటిలో వలె నిర్దిష్ట ఎక్జిక్యూటబుల్ను మినహాయించడానికి EXCLUDEని ఉపయోగించవద్దు: setenv CDS_AUTO_64BIT EXCLUDE:ncelab
మీరు Incisive టూల్స్ (setenv CDS_AUTO_64BIT EXCLUDE:INCA) మినహాయించడానికి CDS_AUTO_64BIT వేరియబుల్ను సెట్ చేస్తే, అన్ని ఇన్సైసివ్ టూల్స్ 32-బిట్ మోడ్లో అమలు చేయబడతాయి. అయినప్పటికీ, -64bit కమాండ్-లైన్ ఎంపిక పర్యావరణ వేరియబుల్ను భర్తీ చేస్తుంది.
కింది కాన్ఫిగరేషన్ fileమీ డేటాను నిర్వహించడంలో మరియు అనుకరణ సాధనాలు మరియు యుటిలిటీల ఆపరేషన్ను నియంత్రించడంలో మీకు సహాయం చేస్తుంది:
- లైబ్రరీ మ్యాపింగ్ file (cds.lib)-మీ డిజైన్ యొక్క స్థానం కోసం తార్కిక పేరును నిర్వచిస్తుంది.
- లైబ్రరీలు మరియు వాటిని భౌతిక డైరెక్టరీ పేర్లతో అనుబంధిస్తుంది.
- వేరియబుల్స్ file (hdl.var)—అనుకరణ సాధనాలు మరియు యుటిలిటీల ప్రవర్తనను ప్రభావితం చేసే వేరియబుల్లను నిర్వచిస్తుంది.
3.2 కంపైల్డ్ లైబ్రరీని డౌన్లోడ్ చేయండి (ఒక ప్రశ్న అడగండి)
మైక్రోసెమి నుండి కాడెన్స్ ఇన్సైసివ్ కోసం లైబ్రరీలను డౌన్లోడ్ చేయండి webసైట్.
3.3 NCSim స్క్రిప్ట్ని సృష్టించడం File (ఒక ప్రశ్న అడగండి)
run.do యొక్క కాపీని సృష్టించిన తర్వాత files, NCSimని ఉపయోగించి మీ అనుకరణను అమలు చేయడానికి ఈ దశలను చేయండి:
- cds.libని సృష్టించండి file ఇది అందుబాటులో ఉన్న లైబ్రరీలను మరియు వాటి స్థానాన్ని నిర్వచిస్తుంది. ది file లైబ్రరీ లాజికల్ పేర్లను వాటి భౌతిక డైరెక్టరీ పాత్లకు మ్యాప్ చేసే స్టేట్మెంట్లను కలిగి ఉంటుంది. ఉదాహరణకుample, మీరు presynth అనుకరణను అమలు చేస్తుంటే, cds.lib file కింది కోడ్బ్లాక్లో చూపిన విధంగా వ్రాయబడింది.
ప్రిసింత్ ./ప్రెసింత్ నిర్వచించండి
COREAHBLITE_LIB ./COREAHBLITE_LIBని నిర్వచించండి
స్మార్ట్ఫ్యూజన్ని నిర్వచించండి2 - hdl.varని సృష్టించండి file, ఒక ఐచ్ఛిక కాన్ఫిగరేషన్ file ఇది కాన్ఫిగరేషన్ వేరియబుల్లను కలిగి ఉంటుంది, ఇది మీ డిజైన్ వాతావరణం ఎలా కాన్ఫిగర్ చేయబడిందో నిర్ణయిస్తుంది. కింది వేరియబుల్ fileలు చేర్చబడ్డాయి:
– కంపైలర్ కంపైల్ చేసిన వస్తువులు మరియు ఇతర ఉత్పన్నమైన డేటాను నిల్వ చేసే వర్క్ లైబ్రరీని పేర్కొనడానికి ఉపయోగించే వేరియబుల్స్.
– వెరిలాగ్ కోసం, వేరియబుల్స్ (LIB_MAP, VIEW_MAP, WORK) లైబ్రరీలను పేర్కొనడానికి మరియు viewఎలబరేటర్ సందర్భాలను పరిష్కరించినప్పుడు శోధించడానికి s.
– కంపైలర్, ఎలబరేటర్ మరియు సిమ్యులేటర్ కమాండ్-లైన్ ఎంపికలు మరియు ఆర్గ్యుమెంట్లను నిర్వచించడానికి మిమ్మల్ని అనుమతించే వేరియబుల్స్.
ప్రిసింత్ సిమ్యులేషన్ విషయంలో ఉదాampపైన చూపిన విధంగా, మాకు మూడు RTLలు ఉన్నాయని చెప్పండి files: av, bv మరియు testbench.v, వీటిని వరుసగా ప్రిసింత్, COREAHBLITE_LIB మరియు ప్రిసింత్ లైబ్రరీలలోకి సంకలనం చేయాలి. hdl.var file కింది కోడ్బ్లాక్లో చూపిన విధంగా వ్రాయవచ్చు.
వర్క్ ప్రిసింత్ను నిర్వచించండి
PROJECT_DIRని నిర్వచించండి files>
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/av => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/bv => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/testbench.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, + => ప్రిసింత్ ) - డిజైన్ను కంపైల్ చేయండి filencvlog ఎంపికను ఉపయోగిస్తున్నారు.
ncvlog +incdir+ –cdslib ./cds.lib –hdlvar ./hdl.var –logfile
ncvlog.log –update –linedebug av bv testbench.v - ncelab ఉపయోగించి డిజైన్ను వివరించండి. ఎలబరేటర్ డిజైన్లోని ఇన్స్టాంటియేషన్ మరియు కాన్ఫిగరేషన్ సమాచారం ఆధారంగా డిజైన్ సోపానక్రమాన్ని నిర్మిస్తుంది, సిగ్నల్ కనెక్టివిటీని ఏర్పాటు చేస్తుంది మరియు డిజైన్లోని అన్ని వస్తువుల కోసం ప్రారంభ విలువలను గణిస్తుంది. విస్తృతమైన డిజైన్ సోపానక్రమం అనుకరణ స్నాప్షాట్లో నిల్వ చేయబడుతుంది, ఇది అనుకరణను అమలు చేయడానికి సిమ్యులేటర్ ఉపయోగించే మీ డిజైన్కు ప్రాతినిధ్యం వహిస్తుంది.
ncelab –Message –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –errormax 15 –
యాక్సెస్ +rwc-status worklib. : మాడ్యూల్
పోస్ట్-లేఅవుట్ అనుకరణ సమయంలో వివరణ
పోస్ట్-లేఅవుట్ అనుకరణల విషయంలో, ముందుగా SDF file ncsdfc కమాండ్ ఉపయోగించి విశదీకరించే ముందు కంపైల్ చేయాలి.
ncsdfcfileపేరు>.sdf –అవుట్పుట్fileపేరు>.sdf.X
విశదీకరణ సమయంలో క్రింది కోడ్బ్లాక్లో చూపిన విధంగా –autosdf ఎంపికతో సంకలనం చేయబడిన SDF అవుట్పుట్ని ఉపయోగించండి.
ncelab -autosdf –Message –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –errormax
15 -యాక్సెస్ +rwc-స్టేటస్ వర్క్లిబ్. :మాడ్యూల్ –sdf_cmd_file ./
sdf_cmd_file
sdf_cmd_file కింది కోడ్బ్లాక్లో చూపిన విధంగా ఉండాలి.
COMPILED_SDF_FILE =" file>” - ncsim ఉపయోగించి అనుకరించండి. వివరించిన తర్వాత అనుకరణ స్నాప్షాట్ సృష్టించబడుతుంది, ఇది అనుకరణ కోసం ncsim ద్వారా లోడ్ చేయబడుతుంది. మీరు బ్యాచ్ మోడ్ లేదా GUI మోడ్లో రన్ చేయవచ్చు.
ncsim –Message –batch/-gui –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncsim.log -
errormax 15 -స్టేటస్ వర్క్లిబ్. : మాడ్యూల్
ముఖ్యమైన: కంపైల్ చేయడం, విశదీకరించడం మరియు అనుకరించడం యొక్క పై మూడు దశలను షెల్ స్క్రిప్ట్లో ఉంచవచ్చు file మరియు కమాండ్-లైన్ నుండి మూలం. ఈ మూడు దశలను ఉపయోగించకుండా, కింది కోడ్బ్లాక్లో చూపిన విధంగా ncverilog లేదా irun ఎంపికను ఉపయోగించి డిజైన్ను ఒక దశలో అనుకరించవచ్చు.
ncverilog +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var
fileడిజైన్లో ఉపయోగించబడింది>
irun +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var files
డిజైన్లో ఉపయోగించబడింది>
3.3.1 తెలిసిన సమస్యలు (ఒక ప్రశ్న అడగండి)
టెస్ట్బెంచ్ వర్కౌండ్
వినియోగదారు రూపొందించిన టెస్ట్బెంచ్లో క్లాక్ ఫ్రీక్వెన్సీని పేర్కొనడానికి క్రింది స్టేట్మెంట్ను ఉపయోగించడం లేదా Libero SoC ద్వారా రూపొందించబడిన డిఫాల్ట్ టెస్ట్బెంచ్ NCSimతో పని చేయదు.
ఎల్లప్పుడూ @(SYSCLK)
#(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;
అనుకరణను అమలు చేయడానికి క్రింది విధంగా సవరించండి:
ఎల్లప్పుడూ #(SYSCLK_PERIOD / 2.0) SYSCLK = ~SYSCLK;
ముఖ్యమైనది: సంకలనం చేయబడింది NCSim కోసం లైబ్రరీలు ప్లాట్ఫారమ్ నిర్దిష్టంగా ఉంటాయి (అంటే 64 బిట్ లైబ్రరీలు 32 బిట్ ప్లాట్ఫారమ్తో అనుకూలంగా లేవు మరియు వైస్ వెర్సా).
MSS మరియు SERDES ఉపయోగించి పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్ అనుకరణలు MSS బ్లాక్ను కలిగి ఉన్న డిజైన్ల పోస్ట్సింత్ అనుకరణలను లేదా SERDESని ఉపయోగించి డిజైన్ల పోస్ట్-లేఅవుట్ అనుకరణలను అమలు చేస్తున్నప్పుడు, –libmap ఎంపిక ఉంటే BFM అనుకరణలు పని చేయవు.
విశదీకరణ సమయంలో పేర్కొనబడలేదు. ఎందుకంటే విశదీకరణ సమయంలో, MSS వర్క్ లైబ్రరీ (డిఫాల్ట్ బైండింగ్ మరియు వర్క్లిబ్ పోస్ట్సింత్/పోస్ట్-లేఅవుట్ అయినందున) నుండి పరిష్కరించబడుతుంది, ఇక్కడ అది స్థిరమైన ఫంక్షన్.
MSSని పరిష్కరించడానికి కింది కోడ్ బ్లాక్లో చూపిన విధంగా ncelab కమాండ్ తప్పనిసరిగా వ్రాయబడాలి
SmartFusion2 ప్రీకంపైల్డ్ లైబ్రరీ నుండి బ్లాక్ చేయండి.
ncelab -libmap lib.map -libverbose -Message -access +rwc cfg1
మరియు lib.map file ఈ క్రింది విధంగా ఉండాలి:
config cfg1;
రూపకల్పన ;
డిఫాల్ట్ లిబ్లిస్ట్ స్మార్ట్ఫ్యూజన్2 ;
endconfig
ఇది వర్క్ లైబ్రరీ అంటే పోస్ట్సింత్/ పోస్ట్-లేఅవుట్లో చూసే ముందు SmartFusion2 లైబ్రరీలోని ఏదైనా సెల్ని పరిష్కరిస్తుంది.
ప్రతి అనుకరణ (ప్రెసింత్, పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్) కోసం విశదీకరణ సమయంలో –libmap ఎంపికను డిఫాల్ట్గా ఉపయోగించవచ్చు. ఇది లైబ్రరీల నుండి ఉదంతాల పరిష్కారం కారణంగా ఏర్పడే అనుకరణ సమస్యలను నివారిస్తుంది.
ncelab: *F,INTERR: అంతర్గత మినహాయింపు
-libmap ఎంపికను ఉపయోగించి పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్ అనుకరణల సమయంలో SmartFusion 2 మరియు IGLOO 2లో FDDRని కలిగి ఉన్న డిజైన్లకు ఈ ncelab టూల్ మినహాయింపు మినహాయింపు.
ముఖ్యమైన: ఈ సమస్య కాడెన్స్ సపోర్ట్ టీమ్ (SAR 52113)కి నివేదించబడింది.
3.4 ఎస్ample Tcl మరియు షెల్ స్క్రిప్ట్ Fileలు (ఒక ప్రశ్న అడగండి)
క్రింది fileలు కాన్ఫిగరేషన్ fileడిజైన్ మరియు షెల్ స్క్రిప్ట్ను సెటప్ చేయడానికి లు అవసరం file NCSim ఆదేశాలను అమలు చేయడానికి.
Cds.lib
NE స్మార్ట్ఫ్యూజన్2 /స్క్రాచ్/క్రిడోర్/టిఎంపిస్పేస్/యూజర్స్/మీ/ఎన్సి-విలాగ్64/స్మార్ట్ఫ్యూజన్2
COREAHBLITE_LIB ./COREAHBLITE_LIBని నిర్వచించండి
ప్రిసింత్ ./ప్రెసింత్ నిర్వచించండి
Hdl.var
వర్క్ ప్రిసింత్ను నిర్వచించండి
PROJECT_DIR /scratch/krydor/tmpspace/sqausers/me/3rd_party_simulators/Cadence/IGLOO2/ని నిర్వచించండి
ENVM/M2GL050/envm_fic1_ser1_v/eNVM_fab_master
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_addrdec.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_defaultslavesm.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_masterstagev => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavearbiter.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavestagev => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_matrix2x16.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/CCC_0/SB_CCC_0_FCCC.v =>
ప్రిసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigMaster/
2.0.101/rtl/vlog/core/coreconfigmaster.v => presynth )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/
vlog/core/coreconfigp.v => presynth )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp_pcie_hotreset.v => ప్రిసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp.v => ప్రెసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v =>
ప్రిసింత్)
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_HPMS/SB_HPMS.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB/SB.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SB_top.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/testbench.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, + => ప్రిసింత్ )
Commands.csh
ncvlog +incdir+../../component/work/SB_top -cdslib ./cds.lib -hdlvar ./hdl.var -logfile
ncvlog.log -errormax 15 -update -linedebug
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_addrdec.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/
coreahblite_defaultslavesm.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_masterstagev
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavearbiter.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavestagev
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_matrix2x16.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite.v
../../component/work/SB/CCC_0/SB_CCC_0_FCCC.v
../../component/Actel/DirectCore/CoreConfigMaster/2.0.101/rtl/vlog/core/coreconfigmaster.v
../../component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/vlog/core/coreconfigp.v
../../component/Actel/DirectCore/CoreResetP/5.0.103/rtl/vlog/core/coreresetp_pcie_hotreset.v
../../component/Actel/DirectCore/CoreResetP/5.0.103/rtl/vlog/core/coreresetp.v
../../component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v ../../component/work/SB_HPMS/SB_HPMS.v
../../component/work/SB/SB.v ../../component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v
../../component/work/SB_top/SB_top.v ../../component/work/SB_top/testbench.v
ncelab -Message -cdslib ./cds.lib -hdlvar ./hdl.var
-వర్క్ ప్రిసింత్ -లాగ్file ncelab.log -errormax 15 -access +rwc -status presynth.testbench:module
ncsim -Message -batch -cdslib ./cds.lib -hdlvar ./
hdl.var -logfile ncsim.log -errormax 15 -స్టేటస్ presynth.testbench:module
3.5 ఆటోమేషన్ (ఒక ప్రశ్న అడగండి)
కింది స్క్రిప్ట్ file ModelSim run.doని మారుస్తుంది fileలు కాన్ఫిగరేషన్లో ఉన్నాయి fileNCSim ఉపయోగించి అనుకరణలను అమలు చేయడానికి s అవసరం.
స్క్రిప్ట్ File వాడుక
perl cadence_parser.pl presynth_run.do postsynth_run.do
postlayout_run.do Microsemi_Family
కాడెన్స్_ప్రీ కంపైల్డ్_లైబ్రరీల_స్థానం
Cadence_parser.pl
#!/usr/bin/perl -w
############################################### #########################################
###################
#ఉపయోగం: perl questa_parser.pl presynth_run.do postsynth_run.do postlayout_run.do
మైక్రోసెమీ_ఫ్యామిలీ ప్రీకంపైల్డ్_లైబ్రరీస్_లొకేషన్#
############################################### #########################################
###################
POSIX ఉపయోగించండి;
కఠినమైన ఉపయోగించండి;
నా ($presynth, $postsynth, $postlayout, $family, $lib_location) = @ARGV;
&questa_parser($ప్రెసింత్, $ఫ్యామిలీ, $lib_location);
&questa_parser($postsynth, $family, $lib_location);
&questa_parser($postlayout, $family, $lib_location);
ఉప questa_parser {
నా $ModelSim_run_do = $_[0];
నా $actel_family = $_[1];
నా $lib_location = $_[2];
నా $ రాష్ట్రం;
ఉంటే ( -e “$ModelSim_run_do” )
{
తెరవండి (INFILE,”$ModelSim_run_do”);
నా @ModelSim_run_do =FILE>;
నా $ లైన్;
అయితే ($ModelSim_run_do =~ m/(presynth)/)
{
`mkdir QUESTA_PRESYNTH`;
తెరవండి (OUTFILE,”>QUESTA_PRESYNTH/presynth_questa.do”);
$ రాష్ట్రం = $ 1;
} elsif ( $ModelSim_run_do =~ m/(postsynth)/)
{
`mkdir QUESTA_POSTSYNTH`;
తెరవండి (OUTFILE,”>QUESTA_POSTSYNTH/postsynth_questa.do”);
$ రాష్ట్రం = $ 1;
} elsif ( $ModelSim_run_do =~ m/(postlayout)/ )
{
`mkdir QUESTA_POSTLAYOUT`;
తెరవండి (OUTFILE,”>QUESTA_POSTLAYOUT/postlayout_questa.do”);
$ రాష్ట్రం = $ 1;
} లేకపోతే
{
ప్రింట్ “తప్పు ఇన్పుట్లు ఇవ్వబడ్డాయి file\n”;
ప్రింట్ “#వినియోగం: perl questa_parser.pl presynth_run.do postsynth_run.do postlayout_run.do
\”Libraries_location\”\n”;
}
$line (@ModelSim_run_do)ని చేరుకోండి
{
#సాధారణ కార్యకలాపాలు
$line =~ s/..\/designer.*simulation\///g;
$లైన్ =~ s/$state/$state\_questa/g;
#ప్రింట్ అవుట్FILE “$లైన్ \n”;
ఉంటే ($line =~ m/vmap\s+.*($actel_family)/)
{
ప్రింట్ అవుట్FILE “vmap $actel_family \”$lib_location\”\n”;
} elsif ($line =~ m/vmap\s+(.*._LIB)/)
{
$లైన్ =~ s/..\/component/..\/..\/component/g;
ప్రింట్ అవుట్FILE “$లైన్ \n”;
} ఎల్సిఫ్ ($లైన్ =~ m/vsim/)
{
$లైన్ =~ s/vsim/vsim -novopt/g;
ప్రింట్ అవుట్FILE “$లైన్ \n”;
} లేకపోతే
{
ప్రింట్ అవుట్FILE “$లైన్ \n”;
}
}
మూసివేయి (INFILE);
ముగిస్తాయిFILE);
} వేరే {
ప్రింట్ “$ModelSim_run_do ఉనికిలో లేదు. అనుకరణను మళ్లీ అమలు చేయండి \n”;
}
}
Cadence Xcelium సెటప్ (మైక్రోచిప్ లాగిన్)
మీరు స్క్రిప్ట్ని సృష్టించాలి file Cadence Xcelium సిమ్యులేటర్ను అమలు చేయడానికి ModelSim ME/ModelSim Pro ME run.do మాదిరిగానే ఉంటుంది. ఈ దశలను అనుసరించండి మరియు స్క్రిప్ట్ను సృష్టించండి file Xcelium కోసం లేదా స్క్రిప్ట్ని ఉపయోగించండి file ModelSim ME/ModelSim Pro ME run.doని మార్చడానికి అందించబడింది fileలు కాన్ఫిగరేషన్లోకి వచ్చాయి fileXcelium ఉపయోగించి అనుకరణలను అమలు చేయడానికి s అవసరం.
4.1 పర్యావరణ వేరియబుల్స్ (ఒక ప్రశ్న అడగండి)
Cadence Xceliumని అమలు చేయడానికి, కింది ఎన్విరాన్మెంట్ వేరియబుల్స్ను కాన్ఫిగర్ చేయండి:
- LM_LICENSE_FILE: తప్పనిసరిగా లైసెన్స్కు పాయింటర్ను చేర్చాలి file.
- cds_root: కాడెన్స్ ఇన్సైసివ్ ఇన్స్టాలేషన్ యొక్క హోమ్ డైరెక్టరీ లొకేషన్ను తప్పనిసరిగా సూచించాలి.
- PATH: cds_root (అంటే
$cds_root/tools/bin/64bit (64 బిట్ మెషీన్ కోసం మరియు $cds_root/tools/bin కోసం 32 బిట్
యంత్రం).
64-బిట్ మరియు 32-బిట్ ఆపరేటింగ్ సిస్టమ్ల మధ్య మారినప్పుడు అనుకరణ వాతావరణాన్ని సెటప్ చేయడానికి మూడు మార్గాలు ఉన్నాయి:
కేస్ 1: PATH వేరియబుల్
సెట్ పాత్ = (install_dir/tools/bin/64bit $path) 64bit యంత్రాల కోసం మరియు
సెట్ పాత్ = (install_dir/tools/bin $path) 32bit మెషీన్ల కోసం
కేస్ 2: -64bit కమాండ్-లైన్ ఎంపికను ఉపయోగించడం
కమాండ్-లైన్లో 64-బిట్ ఎక్జిక్యూటబుల్ను అమలు చేయడానికి -64బిట్ ఎంపికను పేర్కొనండి.
కేస్ 3: INCA_64BIT లేదా CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ సెట్ చేయడం
INCA_64BIT వేరియబుల్ బూలియన్గా పరిగణించబడుతుంది. మీరు ఈ వేరియబుల్ని ఏదైనా విలువకు లేదా శూన్యానికి సెట్ చేయవచ్చు
స్ట్రింగ్.
setenv INCA_64BIT
ముఖ్యమైనది: ది INCA_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ IC సాధనాల వంటి ఇతర కాడెన్స్ సాధనాలను ప్రభావితం చేయదు. అయినప్పటికీ, ఇన్సిసివ్ టూల్స్ కోసం, INCA_64BIT వేరియబుల్ CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ కోసం సెట్టింగ్ను భర్తీ చేస్తుంది. INCA_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ et అయితే, అన్ని ఇన్సిసివ్ టూల్స్ 64-బిట్ మోడ్లో రన్ అవుతాయి.
setenv CDS_AUTO_64BIT ఉన్నాయి:INCA
ముఖ్యమైనది: ది స్ట్రింగ్ INCA తప్పనిసరిగా పెద్ద అక్షరంలో ఉండాలి. అన్ని ఎక్జిక్యూటబుల్స్ తప్పనిసరిగా 2-బిట్ మోడ్లో లేదా 64-బిట్ మోడ్లో అమలు చేయబడాలి, కింది విధంగా ఒక ఎక్జిక్యూటబుల్ని చేర్చడానికి వేరియబుల్ను సెట్ చేయవద్దు:
setenv CDS_AUTO_64BIT: ncelab
64-బిట్ లేదా 32-బిట్ ఎక్జిక్యూటబుల్స్ ఎంపికను నియంత్రించడానికి IC సాధనాల వంటి ఇతర కాడెన్స్ సాధనాలు కూడా CDS_AUTO_64BIT ఎన్విరాన్మెంట్ వేరియబుల్ని ఉపయోగిస్తాయి. అన్ని మోడ్లలో ఇన్సైసివ్ టూల్స్ మరియు IC సాధనాలను అమలు చేయడానికి మీరు CDS_AUTO_64BIT వేరియబుల్ను ఎలా సెట్ చేయవచ్చో క్రింది పట్టిక చూపుతుంది.
పట్టిక 4-1. CDS_AUTO_64BIT వేరియబుల్స్
CDS_AUTO_64BIT వేరియబుల్ | కోత సాధనాలు | IC సాధనాలు |
setenv CDS_AUTO_64బిట్ అన్నీ | 64-బిట్ | 64-బిట్ |
setenv CDS_AUTO_64BIT కాదు | 32-బిట్ | 32-బిట్ |
setenv CDS_AUTO_64BIT మినహాయించండి:ic_binary |
64-బిట్ | 32-బిట్ |
setenv CDS_AUTO_64BIT మినహాయించబడింది:INCA | 32-బిట్ | 64-బిట్ |
ముఖ్యమైన: అన్ని ఇన్సిసివ్ టూల్స్ తప్పనిసరిగా 32-బిట్ మోడ్లో లేదా 64-బిట్ మోడ్లో అమలు చేయబడాలి, కింది విధంగా నిర్దిష్ట ఎక్జిక్యూటబుల్ను మినహాయించడానికి EXCLUDEని ఉపయోగించవద్దు:
setenv CDS_AUTO_64BIT మినహాయించండి: ncelab
మీరు CDS_AUTO_64BIT వేరియబుల్ని ఇన్సైసివ్ టూల్స్ (setenv) మినహాయించడాన్ని సెట్ చేస్తే
CDS_AUTO_64BIT EXCLUDE:INCA), అన్ని ఇన్సిసివ్ టూల్స్ 32-బిట్ మోడ్లో అమలు చేయబడతాయి. అయితే, ది
-64bit కమాండ్-లైన్ ఎంపిక పర్యావరణ వేరియబుల్ను భర్తీ చేస్తుంది.
కింది కాన్ఫిగరేషన్ fileమీ డేటాను నిర్వహించడంలో మరియు అనుకరణ సాధనాలు మరియు యుటిలిటీల ఆపరేషన్ను నియంత్రించడంలో మీకు సహాయం చేస్తుంది:
- లైబ్రరీ మ్యాపింగ్ file (cds.lib) మీ డిజైన్ స్థానానికి తార్కిక పేరును నిర్వచిస్తుంది.
- లైబ్రరీలు మరియు వాటిని భౌతిక డైరెక్టరీ పేర్లతో అనుబంధిస్తుంది.
- వేరియబుల్స్ file (hdl.var) అనుకరణ సాధనాలు మరియు యుటిలిటీల ప్రవర్తనను ప్రభావితం చేసే వేరియబుల్లను నిర్వచిస్తుంది.
4.2 కంపైల్డ్ లైబ్రరీని డౌన్లోడ్ చేయండి (ఒక ప్రశ్న అడగండి)
Microsemi's నుండి Cadence Xcelium కోసం లైబ్రరీలను డౌన్లోడ్ చేయండి webసైట్.
4.3 Xcelium స్క్రిప్ట్ను సృష్టిస్తోంది file (ఒక ప్రశ్న అడగండి)
run.do యొక్క కాపీని సృష్టించిన తర్వాత files, Xcelium స్క్రిప్ట్ని ఉపయోగించి మీ అనుకరణను అమలు చేయడానికి క్రింది దశలను చేయండి file.
- cds.libని సృష్టించండి file ఏ లైబ్రరీలు అందుబాటులో ఉన్నాయో మరియు అవి ఎక్కడ ఉన్నాయో నిర్వచిస్తుంది.
ది file లైబ్రరీ లాజికల్ పేర్లను వాటి భౌతిక డైరెక్టరీ పాత్లకు మ్యాప్ చేసే స్టేట్మెంట్లను కలిగి ఉంటుంది. ఉదాహరణకుample, మీరు presynth అనుకరణను అమలు చేస్తుంటే, cds.lib file కింది కోడ్బ్లాక్లో చూపిన విధంగా వ్రాయవచ్చు.
ప్రిసింత్ ./ప్రెసింత్ నిర్వచించండి
COREAHBLITE_LIB ./COREAHBLITE_LIBని నిర్వచించండి
స్మార్ట్ఫ్యూజన్ని నిర్వచించండి2 - hdl.varని సృష్టించండి file ఇది ఐచ్ఛిక కాన్ఫిగరేషన్ file ఇది కాన్ఫిగరేషన్ వేరియబుల్లను కలిగి ఉంటుంది, ఇది మీ డిజైన్ వాతావరణం ఎలా కాన్ఫిగర్ చేయబడిందో నిర్ణయిస్తుంది. వీటితొ పాటు:
– కంపైలర్ కంపైల్ చేసిన వస్తువులు మరియు ఇతర ఉత్పన్నమైన డేటాను నిల్వ చేసే వర్క్ లైబ్రరీని పేర్కొనడానికి ఉపయోగించే వేరియబుల్స్.
– వెరిలాగ్ కోసం, వేరియబుల్స్ (LIB_MAP, VIEW_MAP, WORK) లైబ్రరీలను పేర్కొనడానికి మరియు viewఎలబరేటర్ సందర్భాలను పరిష్కరించినప్పుడు శోధించడానికి s.
– కంపైలర్, ఎలబరేటర్ మరియు సిమ్యులేటర్ కమాండ్-లైన్ ఎంపికలు మరియు ఆర్గ్యుమెంట్లను నిర్వచించడానికి మిమ్మల్ని అనుమతించే వేరియబుల్స్.
ప్రిసింత్ సిమ్యులేషన్ విషయంలో ఉదాampపైన చూపిన విధంగా, మాకు 3 RTL ఉందని చెప్పండి files av, bv మరియు testbench.v, వీటిని వరుసగా ప్రిసింత్, COREAHBLITE_LIB మరియు ప్రిసింత్ లైబ్రరీలలోకి సంకలనం చేయాలి. hdl.var file కింది కోడ్బ్లాక్లో చూపిన విధంగా వ్రాయవచ్చు.
వర్క్ ప్రిసింత్ను నిర్వచించండి
PROJECT_DIRని నిర్వచించండి files>
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/av => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/bv => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/testbench.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, + => ప్రిసింత్ ) - డిజైన్ను కంపైల్ చేయండి filencvlog ఎంపికను ఉపయోగిస్తున్నారు.
xmvlog +incdir+ –cdslib ./cds.lib –hdlvar ./hdl.var –logfile
ncvlog.log –update –linedebug av bv testbench.v - ncelab ఉపయోగించి డిజైన్ను వివరించండి. ఎలబరేటర్ డిజైన్లోని ఇన్స్టాంటియేషన్ మరియు కాన్ఫిగరేషన్ సమాచారం ఆధారంగా డిజైన్ సోపానక్రమాన్ని నిర్మిస్తుంది, సిగ్నల్ కనెక్టివిటీని ఏర్పాటు చేస్తుంది మరియు డిజైన్లోని అన్ని వస్తువుల కోసం ప్రారంభ విలువలను గణిస్తుంది. విస్తృతమైన డిజైన్ సోపానక్రమం అనుకరణ స్నాప్షాట్లో నిల్వ చేయబడుతుంది, ఇది అనుకరణను అమలు చేయడానికి సిమ్యులేటర్ ఉపయోగించే మీ డిజైన్కు ప్రాతినిధ్యం వహిస్తుంది.
Xcelium –Message –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –errormax 15 –
యాక్సెస్ +rwc-status worklib. : మాడ్యూల్
పోస్ట్-లేఅవుట్ అనుకరణ సమయంలో వివరణ
పోస్ట్-లేఅవుట్ అనుకరణల విషయంలో, ముందుగా SDF file ncsdfc కమాండ్ ఉపయోగించి విశదీకరించే ముందు కంపైల్ చేయాలి.
Xceliumfileపేరు>.sdf –అవుట్పుట్fileపేరు>.sdf.X
విశదీకరణ సమయంలో క్రింది కోడ్బ్లాక్లో చూపిన విధంగా –autosdf ఎంపికతో సంకలనం చేయబడిన SDF అవుట్పుట్ని ఉపయోగించండి.
xmelab -autosdf –Message –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –errormax
15 -యాక్సెస్ +rwc-స్టేటస్ వర్క్లిబ్. :మాడ్యూల్ –sdf_cmd_file ./
sdf_cmd_file
sdf_cmd_file కింది కోడ్బ్లాక్లో చూపిన విధంగా ఉండాలి.
COMPILED_SDF_FILE =" file>” - Xcelium ఉపయోగించి అనుకరించండి. వివరించిన తర్వాత అనుకరణ స్నాప్షాట్ సృష్టించబడుతుంది, ఇది అనుకరణ కోసం Xcelium ద్వారా లోడ్ చేయబడుతుంది. దీనిని బ్యాచ్ మోడ్ లేదా GUI మోడ్లో అమలు చేయవచ్చు.
xmsim –Message –batch/-gui –cdslib ./cds.lib –hdlvar ./hdl.var –logfile xmsim.log -
errormax 15 -స్టేటస్ వర్క్లిబ్. : మాడ్యూల్
కాడెన్స్ Xcelium సెటప్
ముఖ్యమైనది: అన్నీ కంపైలింగ్, విశదీకరించడం మరియు అనుకరించడం యొక్క పై మూడు దశలను షెల్ స్క్రిప్ట్లో ఉంచవచ్చు file మరియు కమాండ్-లైన్ నుండి మూలం. ఈ మూడు దశలను ఉపయోగించకుండా, కింది కోడ్బ్లాక్లో చూపిన విధంగా ncverilog లేదా xrun ఎంపికను ఉపయోగించి డిజైన్ను ఒక దశలో అనుకరించవచ్చు.
xmverilog +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var
fileడిజైన్లో ఉపయోగించబడింది>
xrun +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var files
డిజైన్లో ఉపయోగించబడింది>
4.3.1 తెలిసిన సమస్యలు (ఒక ప్రశ్న అడగండి)
టెస్ట్బెంచ్ వర్కౌండ్
వినియోగదారు రూపొందించిన టెస్ట్బెంచ్లో క్లాక్ ఫ్రీక్వెన్సీని పేర్కొనడానికి క్రింది స్టేట్మెంట్ను ఉపయోగించడం లేదా Libero SoC ద్వారా రూపొందించబడిన డిఫాల్ట్ టెస్ట్బెంచ్ Xceliumతో పని చేయదు.
ఎల్లప్పుడూ @(SYSCLK)
#(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;
అనుకరణను అమలు చేయడానికి క్రింది విధంగా సవరించండి:
ఎల్లప్పుడూ #(SYSCLK_PERIOD / 2.0) SYSCLK = ~SYSCLK;
ముఖ్యమైన: Xcelium కోసం కంపైల్డ్ లైబ్రరీలు ప్లాట్ఫారమ్ నిర్దిష్టంగా ఉంటాయి (అంటే 64 బిట్ లైబ్రరీలు 32 బిట్ ప్లాట్ఫారమ్తో అనుకూలంగా లేవు మరియు వైస్ వెర్సా).
MSS మరియు SERDES ఉపయోగించి పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్ అనుకరణలు
MSS బ్లాక్ని కలిగి ఉన్న డిజైన్ల పోస్ట్సింత్ అనుకరణలను లేదా SERDESని ఉపయోగించి డిజైన్ల పోస్ట్-లేఅవుట్ అనుకరణలను అమలు చేస్తున్నప్పుడు, విశదీకరణ సమయంలో –libmap ఎంపికను పేర్కొనకపోతే BFM అనుకరణలు పని చేయవు. ఎందుకంటే విశదీకరణ సమయంలో, MSS వర్క్ లైబ్రరీ నుండి పరిష్కరించబడుతుంది (డిఫాల్ట్ బైండింగ్ మరియు వర్క్లిబ్ పోస్ట్సింత్/పోస్ట్-లేఅవుట్ అయినందున) ఇక్కడ అది కేవలం స్థిరమైన ఫంక్షన్.
SmartFusion2 ప్రీకంపైల్డ్ లైబ్రరీ నుండి MSS బ్లాక్ను పరిష్కరించడానికి కింది కోడ్ బ్లాక్లో చూపిన విధంగా ncelab కమాండ్ తప్పనిసరిగా వ్రాయబడాలి.
xmelab -libmap lib.map -libverbose -Message -access +rwc cfg1
మరియు lib.map file ఈ క్రింది విధంగా ఉండాలి:
config cfg1;
రూపకల్పన ;
డిఫాల్ట్ లిబ్లిస్ట్ స్మార్ట్ఫ్యూజన్2 ;
endconfig
ఇది తప్పనిసరిగా వర్క్ లైబ్రరీ అంటే పోస్ట్సింత్/పోస్ట్-లేఅవుట్లో చూసే ముందు SmartFusion2 లైబ్రరీలోని ఏదైనా సెల్ని పరిష్కరించాలి.
ప్రతి అనుకరణ (ప్రెసింత్, పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్) కోసం విశదీకరణ సమయంలో –libmap ఎంపికను డిఫాల్ట్గా ఉపయోగించవచ్చు. ఇది లైబ్రరీల నుండి ఉదంతాల పరిష్కారం కారణంగా ఏర్పడే అనుకరణ సమస్యలను నివారిస్తుంది.
xmelab: *F,INTERR: అంతర్గత మినహాయింపు
ఈ ncelab టూల్ మినహాయింపు SmartFusion2 మరియు IGLOO2లో FDDRని కలిగి ఉన్న డిజైన్లకు మినహాయింపు
పోస్ట్సింత్ మరియు పోస్ట్-లేఅవుట్ అనుకరణల సమయంలో -libmap ఎంపికను ఉపయోగించి.
ముఖ్యమైన: ఈ సమస్య కాడెన్స్ సపోర్ట్ టీమ్ (SAR 52113)కి నివేదించబడింది.
4.4 ఎస్ample Tcl మరియు షెల్ స్క్రిప్ట్ fileలు (ఒక ప్రశ్న అడగండి)
క్రింది fileలు కాన్ఫిగరేషన్ fileడిజైన్ మరియు షెల్ స్క్రిప్ట్ను సెటప్ చేయడానికి లు అవసరం file Xcelium ఆదేశాలను అమలు చేయడానికి.
Cds.lib
స్మార్ట్ఫ్యూజన్2 /స్క్రాచ్/క్రిడార్/టిఎంపిస్పేస్/యూజర్స్/మీ/ఎన్సి-విలాగ్64/స్మార్ట్ఫ్యూజన్2ని నిర్వచించండి
COREAHBLITE_LIB ./COREAHBLITE_LIBని నిర్వచించండి
ప్రిసింత్ ./ప్రెసింత్ నిర్వచించండి
Hdl.var
వర్క్ ప్రిసింత్ను నిర్వచించండి
PROJECT_DIR /scratch/krydor/tmpspace/sqausers/me/3rd_party_simulators/Cadence/IGLOO2/ని నిర్వచించండి
ENVM/M2GL050/envm_fic1_ser1_v/eNVM_fab_master
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_addrdec.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_defaultslavesm.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_masterstagev => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavearbiter.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavestagev => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_matrix2x16.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite.v => COREAHBLITE_LIB )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/CCC_0/SB_CCC_0_FCCC.v =>
ప్రిసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigMaster/
2.0.101/rtl/vlog/core/coreconfigmaster.v => presynth )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/
vlog/core/coreconfigp.v => presynth )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp_pcie_hotreset.v => ప్రిసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp.v => ప్రెసింత్)
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v =>
ప్రిసింత్)
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_HPMS/SB_HPMS.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB/SB.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SB_top.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/testbench.v => ప్రీసింత్ )
LIB_MAPని నిర్వచించండి ( $LIB_MAP, + => ప్రిసింత్ )
Commands.csh
ncvlog +incdir+../../component/work/SB_top -cdslib ./cds.lib -hdlvar ./hdl.var -logfile
ncvlog.log -errormax 15 -update -linedebug
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_addrdec.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/
coreahblite_defaultslavesm.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_masterstagev
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavearbiter.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavestagev
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_matrix2x16.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite.v
../../component/work/SB/CCC_0/SB_CCC_0_FCCC.v
../../component/Actel/DirectCore/CoreConfigMaster/2.0.101/rtl/vlog/core/coreconfigmaster.v
../../component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/vlog/core/coreconfigp.v
../../component/Actel/DirectCore/CoreResetP/5.0.103/rtl/vlog/core/coreresetp_pcie_hotreset.v
../../component/Actel/DirectCore/CoreResetP/5.0.103/rtl/vlog/core/coreresetp.v
../../component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v ../../component/work/SB_HPMS/SB_HPMS.v
../../component/work/SB/SB.v ../../component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v
../../component/work/SB_top/SB_top.v ../../component/work/SB_top/testbench.v
ncelab -Message -cdslib ./cds.lib -hdlvar ./hdl.var
-వర్క్ ప్రిసింత్ -లాగ్file ncelab.log -errormax 15 -access +rwc -status presynth.testbench:module
ncsim -Message -batch -cdslib ./cds.lib -hdlvar ./
hdl.var -logfile ncsim.log -errormax 15 -స్టేటస్ presynth.testbench:module
4.5 ఆటోమేషన్ (మైక్రోచిప్ లాగిన్)
కింది స్క్రిప్ట్ file ModelSim run.doని మారుస్తుంది fileలు కాన్ఫిగరేషన్లో ఉన్నాయి fileXcelium ఉపయోగించి అనుకరణలను అమలు చేయడానికి s అవసరం.
స్క్రిప్ట్ File వాడుక
perl cadence_parser.pl presynth_run.do postsynth_run.do
postlayout_run.do Microsemi_Family
కాడెన్స్_ప్రీ కంపైల్డ్_లైబ్రరీల_స్థానం
Cadence_parser.pl
#!/usr/bin/perl -w
############################################### #########################################
###################
#ఉపయోగం: perl questa_parser.pl presynth_run.do postsynth_run.do postlayout_run.do
మైక్రోసెమీ_ఫ్యామిలీ ప్రీకంపైల్డ్_లైబ్రరీస్_లొకేషన్#
############################################### #########################################
###################
POSIX ఉపయోగించండి;
కఠినమైన ఉపయోగించండి;
నా ($presynth, $postsynth, $postlayout, $family, $lib_location) = @ARGV;
&questa_parser($ప్రెసింత్, $ఫ్యామిలీ, $lib_location);
&questa_parser($postsynth, $family, $lib_location);
&questa_parser($postlayout, $family, $lib_location);
ఉప questa_parser {
నా $ModelSim_run_do = $_[0];
నా $actel_family = $_[1];
నా $lib_location = $_[2];
నా $ రాష్ట్రం;
ఉంటే ( -e “$ModelSim_run_do” )
{
తెరవండి (INFILE,”$ModelSim_run_do”);
నా @ModelSim_run_do =FILE>;
నా $ లైన్;
అయితే ($ModelSim_run_do =~ m/(presynth)/)
{
`mkdir QUESTA_PRESYNTH`;
తెరవండి (OUTFILE,”>QUESTA_PRESYNTH/presynth_questa.do”);
$ రాష్ట్రం = $ 1;
} elsif ( $ModelSim_run_do =~ m/(postsynth)/)
{
`mkdir QUESTA_POSTSYNTH`;
తెరవండి (OUTFILE,”>QUESTA_POSTSYNTH/postsynth_questa.do”);
$ రాష్ట్రం = $ 1;
} elsif ( $ModelSim_run_do =~ m/(postlayout)/ )
{
`mkdir QUESTA_POSTLAYOUT`;
తెరవండి (OUTFILE,”>QUESTA_POSTLAYOUT/postlayout_questa.do”);
$ రాష్ట్రం = $ 1;
} లేకపోతే
{
ప్రింట్ “తప్పు ఇన్పుట్లు ఇవ్వబడ్డాయి file\n”;
ప్రింట్ “#వినియోగం: perl questa_parser.pl presynth_run.do postsynth_run.do postlayout_run.do
\”Libraries_location\”\n”;
}
$line (@ModelSim_run_do)ని చేరుకోండి
{
#సాధారణ కార్యకలాపాలు
$line =~ s/..\/designer.*simulation\///g;
$లైన్ =~ s/$state/$state\_questa/g;
#ప్రింట్ అవుట్FILE “$లైన్ \n”;
ఉంటే ($line =~ m/vmap\s+.*($actel_family)/)
{
ప్రింట్ అవుట్FILE “vmap $actel_family \”$lib_location\”\n”;
} elsif ($line =~ m/vmap\s+(.*._LIB)/)
{
$లైన్ =~ s/..\/component/..\/..\/component/g;
ప్రింట్ అవుట్FILE “$లైన్ \n”;
} ఎల్సిఫ్ ($లైన్ =~ m/vsim/)
{
$లైన్ =~ s/vsim/vsim -novopt/g;
ప్రింట్ అవుట్FILE “$లైన్ \n”;
} లేకపోతే
{
ప్రింట్ అవుట్FILE “$లైన్ \n”;
}
}
మూసివేయి (INFILE);
ముగిస్తాయిFILE);
} వేరే {
ప్రింట్ “$ModelSim_run_do ఉనికిలో లేదు. అనుకరణను మళ్లీ అమలు చేయండి \n”;
}
}
సిమెన్స్ క్వెస్టాసిమ్ సెటప్/మోడల్సిమ్ సెటప్ (ఒక ప్రశ్న అడగండి)
The run.do fileమోడల్సిమ్ మైక్రోసెమి ఎడిషన్లను ఉపయోగించి అనుకరణల కోసం Libero SoC ద్వారా రూపొందించబడిన s, ఒకే మార్పుతో QuestaSim/ModelSim SE/DE/PEని ఉపయోగించి అనుకరణల కోసం ఉపయోగించవచ్చు. ModelSim ME/ModelSim Pro ME run.doలో file, ముందుగా కంపైల్ చేయబడిన లైబ్రరీల స్థానాన్ని సవరించాలి.
ముఖ్యమైన:
డిఫాల్ట్గా, మోడల్సిమ్ ప్రో ME కాకుండా ఇతర అనుకరణ సాధనం అనుకరణ సమయంలో డిజైన్ ఆప్టిమైజేషన్ను నిర్వహిస్తుంది, ఇది డిజైన్ వస్తువులు మరియు ఇన్పుట్ ఉద్దీపన వంటి అనుకరణ కళాఖండాలలో దృశ్యమానతను ప్రభావితం చేస్తుంది.
వెర్బోస్, సెల్ఫ్-చెకింగ్ టెస్ట్బెంచ్లను ఉపయోగించి సంక్లిష్ట అనుకరణల కోసం అనుకరణ రన్టైమ్ను తగ్గించడంలో ఇది సాధారణంగా సహాయపడుతుంది. అయితే, డిఫాల్ట్ ఆప్టిమైజేషన్లు అన్ని అనుకరణలకు సముచితంగా ఉండకపోవచ్చు, ప్రత్యేకించి మీరు వేవ్ విండోను ఉపయోగించి అనుకరణ ఫలితాలను గ్రాఫికల్గా పరిశీలించాలని ఆశించే సందర్భాల్లో.
ఈ ఆప్టిమైజేషన్ వల్ల కలిగే సమస్యలను పరిష్కరించడానికి, మీరు డిజైన్లో దృశ్యమానతను పునరుద్ధరించడానికి అనుకరణ సమయంలో తగిన ఆదేశాలను మరియు సంబంధిత ఆర్గ్యుమెంట్లను తప్పనిసరిగా జోడించాలి. సాధనం-నిర్దిష్ట ఆదేశాల కోసం, ఉపయోగంలో ఉన్న సిమ్యులేటర్ యొక్క డాక్యుమెంటేషన్ చూడండి.
5.1 పర్యావరణ వేరియబుల్స్ (ఒక ప్రశ్న అడగండి)
అవసరమైన పర్యావరణ వేరియబుల్స్ క్రిందివి.
- LM_LICENSE_FILE: తప్పనిసరిగా లైసెన్స్కు మార్గాన్ని చేర్చాలి file.
- MODEL_TECH: QuestaSim ఇన్స్టాలేషన్ హోమ్ డైరెక్టరీ స్థానానికి తప్పనిసరిగా మార్గాన్ని గుర్తించాలి.
- PATH: తప్పనిసరిగా MODEL_TECH ద్వారా సూచించబడిన ఎక్జిక్యూటబుల్ స్థానానికి సూచించాలి.
5.2 మెంటర్ క్వెస్టాసిమ్ కోసం run.doని మార్చడం (ఒక ప్రశ్న అడగండి)
The run.do fileModelSim మైక్రోసెమి ఎడిషన్లను ఉపయోగించి అనుకరణల కోసం Libero SoC ద్వారా రూపొందించబడిన లు ఒకే మార్పుతో QuestaSim/ModelSim_SEని ఉపయోగించి అనుకరణల కోసం ఉపయోగించవచ్చు.
ముఖ్యమైనది: అన్నీ QuestaSim ఉపయోగించి అనుకరణ చేయబడిన డిజైన్లలో తప్పనిసరిగా -novopt ఉండాలి
run.do స్క్రిప్ట్లో vsim కమాండ్తో పాటు ఎంపిక files.
5.3 కంపైల్డ్ లైబ్రరీని డౌన్లోడ్ చేయండి (ఒక ప్రశ్న అడగండి)
మైక్రోసెమి నుండి మెంటర్ గ్రాఫిక్స్ క్వెస్టాసిమ్ కోసం లైబ్రరీలను డౌన్లోడ్ చేయండి webసైట్.
సారాంశం VCS సెటప్ (ఒక ప్రశ్న అడగండి)
మైక్రోసెమి సిఫార్సు చేసిన ఫ్లో VCSలో ఎలబరేట్ మరియు కంపైల్ ఫ్లోపై ఆధారపడి ఉంటుంది. ఈ పత్రంలో స్క్రిప్ట్ ఉంటుంది file అది run.do స్క్రిప్ట్ని ఉపయోగిస్తుంది fileలు Libero SoC ద్వారా రూపొందించబడింది మరియు సెటప్ను ఉత్పత్తి చేస్తుంది fileVCS అనుకరణకు s అవసరం. స్క్రిప్ట్ file run.doని ఉపయోగిస్తుంది file కింది వాటిని చేయడానికి.
- లైబ్రరీ మ్యాపింగ్ను సృష్టించండి file, ఇది synopsys_sim.setup ఉపయోగించి చేయబడుతుంది file VCS అనుకరణ అమలవుతున్న అదే డైరెక్టరీలో ఉంది.
- షెల్ స్క్రిప్ట్ను సృష్టించండి file VCSని ఉపయోగించి మీ డిజైన్ను వివరించడానికి మరియు కంపైల్ చేయడానికి.
6.1 పర్యావరణ వేరియబుల్స్ (ఒక ప్రశ్న అడగండి)
మీ సెటప్ ఆధారంగా VCS కోసం తగిన పర్యావరణ వేరియబుల్లను సెట్ చేయండి. VCS డాక్యుమెంటేషన్ ప్రకారం అవసరమైన పర్యావరణ వేరియబుల్స్:
- LM_LICENSE_FILE: లైసెన్స్ సర్వర్కు తప్పనిసరిగా పాయింటర్ను చేర్చాలి.
- VCS_HOME: తప్పనిసరిగా VCS ఇన్స్టాలేషన్ హోమ్ డైరెక్టరీ స్థానాన్ని సూచించాలి.
- PATH: తప్పనిసరిగా VCS_HOME డైరెక్టరీకి దిగువన ఉన్న బిన్ డైరెక్టరీకి పాయింటర్ను చేర్చాలి.
6.2 కంపైల్డ్ లైబ్రరీని డౌన్లోడ్ చేయండి (ఒక ప్రశ్న అడగండి)
మైక్రోసెమీ నుండి సారాంశం VCS కోసం లైబ్రరీలను డౌన్లోడ్ చేయండి webసైట్.
6.3 VCS అనుకరణ స్క్రిప్ట్ File (ఒక ప్రశ్న అడగండి)
VCSను సెటప్ చేసి, డిజైన్ మరియు విభిన్న run.doని రూపొందించిన తర్వాత fileలిబెరో SoC నుండి, మీరు తప్పక:
- లైబ్రరీ మ్యాపింగ్ను సృష్టించండి file synopsys_sim.setup; ఇది file డిజైన్ ద్వారా ఉపయోగించాల్సిన అన్ని లైబ్రరీల స్థానానికి పాయింటర్లను కలిగి ఉంటుంది.
ముఖ్యమైనది: ది file పేరు మారకూడదు మరియు ఇది అనుకరణ అమలవుతున్న అదే డైరెక్టరీలో ఉండాలి. ఇక్కడ ఒక మాజీampఅటువంటి ఒక కోసం le file ప్రిసింథసిస్ అనుకరణ కోసం.
పని > ఎఫాల్ట్
SmartFusion2:
ప్రిసింత్: ./ప్రెసింత్
డిఫాల్ట్: ./పని - విభిన్న డిజైన్ను వివరించండి fileVCSలో vlogan కమాండ్ని ఉపయోగించి టెస్ట్బెంచ్తో సహా s. ఈ ఆదేశాలను షెల్ స్క్రిప్ట్లో చేర్చవచ్చు file. క్రింది మాజీamprtl.vలో నిర్వచించబడిన డిజైన్ను దాని టెస్ట్బెంచ్తో వివరించడానికి అవసరమైన ఆదేశాల le
testbench.v
vlogan +v2k -work presynth rtl.v
vlogan +v2k -work presynth testbench.v - కింది ఆదేశాన్ని ఉపయోగించి VCS ఉపయోగించి డిజైన్ను కంపైల్ చేయండి.
vcs –sim_res=1fs presynth.testbench
గమనిక: ది సరైన ఫంక్షనల్ సిమ్యులేషన్ కోసం అనుకరణ టైమింగ్ రిజల్యూషన్ తప్పనిసరిగా 1fsకి సెట్ చేయబడాలి. - డిజైన్ కంపైల్ చేయబడిన తర్వాత, కింది ఆదేశాన్ని ఉపయోగించి అనుకరణను ప్రారంభించండి.
./simv - బ్యాక్-ఉల్లేఖన అనుకరణ కోసం, క్రింది కోడ్బ్లాక్లో చూపిన విధంగా VCS ఆదేశం తప్పనిసరిగా ఉండాలి.
vcs postlayout.testbench –sim_res=1fs –sdf గరిష్టం: .
పేరు>: file మార్గం> –gui –l postlayout.log
6.4 పరిమితులు/మినహాయింపులు (ఒక ప్రశ్న అడగండి)
Synopsys VCS సెటప్ యొక్క పరిమితులు/మినహాయింపులు క్రిందివి.
- VCS అనుకరణలు Libero SoC యొక్క వెరిలాగ్ ప్రాజెక్ట్ల కోసం మాత్రమే అమలు చేయబడతాయి. VCS సిమ్యులేటర్కు కఠినమైన VHDL భాషా అవసరాలు ఉన్నాయి, అవి Libero SoC స్వయంచాలకంగా రూపొందించబడిన VHDL ద్వారా అందుకోబడవు. files.
- మీకు కావలసినప్పుడు అనుకరణను ఆపడానికి వెరిలాగ్ టెస్ట్బెంచ్లో తప్పనిసరిగా $finish స్టేట్మెంట్ ఉండాలి.
ముఖ్యమైనది: ఎప్పుడు అనుకరణలు GUI మోడ్లో అమలు చేయబడతాయి, రన్ సమయాన్ని GUIలో పేర్కొనవచ్చు.
6.5 ఎస్ample Tcl మరియు షెల్ స్క్రిప్ట్ Fileలు (ఒక ప్రశ్న అడగండి)
క్రింది Perl synopsys_sim.setup యొక్క జనరేషన్ను ఆటోమేట్ చేస్తుంది file అలాగే సంబంధిత షెల్ స్క్రిప్ట్ fileడిజైన్ను వివరించడానికి, కంపైల్ చేయడానికి మరియు అనుకరించడానికి లు అవసరం.
డిజైన్ MSSని ఉపయోగిస్తుంటే, test.vecని కాపీ చేయండి file Libero SoC ప్రాజెక్ట్ యొక్క అనుకరణ ఫోల్డర్లో VCS అనుకరణ ఫోల్డర్లో ఉంది. కింది విభాగాలలో s ఉన్నాయిampలే రన్.డూ fileసంబంధిత లైబ్రరీ మ్యాపింగ్ మరియు షెల్ స్క్రిప్ట్తో సహా Libero SoC ద్వారా రూపొందించబడిన లు fileVCS అనుకరణకు s అవసరం.
6.5.1 ప్రీ-సింథసిస్ (ఒక ప్రశ్న అడగండి)
Presynth_run.do
నిశ్శబ్దంగా ACTELLIBNAME SmartFusion2ని సెట్ చేయండి
నిశ్శబ్దంగా PROJECT_DIR “/sqa/users/me/VCS_Tests/Test_DFF”ని సెట్ చేయండి
ఒకవేళ {[file ప్రిసింత్ ఉంది/_info]} {
ప్రతిధ్వని “సమాచారం: అనుకరణ లైబ్రరీ ప్రిసింత్ ఇప్పటికే ఉంది”
} వేరే {
vlib ప్రెసింత్
}
vmap ప్రిసింత్ ప్రిసింత్
vmap SmartFusion2 “/captures/lin/11_0_0_23_11prod/lib/ModelSim/precompiled/vlog/smartfusion2”
vlog -work presynth “${PROJECT_DIR}/component/work/SD1/SD1.v”
vlog “+incdir+${PROJECT_DIR}/ఉద్దీపన” -వర్క్ ప్రిసింత్ “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L presynth -t 1fs presynth.SD1_TB1
తరంగాన్ని జోడించు /SD1_TB1/*
లాగ్ జోడించు -r /*
1000ns పరుగు
presynth_main.csh
#!/బిన్/csh -f
సెట్ PROJECT_DIR = “/sqa/users/Me/VCS_Tests/Test_DFF”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -work presynth “${PROJECT_DIR}/component/
పని/SD1/SD1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -work
ప్రిసింత్ “${PROJECT_DIR}/ఉద్దీపన/SD1_TB1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs presynth.SD1_TB1 -l compile.log
./simv -l run.log
Synopsys_sim.setup
పని > డిఫాల్ట్
SmartFusion2 : /VCS/SmartFusion2
ప్రిసింత్: ./ప్రెసింత్
డిఫాల్ట్: ./పని
6.5.2 పోస్ట్-సింథసిస్ (ఒక ప్రశ్న అడగండి)
postsynth_run.do
నిశ్శబ్దంగా ACTELLIBNAME SmartFusion2ని సెట్ చేయండి
నిశ్శబ్దంగా PROJECT_DIR “/sqa/users/Me/VCS_Tests/Test_DFF” సెట్ చేయండి
ఒకవేళ {[file పోస్ట్సింత్ ఉంది/_info]} {
ప్రతిధ్వని “సమాచారం: అనుకరణ లైబ్రరీ పోస్ట్సింత్ ఇప్పటికే ఉంది”
} వేరే {
vlib పోస్ట్సింత్
}
vmap postsynth postsynth
vmap SmartFusion2 “//idm/captures/pc/11_0_1_12_g4x/Designer/lib/ModelSim/precompiled/vlog/
SmartFusion2”
vlog -work postsynth “${PROJECT_DIR}/synthesis/SD1.v”
vlog “+incdir+${PROJECT_DIR}/ఉద్దీపన” -వర్క్ పోస్ట్సింత్ “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L postsynth -t 1fs postsynth.SD1_TB1
తరంగాన్ని జోడించు /SD1_TB1/*
లాగ్ జోడించు -r /*
1000ns పరుగు
లాగ్ SD1_TB1/*
నిష్క్రమించు
Postsynth_main.csh
#!/బిన్/csh -f
సెట్ PROJECT_DIR = “/sqa/users/Me/VCS_Tests/Test_DFF”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -work postsynth “${PROJECT_DIR}/synthesis/
SD1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -work
పోస్ట్సింత్ “${PROJECT_DIR}/stimulus/SD1_TB1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postsynth.SD1_TB1 -l compile.log
./simv -l run.log
Synopsys_sim.setup
పని > డిఫాల్ట్
SmartFusion2 : /VCS/SmartFusion2
postsynth : ./postsynth
డిఫాల్ట్: ./పని
6.5.3 పోస్ట్-లేఅవుట్ (ఒక ప్రశ్న అడగండి)
postlayout_run.do
నిశ్శబ్దంగా ACTELLIBNAME SmartFusion2ని సెట్ చేయండి
PROJECT_DIR “E:/ModelSim_Work/Test_DFF”ని నిశ్శబ్దంగా సెట్ చేయండి
ఒకవేళ {[file ఉంది ../designer/SD1/simulation/postlayout/_info]} {
ప్రతిధ్వని “సమాచారం: అనుకరణ లైబ్రరీ ../డిజైనర్/SD1/సిమ్యులేషన్/పోస్ట్లేఅవుట్ ఇప్పటికే ఉంది”
} వేరే {
vlib ../designer/SD1/simulation/postlayout
}
vmap పోస్ట్లేఅవుట్ ../డిజైనర్/SD1/సిమ్యులేషన్/పోస్ట్లేఅవుట్
vmap SmartFusion2 “//idm/captures/pc/11_0_1_12_g4x/Designer/lib/ModelSim/precompiled/vlog/
SmartFusion2”
vlog -వర్క్ పోస్ట్లేఅవుట్ “${PROJECT_DIR}/designer/SD1/SD1_ba.v”
vlog “+incdir+${PROJECT_DIR}/ఉద్దీపన” -వర్క్ పోస్ట్లేఅవుట్ “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L పోస్ట్లేఅవుట్ -t 1fs -sdfmax /SD1_0=${PROJECT_DIR}/designer/SD1/
SD1_ba.sdf పోస్ట్లేఅవుట్.SD1_TB1
తరంగాన్ని జోడించు /SD1_TB1/*
లాగ్ జోడించు -r /*
1000ns పరుగు
Postlayout_main.csh
#!/బిన్/csh -f
PROJECT_DIR = “/VCS_Tests/Test_DFF”ని సెట్ చేయండి
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -వర్క్ పోస్ట్లేఅవుట్ “${PROJECT_DIR}/
డిజైనర్/SD1/SD1_ba.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -work
పోస్ట్లేఅవుట్ “${PROJECT_DIR}/stimulus/SD1_TB1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.SD1_TB1 -sdf
max:SD1_TB1.SD1_0:${PROJECT_DIR}/designer/SD1/SD1_ba.sdf -l compile.log
./simv -l run.log
Synopsys_sim.setup
పని > డిఫాల్ట్
SmartFusion2 : /VCS/SmartFusion2
postlayout : ./postlayout
డిఫాల్ట్: ./workVCS
6.6 ఆటోమేషన్ (ఒక ప్రశ్న అడగండి)
కింది పెర్ల్ స్క్రిప్ట్ని ఉపయోగించి ఫ్లో ఆటోమేట్ చేయబడుతుంది file ModelSim run.doని మార్చడానికి fileVCS అనుకూల షెల్ స్క్రిప్ట్లోకి s files, Libero SoC అనుకరణ డైరెక్టరీ లోపల సరైన డైరెక్టరీలను సృష్టించి, ఆపై అనుకరణలను అమలు చేయండి.
స్క్రిప్ట్ని అమలు చేయండి file కింది వాక్యనిర్మాణాన్ని ఉపయోగించి.
perl vcs_parse.pl presynth_run.do postsynth_run.do postlayout_run.do
Vcs_parse_pl
#!/usr/bin/perl -w
####################################################################
#
#ఉపయోగం: perl vcs_parse.pl presynth_run.do postsynth_run.do postlayout_run.do
#
#######################################################################
నా ($presynth, $postsynth, $postlayout) = @ARGV;
if(system(“mkdir VCS_Presynth”)) {print “mkdir విఫలమైంది:\n”;}
if(system(“mkdir VCS_Postsynth”)) {print “mkdir విఫలమైంది:\n”;}
if(system(“mkdir VCS_Postlayout”)) {print “mkdir విఫలమైంది:\n”;}
chdir (VCS_Presynth);
`cp ../$ARGV[0] .` ;
&parse_do($presynth,”presynth”);
chdir ("../");
chdir (VCS_Postsynth);
`cp ../$ARGV[1] .` ;
&parse_do($postsynth,”postsynth”);
chdir ("../");
chdir(VCS_Postlayout);
`cp ../$ARGV[2] .` ;
&parse_do($postlayout,”postlayout”);
chdir ("../");
ఉప అన్వయించు_చేయు {
నా $vlog = “/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k” ;
నా %LIB = ();
నా $file = $_[0] ;
నా $స్టేట్ = $_[1];
తెరవండి (INFILE,”$file”) || డై “తెరవలేదు File కారణం కావచ్చు:$!”;
ఉంటే ($state eq “ప్రెసింత్”)
{
open(OUT1,”>presynth_main.csh”) || డై “కమాండ్ సృష్టించలేము File కారణం కావచ్చు:$!”;
}
elsif ($state eq "postsynth" )
{
open(OUT1,”>postsynth_main.csh”) || డై “కమాండ్ సృష్టించలేము File కారణం కావచ్చు:$!”;
}
elsif ($state eq “postlayout” )
{
open(OUT1,”>postlayout_main.csh”) || డై “కమాండ్ సృష్టించలేము File కారణం కావచ్చు:$!”;
}
వేరే
{
ప్రింట్ “అనుకరణ స్థితి లేదు \n” ;
}
open(OUT2,”>synopsys_sim.setup”) || డై “కమాండ్ సృష్టించలేము File కారణం కావచ్చు:$!”;
# .csh file
ప్రింట్ OUT1 “#!/bin/csh -f\n\n\n” ;
#సెటప్ చేయండి FILE
ప్రింట్ అవుట్2 “పని > డిఫాల్ట్\n” ;
ప్రింట్ OUT2 “SmartFusion2 : /sqa/users/Aditya/VCS/SmartFusion2\n” ;
అయితే ($ లైన్ =FILE>)
{
సారాంశం VCS సెటప్
ఉంటే ($లైన్ =~ m/నిశ్శబ్దంగా PROJECT_DIR\s+\”(.*?)\”/)
{
ప్రింట్ OUT1 “సెట్ PROJECT_DIR = \”$1\”\n\n\n” ;
}
elsif ($line =~ m/vlog.*\.v\"/)
{
అయితే ($లైన్ =~ m/\s+(\w*?)\_LIB/)
{
#ముద్రించు “\$1 =$1 \n” ;
$temp = “$1″.”_LIB”;
#ప్రింట్ “టెంప్ = $టెంప్ \n” ;
$LIB{$temp}++;
}
చోంప్ ($ లైన్);
$లైన్ =~ s/^vlog/$vlog/ ;
$లైన్ =~ s/ //g;
ప్రింట్ OUT1 “$line\n”;
}
elsif ( ($line =~ m/vsim.*presynth\.(.*)/) || ($line =~ m/vsim.*postsynth\.(.*)/) || ($line
=~ m/vsim.*postlayout\.(.*)/) )
{
$tb = $1 ;
$tb =~ s/ //g;
chomp ($ tb);
#ముద్రించు “TB పేరు : $tb \n”;
అయితే ($లైన్ =~ m/sdf(.*)\.sdf/)
{
చోంప్ ($ లైన్);
$లైన్ = $1 ;
#print “LINE : $line \n” ;
ఉంటే ($లైన్ =~ మీ/గరిష్టం/)
{
$లైన్ =~ s/max \/// ;
$లైన్ =~ s/=/:/;
ప్రింట్ OUT1 “\n\n/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.$tb -sdf
max:$tb.$line.sdf -l compile.log\n” ;
}
ఎల్సిఫ్ ($లైన్ =~ మీ/నిమి/)
{
$లైన్ =~ సె/నిమి \/// ;
$లైన్ =~ s/=/:/;
ప్రింట్ OUT1 “\n\n/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.$tb -sdf
నిమి:$tb.$line.sdf -l compile.log\n” ;
}
ఎల్సిఫ్ ($లైన్ =~ m/typ/)
{
$లైన్ =~ s/typ \/// ;
$లైన్ =~ s/=/:/;
ప్రింట్ OUT1 “\n\n/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.$tb -sdf
టైప్:$tb.$line.sdf -l compile.log\n” ;
}
#-sdfmax /M3_FIC32_0=${PROJECT_DIR}/designer/M3_FIC32/M3_FIC32_ba.sdf — ModelSim SDF ఫార్మాట్
#$sdf = “-sdf max:testbench.M3_FIC32_0:${PROJECT_DIR}/designer/M3_FIC32/M3_FIC32_ba.sdf”; -VCS
SDF ఫార్మాట్
}
}
}
ప్రింట్
OUT1 “\n\n”
;
if
( $state eq “ప్రెసింత్”
)
{
ప్రింట్
OUT2 “ప్రెసింత్
: ./ప్రెసింత్\n”
;
ప్రింట్
OUT1 “/cad_design/tools/vcs.dir/E-2011.03/bin/vcs
-sim_res=1fs presynth.$tb -l
compile.log\n”
;
}
ఎల్సిఫ్
( $state eq “postsynth”
)
{
ప్రింట్
OUT2 “పోస్ట్సింత్
: ./postsynth\n”
;
ప్రింట్
OUT1 “/cad_design/tools/vcs.dir/E-2011.03/bin/vcs
-sim_res=1fs postsynth.$tb -l
compile.log\n”
;
}
ఎల్సిఫ్
( $state eq “postlayout”
)
{
ప్రింట్ OUT2 “postlayout : ./postlayout\n” ;
}
వేరే
{
ప్రింట్ “అనుకరణ స్థితి లేదు \n” ;
}
foreach $i (కీలు %LIB)
{
#ప్రింట్ “కీ : $i విలువ : $LIB{$i} \n” ;
ప్రింట్ OUT2 “$i : ./$i\n” ;
}
ప్రింట్ OUT1 “\n\n” ;
ప్రింట్ OUT1 “./simv -l run.log\n” ;
ప్రింట్ OUT2 “డిఫాల్ట్ : ./work\n” ;
INని మూసివేయండిFILE;
OUT1ని మూసివేయండి;
OUT2ని మూసివేయండి;
}
పునర్విమర్శ చరిత్ర (మైక్రోచిప్ లాగిన్
పునర్విమర్శ చరిత్ర పత్రంలో అమలు చేయబడిన మార్పులను వివరిస్తుంది. మార్పులు
అత్యంత ప్రస్తుత ప్రచురణతో ప్రారంభించి పునర్విమర్శ ద్వారా జాబితా చేయబడ్డాయి.
పునర్విమర్శ | తేదీ | వివరణ |
A | 12/2023 | ఈ పునర్విమర్శలో కింది మార్పులు చేయబడ్డాయి: • పత్రం మైక్రోచిప్ టెంప్లేట్గా మార్చబడింది. ప్రారంభ పునర్విమర్శ. • నవీకరించబడిన విభాగం 5. సిమ్యులేషన్ మరియు ఆప్టిమైజేషన్ సమయంలో దృశ్యమానతపై ప్రభావాన్ని వివరించే కొత్త గమనికను చేర్చడానికి Simens QuestaSim సెటప్/ModelSim సెటప్. |
మైక్రోచిప్ FPGA మద్దతు
మైక్రోచిప్ FPGA ఉత్పత్తుల సమూహం దాని ఉత్పత్తులకు కస్టమర్ సర్వీస్, కస్టమర్ టెక్నికల్ సపోర్ట్ సెంటర్, a webసైట్ మరియు ప్రపంచవ్యాప్త విక్రయ కార్యాలయాలు.
కస్టమర్లు సపోర్ట్ని సంప్రదించే ముందు మైక్రోచిప్ ఆన్లైన్ వనరులను సందర్శించాలని సూచించారు, ఎందుకంటే వారి ప్రశ్నలకు ఇప్పటికే సమాధానం లభించే అవకాశం ఉంది.
ద్వారా సాంకేతిక సహాయ కేంద్రాన్ని సంప్రదించండి webసైట్ వద్ద www.microchip.com/support. FPGA పరికరం పార్ట్ నంబర్ను పేర్కొనండి, తగిన కేస్ కేటగిరీని ఎంచుకుని, డిజైన్ని అప్లోడ్ చేయండి fileసాంకేతిక మద్దతు కేసును సృష్టిస్తున్నప్పుడు s.
ఉత్పత్తి ధర, ఉత్పత్తి అప్గ్రేడ్లు, అప్డేట్ సమాచారం, ఆర్డర్ స్థితి మరియు అధికారీకరణ వంటి సాంకేతికేతర ఉత్పత్తి మద్దతు కోసం కస్టమర్ సేవను సంప్రదించండి.
- ఉత్తర అమెరికా నుండి, 800.262.1060కి కాల్ చేయండి
- ప్రపంచంలోని ఇతర ప్రాంతాల నుండి, 650.318.4460కి కాల్ చేయండి
- ఫ్యాక్స్, ప్రపంచంలో ఎక్కడి నుండైనా, 650.318.8044
మైక్రోచిప్ సమాచారం
మైక్రోచిప్ Webసైట్
మైక్రోచిప్ మా ద్వారా ఆన్లైన్ మద్దతును అందిస్తుంది webసైట్ వద్ద www.microchip.com/. ఈ webసైట్ చేయడానికి ఉపయోగించబడుతుంది fileలు మరియు సమాచారం వినియోగదారులకు సులభంగా అందుబాటులో ఉంటుంది. అందుబాటులో ఉన్న కంటెంట్లో కొన్ని:
- ఉత్పత్తి మద్దతు - డేటా షీట్లు మరియు తప్పులు, అప్లికేషన్ నోట్స్ మరియు sample ప్రోగ్రామ్లు, డిజైన్ వనరులు, వినియోగదారు మార్గదర్శకాలు మరియు హార్డ్వేర్ మద్దతు పత్రాలు, తాజా సాఫ్ట్వేర్ విడుదలలు మరియు ఆర్కైవ్ చేసిన సాఫ్ట్వేర్
- సాధారణ సాంకేతిక మద్దతు – తరచుగా అడిగే ప్రశ్నలు (FAQలు), సాంకేతిక మద్దతు అభ్యర్థనలు, ఆన్లైన్ చర్చా సమూహాలు, మైక్రోచిప్ డిజైన్ భాగస్వామి ప్రోగ్రామ్ సభ్యుల జాబితా
- మైక్రోచిప్ వ్యాపారం – ఉత్పత్తి ఎంపిక మరియు ఆర్డరింగ్ గైడ్లు, తాజా మైక్రోచిప్ ప్రెస్ రిలీజ్లు, సెమినార్లు మరియు ఈవెంట్ల జాబితా, మైక్రోచిప్ సేల్స్ ఆఫీసులు, డిస్ట్రిబ్యూటర్లు మరియు ఫ్యాక్టరీ ప్రతినిధుల జాబితాలు
ఉత్పత్తి మార్పు నోటిఫికేషన్ సేవ
మైక్రోచిప్ యొక్క ఉత్పత్తి మార్పు నోటిఫికేషన్ సేవ వినియోగదారులను మైక్రోచిప్ ఉత్పత్తులపై ఎప్పటికప్పుడు ఉంచడంలో సహాయపడుతుంది. పేర్కొన్న ఉత్పత్తి కుటుంబానికి లేదా ఆసక్తి ఉన్న డెవలప్మెంట్ టూల్కు సంబంధించి మార్పులు, అప్డేట్లు, పునర్విమర్శలు లేదా తప్పులు ఉన్నప్పుడు సబ్స్క్రైబర్లు ఇమెయిల్ నోటిఫికేషన్ను స్వీకరిస్తారు.
నమోదు చేసుకోవడానికి, వెళ్ళండి www.microchip.com/pcn మరియు రిజిస్ట్రేషన్ సూచనలను అనుసరించండి.
కస్టమర్ మద్దతు
మైక్రోచిప్ ఉత్పత్తుల వినియోగదారులు అనేక ఛానెల్ల ద్వారా సహాయాన్ని పొందవచ్చు:
- పంపిణీదారు లేదా ప్రతినిధి
- స్థానిక విక్రయ కార్యాలయం
- ఎంబెడెడ్ సొల్యూషన్స్ ఇంజనీర్ (ESE)
- సాంకేతిక మద్దతు
మద్దతు కోసం కస్టమర్లు వారి పంపిణీదారుని, ప్రతినిధిని లేదా ESEని సంప్రదించాలి. వినియోగదారులకు సహాయం చేయడానికి స్థానిక విక్రయ కార్యాలయాలు కూడా అందుబాటులో ఉన్నాయి. విక్రయ కార్యాలయాలు మరియు స్థానాల జాబితా ఈ పత్రంలో చేర్చబడింది.
ద్వారా సాంకేతిక మద్దతు లభిస్తుంది webసైట్: www.microchip.com/support
మైక్రోచిప్ పరికరాల కోడ్ రక్షణ ఫీచర్
మైక్రోచిప్ ఉత్పత్తులపై కోడ్ రక్షణ ఫీచర్ యొక్క క్రింది వివరాలను గమనించండి:
- మైక్రోచిప్ ఉత్పత్తులు వాటి నిర్దిష్ట మైక్రోచిప్ డేటా షీట్లో ఉన్న స్పెసిఫికేషన్లకు అనుగుణంగా ఉంటాయి.
- మైక్రోచిప్ దాని ఉత్పత్తుల కుటుంబాన్ని ఉద్దేశించిన పద్ధతిలో, ఆపరేటింగ్ స్పెసిఫికేషన్లలో మరియు సాధారణ పరిస్థితులలో ఉపయోగించినప్పుడు సురక్షితంగా ఉంటుందని నమ్ముతుంది.
- మైక్రోచిప్ దాని మేధో సంపత్తి హక్కులకు విలువ ఇస్తుంది మరియు దూకుడుగా రక్షిస్తుంది. మైక్రోచిప్ ఉత్పత్తి యొక్క కోడ్ రక్షణ లక్షణాలను ఉల్లంఘించే ప్రయత్నాలు ఖచ్చితంగా నిషేధించబడ్డాయి మరియు డిజిటల్ మిలీనియం కాపీరైట్ చట్టాన్ని ఉల్లంఘించవచ్చు.
- మైక్రోచిప్ లేదా ఏ ఇతర సెమీకండక్టర్ తయారీదారు దాని కోడ్ యొక్క భద్రతకు హామీ ఇవ్వలేరు. కోడ్ రక్షణ అంటే ఉత్పత్తి "అన్బ్రేకబుల్" అని మేము హామీ ఇస్తున్నామని కాదు.
కోడ్ రక్షణ నిరంతరం అభివృద్ధి చెందుతోంది. మైక్రోచిప్ మా ఉత్పత్తుల యొక్క కోడ్ రక్షణ లక్షణాలను నిరంతరం మెరుగుపరచడానికి కట్టుబడి ఉంది.
లీగల్ నోటీసు
మీ అప్లికేషన్తో మైక్రోచిప్ ఉత్పత్తులను డిజైన్ చేయడం, పరీక్షించడం మరియు ఇంటిగ్రేట్ చేయడంతో సహా ఈ ప్రచురణ మరియు ఇక్కడ ఉన్న సమాచారం మైక్రోచిప్ ఉత్పత్తులతో మాత్రమే ఉపయోగించబడుతుంది. ఈ సమాచారాన్ని ఏదైనా ఇతర పద్ధతిలో ఉపయోగించడం ఈ నిబంధనలను ఉల్లంఘిస్తుంది. పరికర అనువర్తనాలకు సంబంధించిన సమాచారం మీ సౌలభ్యం కోసం మాత్రమే అందించబడింది మరియు నవీకరణల ద్వారా భర్తీ చేయబడవచ్చు. మీ అప్లికేషన్ మీ స్పెసిఫికేషన్లకు అనుగుణంగా ఉండేలా చూసుకోవడం మీ బాధ్యత. అదనపు మద్దతు కోసం మీ స్థానిక మైక్రోచిప్ విక్రయాల కార్యాలయాన్ని సంప్రదించండి లేదా అదనపు మద్దతును పొందండి www.microchip.com/en-us/support/design-help/client-support-services.
ఈ సమాచారం మైక్రోచిప్ ద్వారా అందించబడుతుంది. మైక్రోచిప్ ఏ విధమైన ప్రాతినిధ్యాలు లేదా వారెంటీలు చేయదు, వ్యక్తీకరించినా లేదా సూచించినా, వ్రాతపూర్వకంగా లేదా మౌఖికంగా, చట్టబద్ధంగా లేదా ఇతరత్రా, సూచించిన సమాచారానికి సంబంధించినది ప్రత్యేక ప్రయోజనం కోసం నాన్-ఉల్లంఘన, వాణిజ్యం మరియు ఫిట్నెస్ యొక్క వారెంటీలు లేదా దాని పరిస్థితి, నాణ్యత లేదా పనితీరుకు సంబంధించిన వారెంటీలు.
ఎట్టి పరిస్థితుల్లోనూ మైక్రోచిప్ ఏదైనా పరోక్ష, ప్రత్యేక, శిక్షాత్మక, యాదృచ్ఛిక లేదా పర్యవసానంగా వచ్చే నష్టం, నష్టం, ఖర్చు, లేదా ఏదైనా వినియోగానికి సంబంధించిన ఏదైనా వ్యయానికి బాధ్యత వహించదు ఏమైనప్పటికీ, మైక్రోచిప్కు సంభావ్యత గురించి సలహా ఇచ్చినప్పటికీ లేదా నష్టాలు ఊహించదగినవి. చట్టం ద్వారా అనుమతించబడిన పూర్తి స్థాయిలో, సమాచారం లేదా దాని ఉపయోగంతో సంబంధం ఉన్న ఏ విధంగానైనా అన్ని క్లెయిమ్లపై మైక్రోచిప్ యొక్క మొత్తం బాధ్యత, మీరు ఎంత మొత్తంలో ఫీడ్లకు మించకూడదు. సమాచారం కోసం నేరుగా మైక్రోచిప్కి.
లైఫ్ సపోర్ట్ మరియు/లేదా సేఫ్టీ అప్లికేషన్లలో మైక్రోచిప్ పరికరాలను ఉపయోగించడం పూర్తిగా కొనుగోలుదారు యొక్క రిస్క్పై ఆధారపడి ఉంటుంది మరియు అటువంటి ఉపయోగం వల్ల కలిగే ఏదైనా మరియు అన్ని నష్టాలు, దావాలు, దావాలు లేదా ఖర్చుల నుండి హానిచేయని మైక్రోచిప్ను రక్షించడానికి, నష్టపరిహారం ఇవ్వడానికి మరియు ఉంచడానికి కొనుగోలుదారు అంగీకరిస్తాడు. ఏదైనా మైక్రోచిప్ మేధో సంపత్తి హక్కుల క్రింద పేర్కొనబడినంత వరకు ఎటువంటి లైసెన్స్లు పరోక్షంగా లేదా ఇతరత్రా తెలియజేయబడవు.
ట్రేడ్మార్క్లు
మైక్రోచిప్ పేరు మరియు లోగో, మైక్రోచిప్ లోగో, అడాప్టెక్, AVR, AVR లోగో, AVR FREAKS, BESTIME, BITCLOUD, CRYPTOMEMORY, CRYPTORF, DSPIC, FLECTPWR, HOLDO, IGLOO MediaLB, megaAVR, మైక్రోసెమి, మైక్రోసెమి లోగో, అత్యంత, అత్యంత లోగో, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 లోగో, PolarFire, Prochip డిజైనర్, QTouch, SAM-BA, SenGenuity, SpyNIC, SpyNIC, SST, , SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron మరియు XMEGA USA మరియు ఇతర దేశాలలో ఇన్కార్పొరేటెడ్ మైక్రోచిప్ టెక్నాలజీ యొక్క రిజిస్టర్డ్ ట్రేడ్మార్క్లు.
AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, Quius-logo SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime మరియు ZL USAలో ఇన్కార్పొరేటెడ్ మైక్రోచిప్ టెక్నాలజీ యొక్క రిజిస్టర్డ్ ట్రేడ్మార్క్లు
ప్రక్కనే ఉన్న కీ సప్రెషన్, AKS, అనలాగ్-ఫర్-ది-డిజిటల్ ఏజ్, ఏదైనా కెపాసిటర్, AnyIn, AnyOut, ఆగ్మెంటెడ్ స్విచింగ్, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoCompanion, CryptoCompanion, CryptoCompanion. డైనమిక్ సగటు సరిపోలిక , DAM, ECAN, Espresso T1S, EtherGREEN, గ్రిడ్టైమ్, ఐడియల్బ్రిడ్జ్, ఇన్-సర్క్యూట్ సీరియల్ ప్రోగ్రామింగ్, ICSP, INICnet, ఇంటెలిజెంట్ ప్యారలలింగ్, IntelliMOS, ఇంటర్-చిప్ కనెక్టివిటీ, JitterBlocker, Knob-on-Disx, MaxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB సర్టిఫైడ్ లోగో, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net,
PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, రియల్ ICE, అలల బ్లాకర్, RTAX, RTG4, SAMICE, సీరియల్ క్వాడ్ I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, StorClad, SQI,
SuperSwitcher II, Switchtec, SynchroPHY, మొత్తం ఓర్పు, విశ్వసనీయ సమయం, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, Viewస్పాన్, వైపర్లాక్, ఎక్స్ప్రెస్కనెక్ట్ మరియు జెనా మైక్రోచిప్ టెక్నాలజీ ఇన్కార్పొరేటెడ్ యొక్క ట్రేడ్మార్క్లు
USA మరియు ఇతర దేశాలలో.
SQTP అనేది USAలో విలీనం చేయబడిన మైక్రోచిప్ టెక్నాలజీ యొక్క సేవా చిహ్నం
Adaptec లోగో, ఫ్రీక్వెన్సీ ఆన్ డిమాండ్, సిలికాన్ స్టోరేజ్ టెక్నాలజీ మరియు Symmcom ఇతర దేశాలలో మైక్రోచిప్ టెక్నాలజీ ఇంక్. యొక్క రిజిస్టర్డ్ ట్రేడ్మార్క్లు.
GestIC అనేది ఇతర దేశాలలో మైక్రోచిప్ టెక్నాలజీ ఇంక్. యొక్క అనుబంధ సంస్థ అయిన మైక్రోచిప్ టెక్నాలజీ జర్మనీ II GmbH & Co. KG యొక్క నమోదిత ట్రేడ్మార్క్.
ఇక్కడ పేర్కొన్న అన్ని ఇతర ట్రేడ్మార్క్లు వారి సంబంధిత కంపెనీల ఆస్తి.
© 2023, మైక్రోచిప్ టెక్నాలజీ ఇన్కార్పొరేటెడ్ మరియు దాని అనుబంధ సంస్థలు. సర్వ హక్కులు ప్రత్యేకించబడినవి.
ISBN: 978-1-6683-3694-6
నాణ్యత నిర్వహణ వ్యవస్థ
మైక్రోచిప్ యొక్క నాణ్యత నిర్వహణ వ్యవస్థలకు సంబంధించిన సమాచారం కోసం, దయచేసి సందర్శించండి www.microchip.com/qualitty.
అమెరికా | ASIA/PACIFIC | ASIA/PACIFIC | యూరోప్ |
కార్పొరేట్ కార్యాలయం 2355 వెస్ట్ చాండ్లర్ Blvd. చాండ్లర్, AZ 85224-6199 టెలి: 480-792-7200 ఫ్యాక్స్: 480-792-7277 సాంకేతిక మద్దతు: www.microchip.com/support Web చిరునామా: www.microchip.com అట్లాంటా డులుత్, GA టెలి: 678-957-9614 ఫ్యాక్స్: 678-957-1455 ఆస్టిన్, TX టెలి: 512-257-3370 బోస్టన్ వెస్ట్బరో, MA టెలి: 774-760-0087 ఫ్యాక్స్: 774-760-0088 చికాగో ఇటాస్కా, IL టెలి: 630-285-0071 ఫ్యాక్స్: 630-285-0075 డల్లాస్ అడిసన్, TX టెలి: 972-818-7423 ఫ్యాక్స్: 972-818-2924 డెట్రాయిట్ నోవి, MI టెలి: 248-848-4000 హ్యూస్టన్, TX టెలి: 281-894-5983 ఇండియానాపోలిస్ నోబుల్స్విల్లే, IN టెలి: 317-773-8323 ఫ్యాక్స్: 317-773-5453 టెలి: 317-536-2380 లాస్ ఏంజిల్స్ మిషన్ వీజో, CA టెలి: 949-462-9523 ఫ్యాక్స్: 949-462-9608 టెలి: 951-273-7800 రాలీ, NC టెలి: 919-844-7510 న్యూయార్క్, NY టెలి: 631-435-6000 శాన్ జోస్, CA టెలి: 408-735-9110 టెలి: 408-436-4270 కెనడా - టొరంటో టెలి: 905-695-1980 ఫ్యాక్స్: 905-695-2078 |
ఆస్ట్రేలియా - సిడ్నీ టెలి: 61-2-9868-6733 చైనా - బీజింగ్ టెలి: 86-10-8569-7000 చైనా - చెంగ్డు టెలి: 86-28-8665-5511 చైనా - చాంగ్కింగ్ టెలి: 86-23-8980-9588 చైనా - డాంగువాన్ టెలి: 86-769-8702-9880 చైనా - గ్వాంగ్జౌ టెలి: 86-20-8755-8029 చైనా - హాంగ్జౌ టెలి: 86-571-8792-8115 చైనా - హాంకాంగ్ SAR టెలి: 852-2943-5100 చైనా - నాన్జింగ్ టెలి: 86-25-8473-2460 చైనా - కింగ్డావో టెలి: 86-532-8502-7355 చైనా - షాంఘై టెలి: 86-21-3326-8000 చైనా - షెన్యాంగ్ టెలి: 86-24-2334-2829 చైనా - షెన్జెన్ టెలి: 86-755-8864-2200 చైనా - సుజౌ టెలి: 86-186-6233-1526 చైనా - వుహాన్ టెలి: 86-27-5980-5300 చైనా - జియాన్ టెలి: 86-29-8833-7252 చైనా - జియామెన్ టెలి: 86-592-2388138 చైనా - జుహై టెలి: 86-756-3210040 |
భారతదేశం - బెంగళూరు టెలి: 91-80-3090-4444 భారతదేశం - న్యూఢిల్లీ టెలి: 91-11-4160-8631 భారతదేశం - పూణే టెలి: 91-20-4121-0141 జపాన్ - ఒసాకా టెలి: 81-6-6152-7160 జపాన్ - టోక్యో టెలి: 81-3-6880- 3770 కొరియా - డేగు టెలి: 82-53-744-4301 కొరియా - సియోల్ టెలి: 82-2-554-7200 మలేషియా - కౌలాలంపూర్ టెలి: 60-3-7651-7906 మలేషియా - పెనాంగ్ టెలి: 60-4-227-8870 ఫిలిప్పీన్స్ - మనీలా టెలి: 63-2-634-9065 సింగపూర్ టెలి: 65-6334-8870 తైవాన్ - హ్సిన్ చు టెలి: 886-3-577-8366 తైవాన్ - Kaohsiung టెలి: 886-7-213-7830 తైవాన్ - తైపీ టెలి: 886-2-2508-8600 థాయిలాండ్ - బ్యాంకాక్ టెలి: 66-2-694-1351 వియత్నాం - హో చి మిన్ టెలి: 84-28-5448-2100 |
ఆస్ట్రియా - వెల్స్ టెలి: 43-7242-2244-39 ఫ్యాక్స్: 43-7242-2244-393 డెన్మార్క్ - కోపెన్హాగన్ టెలి: 45-4485-5910 ఫ్యాక్స్: 45-4485-2829 ఫిన్లాండ్ - ఎస్పూ టెలి: 358-9-4520-820 ఫ్రాన్స్ - పారిస్ Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 జర్మనీ - గార్చింగ్ టెలి: 49-8931-9700 జర్మనీ - హాన్ టెలి: 49-2129-3766400 జర్మనీ - హీల్బ్రోన్ టెలి: 49-7131-72400 జర్మనీ - కార్ల్స్రూ టెలి: 49-721-625370 జర్మనీ - మ్యూనిచ్ Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 జర్మనీ - రోసెన్హీమ్ టెలి: 49-8031-354-560 ఇజ్రాయెల్ - రానానా టెలి: 972-9-744-7705 ఇటలీ - మిలన్ టెలి: 39-0331-742611 ఫ్యాక్స్: 39-0331-466781 ఇటలీ - పడోవా టెలి: 39-049-7625286 నెదర్లాండ్స్ - డ్రునెన్ టెలి: 31-416-690399 ఫ్యాక్స్: 31-416-690340 నార్వే - ట్రోండ్హీమ్ టెలి: 47-72884388 పోలాండ్ - వార్సా టెలి: 48-22-3325737 రొమేనియా - బుకారెస్ట్ Tel: 40-21-407-87-50 స్పెయిన్ - మాడ్రిడ్ Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 స్వీడన్ - గోథెన్బర్గ్ Tel: 46-31-704-60-40 స్వీడన్ - స్టాక్హోమ్ టెలి: 46-8-5090-4654 UK - వోకింగ్హామ్ టెలి: 44-118-921-5800 ఫ్యాక్స్: 44-118-921-5820 |
© 2023 మైక్రోచిప్ టెక్నాలజీ ఇంక్. మరియు దాని అనుబంధ సంస్థలు
DS50003627A –
పత్రాలు / వనరులు
![]() |
మైక్రోచిప్ లిబెరో SoC సిమ్యులేషన్ లైబ్రరీ సాఫ్ట్వేర్ [pdf] యూజర్ గైడ్ DS50003627A, లిబెరో SoC సిమ్యులేషన్ లైబ్రరీ సాఫ్ట్వేర్, SoC సిమ్యులేషన్ లైబ్రరీ సాఫ్ట్వేర్, సిమ్యులేషన్ లైబ్రరీ సాఫ్ట్వేర్, లైబ్రరీ సాఫ్ట్వేర్, సాఫ్ట్వేర్ |