Учтите, что у меня есть общий модуль verilog, который я хочу экспортировать в 2 разных типа конструкций - один при сбросе синхронизации, а другой при асинхронном сбросе.
Каков будет правильный способ кодирования всегда блока в этом общем модуле, чтобы он отлично работал в обоих видах конструкций? Я думаю, что мы можем использовать блок асинхронного сброса, как это -
always @(posedge clk or negedge reset_) begin
if(!reset_) temp <= 'd0;
else <do something>
end
Если я использую синхронизирующий сброс, то в конструкциях асинхронного сброса у меня возникает проблема, если часы запускаются намного позже, чем сброс-подтверждение сброса, поэтому требуемый сброс можно полностью пропустить.
При сбросе синхронизации мы знаем, что позиция clk и необходимость возврата reset_ будут совпадать всегда, так есть ли проблема с этим?