Могу ли я использовать провод внутри всегда блока? Например:
wire [3:0]a;
assign a=3;
always @(c)
begin
d=a+c;
end
Он был скомпилирован без каких-либо ошибок. Почему?
Могу ли я использовать провод внутри всегда блока? Например:
wire [3:0]a;
assign a=3;
always @(c)
begin
d=a+c;
end
Он был скомпилирован без каких-либо ошибок. Почему?
Да, вы можете использовать значение провода внутри всегда блока, вы просто не можете присвоить значение проводу в всегда или в начальном блоке.
Единственная реальная разница между wire и reg — это синтаксис для присвоения значений.
В приведенном выше примере d также мог быть создан как проводник, это эквивалентно:
reg [3:0] answer_reg;
always @* begin
answer_reg = a + c;
end
wire [3:0] answer_wire;
assign answer_wire = a + c;
4'b0011
может быть представлена как GND GND VDD VDD
. wire vs reg имеет очень мало общего с аппаратным обеспечением, на самом деле это оптимизация симулятора.
- person Morgan; 28.02.2013