@sdxq

Инициализация регистра. Побочные эффекты?

1. reg [2:0] a = 3'b100;
2. reg [2:0] a;
always @(posedge clk)
if(rst)
a = 3'b100;
else
begin
//
end
Да, я понимаю, что в варианте №2 есть доп сигнал сброса. Но вопрос: какие могут быть побочные эффекты (различия в поведении) в случае использования варианта №1 или №2?
  • Вопрос задан
  • 834 просмотра
Решения вопроса 1
@Emil2014
Оба варианта синтезируемы. Вариант 1:
Прошили (вкл. питание) - регистр установился "100", изменили как-то, захотели вернуться к исходному состоянию - а нет сигнала установки! Будет до отключения питания хранить последнее измененное значение.
Вариант 2:
Прошили (вкл. питание) - регистр установился "100", изменили как-то, захотели вернуться к исходному состоянию - дернули rst!
В синтезе даст разные конструкции - вариант 1, возможно будет быстрее и меньше по ресурсам, чем вариант 2.
Кстати, в ISE Xilinx симуляторе вариант 2 даст неопределенное состояние по запуску до явной подачи rst = 1. В VHDL я совмещаю оба варианта в начале определяю регистр с исходным значением, а в процессе использую сигнал сброса(установки).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iDoka
@iDoka
HW Design Engineer
какие могут быть побочные эффекты

1й вариант: будет т.н. synthesis-simulation mismatch, поскольку согласно LRM (да и в большинстве правильных CAЕ) данная конструкция несинтезируема
Ответ написан
AlanDrakes
@AlanDrakes
В случае 2 явный сброс происходит по фронту тактового сигнала при наличии сигнала сброса.
В случае 1 - сразу после описания.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы