Следующий набор кодов делает то же самое. Есть ли разница между ними? Если нет, то почему wait (clk)
обычно не используется?Разница между выражением «wait» и «@»
always @(posedge clk)
begin
end
always wait(clk)
begin
end
Следующий набор кодов делает то же самое. Есть ли разница между ними? Если нет, то почему wait (clk)
обычно не используется?Разница между выражением «wait» и «@»
always @(posedge clk)
begin
end
always wait(clk)
begin
end
@(posedge clk)
является чувствительной кромки, следовательно, он используется для моделирования синхронных circuits.While, wait(clk)
является уровень sensitive.Since большинство схем предназначены для синхронного @(posedge clk)
преимущественно используется
wait (expression)
«выражение "оценивается, если false, то выполнение приостанавливается до тех пор, пока выражение не станет истинным. Если выражение истинно, когда оператор достигнут, то ожидание не действует, и выполнение переходит к управляемому выражению.
@(posedge clk) - is an edge event.
posedge:0,x,z->1 negedge:1,x,z->0
Краевые события полезны для моделирования логических элементов с тактовой частотой, таких как триггеры. Они также полезны для синхронизации активности в модели на основе общих часов. Например, в следующем всегда блоке он входит в блок always
на отрицательном фронте часов.
always @(negedge clock)
x = f(y);
Обратите внимание, что второй блок 'always' будет висеть на симуляторе, если' clk' переходит на 1, если в блоке нет других задержек. Он перейдет в бесконечный цикл. –