Счетчик сделал на верилоге и реализовал аппаратно. Но я не могу объяснить поведение Код:
module clock_test(clk_in,led,rst);
input wire clk_in;
input wire rst;
output wire [7:0] led;
reg [23:0] counter = 24'b0;
assign led = counter[23:16];
always @(posedge clk_int) begin
if(rst) begin
counter <= 0;
end
else begin
counter <= counter +1;
end
end
endmodule // clock_test
Аппаратно, когда я нажимаю rst
, светодиоды останавливаются в момент подсчета. Он не становится точно нулевым. Подтвердите rst
, и вы увидите какой-то случайный шаблон, отличный от нуля, который не изменится, пока я не отпущу rst
.
Мой вопрос: когда блок if(rst) begin
выполняется, counter
устанавливается в 0. Поскольку светодиоды назначаются как комбинированная логика из counter
, разве это не должно отражаться немедленно?
rst
низкий? Часы на всегда блоке неверны. Должно бытьclk_in
, а неclk_int
. - person Greg   schedule 22.01.2013