====== Verilog/VHDL simulations with Xilinx ISE Simulator (ISim) ======
[ __[[vlsi:workbook:fpga|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]] (nice and complete!) \\
[[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 )
====== Library mapping file ======
Example:
-- user libraries
work = ./libraries/worklib
vhdl_lib = ./libraries/vhdl_lib
-- STD and IEEE libraries
std = /opt/edatools/xilinx/ISE14.6/ISE/vhdl/hdp/lin/std
ieee = /opt/edatools/xilinx/ISE14.6/ISE/vhdl/hdp/lin/ieee
Note that by delfault a ''xilinxisim.ini'' library mapping file is searched and loaded from
* ''$XILINX/vhdl/hdp/lin/xilinxisim.ini''
* ''./xilinxisim.ini''
It is recommended to use the ''-initfile'' flag with ''vlogcomp/vhpcomp'' compilers or ''fuse'' elaborator and linker indeed.
====== 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 fuse -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]]
====== Tutorials ======
__[[vlsi:workbook:fpga:hdlsim:tutorials|Xilinx WorkBook tutorials]]__
====== ======
\\
----
Last update: [[pacher@NOSPAMto.infn.it|Luca Pacher]] - Oct 24, 2013
~~NOTOC~~