OM-S
Участник-
Постов
22 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о OM-S
-
Звание
Участник
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
3 020 просмотров профиля
-
Для vsim дополнительно указать параметр -t с нужной точностью (fs, ns, ...) . Типа vsim -t fs .... Как Вы и делали. Должно работать... Вот такой запуск точно работает: vsim -L com_library -l transcript.txt -i -t ps -multisource_delay latest +typdelays com_library.test_clk(arc)
-
Если я правильно понял вопрос, то Вы хотите, чтобы вектор reg [31:0] addr_offset = 'h10000000; переданный в таск c параметром reg addr [0:31] (неупакованный массив!) имел значение addr [0:31] = 'h00000008 (то есть addr[28] ==1 так же как и в исходном addr_offset [28]==1) Вариант решения для sv - использовать {<<{}}: logic [31:0] addr_offset; logic addr_tmp [0:31]; logic dout [0:31]; task demo_task(input logic addr[0:31], output oo [0:31]); oo = addr; endtask assign addr_offset = 'h10000000; assign addr_tmp = {<<{addr_offset}}; always_comb begin demo_task(addr_tmp, dout); end Приведенный пример в Вивадо моделируется и синтезируется.
-
А если написать вот так: wire nextBit = counter < 4 ? in : feedback; И заодно в тестбенче лучше генерить клок так: initial begin clk <= 0; forever #5 clk <= ~clk; end
-
Да, конечно, нужно сделать синхонную загрузку или обнуление (что вам нужно по заданию) счетчика. Делаете дополнительный вход (reset, например) и по нему обнуляете. А если совсем по простому, то можно попробовать так (по крайней мере в sv) module count (input clk, output reg [1:0]counter = 0); always @(posedge clk) counter <= counter + 1; endmodule
-
Задайте начальное значение счетчику (обнулите). Вы же сигналу clk в тестбенче задали начальное значение перед инверсией.
-
ModelSim, вопросы новичка
OM-S ответил alex1985 тема в Языки проектирования на ПЛИС (FPGA)
В tb.v поставьте начальное значение для регистра clk, иначе инверсия неизвестного значения даст неизвестное значение Не могу запустить ваш пример и проверить, но в в macros.do наверно нужно указать симуляцию с разрешением 1ps.(строка 4 vsim -t 1ps tb). Pll обычно симулируются с пикосекундными разрешениями. -
SV testbench
OM-S ответил lennox тема в Языки проектирования на ПЛИС (FPGA)
Расизм я вижу между параллельными fork-ами и собственно захватом данных в фифо по фронту aclk. begin ... 1: rand_pulse = 1; 5: rand_pulse = 0; @(posedge aclk); ... end и begin ... s_axis_tvalid = rand_pulse; if (rand_pulse) s_axis_tdata = $urandom_range(255,0); @(posedge aclk); ... end Какой из блоков выполнится первым и какое значение (старое или новое) s_axis_tvalid, s_axis_tdata защелкнится на входе ФИФО по фронту клока? -
SV testbench
OM-S ответил lennox тема в Языки проектирования на ПЛИС (FPGA)
Кажется эта ситуация называется race condition. Данные и valid меняются "одновременно" с клоком, поэтому новые значения могут захватиться либо на текущем клоке, либо только на следующем (на усмотрение симулятора). Поставьте после @(posedge aclk) небольшую паузу #1 и тогда изменения сигалов будет гарантированно после фронта слока. По этому поводу (и по многим другим) очень рекомендую почитать книжку Verilog and system verilog gotchas. 101common coding errors and how to avoid them. -
Простое ОЗУ [3:0]
OM-S ответил demsp тема в Языки проектирования на ПЛИС (FPGA)
Например у Ксайлинкса в документе ug687 в разделе 6 HDL coding techniques http://www.xilinx.com/support/documentatio..._4/xst_v6s6.pdf -
Кажется в блоке always нужно заменить блокирующее присваивание на неблокирующее. То есть вместо = использовать <=
-
Неужели действительно Квартус выкидывает логику, которая идет на пины, которым присвоено "virtual pins" ?
-
Про мультицикл уже ответили. Когда я разбирался, мне очень помогли статьи здесь http://embedders.org/content/timequest-dly...bnyi-multicycle
-
Проект можно сохранить File->Write Project TCL Запустив потом этот скрипт, Vivado заново создаст проект со всеми настройками и т.д.
-
Вопрос по VHDL
OM-S ответил jenya7 тема в Языки проектирования на ПЛИС (FPGA)
Если вы про сигнал CLK_DIV, то да, после CLK_DIV = "1111" будет CLK_DIV = "0000" -
Осторожно Квартус 15.1
OM-S ответил des00 тема в Языки проектирования на ПЛИС (FPGA)
Странно. Я Вам привел конкретный пример когда система моделирования воспринимает результат взятия элемента знакового массива как беззнаковый результат. Полностью подходит под Ваш пример (хотя у Вас не указано, как объявлена переменная rdata_ptr). Впрочем, не вижу смысла Вам чего-то доказывать.