Description:
This example outlines a fallback simulation method for a Phase-Locked Loop IP on the MachXO5 device using Synopsys VCS or Cadence Xcelium. It involves manually referencing the Radiant device library using +incdir/-incdir (VCS/Xcelium) and -f. This will bypass the synopsys_sim.setup configuration in VCS. While less efficient than the cmpl_libs approach, this method remains valid and serves as interim guidance for VCS or Xcelium users pending official cmpl_libs support.
Step Procedure for VCS:
Step 1: Setting of Environment Variables (may be
optional to many): To properly configure the VCS simulation tool, users must
define specific environment variables that indicate the VCS installation
directory and its required license. If these environment variables are already
preconfigured in the user's system environment, this setup step can be omitted.
Although the VCS_HOME AND LM_LICENSE_FILE are optional, for environment
variable FOUNDRY, this is a mandatory requirement
$ setenv VCS_HOME
<vcs_installation>/synopsys/VCS/<version> && setenv PATH
$VCS_HOME/bin:$PATH
$ setenv LM_LICENSE_FILE <insert_your_license>
$ setenv FOUNDRY
/home/jtoled/lscc/radiant/2025.1/ispfpga
Step 2: Opening of Radiant Console and IP Generation for
Foundation IP: To open and
generate the PLL IP, the user should invoked the ipgen command tailored from
the intended FPGA architecture and device inside the Radiant console.
$ cd
<radiant_installation_path>/lscc/radiant/<version>/bin/lin64
$ ./radiantc
$ ipgen -o /home/jtoled/simulation/pll/vcs/pllIP -ip
/home/jtoled/lscc/radiant/2025.1/ip/lifcl/pll -name pll0 -a LFMXO5 -p LFMXO5-25
-t BBG256 -sp 9_High-Performance_1.0V -op COM
$ exit
Step 3: Run the vcs command: The use of +incdir and -f
options targeting the cae_library/ directory explicitly directs the compiler to
include and process all primitive source files during simulation setup.
$ vcs \
-full64 -sverilog -debug_access+all
-timescale=1ns/1ps +libext+.v+.sv \
-o /home/jtoled/simulation/pll/vcs/pllIP/pll_simv \
-l /home/jtoled/simulation/pll/vcs/pll0.log \
+incdir+/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/lfmxo5/
\
+incdir+/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/uaplatform/
\
+incdir+/home/jtoled/lscc/radiant/2025.1/ip/pmi/ \
-f
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/lfmxo5/lfmxo5.f
\
-f
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/uaplatform/uaplatform.f
\
-f /home/jtoled/lscc/radiant/2025.1/ip/pmi/pmi.f \
+incdir+/home/jtoled/simulation/pll/vcs/pllIP/testbench/
\
/home/jtoled/simulation/pll/vcs/pllIP/rtl/pll0.v \
/home/jtoled/simulation/pll/vcs/pllIP/testbench/tb_top.v
Step 4: Discovery Visualization Environment: Verify
that the pll_simv simulation executable has been successfully generated, then
launch it in GUI mode for waveform analysis and debugging.
Resulting Waveform
Step Procedure for Xcelium:
Step 1: Setting of Environment Variables (may be
optional to many): To properly configure the Xcelium simulation tool, users must define specific
environment variables that indicate the Xcelium installation directory and its
required license. If these environment variables are already preconfigured in
the user's system environment, this setup step can be omitted. Although the
XCELIUM_HOME AND LM_LICENSE_FILE are optional, for environment variable
FOUNDRY, this is a mandatory requirement
$ setenv XCELIUM_HOME
<cadence_installation_PATH>/XCELIUM/XCELIUM23.03.003/Linux/tools.lnx86
&& setenv PATH $XCELIUM_HOME/bin:$PATH
$ setenv LM_LICENSE_FILE <insert_your_license>
$ setenv FOUNDRY
/home/jtoled/lscc/radiant/2025.1/ispfpga
Step 2: Opening of Radiant Console and IP Generation for
Foundation IP: To open and generate the PLL IP, the user should invoked
the ipgen command tailored from the intended FPGA architecture and device
inside the Radiant console.
$ cd /home/jtoled/lscc/radiant/2025.1/bin/lin64
$ ./radiantc
$ ipgen -o /home/jtoled/simulation/pll/xcelium/pllIP
-ip /home/jtoled/lscc/radiant/2025.1/ip/lifcl/pll -name pll0 -a LFMXO5 -p
LFMXO5-25 -t BBG256 -sp 9_High-Performance_1.0V -op COM
$ exit
Step 3: Run the xrun command: The use of -incdir and -f
options targeting the cae_library/ directory explicitly directs the compiler to
include and process all primitive source files during simulation setup.
$ xrun \
-64bit -sv -access +rwc -timescale 1ns/1ps -libext
.v,.sv \
-l /home/jtoled/simulation/pll/xcelium/pll0.log \
-gui \
-incdir
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/lfmxo5/ \
-incdir
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/uaplatform/ \
-incdir /home/jtoled/lscc/radiant/2025.1/ip/pmi/ \
-f
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/lfmxo5/lfmxo5.f
\
-f
/home/jtoled/lscc/radiant/2025.1/cae_library/simulation/verilog/uaplatform/uaplatform.f
\
-f /home/jtoled/lscc/radiant/2025.1/ip/pmi/pmi.f \
-incdir
/home/jtoled/simulation/pll/xcelium/pllIP/testbench/ \
/home/jtoled/simulation/pll/xcelium/pllIP/rtl/pll0.v
\
/home/jtoled/simulation/pll/xcelium/pllIP/testbench/tb_top.v
Step 4: SimVision and Console: Using the -gui option
with the simulation command automatically launches SimVision along with its
console interface, enabling interactive waveform viewing and debugging.
Resulting Waveform