-
Постов
12 216 -
Зарегистрирован
Весь контент ViKo
-
Нет смысла махать кулаками после драки, но давайте попробуем. Что в вашем ответе понимается под синтезатором - Quartus или ModelSim? Надо думать - Quartus. Кто его просил синтезировать тестбенч? Который, кстати, обрамлен атрибутами не синтезировать? Почему он "проигнорировал" задержки? И почему задержки не "игнорируются", если тестбенч находится в другом файле? Я понимаю так, что это ModelSim перекомпилировал устройство_под_тестом, потому что оно находилось в том же файле. При этом он переписал рабочую библиотеку, и задержки исчезли, так как не были подключены альтеровские библиотеки. Я думаю, если бы я их подключил, задержки бы были. Когда же устройство_под_тестом отсутствовало, ModelSim использовал уже готовую библиотеку, полученную от Quartus'а. Также и когда модули были переставлены местами в скрипте - ModelSim для второго модуля получил уже "готовое". В терминах могу путаться...
-
Перевод с Ассемблера на С
ViKo ответил Slavast тема в MCS51, AVR, PIC, STM8, 8bit
Я читал: Гербердт Шилдт. Полный справочник по C Как-то полегче, чем Керниган и Ричи, системнее, что ли. Потом уже их книгу проштудировал, вникая во все нюансы. -
Моя идея (не совсем по теме, правда) - не ставить точку с запятой после объявления модуля, как принято при определении функций в языке C. Есть же module ... endmodule - все однозначно определяет начало и конец. В-общем, сблизить с языком C по-максимуму.
-
Кажется, вы не до конца разобрались в моем вопросе, и в способе его решения.
-
Спасибо! "Проканало!" Теперича придется и в скрипты погрузиться :) # Reading C:/Programs/Altera/91/modelsim_ase/tcl/vsim/pref.tcl # do exGlitch_run_msim_gate_verilog.do # if {[file exists gate_work]} { # vdel -lib gate_work -all # } # vlib gate_work # vmap work gate_work # Copying C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini # Modifying modelsim.ini # ** Warning: Copied C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini. # Updated modelsim.ini. # # vlog -vlog01compat -work work +incdir+. {exGlitch_8_1200mv_85c_slow.vo} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # # Top level modules: # exGlitch # # vlog -sv -work work +incdir+D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch {D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch.sv} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # -- Compiling module exGlitch_tb # # Top level modules: # exGlitch_tb # # vsim -t 1ps +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs="+acc" exGlitch_tb # vsim +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs=\"+acc\" -t 1ps exGlitch_tb # Loading sv_std.std # Loading work.exGlitch_tb # Loading work.exGlitch # # do D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch.tcl # if {[file exists gate_work]} { # vdel -lib gate_work -all # } # vlib gate_work # vmap work gate_work # Modifying modelsim.ini # # vlog -sv -work work +incdir+D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch {D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch.sv} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # -- Compiling module exGlitch_tb # # Top level modules: # exGlitch_tb # vlog -vlog01compat -work work +incdir+. {exGlitch_8_1200mv_85c_slow.vo} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # # Top level modules: # exGlitch # # vsim -t 1ps +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs="+acc" exGlitch_tb # vsim +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs=\"+acc\" -t 1ps exGlitch_tb # Loading sv_std.std # Loading work.exGlitch_tb # Loading work.exGlitch # Loading cycloneiii_ver.cycloneiii_routing_wire # Loading cycloneiii_ver.cycloneiii_io_obuf # Loading cycloneiii_ver.cycloneiii_io_ibuf # Loading cycloneiii_ver.cycloneiii_lcell_comb # Loading altera_ver.dffeas # Loading instances from exGlitch_8_1200mv_85c_v_slow.sdo # Loading altera_ver.PRIM_GDFF_LOW # Loading timing data from exGlitch_8_1200mv_85c_v_slow.sdo # ** Note: (vsim-3587) SDF Backannotation Successfully Completed. # Time: 0 ps Iteration: 0 Region: /exGlitch_tb File: D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch.sv # # add wave * # run 120 ns
-
Если подскажете скрипт для ModelSim, с помощью которого можно не симулировать exGlitch, скажу спасибо. Для него в NativeLink settings и место есть.
-
Тогда вам нужны АЦП, созданные по flash технологии (не путать с flash памятью), сильно жрущие, дорогие. Может быть, лучше сделать "интеллектуальный драйвер" аналоговый?
-
не до конца :) Допустим, будет у меня определение SIMULATE (или не будет). Если я запрещу компилировать свой модуль, что же мне тогда симулировать? Нужно, чтобы Quartus скомпилировал, а ModelSim - нет. А какой смысл имеет "Design Instance name in test bench" в NativeLink settings? Уделал! /* Проверка симуляции иголок */ `timescale 1 ns / 1 ps `define NOSIMULATE `ifdef NOSIMULATE /* example of glitch */ module exGlitch (input wire clk, output logic a = 1, b, c); always_ff @(posedge clk) a = !a; always_comb begin b = a & clk; c = a ^ b; end endmodule `else module exGlitch_tb; logic clk, a, b, c; exGlitch eG(clk, a, b, c); initial clk = 1; always #5 clk = !clk; endmodule `endif Сначала компилирую в Quartus'е, потом комментирую `define NOSIMULATE, сохраняю, и запускаю EDA Gate Level Simulation. Как-то все-же хреновато...
-
Да, именно, этого я и хочу. По файлам разносить - это у меня уже есть. Компилировать устройство после тестбенча из Quartus не получается. Другое имя - аналогично. А вот 4-й пункт - как это? Как заставить ModelSim не компилировать весь файл, а только тот тестбенч.
-
Да, верно. Еще один экспериментик провел - добавил в файл с тестбенчем тестируемый модуль. А чтобы не синтезировался (иначе Quartus ругается на две копии модуля), обложил матюками упомянутыми атрибутами. И Gate симуляция с использованием внешнего файла (в котором уже есть копия тестируемого модуля) потеряла задержки. Нельзя ли заставить ModelSim компилировать с учетом задержек? Библиотеки подключить?
-
Я неясно выразился, наверное. Конечно, проект перекомпилировался, было бы там чего компилировать. Но на результатах это не сказывается. "Ты скажи, какая вина на мне, боярин?!" (с) Иван Васильевич. По поводу скриптов - коль из отдельного файла тот же тестбенч симулируется нормально, то... ? По-моему, и скрипты в логах имеются.
-
В скриптах не разбираюсь. Вот что было в окне Transcript в ModelSim при тестбенче из того же файла: # Reading C:/Programs/Altera/91/modelsim_ase/tcl/vsim/pref.tcl # do exGlitch_run_msim_gate_verilog.do # if {[file exists gate_work]} { # vdel -lib gate_work -all # } # vlib gate_work # vmap work gate_work # Copying C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini # Modifying modelsim.ini # ** Warning: Copied C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini. # Updated modelsim.ini. # # vlog -vlog01compat -work work +incdir+. {exGlitch_8_1200mv_85c_slow.vo} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # # Top level modules: # exGlitch # # vlog -sv -work work +incdir+D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch {D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch.sv} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # -- Compiling module exGlitch_tb # # Top level modules: # exGlitch_tb # # vsim -t 1ps +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs="+acc" exGlitch_tb # vsim +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs=\"+acc\" -t 1ps exGlitch_tb # Loading sv_std.std # Loading work.exGlitch_tb # Loading work.exGlitch # # add wave * # view structure # .main_pane.structure.interior.cs.body.struct # view signals # .main_pane.objects.interior.cs.body # run 120 ns А вот что, когда тестбенч в отдельном файле # Reading C:/Programs/Altera/91/modelsim_ase/tcl/vsim/pref.tcl # do exGlitch_run_msim_gate_verilog.do # if {[file exists gate_work]} { # vdel -lib gate_work -all # } # vlib gate_work # vmap work gate_work # Copying C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini # Modifying modelsim.ini # ** Warning: Copied C:\Programs\Altera\91\modelsim_ase\win32aloem/../modelsim.ini to modelsim.ini. # Updated modelsim.ini. # # vlog -vlog01compat -work work +incdir+. {exGlitch_8_1200mv_85c_slow.vo} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch # # Top level modules: # exGlitch # # vlog -sv -work work +incdir+D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch {D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch_tb.sv} # Model Technology ModelSim ALTERA vlog 6.5b Compiler 2009.10 Oct 1 2009 # -- Compiling module exGlitch_tb # # Top level modules: # exGlitch_tb # # vsim -t 1ps +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs="+acc" exGlitch_tb # vsim +transport_int_delays +transport_path_delays -L altera_ver -L cycloneiii_ver -L gate_work -L work -voptargs=\"+acc\" -t 1ps exGlitch_tb # Loading sv_std.std # Loading work.exGlitch_tb # Loading work.exGlitch # Loading cycloneiii_ver.cycloneiii_routing_wire # Loading cycloneiii_ver.cycloneiii_io_obuf # Loading cycloneiii_ver.cycloneiii_io_ibuf # Loading cycloneiii_ver.cycloneiii_lcell_comb # Loading altera_ver.dffeas # SDF 6.5b Compiler 2009.10 Oct 1 2009 # # Loading instances from exGlitch_8_1200mv_85c_v_slow.sdo # Loading altera_ver.PRIM_GDFF_LOW # Loading timing data from exGlitch_8_1200mv_85c_v_slow.sdo # ** Note: (vsim-3587) SDF Backannotation Successfully Completed. # Time: 0 ps Iteration: 0 Region: /exGlitch_tb File: D:/ViKo/Projects/Quartus_Projects/Quartus_exGlitch/exGlitch_tb.sv # # add wave * # view structure # .main_pane.structure.interior.cs.body.struct # view signals # .main_pane.objects.interior.cs.body # run 120 ns Сейчас сам почитаю :) Чтобы он не компилировался, я его обложил атрибутами. Похоже, атрибуты synthesis translate_off Quartus'у до лампочки. Если задаю топ-модуль exGlitch_tb, получаю ошибку: Error: Can't synthesize current design -- Top partition does not contain any logic Вижу по логам, что библиотеки не прилепились, правильно?
-
Все равно, компилирую проект заново, или нет. не нужно. Не имеет значения. одинаковые. Не имеет значения. Когда задаю тестбенч в том же файле, Quatrus это принимает.
-
Gate Level Simulation в ModelSim из Quartus
ViKo опубликовал тема в Среды разработки - обсуждаем САПРы
Имею учебный проект, в котором есть файл со следующим содержимым (из темы про палки в RTL симуляции). /* Проверка симуляции иголок */ `timescale 1 ns / 1 ps /* example of glitch */ module exGlitch (input wire clk, output logic a = 1, b, c); always_ff @(posedge clk) a = !a; always_comb begin b = a & clk; c = a ^ b; end endmodule /* synthesis translate_off */ module exGlitch_tb; logic clk, a, b, c; exGlitch eG(clk, a, b, c); initial clk = 1; always #5 clk = !clk; endmodule /* synthesis translate_on */ Тот же exGlitch_tb имею в отдельном файле. Когда запускаю gate симуляцию из Quartus в ModelSim (с помощью NativeLink), и указываю тестбенч из отдельного файла, все симулируется нормально. Когда же указываю тестбенч в том же файле, где и сам пример, то симуляция работает как RTL, без учета задержек. Кто виноват? и Что делать? Обложил exGlitch_tb матюками атрибутами - пустое дело. -
Хотелось бы докопаться до истины в данном вопросе. Можно было бы поотключать поочереди сигналы, объединяемые по AND и посмотреть на результирующий сигнал сброса.
-
http://electronix.ru/index.php?pid=2 см. последний пункт. 50 сообщений, попроситесь в "свои"...
-
Это как? У вас напряжения питания насколько дергалось (или проседало постоянно) до того, как "поддали"?
-
SV always block
ViKo ответил dsp85 тема в Языки проектирования на ПЛИС (FPGA)
Для прояснения - always нужно задать список чувствительности, т.е. по какому событию будут выполняться операторы в блоке. Например, always @(posedge clk) срабатывает по фронту тактовой частоты. В блоке always_comb эта чувствительность подразумевается ко всем входящим в блок сигналам. Можно было написать always @*. От always_comb есть отличия, в стандарте описаны. -
так, может, в lock pll и дело?
-
SV always block
ViKo ответил dsp85 тема в Языки проектирования на ПЛИС (FPGA)
Попробуйте always_comb или assign -
Не понимаю! Когда в настройках Quartus NativeLink задаю тестбенч из отдельного файла (модуль Test из сообщения №37 скопировал в файл), gate симуляция работает правильно. Когда же задаю этот же модуль Test из файла, общего с тестируемым (как в сообщении №37), gate симуляция не отличается от RTL. Почему?
-
terminator в Quartus II
ViKo ответил shide тема в Среды разработки - обсуждаем САПРы
У меня были FLEX10K, ACEX, Cyclone II. Терминаторов не было. Перед предыдущим ответом я задал в книге по Quartus поиск слова terminator. Поиск не дал результатов. Потому и написал, с примечанием "вроде". Возможно, я не прав. Терминаторы включатся автоматически при выборе интерфейса, на который рассчитана ножка. А диоды - задайте для пина свойство PCI-compliant - вот вам и диоды. -
"Времена меняются, и корпуса меняются вместе с ними"
-
terminator в Quartus II
ViKo ответил shide тема в Среды разработки - обсуждаем САПРы
Для Clamp Diode смотрите PCI-Clamp Diode. А терминаторов, вроде, отродясь не было. -
Достал со шкафа альтеровскую Data Book 1996. На обложке картинка FLEX10K100 - керамический корпус с золоченой крышкой - теплоотводом. В начале раздела семейства FLEX 10K картинка - 7 микросхем разной емкости. У 10K40, 10K50, 10K70 корпуса точно такие, как на левой показанной выше "подозрительной" картинке. У 10K20, 10K30 - центральная часть не 8-гранная, а углы квадрата сглажены дугами. У 10К10 просто белая маркировка краской на корпусе. А в центре 10K100 - в том керамическом корпусе, что уже описал. За подлинность книги ручаюсь :) Могу повторить слова из песни... но уже громче!