Про Modelsim, советы и рекомендации.
В данной статье будут публиковаться рекомендации по работе, советы, подсказки.
Оглавление.
- Создание и моделирование проекта на verilog.
- XILINX ISE запуск симуляции ModemSim(QuestaSim) Error: can't read "env(XILINX)": no such variable.
- Компиляция библиотек Xilinx(ISE 14.7) для ModemSim (QuestaSim).
- Компиляция библиотек Lattice для ModelSim.
- Компиляция библиотек Altera/Intel.
Создание и моделирование проекта на verilog.
Рассмотрим как промоделировать проект на основе исходных файлов verilog в среде Modelsim.
Запуск моделирования будет осуществляться при помощи скрипта, DO файла.
Для моделирования необходимо создать следующие файлы:
1. Исходный файл(ы) проекта на языке verilog.
2. Исходный файл test-bench - тестовых воздействий на языке verilog.
3. Файл скрипта, DO - файл, с командами для запуска моделирования в Modelsim.
Тестовый проект с примерами файлов находится здесь, zip архив.
Пример файла скрипта, DO - файл (из архива).
# Печать в консоль запускаемых команд.
transcript on
# Удаление директории и библиотеки, если существует.
if {[file exists rtl_work]} {
vdel -lib rtl_work -all
}
# Создание библиотеки
vlib rtl_work
# Привязка библиотеки к work.
vmap work rtl_work
# Компиляция исходника счетчика.
vlog -vlog01compat -work work +incdir+C:/test_counter {C:/test_counter/counter.v}
# Компиляция тестового файла.
vlog -vlog01compat -work work +incdir+C:/test_counter {C:/test_counter/tb.vt}
# Запуск симуляции с аппаратно зависимыми компонентами семейства (для примера).
#vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneii_ver -L rtl_work -L work -voptargs="+acc" tb
# Запуск симуляции, tb - имя модкля теста.
vsim -t 1ps -L rtl_work -L work -voptargs="+acc" tb
# Добавить временную диаграму для входного сигнала i_clk.
add wave /tb/i_clk
# Добавить временную диаграму для выходного сигнала o_count, при этом сигнал отображается в формате UNSIGNED !
add wave -radix UNSIGNED /tb/o_count
# Шкала времени в ns.
configure wave -timelineunits ns
# Добавить все сигналы тестбенсча в окно временных диаграм (здесь не используется, оставлено для примера).
#add wave *
# Просмотр структуры проекта
view structure
# Просмотр сигналов проекта
view signals
# Запуск
run -all
# Показать временные диаграмы по всей длинне окна.
# wave zoom full
Запуск моделирования.
1. Необходимо запустить modelsim.
2. Затем в командной строке (modelsim-a) перейти в директорию проекта.
Пример: проект находится в директории C:\test_counter
cd /
cd test_counter
3. Запустить скрипт на выполнение.
do run_test.do
XILINX ISE запуск симуляции ModemSim(QuestaSim) Error: can't read "env(XILINX)": no such variable.
При запуске симуляции ModelSim(QuestSim) выдает ошибку:
# ** Error: can't read "env(XILINX)": no such variable
Решение 1.
Запустить ModelSim из Xilinx консоли.
Запуск консоли (в Windows7):
Меню ПУСК -
- Все программы
- Xilinx Design Tools
- ISE Design Suite 14.7
- Accessories
- ISE Design Suite 32 Bit Command Prompt
Затем в окне консоли набрать:
C:\questasim64_10.4\win64\vsim.exe -do sim.do
где:
-do sim.do - команда ModelSim загрузить и запустить DO скрипт, симуляции проекта.
Решение 2.
Прописать значение переменной XILINX=C:\Xilinx\14.7\ISE_DS\ISE в файле cmd(bat) перед запуском ModelSim.
Пример:
set XILINX=C:\Xilinx\14.7\ISE_DS\ISE
C:\questasim64_10.4\win64\vsim.exe -do sim.do
Компиляция библиотек Xilinx(ISE) для ModemSim(QuestaSim).
Все действия производятся в Xilinx ISE 14.7 под Windows(7).
Среда моделирования QuestaSim(ModelSim), устанавливается отдельно.
Для того чтобы QuestaSim(ModelSim) могла моделировать FPGA от Xilinx необходимо произвести два действия:
1. Произвести компиляцию библиотек.
2. Подключить библиотеки к QuestaSim(ModelSim).
1. Произвести компиляцию библиотек.
Запустить компилятор библиотек (ISE 14.7): C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlib.exe
Затем по шагам как на картинках:
2. Подключить библиотеки к QuestaSim(ModelSim).
Готовые библиотеки будут находится (C:\Xilinx\14.7\ISE_DS\ISE\<language>\<simulator>\<version>\<platform>) тут:
C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64\
Там же находится файл modelsim.ini, в секции [Library] находятся пути к только что созданным библиотекам:
secureip = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/secureip
unisims_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/unisims_ver
unimacro_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/unimacro_ver
simprims_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/simprims_ver
xilinxcorelib_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/xilinxcorelib_ver
uni9000_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/uni9000_ver
cpld_ver = C:\Xilinx\14.7\ISE_DS\ISE\verilog\questasim\10.4\nt64/cpld_ver
Прописываем данные пути в QuestaSim в файл C:\questasim64_10.4\modelsim.ini
Запускаем QuestaSim и наблюдаем подключенные библиотеки в окне Library.
Готово !
Запускаем ModelSim.
Создаем библиотеку.
В меню File -> New -> Library.
и вводим имя библиотеки (например по названию семейства lattice):
Производим компиляцию исходников.
В меню Compile -> Compile...
В выпадающем меню (с верху) Library выбираем созданную нами библиотеку:
Выбираем файлы исходников для компиляции, для этого переходим в папку:
C:\lscc\diamond\3.5_x64\cae_library\simulation\verilog\
и затем заходим в папку с нужным семейством.
Выделяем все файлы в папке и нажимает кнопку Compile.
Ждем окончания компиляции и затем нажимаем на кнопку Done.
Готово ! Библиотеки откомпилированы.
Прописываем библиотеки в ModelSim:
Открываем файл в корневой директории ModelSim: modelsim.ini в текстовом редакторе.
и добавляем строку:
xp2 = C:/questasim64_10.4/examples/xp
Внимание:
Необходимо добавить в TestBench следующие строки:
GSR GSR_INST(.GSR(1'b1));
PUR PUR_INST(.PUR(1'b1));
Это нужно для некоторых IP блоков (FIFO, и других...) иначе ModelSim будет ругаться что IP блоки не находят глобальные сигналы.