demsp 0 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Подскажите, как запустить счетчик, чтобы вместо красных линий (нулей) были зелёные линии module count (input clk, output reg [1:0]counter); always @(posedge clk) counter <= counter + 1; endmodule Test bench module top; reg clk; wire [1:0] counter; count tcount (clk, counter); initial begin clk = 0; forever #10 clk = !clk; end endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OM-S 0 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Задайте начальное значение счетчику (обнулите). Вы же сигналу clk в тестбенче задали начальное значение перед инверсией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demsp 0 29 мая, 2018 Опубликовано 29 мая, 2018 (изменено) · Жалоба Спасибо. А как это сделать? Если написать module top; reg clk; wire [1:0] counter; count tcount (clk, counter); initial begin clk = 0; forever #10 clk = !clk; counter=0; end endmodule то компилятор выдаёт ошибку Error: C:/.../tcount.v(9): (vlog-2110) Illegal reference to net "counter". Наверное, надо делать счётчик с загрузкой и загружать значение "ноль" Изменено 29 мая, 2018 пользователем demsp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OM-S 0 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Да, конечно, нужно сделать синхонную загрузку или обнуление (что вам нужно по заданию) счетчика. Делаете дополнительный вход (reset, например) и по нему обнуляете. А если совсем по простому, то можно попробовать так (по крайней мере в sv) module count (input clk, output reg [1:0]counter = 0); always @(posedge clk) counter <= counter + 1; endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nieve 0 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Асинхронный сброс module count ( input clk_i, input reset_i, output out_o ); reg rst_rg; reg [2:0] cnt; always @(posedge clk_i) begin rst_rg <= reset_i; end always @(posedge clk_i or negedge rst_rg) begin if (!rst_rg) cnt <= 3'b0; else cnt <= cnt + 1'b1; end assign out_o = cnt[0]; // Just an example endmodule Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Подскажите, как запустить счетчик, чтобы вместо красных линий (нулей) были зелёные линии Quartus знает, что при включении питания регистры инициализируются нулями. А вот Modelsim про это не знает, и инициализирует регистры неопределенным значением. Вывод: в файле описания счетчика принудительно проинициализировать регистры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Асинхронный сброс Даже слишком асинхронный, очень даже слишком, чтобы его другим предлагать... Откуда такое откопали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nieve 0 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Еще давно, когда только начинал изучать Verilog, коллега поделился мудростью. Применял подобную схему в своих проектах, никогда проблем не возникало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Еще давно, когда только начинал изучать Verilog, коллега поделился мудростью. Применял подобную схему в своих проектах, никогда проблем не возникало. Ну да, а Суворов через Альпы ходил, так его австрийцы и французы сподобили. И тоже проблем не было... Вот видимо и ваш коллега тоже любит через Альпы и шаблоны ему не указ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 мая, 2018 Опубликовано 29 мая, 2018 · Жалоба Еще давно, когда только начинал изучать Verilog, коллега поделился мудростью. Применял подобную схему в своих проектах, никогда проблем не возникало. Значит Вы очень везучий человек :biggrin: . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 30 мая, 2018 Опубликовано 30 мая, 2018 · Жалоба Даже слишком асинхронный, очень даже слишком, чтобы его другим предлагать... Откуда такое откопали? Всегда так делали. А в чём, собственно, проблемы? У асинхронного сброса есть одно неустанимое преимущество: для него не нужен клок. В отличие от. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 30 мая, 2018 Опубликовано 30 мая, 2018 · Жалоба Всегда так делали. А в чём, собственно, проблемы? У асинхронного сброса есть одно неустанимое преимущество: для него не нужен клок. В отличие от. А просто взять шаблон простейшего счетчика из учебника или из того же Моделсима без отдельного триггера для сигнала сброс, слабо было? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 30 мая, 2018 Опубликовано 30 мая, 2018 · Жалоба А просто взять шаблон простейшего счетчика из учебника или из того же Моделсима без отдельного триггера для сигнала сброс, слабо было? Он его, Иосиф Григорьевич, "недосинхронизировал" )) Спасибо за всю серию в общем и за статью "Краткий курс HDL. Часть 10. Несколько слов о «сбросе»" в частности ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nieve 0 31 мая, 2018 Опубликовано 31 мая, 2018 · Жалоба Он его, Иосиф Григорьевич, "недосинхронизировал" )) Спасибо за всю серию в общем и за статью "Краткий курс HDL. Часть 10. Несколько слов о «сбросе»" в частности ) И где же тут "недосинхронизация" ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 31 мая, 2018 Опубликовано 31 мая, 2018 · Жалоба И где же тут "недосинхронизация" ? Приходит асинхронный сброс на триггер. И загоняет его в метастабильное состояние. И этот нестабильный сброс с выхода триггера сбрасывает счетчик. Или не сбрасывает. Или недосбрасывает. Как повезет. Если в проекте в верхнего уровня есть reset bridge - то данный триггер не несет никакого смысла. Если в проекте в верхнего уровня нет reset bridge - то данный триггер не несет никакого смысла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться