нарвался на неправильное отображение значения сигналов в WAVEFORM-е
при определёном описании модулей на верилоге
Код
`timescale 1 ns / 1 ps
module test (
input RESET,
input CLK
);
reg ALE;
reg[7:0] bus1DATAout, bus2DATAout, bus3DATAout, bus4DATAout;
always @(posedge CLK)
if (!RESET)
begin
ALE <=#1 0;
end
else
begin
ALE<=#1 ~ALE;
if (ALE)
begin
bus1DATAout[7:4] <=#1 4'h0;
bus1DATAout[3:0] <=#1 4'ha;
bus2DATAout[7:4] <=#1 4'h0;
bus2DATAout[3:0] <=#1 4'ha;
bus3DATAout[7:4] <=#1 4'h0;
bus3DATAout[3:0] <=#1 4'ha;
bus4DATAout[7:4] <=#1 4'h0;
bus4DATAout[3:0] <=#1 4'ha;
end //if
else
begin
bus1DATAout[7:4] <=#1 4'ha;
bus1DATAout[3:0] <=#1 4'h0;
bus2DATAout[7:4] <=#1 4'ha;
bus2DATAout[3:0] <=#1 4'h0;
bus3DATAout[7:4] <=#1 4'ha;
bus3DATAout[3:0] <=#1 4'h0;
//bus4DATAout[7:4] <=#1 4'ha;
//bus4DATAout[3:0] <=#1 4'h0;
bus4DATAout<=#1 8'ha0;
end
end
initial
while(1)
begin
@(ALE);
$display("Time- %t",$time);
$display("bus1 - 0x%x",bus1DATAout);
$display("bus2 - 0x%x",bus2DATAout);
$display("bus3 - 0x%x",bus3DATAout);
$display("bus4 - 0x%x",bus4DATAout);
$stop;
end
endmodule

а вот что в waveform получается
если же присваивать целиком всему регистру тоесть вместо
Код
bus4DATAout[7:4] <=#1 4'ha;
bus4DATAout[3:0] <=#1 4'h0;
написать
Код
bus4DATAout<=#1 8'ha0;
то эта "мегафича" не проявляется
p.s. версия - 7.1 build 1583.SP2.09
Сообщение отредактировал Postoroniy_V - Aug 11 2006, 11:00