Questa è una vecchia versione del documento!
Verilog/VHDL simulations with Xilinx ISE Simulator (ISim)
[ Back to index ]
Contents
- Introduction
- Documentation
- Tutorials
Introduction
Xilinx ISim Lite is free… Cadence Incisive isn't !!!
http://www.xilinx.com/tools/isim.htm
http://www.rte.se/blog/blogg-modesty-corex/isim-hdl-simulator
http://vhdlguru.blogspot.it/2010/12/tips-for-running-successful-simulation.html
http://www.sigasi.com/content/how-run-xilinx-isimfuse-command-line-linux
ISim Lite vs Full versions:
http://www.xilinx.com/products/design_tools/logic_design/verification/ise_simulator_faq.htm
Documentation
ISim User Guide
http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/plugin_ism.pdf
ISim In-Depth Tutorial
http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_7/ug682.pdf
UNIX environment setup
linux% source /opt/edatools/xilinx/ISE14.6/settings.csh
or write your own setup script by including:
# ISE installation directory setenv ISE_DIR /opt/edatools/xilinx/ISE14.6/ISE setenv XILINX $ISE_DIR # add Xilinx executables to search path set path = ( $ISE_DIR/bin/lin $ISE_DIR/sysgen/util $path )
Makefile
# HDL sources (project file) SOURCES = design.prj # top-level design unit (testbench) TOP = tb_design # local library mapping file LIBFILE = libs.ini # compiler/elaborator CC = fuse # output simulation executable SIMEXE = $(TOP).exe # output waveform database WDB = ./results/wdb/$(TOP).wdb # Tcl run script TCLBATCH = ./scripts/run.tcl # compiler/elaborator options (use fule -help for more details) CCFLAGS = -initfile $(LIBFILE) \ -incremental \ -verbose 0 \ -prj $(SOURCES) \ -out $(SIMEXE) # simulation executable options SIMFLAGS = -gui \ -wdb $(WDB) \ -tclbatch $(TCLBATCH) # useful command alias RM = rm -f RMDIR = rm -rf # default target all: compile # compile and elaborate sources with fuse compile: $(CC) $(CCFLAGS) $(TOP) # execute the simulation executable and run the simulation sim: ./$(SIMEXE) $(SIMFLAGS) & # delete log files, backup files etc. clean: @find ./ -name '*~' -exec $(RM) {} \; @$(RM) fuse.log fuse.xmsgs fuseRelaunch.cmd isim.log @$(RM) $(WDB) @$(RM) $(SIMEXE) @$(RMDIR) isim/
A simple ./scripts/run.tcl
example:
# trace all top-level signals wave add / # run the simulation run all # show simulation time show time
See also for example:
https://gist.github.com/gvillalta99/11436605
Run the Xilinx ISE In-Depth Tutorial
cd ~/scratch/xilinx mkdir projects
cd ~/scratch/xilinx/projects ise &