g614380

Инкрементирующе-Декрементирующий Счетчик.

6 сообщений в этой теме

g614380    0

Добрый день, Уважаемы коллеги! Начинаю разбираться в программировании ПЛИС на Verilog.

Появилась задача описать двоичный семиразрядный счетчик, который бы по нажатию одной кнопки инкрементировал бы свое значение, а по нажатию второй- декрементирова. По нажатию кнопок на порты ПЛИС приходят положительние импульсы, одно нажатие, один импульс. Прошу тапками не закидывать, только начал своение, и никак не могу решить такую простенькую задачку. Подкиньте мыслю:-)

Прошу прощения за ошибки и опечатки, пишу с телефона.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
o_l_e_g    1 642

Посмотреть учебники по обычной (не программируемой) логике, там есть конструкция реверсивных счетчиков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vascom    647

module cnt_inc_dec(
clk,
rstn,
inc_pulse,
dec_pulse,
cnt_out
);

input clk;
input rstn;
input inc_pulse;
input dec_pulse;

output [6:0] cnt_out;

reg [6:0] cnt;

always @(posedge clk or negedge rstn)
if(!rstn) cnt <= 7'b0;
else
begin
if(inc_pulse) cnt <= cnt + 7'b1;
else if(dec_pulse) cnt <= cnt - 7'b1;
end

assign cnt_out = cnt;

endmodule

Простейший вариант, поскольку не описано поведение при одновременном приходе обоих импульсов.

Изменено пользователем Vascom

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
g614380    0

Спасибо за код. Тут все понятно, приходит тактовый сигнал clk на счетчик,и если inc_pulse то инкрементируем, а если dec_pulse декрементируем. Это все предельно ясно. Но в этом случае если какой либо из разрешающих сигналов постоянен и длительность этого сигнал больше длительность клоков, то счетчик за врнмя удержания этого сигнала проинкрементируется не на единицу, а к примеру на 10ть, ну или сколько там тактовых импульсов прилетит за время разрешающего сигнала. А вот как считать именно количество нажатий кнопки в одну сторону и потом вычитать количество нажатий другой кнопки. Можно клоковый импульс сделать больше по времени чем время зажатия конопки, но все равно, если кнопкк все же зажать, то счетчик пойдет считать ипульсы. А как сделать чтоб при зажатой кнопке он не считал а именно инкрементировался на один, а при зажатии другой, декрементировался с предыдущего значения на один?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

Vascom    647

А, не по клоку...

Правильнее сделать, чтобы импульсы были всегда длиной один клок, то есть выделить фронт импульса. Сделать это проще простого, надо лишь добавить:

reg inc_pulse_d;
wire inc_pulse_1;

always @(posedge clk or negedge rstn)
if(!rstn) inc_pulse_d <= 1'b0;
else	 inc_pulse_d <= inc_pulse;

assign inc_pulse_1 = inc_pulse & ~inc_pulse_d;

И использовать полученный inc_pulse_1.

Для надёжности можно предварительно inc_pulse защёлкнуть один раз по клоку.

Изменено пользователем Vascom

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
g614380    0

Вот спасибо за оперативные ответы. Пошел разбираться

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Прекращайте жать кнопку "Цитата" при ответе. Просто, пишите ответ в самом нижнем окошке.  Там, где надпись "Ответить в тему". А Ваш сердечник нельзя собрать "в перекрышку". Один Бог знает, какой там будет зазор и насколько упадёт индуктивность. Такое железо лучше использовать для однотакта.
    • Кстати, да. Мирный договор до сих пор не подписан. Юридически мы до сих пор находимся в состоянии войны. Просто никто не на кого не нападает... а пиндосы таки нагнетают  (вспомним сев корею и запуски ракет над нихонцами) и подзуживают узкоглазых. Уж больно не нравиться пиндастану шо в том районе всё устаканиться и нихонцы задружаться с нами, корейцами и не дай божи китайцами. А чё нихонцам делать? У них курильская тема больная мозоль. Они любыми путями хотят вернуть взад острова. И если не вернуть, то хотя бы там присутствовать. Предложат вложиться бабосами на развитие в плане экономического сотрудничества, которое уже подписали, и будут как тараканы туда потихоньку заселяться. Их там уже достаточно, многие ассимилировались и в свою нихонию ездят токма по великим ихним праздникам. Они ж в массе синтоисты. Якудза (по нашему воры в законе) до сих пор тусуют, даже на праздники выходят. Смотрел одного нашего блогера, который попал на праздник якудза и решил "познакомиться" с самим боссом. Сначала его не пускали, сказали мол, иди лесом, сёдня у босса не приёмный день. Но чувак был настырный. В нагляка пролез мимо охраны и поручкался с боссом. Тот удивился наглости россиянина но эта наглость ему и понравилась. Но когда этот блогер фоткался с боссом, то слегка приобнял жену босса, которая стояла с другой стороны. Чё тут началось. Его чуть не грохнули. В Японии трогать женщин и тем паче жену босса якудза это бошку отпилят без вопросов. Короче токма благодаря телохранителю босса блогера не грохнули а прогнали и казали шоб духу его в нихинии не было. Но чувак настырный. Узнал шо просто так ему это не сойдёт, надо палюбасу  извиняться и задабривать босса, иначе он может и на самолёт не попасть. Короче купил здоровенный флакон самого дорогого саке и ещё чего то. Попёрся опять, естессно ссыт, но идти надо. Караванит прямо к телохранителю босса на полусогнутых, голову вних а подавками перед собой светит. Подошёл и не поднимая головы базарит, мол, извиниться хочу и без прощения не уйду. Телохранитель пошёл узнать. Выходит сам босс. Чувак как стоял с опущенной головой так и присел на колени, смотрит в пол, извиниется а подарки на вытянутых руках держит. Отмазывался, шо автоматически приобнал и никакого умысла не имел. Босс подарки принял. Говорит, хрен с тобой, твоя наглость и бесстрашие тебя и губят и спасают. Повели чувака за стол, где все якудза из разных кланов сидели. Выпили мировую и отправили чувачка восвояси. Потом он сказал, шо уже была команда "наказать наглеца" и если б он не извинился то команда была бы выполнена в течении суток. Поэтому если едете за границу то надо знать что можно что нельзя, какие жесты и слова  могут быть приняты за оскорбление.  Смотрел про чёрные кварталы пиндостана и бразильские фавэлы. Там тоже свой менталитет и бошку могут отпилить за один неправильный жесть или слово. А что выбрасывают в европе это клондайк радиолюбителя. Там наши продуманы всё самое вкусное и рабочее собирают и отправляют сюда. Вплоть до автомобилей. В Германии всё ненужное просто выставляют на улицу. Даже есть день в году типа "избавления от старого". В Италии и Франции есть такой же день, когда выбрасывают из хаты весь "хлам". Улицы завалены мебелью, шмотками и бытовой техникой. Этот "праздник" не любят уборщики. У них утилизация мусора дорогая и чтоб например выкинуть диван или телик надо платить. А в этот "праздник" все выбрасывают на халяву и стараются избавиться по максимуму, выгребают накопившееся из гаражей и чердаков. Уборщики потом неделю бесплатно разгебают, поэтому и не любят этот "праздник очищения"... У меня друган 3 месяца жил у своей сеструхи на Сицилии. Говорит, что наши из бытовухи ничего не покупают, всё "приобретается" в праздник очищения в канун нового года. У итальяшек традиция такая. Наши арендуют грузовик, не спеша ездат по городу и собирают "урожай". Там телик и пуфик, тут диван и столик, здесь стиралку и ковёр... халява, сэр!
    • 312 MHz. Спасибо за тактичность) Это 2007 года был смартфон, тогда гигагерц даже один был очень редко.
    • Если нельзя одним, тогда какая функция второго транзистора, если они все одновременно открываются? 
    • И так же интересует один момент, как увеличить быстродействие срабатывания защиты когда на входе постоянное напряжение.
    • Добрый день уважаемые форумчане. Ищу схему мощного импульсного блока питания для гальванических процессов. Ток - до 1кА. Очень интересно попробовать изучить подобного рода схемотехнику. Перерисовать в симуляторе и провести исследование. В интернете искал. К сожалению подобного не встречал. Может есть у кого то практический опыт построения подобных источников? Очень интересно мнение о том стоит ли овчинка выделки. Может кто-то сварочный инвертор переделывал для гальванических процессов - поделитесь опытом. Только не о трансформаторных источниках речь. :-) Интересуют именно импульсные. Заранее благодарю за внимание к теме.