Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/39: Рейтинг темы: голосов - 39, средняя оценка - 4.92
pyupyukovobomko
1

16-разрядный счетчик

19.08.2014, 04:11. Просмотров 7567. Ответов 13
Метки нет (Все метки)

Здравствуйте, друзья! Подскажите пожалуйста, нужно сделать счетчик, который на выход будет выдавать определенные числа. Таких чисел 16. Т.о. счетчик считает пока не дойдет до первого значения, далее отправляет кодовую последовательность на выход и считает дальше, пока не дойдет до второго значения, и т.д. Не могу сообразить как это сделать оптимальным образом. Проект делается на ПЛИС, но в схемном редакторе.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2014, 04:11
Ответы с готовыми решениями:

Подскажите 16-20 разрядный двоичный счетчик...
Подумываю над изготовлением устройства захвата для осцилографа.. входная цепь пока простая до АЦП...

4-х разрядный счетчик на JK-триггерах
Помогите построить подробную схему в logical circuit 4-х разрядного счетчика на JK-триггерах ...

4-разрядный двоичный счётчик
Синтезировать на Т-триггерах 4-разрядный вычитающий двоичный счётчик с последовательным переносом и...

8 разрядный двоичный счетчик 200МГц считать будет успевать?
Добрый день уважаемые! собсно сабж. вобщем нужно ~200МГц частоту померить с точностью до 1Гц....

13
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 170
19.08.2014, 08:57 2
если правильно понял, тут нужен счётчик со схемой сравнения.
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
19.08.2014, 09:58 3
Цитата Сообщение от pyupyukovobomko
Здравствуйте, друзья! Подскажите пожалуйста, нужно сделать счетчик, который на выход будет выдавать определенные числа. Таких чисел 16. Т.о. счетчик считает пока не дойдет до первого значения, далее отправляет кодовую последовательность на выход и считает дальше, пока не дойдет до второго значения, и т.д. Не могу сообразить как это сделать оптимальным образом. Проект делается на ПЛИС, но в схемном редакторе.
К 16-битному счетчику добавляете несколько младших разрядов для перебора комбинаций, которые требуется сравнить со значением счетчика. Эти младшие разряды управляют мультиплексорами, выходы которых, совместно со старшими разрядами счетчика поступают на компаратор. В качестве компараторов можно применить 7485, число младших(дополнительных) разрядов счетчика соответствует числу сравниваемых комбинаций – 2^n.
0
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
19.08.2014, 10:51 4
Выходы счетчика напрямую и через "НЕ" подать на входы элементов "И". Выход элемента И - это и будет выход сигнала достижения определенного значения.
0
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 115
19.08.2014, 10:57 5
Проект делается на ПЛИС, но в схемном редакторе.
Не представляете, насколько правильное решение.....
для экономии мозгов можно сделать счетчик и 16 компараторов, чтобы сравнивать значение счетчика с константами.
для экономии ресурсов можно сделать 1 компаратор и подгружать следующее значение из "шифта".
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
19.08.2014, 12:00 6
Цитата Сообщение от pridotor_r
для экономии мозгов можно сделать счетчик и 16 компараторов
Для экономии мозгов 16 компараторов как раз не лучший вариант.
0
pyupyukovobomko
19.08.2014, 12:46 7
[QUOTE="pridotor_r"][QUOTE="Цитата:[/QUOTE]
можно сделать 1 компаратор и подгружать следующее значение из "шифта".
"Шифт" это сдвиговый регистр? Поясните пожалуйста в нескольких словах как такая схема будет работать.
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
19.08.2014, 12:50 8
Посмотрите внутреннюю схему стандартных микросхем

https://www.cyberforum.ru/savedimages/2014/08/19/banatzpvvtxrstpnfp1.gif
И сделайте нечто подобное
0
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 115
19.08.2014, 12:53 9
Для экономии мозгов 16 компараторов как раз не лучший вариант.
ну почему-же: один библиотчный компаратор, на один вход счетчик, на другой константа - и так 16 раз.
Для экономии мозгов- в смысле мозгов разработчика, а не ресурсов чипа.

"Шифт" это сдвиговый регистр (пишу так для краткости).
Работать будет так:
на вход компаратора подается значение счетчика и выход "шифта", счетчик досчитывает до значения выхода "шифта", компаратор показывает на выходе равенстово, по этому равенству - сдвигается "шифт" и, заодно, делаются ваши дела.
есть нюанс: изначально прогрузить шифт.
0
0 / 0 / 0
Регистрация: 27.06.2012
Сообщений: 115
19.08.2014, 12:56 10
тут я перечитал первое сообщение...
а вам надо притормаживать текущее значение до определенного момента или на каждом такте вместо 4-разрядного 16-разрядное значение выдавать?
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
19.08.2014, 13:06 11
Хз, для экономии мозгов и времени разработчика надо писать на каком нибудь HDL...
На verilog`е банальный счётчик и case стейтмент
Код
module counter_wyth_case
(
input clk, risit,
output reg [15:0] Q
);

reg [15:0] count;

always @ (posedge clk)
begin
if (risit)
begin
count <= 0;
Q      <=   0;
end
else
begin
count <= count + 1;

case (count)
16h00    : Q <= 16hff;
16h11    : Q <= 16hee;
16h22    : Q <= 16hdd;
16h33    : Q <= 16hcc;
16h44    : Q <= 16hbb;
16h55    : Q <= 16haa;
16h66    : Q <= 16h99;
16h77    : Q <= 16h88;
16h88    : Q <= 16h77;
16h99    : Q <= 16h66;
16haa    : Q <= 16h55;
16hbb    : Q <= 16h44;
16hcc    : Q <= 16h33;
16hdd    : Q <= 16h22;
16hee    : Q <= 16h11;
16hff    : Q <= 16h00;
default    : Q <= Q;
endcase
end
end
endmodule
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
19.08.2014, 13:33 12
[QUOTE="pridotor_r"][QUOTE="Цитата:[/QUOTE]
Для экономии мозгов 16 компараторов как раз не лучший вариант.
ну почему-же: один библиотчный компаратор, на один вход счетчик, на другой константа - и так 16 раз.
Для экономии мозгов- в смысле мозгов разработчика, а не ресурсов чипа.

Я как раз понял как экономию ресурсов, а в этом случае выгодней один 16-битный компаратор и 16-канальный мультиплексор. Немного усложнится синхронизация.

Как частный случай подойдет вариант, предложенный BykTiho – на дешифраторах, если речь идет о константах (ТС не уточнил).
0
pyupyukovobomko
20.08.2014, 00:10 13
Буду пробовать на дешифраторах, как предложил уважаемый BykTiho. Посмотрел внутреннюю схему К155ИД3, вроде все просто.
Значения, при достижении которых счетчиком, кодовая последовательность отправляется на выход фиксированы и заранее известны. Всем спасибо за помощь!!! О результатах отпишусь.
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
20.08.2014, 10:05 14
Стоит помнить о том, что количество входов элементов "И" равно количеству линий данных. Т.е. если счетчик 16-разрядный, то должны быть схемы "И" на 16 входов. И все получится.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2014, 10:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Асинхронный 8-ми разрядный счетчик на вычитание с предварительной загрузкой начального счета
Здравствуйте! У меня возникли проблемы с выполнением задания. Мне нужно выполнить задание на языке...

Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой
Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой: -поле состояния...

4-х разрядный сумматор
схема 4 разрядного сумматора на логических элементах. помогите составить. Добавлено через 12...

16-разрядный таймер
Доброго времени суток дорогие посетители форума . Мое задание : управление светофорами , а именно...

8-ми разрядный умножитель
нужна схема 8-розрядного АЛУ для умножения на логических элементах &quot;или не&quot;, и JK памятью, в єтом...

32 разрядный сумматор
Помогите написать програму на Max+plus 2 32-х разрядного сумматора


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.