-1
В чем разница между использованием
~
тильды и!
восклицательным знаком для неинвертирования или инвертирования сигнала.В Verilog, в чем разница между ~ и?always @(posedge clock) begin z=(!x&!y&Q1); Q1=(~x&~y|z); end
Какая разница он будет делать, если не блокирует
=
был снят и заменен, как в коде ниже.always @(posedge clock) begin z<=(!x&!y&Q1); Q1<=(~x&~y|z); end
Просто чтобы прояснить и лучше понять, почему чувствительный список содержит все переменные потому, что задания на LHS (например, г, Q1) должны управляться входами на RHS, которые являются x, y, Q1, z. Если чувствительный список был составлен только из часов, то единственный раз, когда изменения z, Q1 будут меняться, происходит при положительном фронте часов и не из-за изменения входа. – newb7777
@ newb7777: Вы не должны пытаться понять, что с предложениями, например * «Значение X изменится, когда ...» *. Вы должны попытаться иметь в виду «физическое» представление ворот, которые будут созданы. Список чувствительности - это то, что вашему компилятору и симулятору необходимо правильно эмулировать поведение создаваемых вами ворот. Я не читал его, но это могло бы помочь: https://www.edgefx.in/digital-logic-circuits/. – Plouff
@ newb7777: Другими словами, комбинаторная логика и последовательная логика имеют совершенно другое поведение. Понимание этих различий является обязательным требованием для проектирования аппаратного обеспечения с использованием языков HDL. – Plouff