Simulazione SoC Libero
Istruzioni per la configurazione della libreria
Introduzione
Lo scopo di questo documento è descrivere la procedura per impostare l'ambiente di simulazione utilizzando come input un progetto Libero SoC. La presente documentazione corrisponde alle librerie precompilate fornite per l'uso con Libero SoC v11.9 e versioni software più recenti. Le librerie fornite sono compilate per Verilog. Gli utenti VHDL richiedono una licenza che consenta la simulazione in modalità mista.
Le librerie di simulazione compilate sono disponibili per i seguenti strumenti:
- Aldec Attivo-HDL
- Aldec Riviera-PRO
- Cadence Incisive Enterprise e Xcelium
- Siemens Questa Sim
- Sinossi VCS
Per richiedere una libreria per un simulatore diverso, contattare Supporto tecnico Microchip.
Integrazione SoC Libero
Libero SoC supporta la simulazione utilizzando ModelSim ME generando un run.do file. Questo file viene utilizzato da ModelSim ME/ModelSim Pro ME per impostare ed eseguire la simulazione. Per utilizzare altri strumenti di simulazione, è possibile generare il file ModelSim ME/ModelSim Pro ME run.do e modificare lo script Tcl file per utilizzare i comandi compatibili con il tuo simulatore.
1.1 Libero SoC Tcl File Generazione (Fai una domanda)
Dopo aver creato e generato il progetto in Libero SoC, avvia una simulazione ModelSim ME/ModelSim Pro ME in tutte le fasi di progettazione (presynth, postsynth e post-layout). Questo passaggio genera il file run.do file per ModelSim ME/ModelSim Pro ME per ogni fase di progettazione.
Importante: Dopo aver avviato ogni esecuzione della simulazione, rinominare il file run.do generato automaticamente file nella directory della simulazione per evitare che Libero SoC la sovrascriva filePer esempioample, il files possono essere rinominati in presinth_run.do, postsynth_run.do e postlayout_run.do.
Configurazione Aldec per Active-HDL e Riviera-Pro (Fai una domanda)
Il run.do file utilizzato da ModelSim ME/ModelSim Pro ME può essere modificato e utilizzato per la simulazione utilizzando i simulatori Aldec.
2.1 Variabile d'ambiente (Fai una domanda)
Imposta la variabile di ambiente sulla tua licenza file posizione:
LM_LICENZA_FILE: deve includere un puntatore al server delle licenze.
2.2 Scarica la libreria compilata (Fai una domanda)
Scarica le librerie per Aldec Active-HDL e Aldec Riviera-PRO dal Microchip websito.
2.3 Conversione di run.do per la simulazione Aldec (Fai una domanda)
Il run.do fileGli s generati da Libero SoC per le simulazioni con lo strumento Active-HDL e Riviera-Pro possono essere utilizzati per le simulazioni con Active-HDL e Riviera-Pro con una sola modifica. La tabella seguente elenca i comandi equivalenti ad Aldec da modificare in ModelSim run.do file.
Tabella 2-1. Comandi equivalenti Aldec
ModelloSim | HDL attivo |
vlog | un registro |
vcom | acom |
vlib | alib |
vsim | così |
mappa virtuale | una mappa |
Segue una sample run.do relativo ai simulatori Aldec.
- Imposta la posizione della directory di lavoro corrente.
imposta dsn - Imposta un nome di libreria funzionante, mappa la sua posizione, quindi mappa la posizione della famiglia FPGA Microchip
librerie precompilate (esample, SmartFusion2) su cui stai eseguendo il tuo progetto.
alib presidente
amap presinth presinth
amap SmartFusion2 - Compila tutto l'HDL necessario fileViene utilizzato nella progettazione con la libreria richiesta.
alog –work presinth temp.v (per Verilog)
alog –work presinth testbench.v
acom –work presinth temp.vhd (per Vhdl)
acom –work presinth testbench.vhd - Simulare il disegno.
asim –L SmartFusion2 –L presinth –t 1ps presinth.testbench
eseguire 10us
2.4 Problemi noti (Fai una domanda)
Questa sezione elenca i problemi noti e le limitazioni.
- Le librerie compilate utilizzando Riviera-PRO sono specifiche della piattaforma (ovvero le librerie a 64 bit non possono essere eseguite su piattaforma a 32 bit e viceversa).
- Per progetti contenenti SERDES/MDDR/FDDR, utilizza la seguente opzione nel tuo run.do files durante l'esecuzione delle simulazioni dopo aver compilato i progetti:
– HDL attivo: asim –o2
– Riviera-PRO: asim –O2 (per simulazioni presinth e post-layout) e asim –O5 (per simulazioni post-layout)
La configurazione Aldec per Active-HDL e Riviera-Pro ha le seguenti SAR in sospeso. Per ulteriori informazioni, contattare Supporto tecnico Microchip. - SAR 49908 – Active-HDL: errore VHDL per simulazioni di blocchi matematici
- SAR 50627 – Riviera-PRO 2013.02: Errori di simulazione per i progetti SERDES
- SAR 50461 – Riviera-PRO: opzione asim -O2/-O5 nelle simulazioni
Impostazione cadenza incisiva (Fai una domanda)
È necessario creare uno script file simile a ModelSim ME/ModelSim Pro ME run.do per eseguire il
Simulatore di cadenza incisiva. Segui questi passaggi e crea lo script file per NCSim o utilizzare lo script file
fornito per convertire ModelSim ME/ModelSim Pro ME run.do files nella configurazione files
necessario per eseguire le simulazioni utilizzando NCSim.
Importante: cadenza ha smesso di rilasciare nuove versioni di Incisive Enterprise
simulatore e ha iniziato a supportare il simulatore Xcelium.
3.1 Variabili d'ambiente (Fai una domanda)
Per eseguire il simulatore Cadence Incisive, configurare le seguenti variabili di ambiente:
- LM_LICENZA_FILE: deve includere un puntatore alla licenza file.
- cds_root: deve puntare alla posizione della directory home dell'installazione Cadence Incisive.
- PERCORSO: deve puntare alla posizione del contenitore nella directory degli strumenti indicata da cds_root, ovvero
$cds_root/tools/bin/64bit (per una macchina a 64 bit e $cds_root/tools/bin per una macchina a 32 bit).
Esistono tre modi per impostare l'ambiente di simulazione in caso di passaggio tra sistemi operativi a 64 bit e 32 bit:
Caso 1: variabile PATH
Eseguire il seguente comando:
set path = (install_dir/tools/bin/64bit $path) per macchine a 64 bit e
set path = (install_dir/tools/bin $path) per macchine a 32 bit
Caso 2: utilizzo dell'opzione della riga di comando -64 bit
Nella riga di comando specificare l'opzione -64bit per richiamare l'eseguibile a 64 bit.
Caso 3: impostazione della variabile di ambiente INCA_64BIT o CDS_AUTO_64BIT
La variabile INCA_64BIT viene trattata come booleana. È possibile impostare questa variabile su qualsiasi valore o su una stringa nulla.
setenvINCA_64BIT
Importante: Il La variabile di ambiente INCA_64BIT non influisce su altri strumenti Cadence, come gli strumenti IC. Tuttavia, per gli strumenti Incisivi, la variabile INCA_64BIT sovrascrive l'impostazione della variabile di ambiente CDS_AUTO_64BIT. Se è impostata la variabile d'ambiente INCA_64BIT, tutti gli strumenti Incisive vengono eseguiti in modalità a 64 bit. setenv CDS_AUTO_64BIT INCLUDE:INCA
Importante: Il la stringa INCA deve essere in maiuscolo. Tutti gli eseguibili devono essere eseguiti in modalità a 32 bit o in modalità a 64 bit, non impostare la variabile per includere un eseguibile, come nel seguente:
setenv CDS_AUTO_64BIT INCLUDE:ncelab
Anche altri strumenti Cadence, come gli strumenti IC, utilizzano la variabile di ambiente CDS_AUTO_64BIT per controllare la selezione di eseguibili a 32 o 64 bit. La tabella seguente mostra come impostare la variabile CDS_AUTO_64BIT per eseguire gli strumenti Incisive e gli strumenti IC in tutte le modalità.
Tabella 3-1. Variabili CDS_AUTO_64BIT
CDS_AUTO_64BIT Variabile | Strumenti incisivi | Strumenti IC |
setenv CDS_AUTO_64BIT TUTTI | 64 bit | 64 bit |
setenv CDS_AUTO_64BIT NESSUNO | 32 bit | 32 bit |
setenv CDS_AUTO_64BIT ESCLUDI:ic_binario | 64 bit | 32 bit |
setenv CDS_AUTO_64BIT ESCLUDI:INCA | 32 bit | 64 bit |
Importante: Tutti gli strumenti Incisive devono essere eseguiti in modalità a 32 bit o a 64 bit, non utilizzare EXCLUDE per escludere un eseguibile specifico, come nel seguente: setenv CDS_AUTO_64BIT EXCLUDE:ncelab
Se si imposta la variabile CDS_AUTO_64BIT per escludere gli strumenti Incisivi (setenv CDS_AUTO_64BIT EXCLUDE:INCA), tutti gli strumenti Incisivi verranno eseguiti in modalità a 32 bit. Tuttavia, l'opzione della riga di comando a 64 bit sovrascrive la variabile di ambiente.
La seguente configurazione fileTi aiutano a gestire i tuoi dati e a controllare il funzionamento degli strumenti e delle utilità di simulazione:
- Mappatura delle biblioteche file (cds.lib): definisce un nome logico per la posizione del progetto.
- Librerie e le associa a nomi di directory fisiche.
- Variabili file (hdl.var): definisce le variabili che influenzano il comportamento degli strumenti e delle utilità di simulazione.
3.2 Scarica la libreria compilata (Fai una domanda)
Scarica le librerie per Cadence Incisive da Microsemi websito.
3.3 Creazione dello script NCSim File (Fai una domanda)
Dopo aver creato una copia del file run.do fileQuindi, esegui questi passaggi per eseguire la simulazione utilizzando NCSim:
- Crea un file cds.lib file che definisce le biblioteche accessibili e la loro ubicazione. IL file contiene istruzioni che associano i nomi logici della libreria ai percorsi delle directory fisiche. Per esample, se stai eseguendo la simulazione di presinth, il file cds.lib file è scritto come mostrato nel seguente blocco di codice.
DEFINIRE presinth ./presynth
DEFINIRE COREAHBLITE_LIB ./COREAHBLITE_LIB
DEFINIRE smartfusion2 - Crea un hdl.var file, una configurazione opzionale file che contiene variabili di configurazione, che determina come è configurato l'ambiente di progettazione. La seguente variabile filesono inclusi:
– Variabili utilizzate per specificare la libreria di lavoro in cui il compilatore memorizza gli oggetti compilati e altri dati derivati.
– Per Verilog, variabili (LIB_MAP, VIEW_MAP, WORK) che vengono utilizzati per specificare le librerie e views da cercare quando l'elaboratore risolve le istanze.
– Variabili che consentono di definire opzioni e argomenti della riga di comando del compilatore, dell'elaboratore e del simulatore.
In caso di simulazione del sintetizzatore esample mostrato sopra, supponiamo di avere tre RTL files: a.v, b.v e testbench.v, che devono essere compilati rispettivamente nelle librerie presinth, COREAHBLITE_LIB e presinth. Il file hdl.var file può essere scritto come mostrato nel seguente blocco di codice.
DEFINE WORK presidente
DEFINISCI PROGETTO_DIR files>
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/a.v => presinth )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/bv => COREAHBLITE_LIB )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/testbench.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, + => presinth ) - Compila il disegno files usando l'opzione ncvlog.
ncvlog +incdir+ –cdslib ./cds.lib –hdlvar ./hdl.var –logfile
ncvlog.log –update –linedebug av bv testbench.v - Elaborare il progetto utilizzando ncelab. L'elaboratore costruisce una gerarchia di progettazione basata sulle informazioni di istanziazione e configurazione nel progetto, stabilisce la connettività del segnale e calcola i valori iniziali per tutti gli oggetti nel progetto. La gerarchia di progettazione elaborata viene archiviata in un'istantanea della simulazione, che è la rappresentazione del progetto utilizzata dal simulatore per eseguire la simulazione.
ncelab –Messaggio –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –erroremax 15 –
access +rwc –status worklib.:module
Elaborazione Durante la simulazione Post-layout
In caso di simulazioni post-layout, prima l'SDF file deve essere compilato prima dell'elaborazione utilizzando il comando ncsdfc.
ncsdfcfilenome>.sdf –outputfilenome>.sdf.X
Durante l'elaborazione utilizzare l'output SDF compilato con l'opzione –autosdf come mostrato nel seguente blocco di codice.
ncelab -autosdf –Messaggio –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –erroremax
15 –access +rwc –status worklib.:module –sdf_cmd_file ./
comando_sdf_file
Il sdf_cmd_file deve essere come mostrato nel seguente blocco di codice.
COMPILATO_SDF_FILE = “<posizione dell'SDF compilato file>” - Simulare utilizzando ncsim. Dopo l'elaborazione viene creata un'istantanea della simulazione, che viene caricata da ncsim per la simulazione. È possibile eseguire in modalità batch o in modalità GUI.
ncsim –Messaggio –batch/-gui –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncsim.log –
errormax 15 –status worklib.:module
Importante: Tutti i tre passaggi precedenti di compilazione, elaborazione e simulazione possono essere inseriti in uno script di shell file e proveniente dalla riga di comando. Invece di utilizzare questi tre passaggi, la progettazione può essere simulata in un unico passaggio utilizzando l'opzione ncverilog o irun, come mostrato nel seguente blocco di codice.
ncverilog +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var <all RTL
files utilizzato nel design>
irun +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var <all RTL files
utilizzato nella progettazione>
3.3.1 Problemi noti (Fai una domanda)
Soluzione alternativa al banco di prova
L'utilizzo della seguente istruzione per specificare la frequenza di clock nel testbench generato dall'utente o il testbench predefinito generato da Libero SoC non funziona con NCSim.
sempre @(SYSCLK)
#(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;
Modificare come segue per eseguire la simulazione:
sempre #(SYSCLK_PERIOD / 2.0) SYSCLK = ~SYSCLK;
Importante: compilato le librerie per NCSim sono specifiche della piattaforma (ovvero le librerie a 64 bit non sono compatibili con la piattaforma a 32 bit e viceversa).
Simulazioni post-synth e post-layout utilizzando MSS e SERDES Durante l'esecuzione di simulazioni post-synth di progetti contenenti il blocco MSS o le simulazioni post-layout di progetti utilizzando SERDES, le simulazioni BFM non funzionano se l'opzione –libmap è
non specificato in fase di elaborazione. Questo perché durante l'elaborazione, MSS viene risolto dalla libreria di lavoro (a causa del collegamento predefinito e della libreria di lavoro postsynth/post-layout) dove è solo una funzione fissa.
Il comando ncelab deve essere scritto come mostrato nel seguente blocco di codice per risolvere l'MSS
blocco dalla libreria precompilata SmartFusion2.
ncelab -libmap lib.map -libverbose -Messaggio -access +rwc cfg1
e il file lib.map file deve essere il seguente:
configurazione cfg1;
progettazione ;
liblist predefinito smartfusion2 ;
fineconfigurazione
Questo risolve qualsiasi cella nella libreria SmartFusion2 prima di cercare nella libreria di lavoro, ad esempio postsynth/post-layout.
L'opzione –libmap può essere utilizzata di default durante l'elaborazione per ogni simulazione (presynth, postsynth e post-layout). Ciò evita problemi di simulazione causati dalla risoluzione delle istanze dalle librerie.
ncelab: *F,INTERR: ECCEZIONE INTERNA
Questa eccezione dello strumento ncelab è un avvertimento per i progetti contenenti FDDR in SmartFusion 2 e IGLOO 2 durante le simulazioni postsynth e post-layout utilizzando l'opzione –libmap.
Importante: Questo problema è stato segnalato al team di supporto Cadence (SAR 52113).
3.4 anniample Tcl e Shell Script FileS (Fai una domanda)
Il seguente files sono la configurazione fileÈ necessario per impostare il design e lo script di shell file per eseguire i comandi NCSim.
Cds.lib
NE smartfusion2 /scratch/krydor/tmpspace/users/me/nc-vlog64/SmartFusion2
DEFINIRE COREAHBLITE_LIB ./COREAHBLITE_LIB
DEFINIRE presinth ./presynth
Hdl.var
DEFINE WORK presidente
DEFINE PROJECT_DIR /scratch/krydor/tmpspace/sqaurs/me/3rd_party_simulators/Cadence/IGLOO2/
ENVM/M2GL050/envm_fic1_ser1_v/eNVM_fab_master
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_addrdec.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_defaultslavesm.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_masterstagev => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavearbiter.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavestagev => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_matrix2x16.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/CCC_0/SB_CCC_0_FCCC.v =>
presidente)
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/componente/Actel/DirectCore/CoreConfigMaster/
2.0.101/rtl/vlog/core/coreconfigmaster.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/
vlog/core/coreconfigp.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp_pcie_hotreset.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp.v => presinth )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v =>
presidente)
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_HPMS/SB_HPMS.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/SB.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v => presidente )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SB_top.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/testbench.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, + => presinth )
Comandi.csh
ncvlog +incdir+../../componente/lavoro/SB_top -cdslib ./cds.lib -hdlvar ./hdl.var -logfile
ncvlog.log -errormax 15 -aggiornamento -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_masterstagetà
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavearbiter.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavestagetà
../../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 -Messaggio -cdslib ./cds.lib -hdlvar ./hdl.var
-lavoro presinth -logfile ncelab.log -errormax 15 -access +rwc -status presinth.testbench:module
ncsim -Messaggio -batch -cdslib ./cds.lib -hdlvar ./
hdl.var -logfile ncsim.log -errormax 15 -status presinth.testbench:module
3.5 Automazione (Fai una domanda)
Il seguente script file converte il ModelSim run.do fileè in configurazione fileÈ necessario per eseguire simulazioni utilizzando NCSim.
Sceneggiatura File Utilizzo
perl cadence_parser.pl presinth_run.do postsynth_run.do
postlayout_run.do Famiglia Microsemi
Posizione_delle_librerie_precompilate_di_Cadence
Cadence_parser.pl
#!/usr/bin/perl -w
################################################## ############################################
##################
#Utilizzo: perl questa_parser.pl presinth_run.do postsynth_run.do postlayout_run.do
Microsemi_Family Librerie_precompilate_posizione#
################################################## ############################################
##################
utilizzare POSIX;
usare rigorosamente;
mio ($presynth, $postsynth, $postlayout, $famiglia, $lib_location) = @ARGV;
&questa_parser($presynth, $famiglia, $lib_location);
&questa_parser($postsynth, $famiglia, $lib_location);
&questa_parser($postlayout, $family, $lib_location);
sotto questo_parser {
il mio $ModelSim_run_do = $_[0];
la mia $famiglia_actel = $_[1];
la mia $lib_location = $_[2];
il mio $stato;
se ( -e “$ModelSim_run_do” )
{
aperto (INFILE,”$ModelSim_run_do”);
il mio @ModelSim_run_do =FILE>;
la mia $linea;
se ( $ModelSim_run_do =~ m/(presynth)/)
{
`mkdir QUESTA_PRESINTESI`;
aperto (FUORIFILE,”>QUESTA_PRESYNTH/presynth_questa.do”);
$stato = $1;
} elsif ( $ModelSim_run_do =~ m/(postsynth)/)
{
`mkdir QUESTA_POSTSYNTH`;
aperto (FUORIFILE,”>QUESTA_POSTSYNTH/postsynth_questa.do”);
$stato = $1;
} elsif ( $ModelSim_run_do =~ m/(postlayout)/ )
{
`mkdir QUESTA_POSTLAYOUT`;
aperto (FUORIFILE,”>QUESTA_POSTLAYOUT/postlayout_questa.do”);
$stato = $1;
} Else
{
print “Input errati forniti al file\N";
print “#Utilizzo: perl questa_parser.pl presinth_run.do postsynth_run.do postlayout_run.do
\"Posizione_biblioteche\"\n";
}
per ogni $line (@ModelSim_run_do)
{
#Operazioni generali
$linea =~ s/..\/designer.*simulazione\///g;
$riga =~ s/$stato/$stato\_questa/g;
#stampareFILE “$riga\n”;
if ($linea =~ m/vmap\s+.*($actel_family)/)
{
stampareFILE “vmap $actel_family \”$lib_location\”\n”;
} elsif ($riga =~ m/vmap\s+(.*._LIB)/)
{
$riga =~ s/..\/componente/..\/..\/componente/g;
stampareFILE “$riga\n”;
} elsif ($linea =~ m/vsim/)
{
$linea =~ s/vsim/vsim -novopt/g;
stampareFILE “$riga\n”;
} Else
{
stampareFILE “$riga\n”;
}
}
chiudere(INFILE);
chiudi(FUORIFILE);
} altro {
print “$ModelSim_run_do non esiste. Rieseguire la simulazione\n”;
}
}
Impostazione cadenza Xcelium (Accesso tramite microchip)
È necessario creare uno script file simile a ModelSim ME/ModelSim Pro ME run.do per eseguire il simulatore Cadence Xcelium. Segui questi passaggi e crea lo script file per Xcelium o utilizzare lo script file fornito per convertire ModelSim ME/ModelSim Pro ME run.do files nella configurazione fileÈ necessario per eseguire simulazioni utilizzando Xcelium.
4.1 Variabili d'ambiente (Fai una domanda)
Per eseguire Cadence Xcelium, configurare le seguenti variabili di ambiente:
- LM_LICENZA_FILE: deve includere un puntatore alla licenza file.
- cds_root: deve puntare alla posizione della directory home di Cadence Incisive Installation.
- PERCORSO: deve puntare alla posizione del contenitore nella directory degli strumenti indicata da cds_root (ovvero
$cds_root/tools/bin/64bit (per una macchina a 64 bit e $cds_root/tools/bin per una macchina a 32 bit
macchina).
Esistono tre modi per impostare l'ambiente di simulazione in caso di passaggio tra sistemi operativi a 64 bit e 32 bit:
Caso 1: variabile PATH
set path = (install_dir/tools/bin/64bit $path) per macchine a 64 bit e
set path = (install_dir/tools/bin $path) per macchine a 32 bit
Caso 2: utilizzo dell'opzione della riga di comando -64 bit
Nella riga di comando specificare l'opzione -64bit per richiamare l'eseguibile a 64 bit.
Caso 3: impostazione della variabile di ambiente INCA_64BIT o CDS_AUTO_64BIT
La variabile INCA_64BIT viene trattata come booleana. È possibile impostare questa variabile su qualsiasi valore o su un valore nullo
corda.
setenvINCA_64BIT
Importante: Il La variabile di ambiente INCA_64BIT non influisce su altri strumenti Cadence, come gli strumenti IC. Tuttavia, per gli strumenti Incisivi, la variabile INCA_64BIT sovrascrive l'impostazione della variabile di ambiente CDS_AUTO_64BIT. Se la variabile di ambiente INCA_64BIT è et, tutti gli strumenti Incisive vengono eseguiti in modalità a 64 bit.
setenv CDS_AUTO_64BIT INCLUDE:INCA
Importante: Il la stringa INCA deve essere in maiuscolo. Tutti gli eseguibili devono essere eseguiti in modalità a 2 bit o in modalità a 64 bit, non impostare la variabile per includere un eseguibile, come nel seguente:
setenv CDS_AUTO_64BIT INCLUDE:ncelab
Anche altri strumenti Cadence, come gli strumenti IC, utilizzano la variabile di ambiente CDS_AUTO_64BIT per controllare la selezione di eseguibili a 32 o 64 bit. La tabella seguente mostra come impostare la variabile CDS_AUTO_64BIT per eseguire gli strumenti Incisive e gli strumenti IC in tutte le modalità.
Tabella 4-1. Variabili CDS_AUTO_64BIT
CDS_AUTO_64BIT Variabile | Strumenti incisivi | Strumenti IC |
setenv CDS_AUTO_64BIT TUTTI | 64 bit | 64 bit |
setenv CDS_AUTO_64BIT NESSUNO | 32 bit | 32 bit |
imposta CDS_AUTO_64BIT ESCLUDI:ic_binary |
64 bit | 32 bit |
setenv CDS_AUTO_64BIT ESCLUDI:INCA | 32 bit | 64 bit |
Importante: Tutti gli strumenti Incisive devono essere eseguiti in modalità a 32 bit o in modalità a 64 bit, non utilizzare EXCLUDE per escludere un eseguibile specifico, come nel seguente:
setenv CDS_AUTO_64BIT ESCLUDI:ncelab
Se si imposta la variabile CDS_AUTO_64BIT per escludere gli strumenti Incisivi (setenv
CDS_AUTO_64BIT EXCLUDE:INCA), tutti gli strumenti Incisive vengono eseguiti in modalità a 32 bit. comunque, il
L'opzione della riga di comando a 64 bit sovrascrive la variabile di ambiente.
La seguente configurazione fileTi aiutano a gestire i tuoi dati e a controllare il funzionamento degli strumenti e delle utilità di simulazione:
- Mappatura delle biblioteche file (cds.lib) definisce un nome logico per la posizione del progetto.
- Librerie e le associa a nomi di directory fisiche.
- Variabili file (hdl.var) definisce le variabili che influenzano il comportamento degli strumenti e delle utilità di simulazione.
4.2 Scarica la libreria compilata (Fai una domanda)
Scarica le librerie per Cadence Xcelium da Microsemi websito.
4.3 Creazione dello script Xcelium file (Fai una domanda)
Dopo aver creato una copia del file run.do files, esegui i seguenti passaggi per eseguire la simulazione utilizzando lo script Xcelium file.
- Crea un file cds.lib file che definisce quali biblioteche sono accessibili e dove si trovano.
IL file contiene istruzioni che associano i nomi logici della libreria ai percorsi delle directory fisiche. Per esample, se stai eseguendo la simulazione di presinth, il file cds.lib file può essere scritto come mostrato nel seguente blocco di codice.
DEFINIRE presinth ./presynth
DEFINIRE COREAHBLITE_LIB ./COREAHBLITE_LIB
DEFINIRE smartfusion2 - Crea un hdl.var file che è una configurazione opzionale file che contiene variabili di configurazione, che determina come è configurato l'ambiente di progettazione. Questi includono:
– Variabili utilizzate per specificare la libreria di lavoro in cui il compilatore memorizza gli oggetti compilati e altri dati derivati.
– Per Verilog, variabili (LIB_MAP, VIEW_MAP, WORK) che vengono utilizzati per specificare le librerie e views da cercare quando l'elaboratore risolve le istanze.
– Variabili che consentono di definire opzioni e argomenti della riga di comando del compilatore, dell'elaboratore e del simulatore.
In caso di simulazione del sintetizzatore esample mostrato sopra, supponiamo di avere 3 RTL files a.v, b.v e testbench.v, che devono essere compilati rispettivamente nelle librerie presinth, COREAHBLITE_LIB e presinth. Il file hdl.var file può essere scritto come mostrato nel seguente blocco di codice.
DEFINE WORK presidente
DEFINISCI PROGETTO_DIR files>
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/a.v => presinth )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/bv => COREAHBLITE_LIB )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/testbench.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, + => presinth ) - Compila il disegno files usando l'opzione ncvlog.
xmvlog +incdir+ –cdslib ./cds.lib –hdlvar ./hdl.var –logfile
ncvlog.log –update –linedebug av bv testbench.v - Elaborare il progetto utilizzando ncelab. L'elaboratore costruisce una gerarchia di progettazione basata sulle informazioni di istanziazione e configurazione nel progetto, stabilisce la connettività del segnale e calcola i valori iniziali per tutti gli oggetti nel progetto. La gerarchia di progettazione elaborata viene archiviata in un'istantanea della simulazione, che è la rappresentazione del progetto utilizzata dal simulatore per eseguire la simulazione.
Xcelium –Messaggio –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –erroremax 15 –
access +rwc –status worklib.:module
Elaborazione Durante la simulazione Post-layout
In caso di simulazioni post-layout, prima l'SDF file deve essere compilato prima dell'elaborazione utilizzando il comando ncsdfc.
Xcelio <filenome>.sdf –outputfilenome>.sdf.X
Durante l'elaborazione utilizzare l'output SDF compilato con l'opzione –autosdf come mostrato nel seguente blocco di codice.
xmelab -autosdf –Messaggio –cdslib ./cds.lib –hdlvar ./hdl.var –logfile ncelab.log –erroremax
15 –access +rwc –status worklib.:module –sdf_cmd_file ./
comando_sdf_file
Il sdf_cmd_file deve essere come mostrato nel seguente blocco di codice.
COMPILATO_SDF_FILE = “<posizione dell'SDF compilato file>” - Simulare utilizzando Xcelium. Dopo l'elaborazione viene creata un'istantanea della simulazione che viene caricata da Xcelium per la simulazione. Questo può essere eseguito in modalità batch o in modalità GUI.
xmsim –Messaggio –batch/-gui –cdslib ./cds.lib –hdlvar ./hdl.var –logfile xmsim.log –
errormax 15 –status worklib.:module
Configurazione di Cadence Xcelium
Importante: tutti i tre passaggi precedenti di compilazione, elaborazione e simulazione possono essere inseriti in uno script di shell file e proveniente dalla riga di comando. Invece di utilizzare questi tre passaggi, la progettazione può essere simulata in un passaggio utilizzando l'opzione ncverilog o xrun come mostrato nel seguente blocco di codice.
xmverilog +incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var <all RTL
files utilizzato nel design>
xrun+incdir+ -cdslib ./cds.lib –hdlvar ./hdl.var files
utilizzato nella progettazione>
4.3.1 Problemi noti (Fai una domanda)
Soluzione alternativa al banco di prova
L'utilizzo della seguente istruzione per specificare la frequenza di clock nel testbench generato dall'utente o nel testbench predefinito generato da Libero SoC non funziona con Xcelium.
sempre @(SYSCLK)
#(SYSCLK_PERIOD / 2.0) SYSCLK <= !SYSCLK;
Modificare come segue per eseguire la simulazione:
sempre #(SYSCLK_PERIOD / 2.0) SYSCLK = ~SYSCLK;
Importante: Le librerie compilate per Xcelium sono specifiche della piattaforma (ovvero le librerie a 64 bit non sono compatibili con la piattaforma a 32 bit e viceversa).
Simulazioni Postsynth e Post-layout utilizzando MSS e SERDES
Durante l'esecuzione di simulazioni post-sintesi di progetti contenenti blocchi MSS o simulazioni post-layout di progetti utilizzando SERDES, le simulazioni BFM non funzionano se l'opzione –libmap non è specificata durante l'elaborazione. Questo perché durante l'elaborazione, MSS viene risolto dalla libreria di lavoro (a causa del collegamento predefinito e della libreria di lavoro postsynth/post-layout) dove è solo una funzione fissa.
Il comando ncelab deve essere scritto come mostrato nel seguente blocco di codice per risolvere il blocco MSS dalla libreria precompilata SmartFusion2.
xmelab -libmap lib.map -libverbose -Messaggio -access +rwc cfg1
e il file lib.map file deve essere il seguente:
configurazione cfg1;
progettazione ;
liblist predefinito smartfusion2 ;
fineconfigurazione
Questo deve risolvere qualsiasi cella nella libreria SmartFusion2 prima di cercare nella libreria di lavoro, ad esempio postsynth/post-layout.
L'opzione –libmap può essere utilizzata di default durante l'elaborazione per ogni simulazione (presynth, postsynth e post-layout). Ciò evita problemi di simulazione causati dalla risoluzione delle istanze dalle librerie.
xmelab: *F,INTERR: ECCEZIONE INTERNA
Questa eccezione dello strumento ncelab è un avvertimento per i progetti contenenti FDDR in SmartFusion2 e IGLOO2
durante le simulazioni post-synth e post-layout utilizzando l'opzione –libmap.
Importante: Questo problema è stato segnalato al team di supporto Cadence (SAR 52113).
4.4 anniample Tcl e script di shell fileS (Fai una domanda)
Il seguente files sono la configurazione fileÈ necessario per impostare il design e lo script di shell file per eseguire i comandi Xcelium.
Cds.lib
DEFINIRE smartfusion2 /scratch/krydor/tmpspace/users/me/nc-vlog64/SmartFusion2
DEFINIRE COREAHBLITE_LIB ./COREAHBLITE_LIB
DEFINIRE presinth ./presynth
Hdl.var
DEFINE WORK presidente
DEFINE PROJECT_DIR /scratch/krydor/tmpspace/sqaurs/me/3rd_party_simulators/Cadence/IGLOO2/
ENVM/M2GL050/envm_fic1_ser1_v/eNVM_fab_master
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_addrdec.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_defaultslavesm.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_masterstagev => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavearbiter.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_slavestagev => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite_matrix2x16.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/
vlog/core/coreahblite.v => COREAHBLITE_LIB )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/CCC_0/SB_CCC_0_FCCC.v =>
presidente)
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/componente/Actel/DirectCore/CoreConfigMaster/
2.0.101/rtl/vlog/core/coreconfigmaster.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreConfigP/4.0.100/rtl/
vlog/core/coreconfigp.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp_pcie_hotreset.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/Actel/DirectCore/CoreResetP/5.0.103/rtl/
vlog/core/coreresetp.v => presinth )
DEFINISCI LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/FABOSC_0/SB_FABOSC_0_OSC.v =>
presidente)
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_HPMS/SB_HPMS.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB/SB.v => presinth )
DEFINISCI LIB_MAP ($LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SERDES_IF_0/
SB_top_SERDES_IF_0_SERDES_IF.v => presidente )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/SB_top.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, ${PROJECT_DIR}/component/work/SB_top/testbench.v => presinth )
DEFINE LIB_MAP ( $LIB_MAP, + => presinth )
Comandi.csh
ncvlog +incdir+../../componente/lavoro/SB_top -cdslib ./cds.lib -hdlvar ./hdl.var -logfile
ncvlog.log -errormax 15 -aggiornamento -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_masterstagetà
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavearbiter.v
../../component/Actel/DirectCore/CoreAHBLite/4.0.100/rtl/vlog/core/coreahblite_slavestagetà
../../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 -Messaggio -cdslib ./cds.lib -hdlvar ./hdl.var
-lavoro presinth -logfile ncelab.log -errormax 15 -access +rwc -status presinth.testbench:module
ncsim -Messaggio -batch -cdslib ./cds.lib -hdlvar ./
hdl.var -logfile ncsim.log -errormax 15 -status presinth.testbench:module
4.5 Automazione (Accesso tramite microchip)
Il seguente script file converte ModelSim run.do fileè in configurazione fileÈ necessario per eseguire simulazioni utilizzando Xcelium.
Sceneggiatura File Utilizzo
perl cadence_parser.pl presinth_run.do postsynth_run.do
postlayout_run.do Famiglia Microsemi
Posizione_delle_librerie_precompilate_di_Cadence
Cadence_parser.pl
#!/usr/bin/perl -w
################################################## ############################################
##################
#Utilizzo: perl questa_parser.pl presinth_run.do postsynth_run.do postlayout_run.do
Microsemi_Family Librerie_precompilate_posizione#
################################################## ############################################
##################
utilizzare POSIX;
usare rigorosamente;
mio ($presynth, $postsynth, $postlayout, $famiglia, $lib_location) = @ARGV;
&questa_parser($presynth, $famiglia, $lib_location);
&questa_parser($postsynth, $famiglia, $lib_location);
&questa_parser($postlayout, $family, $lib_location);
sotto questo_parser {
il mio $ModelSim_run_do = $_[0];
la mia $famiglia_actel = $_[1];
la mia $lib_location = $_[2];
il mio $stato;
se ( -e “$ModelSim_run_do” )
{
aperto (INFILE,”$ModelSim_run_do”);
il mio @ModelSim_run_do =FILE>;
la mia $linea;
se ( $ModelSim_run_do =~ m/(presynth)/)
{
`mkdir QUESTA_PRESINTESI`;
aperto (FUORIFILE,”>QUESTA_PRESYNTH/presynth_questa.do”);
$stato = $1;
} elsif ( $ModelSim_run_do =~ m/(postsynth)/)
{
`mkdir QUESTA_POSTSYNTH`;
aperto (FUORIFILE,”>QUESTA_POSTSYNTH/postsynth_questa.do”);
$stato = $1;
} elsif ( $ModelSim_run_do =~ m/(postlayout)/ )
{
`mkdir QUESTA_POSTLAYOUT`;
aperto (FUORIFILE,”>QUESTA_POSTLAYOUT/postlayout_questa.do”);
$stato = $1;
} Else
{
print “Input errati forniti al file\N";
print “#Utilizzo: perl questa_parser.pl presinth_run.do postsynth_run.do postlayout_run.do
\"Posizione_biblioteche\"\n";
}
per ogni $line (@ModelSim_run_do)
{
#Operazioni generali
$linea =~ s/..\/designer.*simulazione\///g;
$riga =~ s/$stato/$stato\_questa/g;
#stampareFILE “$riga\n”;
if ($linea =~ m/vmap\s+.*($actel_family)/)
{
stampareFILE “vmap $actel_family \”$lib_location\”\n”;
} elsif ($riga =~ m/vmap\s+(.*._LIB)/)
{
$riga =~ s/..\/componente/..\/..\/componente/g;
stampareFILE “$riga\n”;
} elsif ($linea =~ m/vsim/)
{
$linea =~ s/vsim/vsim -novopt/g;
stampareFILE “$riga\n”;
} Else
{
stampareFILE “$riga\n”;
}
}
chiudere(INFILE);
chiudi(FUORIFILE);
} altro {
print “$ModelSim_run_do non esiste. Rieseguire la simulazione\n”;
}
}
Configurazione Siemens QuestaSim/Configurazione ModelloSim (Fai una domanda)
Il run.do files, generati dal SoC Libero per le simulazioni utilizzando le edizioni ModelSim Microsemi, possono essere utilizzati per simulazioni utilizzando QuestaSim/ModelSim SE/DE/PE con un solo cambiamento. Nel ModelSim ME/ModelSim Pro ME run.do file, è necessario modificare la posizione delle librerie precompilate.
Importante:
Per impostazione predefinita, lo strumento di simulazione diverso da ModelSim Pro ME esegue l'ottimizzazione del progetto durante la simulazione che può influire sulla visibilità degli artefatti della simulazione come oggetti di progettazione e stimoli di input.
Ciò è in genere utile per ridurre il tempo di esecuzione della simulazione per le simulazioni complesse, utilizzando banchi di prova dettagliati e autocontrollati. Tuttavia, le ottimizzazioni predefinite potrebbero non essere appropriate per tutte le simulazioni, soprattutto nei casi in cui si prevede di ispezionare graficamente i risultati della simulazione utilizzando la finestra dell'onda.
Per risolvere i problemi causati da questa ottimizzazione, è necessario aggiungere comandi appropriati e argomenti correlati durante la simulazione per ripristinare la visibilità del progetto. Per i comandi specifici dello strumento, consultare la documentazione del simulatore in uso.
5.1 Variabili d'ambiente (Fai una domanda)
Di seguito sono riportate le variabili di ambiente richieste.
- LM_LICENZA_FILE: deve includere il percorso della licenza file.
- MODEL_TECH: deve identificare il percorso della directory home dell'installazione di QuestaSim.
- PERCORSO: deve puntare alla posizione dell'eseguibile indicata da MODEL_TECH.
5.2 Conversione di run.do per Mentor QuestaSim (Fai una domanda)
Il run.do files generati da Libero SoC per simulazioni utilizzando ModelSim Microsemi Editions possono essere utilizzati per simulazioni utilizzando QuestaSim/ModelSim_SE con una sola modifica.
Importante: tutti i progetti simulati utilizzando QuestaSim devono includere -novopt
opzione insieme al comando vsim nello script run.do files.
5.3 Scaricare la libreria compilata (Fai una domanda)
Scarica le librerie per Mentor Graphics QuestaSim da Microsemi websito.
Sinossi Configurazione VCS (Fai una domanda)
Il flusso consigliato da Microsemi si basa sul flusso Elabora e Compila in VCS. Questo documento include uno script file che utilizza lo script run.do files generato da Libero SoC e genera il setup fileÈ necessario per la simulazione VCS. Il copione file utilizza il run.do file per fare quanto segue.
- Creare una mappatura della libreria file, che viene eseguito utilizzando synopsys_sim.setup file situato nella stessa directory in cui è in esecuzione la simulazione VCS.
- Crea uno script di shell file per elaborare e compilare il tuo progetto utilizzando VCS.
6.1 Variabili d'ambiente (Fai una domanda)
Imposta le variabili di ambiente appropriate per VCS in base alla tua configurazione. Le variabili d'ambiente necessarie secondo la documentazione VCS sono:
- LM_LICENZA_FILE: deve includere un puntatore al server delle licenze.
- VCS_HOME: deve puntare alla posizione della directory home dell'installazione VCS.
- PERCORSO: deve includere un puntatore alla directory bin sotto la directory VCS_HOME.
6.2 Scarica la libreria compilata (Fai una domanda)
Scarica le librerie per Synopsys VCS da Microsemi websito.
6.3 Script di simulazione VCS File (Fai una domanda)
Dopo aver configurato VCS e generato il progetto e i diversi file run.do files da Libero SoC, è necessario:
- Creare la mappatura della libreria file synopsys_sim.setup; Questo file contiene puntatori alla posizione di tutte le librerie da utilizzare nel progetto.
Importante: Il file il nome non deve cambiare e deve trovarsi nella stessa directory in cui è in esecuzione la simulazione. Ecco un example per un tale file per la simulazione della presintesi.
LAVORO > ERRORE
SmartFusion2:
presinth: ./presynth
PREDEFINITO: ./lavoro - Elaborare il diverso design files, incluso il testbench, utilizzando il comando vlogan in VCS. Questi comandi possono essere inclusi in uno script di shell file. Segue un example dei comandi necessari per elaborare un progetto definito in rtl.v con il suo testbench definito in
banco di prova.v.
vlogan +v2k -work presinth rtl.v
vlogan +v2k -work presinth testbench.v - Compila il progetto utilizzando VCS utilizzando il seguente comando.
vcs –sim_res=1fs presinth.testbench
Notare la la risoluzione temporale della simulazione deve essere impostata su 1fs per una corretta simulazione funzionale. - Una volta compilato il progetto, avvia la simulazione utilizzando il seguente comando.
./simv - Per la simulazione con annotazioni a ritroso, il comando VCS deve essere come mostrato nel seguente blocco di codice.
vcs postlayout.testbench –sim_res=1fs –sdf max: .
nome>:<sdf file percorso> –gui –l postlayout.log
6.4 Limitazioni/Eccezioni (Fai una domanda)
Di seguito sono riportate le limitazioni/eccezioni dell'installazione di Synopsys VCS.
- Le simulazioni VCS possono essere eseguite solo per progetti Verilog di Libero SoC. Il simulatore VCS ha severi requisiti linguistici VHDL che non sono soddisfatti dal VHDL generato automaticamente da Libero SoC files.
- Devi avere un'istruzione $finish nel testbench di Verilog per interrompere la simulazione ogni volta che vuoi.
Importante: Quando le simulazioni vengono eseguite in modalità GUI, il tempo di esecuzione può essere specificato nella GUI.
6.5 anniample Tcl e Shell Script FileS (Fai una domanda)
Il seguente Perl automatizza la generazione di synopsys_sim.setup file così come lo script di shell corrispondente fileÈ necessario elaborare, compilare e simulare il progetto.
Se il progetto utilizza un MSS, copia test.vec file situato nella cartella di simulazione del progetto Libero SoC all'interno della cartella di simulazione VCS. Le sezioni seguenti contengono sample run.do files generati da Libero SoC, inclusa la mappatura della libreria corrispondente e lo script di shell fileÈ necessario per la simulazione VCS.
6.5.1 Pre-sintesi (Fai una domanda)
Presynth_run.do
imposta tranquillamente ACTELLIBNAME SmartFusion2
imposta tranquillamente PROJECT_DIR “/sqa/users/me/VCS_Tests/Test_DFF”
Se {[file esiste presinth/_info]} {
echo "INFO: la libreria di simulazione presinth esiste già"
} altro {
sintetizzatore vlib
}
vmap presinth presinth
vmap SmartFusion2 “/captures/lin/11_0_0_23_11prod/lib/ModelSim/precompiled/vlog/smartfusion2”
vlog -work presinth “${PROJECT_DIR}/component/work/SD1/SD1.v”
vlog “+incdir+${PROJECT_DIR}/stimulus” -lavoro presinth “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L presinth -t 1fs presinth.SD1_TB1
aggiungi onda /SD1_TB1/*
aggiungi log -r /*
eseguire 1000ns
presinth_main.csh
#!/bin/csh -f
imposta PROJECT_DIR = "/sqa/users/Me/VCS_Tests/Test_DFF"
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -work presinth “${PROJECT_DIR}/component/
lavoro/SD1/SD1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -lavoro
sintetizzatore “${PROJECT_DIR}/stimulus/SD1_TB1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs presinth.SD1_TB1 -l compile.log
./simv -l esegui.log
Sinossi_sim.setup
LAVORO > PREDEFINITO
SmartFusion2: /VCS/SmartFusion2
presinth: ./presynth
PREDEFINITO: ./lavoro
6.5.2 Post-sintesi (Fai una domanda)
postsynth_esegui.do
imposta tranquillamente ACTELLIBNAME SmartFusion2
imposta tranquillamente PROJECT_DIR “/sqa/users/Me/VCS_Tests/Test_DFF”
Se {[file esiste postsynth/_info]} {
echo "INFO: la libreria di simulazione postsynth esiste già"
} altro {
post-sintetizzatore vlib
}
post-sintesi vmap post-sintesi
vmap SmartFusion2 “//idm/captures/pc/11_0_1_12_g4x/Designer/lib/ModelSim/precompiled/vlog/
"SmartFusion2"
vlog -work postsynth “${PROJECT_DIR}/sintesi/SD1.v”
vlog “+incdir+${PROJECT_DIR}/stimulus” -work postsynth “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L postsynth -t 1fs postsynth.SD1_TB1
aggiungi onda /SD1_TB1/*
aggiungi log -r /*
eseguire 1000ns
registro SD1_TB1/*
Uscita
PostSynth_main.csh
#!/bin/csh -f
imposta PROJECT_DIR = "/sqa/users/Me/VCS_Tests/Test_DFF"
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -work postsynth “${PROJECT_DIR}/sintesi/
SD1.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -lavoro
post-sintesi “${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 esegui.log
Sinossi_sim.setup
LAVORO > PREDEFINITO
SmartFusion2: /VCS/SmartFusion2
postsynth: ./postsynth
PREDEFINITO: ./lavoro
6.5.3 Post-impaginazione (Fai una domanda)
postlayout_esegui.do
imposta tranquillamente ACTELLIBNAME SmartFusion2
imposta tranquillamente PROJECT_DIR “E:/ModelSim_Work/Test_DFF”
Se {[file esiste ../designer/SD1/simulation/postlayout/_info]} {
echo "INFO: la libreria di simulazione ../designer/SD1/simulation/postlayout esiste già"
} altro {
vlib ../designer/SD1/simulazione/postlayout
}
postlayout della mappa virtuale ../designer/SD1/simulazione/postlayout
vmap SmartFusion2 “//idm/captures/pc/11_0_1_12_g4x/Designer/lib/ModelSim/precompiled/vlog/
"SmartFusion2"
vlog -postlayout di lavoro “${PROJECT_DIR}/designer/SD1/SD1_ba.v”
vlog “+incdir+${PROJECT_DIR}/stimulus” -postlayout di lavoro “${PROJECT_DIR}/stimulus/SD1_TB1.v”
vsim -L SmartFusion2 -L postlayout -t 1fs -sdfmax /SD1_0=${DIR_PROGETTO}/designer/SD1/
Postlayout SD1_ba.sdf.SD1_TB1
aggiungi onda /SD1_TB1/*
aggiungi log -r /*
eseguire 1000ns
Postlayout_main.csh
#!/bin/csh -f
imposta PROJECT_DIR = “/VCS_Test/Test_DFF”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k -work postlayout “${PROJECT_DIR}/
progettista/SD1/SD1_ba.v”
/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k “+incdir+${PROJECT_DIR}/stimulus” -lavoro
postlayout “${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 esegui.log
Sinossi_sim.setup
LAVORO > PREDEFINITO
SmartFusion2: /VCS/SmartFusion2
postlayout: ./postlayout
PREDEFINITO: ./workVCS
6.6 Automazione (Fai una domanda)
Il flusso può essere automatizzato utilizzando il seguente script Perl file per convertire il ModelSim run.do files nello script di shell compatibile con VCS files, creare le directory appropriate all'interno della directory di simulazione del SoC Libero, quindi eseguire le simulazioni.
Esegui lo script file utilizzando la seguente sintassi.
perl vcs_parse.pl presinth_run.do postsynth_run.do postlayout_run.do
Vcs_parse_pl
#!/usr/bin/perl -w
################################################## ############################
#
#Utilizzo: perl vcs_parse.pl presinth_run.do postsynth_run.do postlayout_run.do
#
################################################## #############################
mio ($presynth, $postsynth, $postlayout) = @ARGV;
if(system(“mkdir VCS_Presynth”)) {print “mkdir fallito:\n”;}
if(system(“mkdir VCS_Postsynth”)) {print “mkdir fallito:\n”;}
if(system(“mkdir VCS_Postlayout”)) {print “mkdir fallito:\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 (“../”);
sub analizza_fai {
il mio $vlog = “/cad_design/tools/vcs.dir/E-2011.03/bin/vlogan +v2k”;
la mia %LIB = ();
il mio $file = $_[0] ;
il mio $stato = $_[1];
aperto(INFILE”, $file”) || morire “Non posso aprire File Il motivo potrebbe essere:$!”;
if ($state eq “presynth”)
{
open(OUT1,”>presynth_main.csh”) || morire “Non posso creare il comando File Il motivo potrebbe essere:$!”;
}
elsif ($state eq “postsynth”)
{
open(OUT1,”>postsynth_main.csh”) || morire “Non posso creare il comando File Il motivo potrebbe essere:$!”;
}
elsif ($state eq “postlayout”)
{
open(OUT1,”>postlayout_main.csh”) || morire “Non posso creare il comando File Il motivo potrebbe essere:$!”;
}
altro
{
print “Manca lo stato della simulazione \n” ;
}
open(OUT2,”>synopsys_sim.setup”) || morire “Non posso creare il comando File Il motivo potrebbe essere:$!”;
# .csh file
stampa OUT1 “#!/bin/csh -f\n\n\n” ;
#IMPOSTARE FILE
print OUT2 “LAVORO > PREDEFINITO\n” ;
print OUT2 “SmartFusion2: /sqa/users/Aditya/VCS/SmartFusion2\n”;
mentre ($riga =FILE>)
{
Sinossi Configurazione VCS
if ($line =~ m/imposta tranquillamente PROJECT_DIR\s+\”(.*?)\”/)
{
print OUT1 “imposta DIR_PROGETTO = \”$1\”\n\n\n” ;
}
elsif ( $riga =~ m/vlog.*\.v\”/ )
{
if ($riga =~ m/\s+(\w*?)\_LIB/)
{
#stampa “\$1 =$1 \n” ;
$temp = “$1″.”_LIB”;
#print “Temp = $temp \n” ;
{NS} è un'istruzione che richiede un'istruzione diversa da quella corrente.
}
chomp($line);
$riga =~ s/^vlog/$vlog/ ;
$riga =~ s/ //g;
stampa OUT1 “$riga\n”;
}
elsif ( ($riga =~ m/vsim.*presynth\.(.*)/) || ($riga =~ m/vsim.*postsynth\.(.*)/) || ($riga
=~ m/vsim.*postlayout\.(.*)/) )
{
$tb = $1;
{NS} = s/ //g;
masticare($tb);
#print “Nome TB: $tb \n”;
if ( $riga =~ m/sdf(.*)\.sdf/)
{
chomp($line);
$linea = $1;
#print “LINEA: $linea \n”;
if ($linea =~ m/max/)
{
$riga =~ s/max \/// ;
$riga =~ s/=/:/;
stampa 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” ;
}
elsif ($linea =~ m/min/)
{
$riga =~ s/min \/// ;
$riga =~ s/=/:/;
stampa OUT1 “\n\n/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.$tb -sdf
min:$tb.$line.sdf -l compile.log\n” ;
}
elsif ($riga =~ m/tip/)
{
$riga =~ s/tipo \/// ;
$riga =~ s/=/:/;
stampa OUT1 “\n\n/cad_design/tools/vcs.dir/E-2011.03/bin/vcs -sim_res=1fs postlayout.$tb -sdf
tipo:$tb.$line.sdf -l compile.log\n” ;
}
#-sdfmax /M3_FIC32_0=${PROJECT_DIR}/designer/M3_FIC32/M3_FIC32_ba.sdf — Formato SDF ModelSim
#$sdf = "-sdf max:testbench.M3_FIC32_0:${PROJECT_DIR}/designer/M3_FIC32/M3_FIC32_ba.sdf"; -VCS
Formato SDF
}
}
}
stampa
USCITA1 “\n\n”
;
if
( $state eq “presidente”
)
{
stampa
OUT2 “presidente
: ./presynth\n”
;
stampa
OUT1”/cad_design/tools/vcs.dir/E-2011.03/bin/vcs
-sim_res=1fs presinth.$tb -l
compila.log\n”
;
}
altrove
($state eq “postsynth”
)
{
stampa
OUT2 “post-sintetizzatore
: ./postsynth\n”
;
stampa
OUT1”/cad_design/tools/vcs.dir/E-2011.03/bin/vcs
-sim_res=1fs postsynth.$tb -l
compila.log\n”
;
}
altrove
( $state eq “postlayout”
)
{
stampa OUT2 “postlayout: ./postlayout\n” ;
}
altro
{
print “Manca lo stato della simulazione \n” ;
}
foreach $i (chiavi %LIB)
{
#print “Chiave: $i Valore: $LIB{$i} \n” ;
stampa OUT2 “$i : ./$i\n” ;
}
stampa OUT1 “\n\n” ;
print OUT1 “./simv -l esegui.log\n” ;
print OUT2 “DEFAULT: ./lavoro\n” ;
chiudere INFILE;
chiude OUT1;
chiude OUT2;
}
Cronologia delle revisioni (Accesso tramite microchip
La cronologia delle revisioni descrive le modifiche implementate nel documento. I cambiamenti
sono elencati per revisione, a partire dalla pubblicazione più recente.
Revisione | Data | Descrizione |
A | 12/2023 | In questa revisione vengono apportate le seguenti modifiche: • Documento convertito in modello Microchip. Revisione iniziale. • Sezione 5 aggiornata. Siemens QuestaSim Setup/ModelSim Setup per includere una nuova nota che spiega l'impatto sulla visibilità durante la simulazione e l'ottimizzazione. |
Supporto FPGA per microchip
Il gruppo di prodotti Microchip FPGA supporta i propri prodotti con vari servizi di supporto, tra cui Servizio clienti, Centro assistenza tecnica clienti, a websito e uffici vendite in tutto il mondo.
Si consiglia ai clienti di visitare le risorse online di Microchip prima di contattare l'assistenza poiché è molto probabile che le loro domande abbiano già ricevuto risposta.
Contattare il Centro di assistenza tecnica tramite il websito a www.microchip.com/support. Menziona il numero di parte del dispositivo FPGA, seleziona la categoria di custodia appropriata e carica il design files durante la creazione di un caso di supporto tecnico.
Contatta il servizio clienti per assistenza non tecnica sui prodotti, ad esempio prezzi dei prodotti, aggiornamenti dei prodotti, informazioni sull'aggiornamento, stato dell'ordine e autorizzazione.
- Dal Nord America, chiamare 800.262.1060
- Dal resto del mondo, chiamare il 650.318.4460
- Fax, da qualsiasi parte del mondo, 650.318.8044
Informazioni sul microchip
Il microchip Websito
Microchip fornisce supporto online tramite il nostro websito a www.microchip.com/. Questo webil sito è utilizzato per fare filee informazioni facilmente accessibili ai clienti. Alcuni dei contenuti disponibili includono:
- Supporto al prodotto – Schede tecniche ed errata, note applicative e sampprogrammi, risorse di progettazione, guide per l'utente e documenti di supporto hardware, ultime versioni software e software archiviato
- Supporto tecnico generale: domande frequenti (FAQ), richieste di supporto tecnico, gruppi di discussione online, elenco dei membri del programma dei partner di progettazione Microchip
- Business di Microchip - Guide per la selezione e l'ordinazione dei prodotti, gli ultimi comunicati stampa di Microchip, elenco di seminari ed eventi, elenchi di uffici vendita, distributori e rappresentanti di fabbrica Microchip
Servizio di notifica di modifica del prodotto
Il servizio di notifica delle modifiche ai prodotti di Microchip aiuta a mantenere i clienti aggiornati sui prodotti Microchip. Gli abbonati riceveranno una notifica via e-mail ogni volta che ci sono modifiche, aggiornamenti, revisioni o errata relativi a una specifica famiglia di prodotti o strumento di sviluppo di interesse.
Per registrarsi, andare su www.microchip.com/pcn e seguire le istruzioni di registrazione.
Assistenza clienti
Gli utenti dei prodotti Microchip possono ricevere assistenza attraverso diversi canali:
- Distributore o rappresentante
- Ufficio Commerciale Locale
- Ingegnere di soluzioni integrate (ESE)
- Supporto tecnico
I clienti devono contattare il loro distributore, rappresentante o ESE per ricevere supporto. Sono disponibili anche uffici vendite locali per aiutare i clienti. Un elenco di uffici vendite e sedi è incluso in questo documento.
Il supporto tecnico è disponibile tramite websito a: www.microchip.com/support
Funzionalità di protezione del codice dei dispositivi a microchip
Si noti quanto segue in merito alla funzionalità di protezione del codice sui prodotti Microchip:
- I prodotti Microchip soddisfano le specifiche contenute nella rispettiva scheda tecnica Microchip.
- Microchip ritiene che la sua famiglia di prodotti sia sicura se utilizzata nel modo previsto, nel rispetto delle specifiche operative e in condizioni normali.
- Microchip apprezza e protegge in modo aggressivo i suoi diritti di proprietà intellettuale. I tentativi di violare le funzionalità di protezione del codice del prodotto Microchip sono severamente vietati e possono violare il Digital Millennium Copyright Act.
- Né Microchip né altri produttori di semiconduttori possono garantire la sicurezza del proprio codice. La protezione del codice non significa che garantiamo che il prodotto sia “indistruttibile”.
La protezione del codice è in continua evoluzione. Microchip è impegnata a migliorare continuamente le caratteristiche di protezione del codice dei nostri prodotti.
Note legali
Questa pubblicazione e le informazioni ivi contenute possono essere utilizzate solo con i prodotti Microchip, anche per progettare, testare e integrare i prodotti Microchip con l'applicazione. L'uso di queste informazioni in qualsiasi altro modo viola questi termini. Le informazioni relative alle applicazioni del dispositivo sono fornite solo per comodità dell'utente e possono essere sostituite da aggiornamenti. È tua responsabilità assicurarti che la tua applicazione soddisfi le tue specifiche. Contattare l'ufficio vendite Microchip locale per ulteriore supporto o ottenere ulteriore supporto all'indirizzo www.microchip.com/en-us/support/design-help/client-support-services.
QUESTE INFORMAZIONI SONO FORNITE DA MICROCHIP "COSÌ COME SONO". MICROCHIP NON RILASCIA ALCUNA DICHIARAZIONE O GARANZIA DI ALCUN TIPO, SIA ESSE ESPRESSE O IMPLICITE, SCRITTE O ORALI, STATUTARIE O ALTRO, RELATIVE ALLE INFORMAZIONI, INCLUSE, SENZA LIMITAZIONE, QUALSIASI GARANZIA IMPLICITA DI NON VIOLAZIONE, COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE, O GARANZIE RELATIVE ALLA SUA CONDIZIONE, QUALITÀ O PRESTAZIONI.
IN NESSUN CASO MICROCHIP SARÀ RITENUTA RESPONSABILE PER QUALSIASI PERDITA, DANNO, COSTO O SPESA INDIRETTA, SPECIALE, PUNITIVA, ACCIDENTALE O CONSEGUENTE DI QUALSIASI TIPO CORRELATA ALLE INFORMAZIONI O AL SUO UTILIZZO, COMUNQUE CAUSATA, ANCHE SE MICROCHIP È STATA INFORMATA DELLA POSSIBILITÀ O SE I DANNI SONO PREVEDIBILI. NELLA MISURA MASSIMA CONSENTITA DALLA LEGGE, LA RESPONSABILITÀ TOTALE DI MICROCHIP PER TUTTI I RECLAMI IN QUALSIASI MODO CORRELATI ALLE INFORMAZIONI O AL SUO UTILIZZO NON SUPERERÀ L'IMPORTO DELLE COMMISSIONI, SE PRESENTI, CHE AVETE PAGATO DIRETTAMENTE A MICROCHIP PER LE INFORMAZIONI.
L'uso dei dispositivi Microchip in applicazioni di supporto vitale e/o di sicurezza è interamente a rischio dell'acquirente, il quale accetta di difendere, indennizzare e tenere indenne Microchip da qualsiasi danno, reclamo, causa o spesa risultante da tale uso. Nessuna licenza viene trasferita, implicitamente o in altro modo, in base ai diritti di proprietà intellettuale di Microchip, salvo diversamente specificato.
Marchi
Il nome e il logo Microchip, il logo Microchip, Adaptec, AVR, logo AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, logo Microsemi, MOST, logo MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, logo PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, Logo SST, SuperFlash, Symmetricom , SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron e XMEGA sono marchi registrati di Microchip Technology Incorporated negli Stati Uniti e in altri paesi.
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, logo ProASIC Plus, QuietWire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime e ZL sono marchi registrati di Microchip Technology Incorporated negli Stati Uniti
Soppressione della chiave adiacente, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching , DAM, ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, In-Circuit Serial Programming, ICSP, INICnet, Paralleling intelligente, IntelliMOS, Connettività tra chip, JitterBlocker, Knob-on-Display, KoD, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, logo certificato MPLAB, MPLIB, MPLINK, MultiTRAK, NetDetach, generazione di codice onnisciente, PICDEM, PICDEM.net,
PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAMICE, Quad I/O seriale, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher,
SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, Trusted Time, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect e ZENA sono marchi di Microchip Technology Incorporated
negli Stati Uniti e in altri paesi.
SQTP è un marchio di servizio di Microchip Technology Incorporated negli USA
Il logo Adaptec, Frequency on Demand, Silicon Storage Technology e Symmcom sono marchi registrati di Microchip Technology Inc. in altri paesi.
GestIC è un marchio registrato di Microchip Technology Germany II GmbH & Co. KG, una sussidiaria di Microchip Technology Inc., in altri paesi.
Tutti gli altri marchi qui menzionati sono di proprietà delle rispettive aziende.
© 2023, Microchip Technology Incorporated e le sue sussidiarie. Tutti i diritti riservati.
ISBN: 978-1-6683-3694-6
Sistema di gestione della qualità
Per informazioni sui sistemi di gestione della qualità di Microchip, visitare www.microchip.com/qualità.
AMERICHE | ASIA/PACIFICO | ASIA/PACIFICO | EUROPA |
Sede aziendale 2355 West Chandler Boulevard. Chandler, AZ 85224-6199 Tel: Numero di telefono: 480-792-7200 Fax: Numero di telefono: 480-792-7277 Supporto tecnico: www.microchip.com/support Web Indirizzo: www.microchip.com Atlanta Duluth, Georgia Tel: Numero di telefono: 678-957-9614 Fax: Numero di telefono: 678-957-1455 Austin, Texas Tel: Numero di telefono: 512-257-3370 Boston Westborough, MA Tel: Numero di telefono: 774-760-0087 Fax: Numero di telefono: 774-760-0088 Chicago Itasca, IL Tel: Numero di telefono: 630-285-0071 Fax: Numero di telefono: 630-285-0075 Dallas Addison, TX Tel: Numero di telefono: 972-818-7423 Fax: Numero di telefono: 972-818-2924 Detroit Novi, MI Tel: Numero di telefono: 248-848-4000 Houston, Texas Tel: Numero di telefono: 281-894-5983 Indianapolis Noblesville, Indiana Tel: Numero di telefono: 317-773-8323 Fax: Numero di telefono: 317-773-5453 Tel: Numero di telefono: 317-536-2380 Los Angeles Missione Viejo, California Tel: Numero di telefono: 949-462-9523 Fax: Numero di telefono: 949-462-9608 Tel: Numero di telefono: 951-273-7800 Raleigh, Carolina del Nord Tel: Numero di telefono: 919-844-7510 Nuova York, Stati Uniti Tel: Numero di telefono: 631-435-6000 San Jose, California Tel: Numero di telefono: 408-735-9110 Tel: Numero di telefono: 408-436-4270 Canada – Toronto Tel: Numero di telefono: 905-695-1980 Fax: Numero di telefono: 905-695-2078 |
Australia – Sidney Tel: 61-2-9868-6733 Cina – Pechino Tel: 86-10-8569-7000 Cina – Chengdu Tel: 86-28-8665-5511 Cina – Chongqing Tel: 86-23-8980-9588 Cina – Dongguan Tel: 86-769-8702-9880 Cina – Canton Tel: 86-20-8755-8029 Cina – Hangzhou Tel: 86-571-8792-8115 Cina – RAS di Hong Kong Tel: 852-2943-5100 Cina – Nanchino Tel: 86-25-8473-2460 Cina – Qingdao Tel: 86-532-8502-7355 Cina – Shanghai Tel: 86-21-3326-8000 Cina – Shenyang Tel: 86-24-2334-2829 Cina – Shenzhen Tel: 86-755-8864-2200 Cina – Suzhou Tel: 86-186-6233-1526 Cina – Wuhan Tel: 86-27-5980-5300 Cina – Xian Tel: 86-29-8833-7252 Cina – Xiamen Tel: 86-592-2388138 Cina – Zhuhai Tel: 86-756-3210040 |
India – Bangalore Tel: 91-80-3090-4444 India – Nuova Delhi Tel: 91-11-4160-8631 India – Puna Tel: 91-20-4121-0141 Giappone – Osaka Tel: 81-6-6152-7160 Giappone – Tokyo Telefono: 81-3-6880-3770 Corea – Daegu Tel: 82-53-744-4301 Corea – Seul Tel: 82-2-554-7200 Malesia – Kuala Lumpur Tel: 60-3-7651-7906 Malesia – Penang Tel: 60-4-227-8870 Filippine – Manila Tel: 63-2-634-9065 Singapore Tel: 65-6334-8870 Taiwan – Hsin Chu Tel: 886-3-577-8366 Taiwan-Kaohsiung Tel: 886-7-213-7830 Taiwan-Taipei Tel: 886-2-2508-8600 Thailandia – Bangkok Tel: 66-2-694-1351 Vietnam-Ho Chi Minh Tel: 84-28-5448-2100 |
Austria – Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 Danimarca – Copenaghen Tel: 45-4485-5910 Fax: 45-4485-2829 Finlandia – Espoo Tel: 358-9-4520-820 Francia – Parigi Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 Germania – Garching Tel: 49-8931-9700 Germania – Haan Tel: 49-2129-3766400 Germania – Heilbronn Tel: 49-7131-72400 Germania – Karlsruhe Tel: 49-721-625370 Germania – Monaco di Baviera Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Germania – Rosenheim Tel: 49-8031-354-560 Israele – Ra'anana Tel: 972-9-744-7705 Italia – Milano Tel: 39-0331-742611 Fax: 39-0331-466781 Italia – Padova Tel: 39-049-7625286 Paesi Bassi – Drunen Tel: 31-416-690399 Fax: 31-416-690340 Norvegia – Trondheim Tel: 47-72884388 Polonia – Varsavia Tel: 48-22-3325737 Romania – Bucarest Tel: 40-21-407-87-50 Spagna – Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Svezia – Göteborg Tel: 46-31-704-60-40 Svezia – Stoccolma Tel: 46-8-5090-4654 Regno Unito – Wokingham Tel: 44-118-921-5800 Fax: 44-118-921-5820 |
© 2023 Microchip Technology Inc. e le sue sussidiarie
DS50003627A –
Documenti / Risorse
![]() |
Software di libreria di simulazione SoC MICROCHIP Libero [pdf] Guida utente DS50003627A, Libero Software di libreria di simulazione SoC, Software di libreria di simulazione SoC, Software di libreria di simulazione, Software di libreria, Software |