Не работает счетчик.

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
Serg1987
Встал на лапы
Сообщения: 129
Зарегистрирован: Пн июн 13, 2016 10:41:52

Не работает счетчик.

Сообщение Serg1987 »

Здравствуйте. Написал простую реализацию счетчика.
Код вот

Код: Выделить всё

module modulesd
(
   input hz,
   input reset,
   output reg clk = 1'b0
);

   reg [0:47] cmd;
   reg [23:0] counter = 24'b0;
//---------------------------------------
always @(posedge reset or posedge hz)
begin
  if(reset)
    counter <= 24'b0;

  else
    begin
      counter <= counter + 1'b1;
      if(counter+1==24'd2)
	       begin
                       counter <= 24'b0;
                       clk <= ~clk;
		   end
    end
      
end
//---------------------------------------
endmodule
Счетчик 24-разрядный. Досчитав до 2-х - сбрасывается, и инвертирует состояние ножки clk. Однако, после запуска на ножке clk неизменно висит высокий уровень. Клоки подаются с частотой 1 Гц. Но линия clk поднявшись один раз, более ни на что не реагирует. А в симуляции всё нормально. Что это может быть? :dont_know:
Реклама
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Re: Не работает счетчик.

Сообщение Alik221 »

Вы одновременно увеличиваете счётчик на единицу, сравниваете и присваиваете нулю - из-за этого наверное и не работает. В предупреждениях наверняка выдало подобные сообщения. К тому же, сравниваете число предварительно сложив его с единицей - это лишний сумматор.
А вообще - не ясно, что хотите от кода. В итоге - вы реализовали делитель на 2, для реализации которого можно было просто выполнять в каждом такте clk <= clk + 1.
Реклама
Ответить

Вернуться в «ПЛИС»