Я пытаюсь понять синтаксис System Verilog. Я изо всех сил пытался закончить назначение, и я столкнулся с этим решением, но я не понимаю, почему оно работает.
localparam int lo = w;
uwire [n:0] lo_bits, hi_bits;
assign answer = lo_bits == nlo ? lo_bits + hi_bits : lo_bits;
Это не совсем то, что я имею в своем коде, но мой вопрос заключается в следующем:Почему я не могу переписать это в простой блок if-else как таковой?
if (lo == lo_bits)
assign answer = lo_bits + hi_bits;
else
assign answer = lo_bits;
Verilog жалуется, что lo_bits - это uwire, и я не могу сравнить его с lo, но тогда почему это разрешено в примеревыше? Разве эти два задания не эквивалентны?
Большое спасибо за помощь!