МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА: В чем ошибка?

В чем ошибка? 4 года 5 мес. назад #2625

  • Dj_Crush
  • Dj_Crush аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 1
  • Спасибо получено: 0
Добрый день!
подскажите почему данный код не работает и квартус выдает ошибку:

module clock_div(
input clk,
output clk_out


);

reg [22:0] cnt = 23'd0;
reg clk_out;
always @(posedge clk)
begin
cnt <= cnt + 1'b1;



if(cnt == 23'd2500000)
begin
cnt <= 0;
assign clk_out = ~clk_out;
end

end
endmodule
в чем ошибка.

и как в симуляторе квартус увидеть счетчит clk (чтобы были видны тактирующие импульсы)
спасибо!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: В чем ошибка? 4 года 5 мес. назад #2626

  • nfader
  • nfader аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 14
Навскидку: assign в always блоке???

Так будет работать:
module clock_div(
input clk,
output reg clk_out
);

reg [22:0] cnt = 23'd0;
always @(posedge clk)
begin
cnt <= cnt + 1'b1;

if(cnt == 23'd2500000)
begin
cnt <= 0;
clk_out <= ~clk_out;
end

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nfader.

Re: В чем ошибка? 4 года 3 мес. назад #2697

В симуляторе хватит одной строки
assign #10 clk_out = ~clk_out;
Только не забудь начальное значение задать.
assign - переводиться как назначить :))
always - переводиться как всегда :)) Они не знакомы друг с другом :))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
Время создания страницы: 0.118 секунд

facebook  GitHub  YouTube  Twitter