Перейти к содержанию
    

ModelSim Altera и задержки.

Здравствуйте.

 

Работаю на Quartus9.1. Для моделирования использую ModelSim Altera.

 

Проблема в том, что картинки которые рисует ModelSim не учитывают задержки распространения сигнала

внутри ПЛИС (мне так кажется).

 

Запускаю ModelSim после компиляции проекта прямо из квартуса с помощью меню

Tools-> Run EDA Simulation Tools -> EDA Gate Level Simulation...

Пишу тест бенч.

У меня есть сигнал A на входе ПЛИС и зависящий от него сигнал B на выходе ПЛИС.

Так вот ModelSim рисует картинки так, что сигнал B мгновенно повторяет сигнал A. Чего конечно не может быть.

 

Есть ли средство, чтобы ModelSim рисовал относительно реальные картинки ?

Может я что-то не так делаю ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где мне посмотреть подключился sdf файл или нет ?

 

Посмотрите вот эту тему http://electronix.ru/forum/index.php?showtopic=80467

 

Посмотрел я эту тему.

sdf Файла у меня ни где нет, есть sdo.

Является ли sdo заменой sdf ?

 

В теме сказано что должен быть некий файл .vo

в котором должна быть строка подключающая sdf файл: initial $sdf_annotate("../netgen/par/name.sdf");

Просмотрел папки проекта и рабочую папку моделсим, нет у меня .vo файла.

Есть некий файл .vho но в нем нет ни какой строки типа initial $sdf_annotate.

 

Может мне еще что-то где-то надо откомпилировать чтобы получить нужные файлы?

Пока не знаю что делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где мне посмотреть подключился sdf файл или нет ?

Изучайте матчасть (в смысле, ModelSim) : http://www.altera.com/literature/hb/qts/qts_qii53001.pdf

и http://www.altera.com/literature/hb/qts/qts_qii53025.pdf

 

sdf Файла у меня ни где нет, есть sdo.

Является ли sdo заменой sdf ?

Это оно есть.

 

В теме сказано что должен быть некий файл .vo

...

Просмотрел папки проекта и рабочую папку моделсим, нет у меня .vo файла.

Есть некий файл .vho но в нем нет ни какой строки типа initial $sdf_annotate.

Пишете на VHDL?

 

P.S. До кучи еще это : http://electronix.ru/forum/index.php?showt...st&p=934293

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При запуске ModelSim Altera из квартуса выполняется файлик TOPLevel_run_msim_gate_vhdl.do

который содержит следущее:

transcript on

if {[file exists gate_work]} {

vdel -lib gate_work -all

}

vlib gate_work

vmap work gate_work

vcom -93 -work work {TOPLevel.vho}

 

Потом я компилирую свой TestBench командой

vcom -reportprogress 300 -work work myWork/toplevel_vhd_tst.vht

 

Теперь надо создать симуляцию.

Раньше я делал это командой

vsim -voptargs=+acc work.toplevel_vhd_tst

не помню откуда я ее взял. В итоге задержки не учитываются.

 

Изучайте матчасть (в смысле, ModelSim) : http://www.altera.com/literature/hb/qts/qts_qii53001.pdf

 

Изучаю мат ее часть.

В ней на странице 11 приведен Example 2–5. для запуска Gate-Level Timing Simulation:

 

vsim +transport_int_delays +transport_path_delays -sdftyp \

<instance path to design> = <path to SDO file> -L work \

-L stratixiii -L altera work.testbench

 

Помогите мне правильно написать эту команду для моего случая.

ПЛИС - MAXII EPM570T144C5

VHDL Output file - TOPLevel.vho

sdo Файл - TOPLevel_vhd.sdo

TestBench - toplevel_vhd_tst

 

Пробовал так

vsim +transport_int_delays \

+transport_path_delays \

-sdftyp i1 = TOPLevel_vhd.sdo \

-L work \

-L maxii \

-L altera work.toplevel_vhd_tst

 

Тогда ModelSim пишет следующее:

# vsim +transport_int_delays +transport_path_delays -L work -L maxii -L altera -sdftyp i1 = work.toplevel_vhd_tst

# ** Error: (vsim-SDF-3196) Failed to find SDF file "i1".

# Error loading design

 

Пробовал так:

vsim +transport_int_delays +transport_path_delays -L work -L maxii -L altera -sdftyp TOPLevel_vhd.sdo work.toplevel_vhd_tst

Тогда ModelSim пишет следующее:

# Loading instances from TOPLevel_vhd.sdo

# ** Error: (vsim-SDF-3250) TOPLevel_vhd.sdo(1102): Failed to find INSTANCE 'BoardSelected_rg'.

# Длинный список не найденных экземпляров....

 

Что же ему написать, чтобы он сделал мне Gate-Level Timing Simulation ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потом я компилирую свой TestBench командой

vcom -reportprogress 300 -work work myWork/toplevel_vhd_tst.vht

 

А вы попробуйте прикрутить тестбенч там же в настройках... Должно получится примерно следующее:

transcript on
if {[file exists gate_work]} {
    vdel -lib gate_work -all
}
vlib gate_work
vmap work gate_work

vlog -vlog01compat -work work +incdir+. {TOP_SW_ISA.vo}

vlog -vlog01compat -work work +incdir+C:/altera/91/quartus/MB2355_SW_HOST_AND_SLAVE/simulation/modelsim {C:/altera/91/quartus/MB2355_SW_HOST_AND_SLAVE/simulation/modelsim/TOP_SW_ISA_TB.v}

vsim -t 1ps +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs="+acc" UUT

add wave *
view structure
view signals
run -all

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пробовал так

vsim +transport_int_delays \

+transport_path_delays \

-sdftyp i1 = TOPLevel_vhd.sdo \

-L work \

-L maxii \

-L altera work.toplevel_vhd_tst

i1 - это что у Вас такое?

ЕМНИП, это должно быть имя компонента, под которым Ваш пост-плейс-энд-раут нетлист подключен в тестбенче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

i1 это у меня метка экземпляра компонента в TestBench Файле

 

i1 : TOPLevel PORT MAP(...)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно у меня не получается прицепить SDO файл присоздании симуляции.

 

Как только в команде vsim появляется ключ -sdftyp PIN_MAX_vhd.sdo

 

ModelSim тут же осыпается сообщениями:

 

# Loading std.standard

# Loading ieee.std_logic_1164(body)

# Loading work.pin_max_tb(arch1)

# Loading std.textio(body)

# Loading ieee.vital_timing(body)

# Loading ieee.vital_primitives(body)

# Loading maxii.maxii_atom_pack(body)

# Loading maxii.maxii_components

# Loading work.pin_max(structure)

# Loading ieee.std_logic_arith(body)

# Loading maxii.maxii_io(behave)

# Loading maxii.maxii_lcell(vital_le_atom)

# Loading maxii.maxii_asynch_lcell(vital_le)

# Loading maxii.maxii_lcell_register(vital_le_reg)

# Loading instances from PIN_MAX_vhd.sdo

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(1116): Failed to find INSTANCE 'BoardSelected_rg'.

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(1116): Failed to find INSTANCE 'lecomb'.

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(1136): Failed to find INSTANCE 'lereg'.

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(3267): Failed to find INSTANCE 'Ready_rg'.

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(3267): Failed to find INSTANCE 'lecomb'.

# ** Error: (vsim-SDF-3250) D:/99_Work/01_w_quartus/01_XperTest/PIN_MAX/simulation/modelsim/PIN_MAX_vhd.sdo(3281): Failed to find INSTANCE 'lereg'.

 

Я лазил в файл PIN_MAX_vhd.sdo

Там действительно есть записи типа

(CELLTYPE "maxii_asynch_lcell")

(INSTANCE BoardSelected_rg.lecomb)

(DELAY .....

 

Тогда я не понимаю текст ошибки который выдает ModelSim.

Что он не может отыскать ?

 

 

УРАААА Зацепил.

 

Записал так:

 

vsim -sdftyp /i1=PIN_MAX_vhd.sdo work.pin_max_tb

 

Вся фишка в том, что кусок текста "/i1=PIN_MAX_vhd.sdo"

нельзя разрывать пробелами.

 

"/ i1 = PIN_MAX_vhd.sdo" Так уже не работает, а по тексту ошибки хрен поймешь чего не так.

 

Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал с "level gate", очень долго симулирует. Делал так. С квартуса запускаю симуляцию запускается модельсим. В модельсиме создаю проект и включаю

свой допустим test.sv и созданный test.vo (в test.vo должно быть прописано initial $sdf_annotate("test_v.sdo");). Компилирую, открываю окно симуляции выделяю

тестовый модуль и в закладке Libraries добовляю библиотеку(и) в моем случае maxii, т.е. я ставлю путь к директории maxii с помощью browse... и ОК.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...