Начинаю работать с ПЛИС. Хочу сделать устройство, выделяющее четные и нечетные единицы в исходной информационной последовательности.
написал следующий код:
Код
module Try_AND
(
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
clock, data, ones, zeroes
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
);
// Port Declaration
input clock;
input data;
output ones;
output zeroes;
// {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
// {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
wire p1;
reg out_c;
reg out_n;
assign ones = out_c & data;
assign zeroes = out_n & data;
assign p1 = data & clock;
always @(posedge p1) begin
out_c<=~out_c;
out_n<=out_c;
end
endmodule
(
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
clock, data, ones, zeroes
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
);
// Port Declaration
input clock;
input data;
output ones;
output zeroes;
// {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
// {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
wire p1;
reg out_c;
reg out_n;
assign ones = out_c & data;
assign zeroes = out_n & data;
assign p1 = data & clock;
always @(posedge p1) begin
out_c<=~out_c;
out_n<=out_c;
end
endmodule
Первая просьба. Посмотрите, вообще правильно пишу?
Второй вопрос, Квартус выдает следующий анализ:
Нажмите для просмотра прикрепленного файла
Такой сдвиг относительно исходных сигналов - это нормально? Я понимаю, задержка и все такое, но как-то много. И как избавиться от коротких импульсов, возникающих, видимо, как раз из-за этой задержки?
Спасибо.