addi II 1 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба Здравствуйте! Есть прибор , на нем ПЛИС 5576ХС3, схема не предусматривает какой либо сброс приходящий поле кофигурирования ПЛИС Поэтому все процессы без сброса регистров и сигналов. В итоге моделсим все внутренние сигналы показывает красным. Полскадие как в этих условиях сделать правильную поведенческкю модель которую можно прмоделирвать? Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба Приветствую! 33 minutes ago, addi II said: Здравствуйте! Полскадие как в этих условиях сделать правильную поведенческкю модель которую можно прмоделирвать? Три варианта - в порядке паршивости найти в симуляторе опцию автоматической начальной установки значений регистров при запуске сима. сделать установку начальных значений в блоках initial сделать модуль автоматической генерации внутреннего глобального ресета, а в нем (и только в нем) уже использовать второй вариант) Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 1 hour ago, RobFPGA said: найти в симуляторе опцию автоматической начальной установки значений регистров при запуске сима. никогда такой не пользовался, но всегда подозревал, что она есть :) 1 hour ago, addi II said: Есть прибор , на нем ПЛИС 5576ХС3, схема не предусматривает какой либо сброс приходящий поле кофигурирования ПЛИС Вот вам еще надо уточнить, а в какое состояние устанавливаются все внутренние значения после загрузки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 25 minutes ago, Tpeck said: никогда такой не пользовался, но всегда подозревал, что она есть :) Вот вам еще надо уточнить, а в какое состояние устанавливаются все внутренние значения после загрузки. на tcl можно написать, у модельсима есть команды для этого. а скорее всего (сам не пользовал) там все скопировано с альтеры - наверно есть какой-то атрибут начальной загрузки, тоже наверно, можно tcl-ем достать и выставлять в него, но такого я не делал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi II 1 8 марта, 2019 Опубликовано 8 марта, 2019 · Жалоба 20 hours ago, RobFPGA said: Приветствую! Три варианта - в порядке паршивости найти в симуляторе опцию автоматической начальной установки значений регистров при запуске сима. сделать установку начальных значений в блоках initial сделать модуль автоматической генерации внутреннего глобального ресета, а в нем (и только в нем) уже использовать второй вариант) Удачи! Rob. Я думал что initial используется только для тестбенчей... 20 hours ago, RobFPGA said: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 8 марта, 2019 Опубликовано 8 марта, 2019 · Жалоба Приветствую! 32 minutes ago, addi II said: Я думал что initial используется только для тестбенчей... Естественно initial в основном используется при симуляции. Но в модулях для синтеза можно делать и так reg reg_var_a,reg_var_b,reg_var_c; /* synthesis translate_off */ initial begin reg_var_a = 1'b0; reg_var_b = 1'b1; reg_var_c = 1'bx; ... end /* synthesis translate_on */ ... И в скобках translate_off/translate_on лепить нужные конструкции для симуляции. Ну и кое что в initial поддерживается при синтезе - например $readmem(b|h) для инициализации памяти. Но это сильно зависит от конкретного синтезатора. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 15 9 марта, 2019 Опубликовано 9 марта, 2019 · Жалоба Еще можно при объявлении переменных: reg [7:0] cnt = 0 ; Причем можно ставить даже не нулевые значения. reg [7:0] cnt = 8'd1 ; Тогда синтезатор автоматически добавит инверторы по входу и выходу треггера который должен быть установлен в 1 по включению питания. Это дополнительная логика, поэтому не рекомендую использовать второй вариант без крайней необходимости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 9 марта, 2019 Опубликовано 9 марта, 2019 · Жалоба Приветствую! 1 hour ago, BSACPLD said: Еще можно при объявлении переменных: reg [7:0] cnt = 0 ; ... Да можно и так. Но опять же это чаще для симуляции так как не все синтезаторы могут поддерживают инициализацию регистров таким способом. Ну а если и поддерживает то как будет реализована эта инициализация (доп. инвертором или непосредственное установкой в нужный уровень) зависит в основном от целевой архитектуры. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 15 9 марта, 2019 Опубликовано 9 марта, 2019 · Жалоба 7 minutes ago, RobFPGA said: Да можно и так. Но опять же это чаще для симуляции так как не все синтезаторы могут поддерживают инициализацию регистров таким способом. Насколько мне известно, почти все современные синтезаторы поддерживают данную конструкцию. Проверял на Quartus, Synplify, ISE и Vivado. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvlwork 0 13 марта, 2019 Опубликовано 13 марта, 2019 · Жалоба А еще в выходном нетлисте есть сигналы devpor, devclrn. Можно ими дернуть через force/release. В 09.03.2019 в 16:04, BSACPLD сказал: Это дополнительная логика, поэтому не рекомендую использовать второй вариант без крайней необходимости. Это бесплатная логика, т.к. трассировка все равно чаще идет через LUT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi II 1 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба On 3/7/2019 at 8:41 PM, RobFPGA said: найти в симуляторе опцию автоматической начальной установки значений регистров при запуске сима. сделать модуль автоматической генерации внутреннего глобального ресета, а в нем (и только в нем) уже использовать второй вариант) Можно эти 2 пункта более подробно? Промоделировал с inital, в modelsim, все ок Прошиваю, смотрю - модели нет(... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба On 3/7/2019 at 7:54 PM, addi II said: Здравствуйте! Есть прибор , на нем ПЛИС 5576ХС3, схема не предусматривает какой либо сброс приходящий поле кофигурирования ПЛИС Поэтому все процессы без сброса регистров и сигналов. В итоге моделсим все внутренние сигналы показывает красным. Полскадие как в этих условиях сделать правильную поведенческкю модель которую можно прмоделирвать? Спасибо В 5576ХС3 триггера с асинхронным ресетом. Можно сделать глобальный ресет по включению питания, все равно другой пользы от асинхронного ресета нет. И будет вам сброс и в модели и в железе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба Приветствую! 48 minutes ago, addi II said: Можно эти 2 пункта более подробно? Промоделировал с inital, в modelsim, все ок Во многих симулятора можно указать значение регистров (0 или 1) в начале симуляции (с помощью опции при компиляции или запуске сима. Как пример для vlog +initreg[=<spec>][+0|1|X|Z] Initialize variables of type indicated by <spec>.) По умолчанию это обычно X. Если логика дизайна не критична к процедуре сброса то тогда да - задали через глобально начальное значение как в целевой FPGA и будь что будет. А если критично то полагаться что само как то сбросится наивно. Спокойнее самому сделать так, чтобы быть уверенным что это произойдет и так как нужно и тогда когда надо. И если так случилось что нет внешнего сброса то самое простое это сделать на счетчике/регистре сдвига автомат формирующий глобальный импульс сброса для всей внутренней логики. С различной степенью параноидальности контролирующей что это произойдет. А для установки начального значения в таком модуле при симуляции как раз и использовать initial. 48 minutes ago, addi II said: Прошиваю, смотрю - модели нет(... О чем это? Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
druzhin 7 13 апреля, 2019 Опубликовано 13 апреля, 2019 · Жалоба On 3/7/2019 at 7:54 PM, addi II said: Здравствуйте! Есть прибор , на нем ПЛИС 5576ХС3, схема не предусматривает какой либо сброс приходящий поле кофигурирования ПЛИС Поэтому все процессы без сброса регистров и сигналов. В итоге моделсим все внутренние сигналы показывает красным. Полскадие как в этих условиях сделать правильную поведенческкю модель которую можно прмоделирвать? Спасибо Всё что красное - проинициализировать. Например: reg [31:0] bus; reg bus_en; initial {bus, bus_en} = '0; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться