Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Логический автомат
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Prutvel
Здравствуйте! Помогите разобраться, пожалуйста! ОООченьнужно!
Дело в том, что у меня задана временная диаграмма. В соответствии с ней нужно сделать пересчетное устройство!


как это сделать???
DW0
нужно смотреть диаграмму, но на первый взгляд похоже на конечный автомат state machine которая описывается графом, таблицей переходов, ну а реализация обсуждалась много раз и литературы и мануавлов по этому валом. еще одно название FSM (Finite-State Machine)
AlphaMil
FSM наверное легче всего описать через case-структуру. Посмотрите в хелпе к своей САПР или по используему языку.
Prutvel
Цитата(AlphaMil @ Feb 20 2011, 09:39) *
FSM наверное легче всего описать через case-структуру. Посмотрите в хелпе к своей САПР или по используему языку.


а примера нет?
Kuzmi4
2 Prutvel
пример из хелпа хилых (One-Hot Fast Moore FSM)
CODE


parameter <state1> = 8'b00000001;
parameter <state2> = 8'b00000010;
parameter <state3> = 8'b00000100;
parameter <state4> = 8'b00001000;
parameter <state5> = 8'b00010000;
parameter <state6> = 8'b00100000;
parameter <state7> = 8'b01000000;
parameter <state8> = 8'b10000000;

(* FSM_ENCODING="ONE-HOT", SAFE_IMPLEMENTATION="NO" *) reg [7:0] state = <state1>;

always@(posedge <clock>)
if (<reset>) begin
state <= <state1>;
<outputs> <= <initial_values>;
end
else
(* FULL_CASE, PARALLEL_CASE *) case (state)
<state1> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state2> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state3> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state4> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state5> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state6> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state7> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
<state8> : begin
if (<condition>)
state <= <next_state>;
else if (<condition>)
state <= <next_state>;
else
state <= <next_state>;
<outputs> <= <values>;
end
endcase

Prutvel
уау...спасибо за пример! а в какой это программе?
Kuzmi4
Xilinx ISE v11.5
жмаете на лампочку и просвещаетесь wink.gif в разделе "Synthesis Constructs"
Prutvel
Цитата(Kuzmi4 @ Feb 20 2011, 13:18) *
Xilinx ISE v11.5
жмаете на лампочку и просвещаетесь wink.gif в разделе "Synthesis Constructs"

ух ты, спасибо disco.gif

но это я так понимаю, программа работы самого пересчетного устройства? ... а принципиальную схему как делать?
Kuzmi4
2 Prutvel
Это пример FSM, используя его вы можете налабать всё что вам нужно, исходя из временной диаграммы которая отстутвует в данном топике biggrin.gif
Исходя из рисунка 2 (схема запуска ??) - вам вообще не нужен FSM - кромсаете примерные конструкции под вашу разрядность, склеиваете докучи - и всё cool.gif
Prutvel
Цитата(Kuzmi4 @ Feb 20 2011, 13:31) *
Исходя из рисунка 2 (схема запуска ??) - вам вообще не нужен FSM - кромсаете примерные конструкции под вашу разрядность, склеиваете докучи - и всё cool.gif


у меня диаграмма есть на бумаге, не знаю в какой проге ее рисовать... разрядность, докучи - это что? wacko.gif
Kuzmi4
Цитата(Prutvel @ Feb 20 2011, 12:40) *
...разрядность - это что?

Из истоков:
Цитата
...разрядностью устройства называется количество разрядов (==битов), одновременно обрабатываемых этим устройством..

Prutvel

как по такой диаграмме делать
Kuzmi4
2 Prutvel
осталось только переименовать циферки по вертикали из 1/2... в понятные людям названия и написать словами как должны меняться выхода от времени и входных сигналов laughing.gif
Prutvel
Цитата(Kuzmi4 @ Feb 20 2011, 14:43) *
2 Prutvel
осталось только переименовать циферки по вертикали из 1/2... в понятные людям названия и написать словами как должны меняться выхода от времени и входных сигналов laughing.gif


1 - это первый сигнал, 2 - второй сигнал, 3 - третий сигнал и т.д. причем, все значения в милисекундах...

а что значит выхода?
VladimirB
Цитата(Prutvel @ Feb 20 2011, 14:52) *
1 - это первый сигнал, 2 - второй сигнал, 3 - третий сигнал и т.д. причем, все значения в милисекундах...
а что значит выхода?


У вас в методичке к лабе всё написано. И даже структурная схема устройства нарисована. Вам остаётся только нарисовать счётчик, дешифратор и 7 RS-триггеров. Если вы не знаете, как это делать - то надо постить в раздел для начинающих схемотехников.
FPGA по-моему тут не причём.

И ещё вам в методичке про Multisim намекают - потыкайтесь там может наступит просветление.
Prutvel
Цитата(VladimirB @ Feb 20 2011, 16:01) *
У вас в методичке к лабе всё написано. И даже структурная схема устройства нарисована. Вам остаётся только нарисовать счётчик, дешифратор и 7 RS-триггеров. Если вы не знаете, как это делать - то надо постить в раздел для начинающих схемотехников.
FPGA по-моему тут не причём.

И ещё вам в методичке про Multisim намекают - потыкайтесь там может наступит просветление.



ну да, ну да 05.gif ... может, пример какой есть?

да, и еще, а не подскажете, что значит, предусмотреть ручной запуск устройства на генерацию заданной последовательности логических сигналов? А как сделать так, чтобы устройство содержало цепи автоматической остановки после генерации последовательности, и где искать коэффициент разветвтления при выборе элементнонй базы? help.gif
Mad_max
Да fpga вам не контроллер.
Maverick
Цитата(Prutvel @ Feb 20 2011, 16:47) *
ну да, ну да 05.gif ... может, пример какой есть?

да, и еще, а не подскажете, что значит, предусмотреть ручной запуск устройства на генерацию заданной последовательности логических сигналов? А как сделать так, чтобы устройство содержало цепи автоматической остановки после генерации последовательности, и где искать коэффициент разветвтления при выборе элементнонй базы? help.gif

Вначале нарисуйте на бумаге цифровую схему, а здесь все стандартно:
берете счетчик который будет считать тактовые импульсы (длительность и частоту выбираете сами) и дешифратор(ы) таким образом формируете последовательность сигналов которые отображены на Вашей временной диаграмме. Дальше разрабатываете логику управления.

Потом дальше можно будет идти...
Prutvel
Цитата(Maverick @ Feb 20 2011, 19:12) *
Вначале нарисуйте на бумаге цифровую схему, а здесь все стандартно:
берете счетчик который будет считать тактовые импульсы (длительность и частоту выбираете сами) и дешифратор(ы) таким образом формируете последовательность сигналов которые отображены на Вашей временной диаграмме. Дальше разрабатываете логику управления.

Потом дальше можно будет идти...


Я так понимаю, дешифратор будет на 48 выходов

Счетчик начинает тикать. И тикает от 0 до 47.
Дешифратор на 48 выходов выдает 1 на том выходе, номер которого совпадает с текущим состоянием счетчика.
По диаграмме
На такте номер 2 триггер 7 должен встать на 1. Значит выход дешифратора 2 соединяем с входом УСТАНОВКИ триггера 7
На такте 3 триггер 4 должен стать = 1. Значит выход дешифратора 3 соединяем с вх. УСТАНОВКИ триггера 4.
На такте 4 триггер 4должен стать = 0. Значит выход 4 соединяем с входом сброса триггера 4.
sazh
Цитата(Prutvel @ Feb 20 2011, 19:47) *
Я так понимаю, дешифратор будет на 48 выходов


Тот кто это задание Вам писал, тоже ничего не смыслит в схемотехнике.
На счетчик навесте Постоянное Запоминающее Устройство (запрограммируйте его под нужды времянки , по состоянию счетчика n-1), ибо на выходе ПЗУ надо регистр поставить, по клоку такому же как и у счетчика
Prutvel
Цитата(sazh @ Feb 20 2011, 20:07) *
Тот кто это задание Вам писал, тоже ничего не смыслит в схемотехнике.
На счетчик навесте Постоянное Запоминающее Устройство (запрограммируйте его под нужды времянки , по состоянию счетчика n-1), ибо на выходе ПЗУ надо регистр поставить, по клоку такому же как и у счетчика


а какая примерно схема будет?
dvladim
Цитата(Prutvel @ Feb 20 2011, 20:36) *
а какая примерно схема будет?

Если вы так упорно не хотите думать сами, то вам в раздел Предлагаю работу
Prutvel
Цитата(dvladim @ Feb 20 2011, 22:56) *
Если вы так упорно не хотите думать сами, то вам в раздел Предлагаю работу


извините, денег нет...живу в общаге, на еду еле-хватает...работу дают - как хочешь, так и делай...как быть??? реву уже crying.gif

схема такого типа???
Leka
Цитата(Prutvel @ Feb 21 2011, 00:54) *
денег нет...живу в общаге, на еду еле-хватает...работу дают - как хочешь, так и делай...как быть???

В дворники идти.
ViKo
Если не ошибаюсь, полгода назад та же девушка задавала здесь вопрос, не успевала, плакала и т.д. Что ж, получается, всю жизнь за вас кто-то будет учиться, работать? Или вас так плохо учат, что ничего в голове не остается?

нашел ссылку, чтобы не быть голословным. Правда, не о ПЛИС был вопрос, но "стиль" остался тем же.
http://electronix.ru/forum/index.php?showtopic=82557
Мур
У меня для этого всегда в активе Active-HDL. Там, зная какой-либо HDL, в режиме диаграммы состояний легко наваять не напрягаясь любой автомат. И "одним нажатием кнопки" быстро генерируешь текст(с проверкой ошибок) и ,что немаловажно, тут-же проверяешь временную(даже пошагово). Жалко, что назад отката нет в отладчике!

Этот опыт пригодится всегда. Стоит потратить время! Удачи!
PVL
Самое простое счетчик с памятью... и никакой мороки...
tAmega
Вот так у нас всегда ... censored ...

Итак Prutvel, давай подробно и внятно, чего Вам надо. Посмотрим что можно сделать.
Я могу сделать Вам схему в виде рисунка или описание на VHDL (или Verilog) все это в среде Xilinx ISE. Если это прокатит конечно. Нужно знать для какой CPLD. Плюс моделирование в Modelsim или Active AHDL.
Или если Вам схема нужна в виде реальных чипов, да еще и с временными диаграммами, плюс потребление по питанию. Тогда надо знать, в какой среде и на каких чипах будет реализована такая схема. Нужны ли конкретные Part Number чипов, важна ли цена, а также какой производитель предпочтительнее.
И наконец, чтобы промоделировать схему качественно, надо знать на какой частоте схема будет работать, или хотя бы одну временную длительность к временной диаграмме. Остальные можно сообразить, чего там и как.
Да еще вопрос, по питанию, потребляемую мощность оценивать в динамике(смотреть пиковое значение мощности в виде графика во время моделирования) или в статике ( просто взять максимальное потребление всех чипов и сложить).
Давайте Ваши ответы на вопросы, будем вместе ваять.

PS: На картинке у Вас Electronics Workbench. Вы в нем будете схему сдавать? Если да, можно узнать какая версия у Вас или ссылку, где скачать.
Prutvel
Цитата(tAmega @ Feb 23 2011, 15:43) *
Вот так у нас всегда ... censored ...

Итак Prutvel, давай подробно и внятно, чего Вам надо. Посмотрим что можно сделать.
Я могу сделать Вам схему в виде рисунка
или описание на VHDL (или Verilog) все это в среде Xilinx ISE. Если это прокатит конечно. Нужно знать для какой CPLD. Плюс моделирование в Modelsim или Active AHDL.
Или если Вам схема нужна в виде реальных чипов, да еще и с временными диаграммами, плюс потребление по питанию. Тогда надо знать, в какой среде и на каких чипах будет реализована такая схема. Нужны ли конкретные Part Number чипов, важна ли цена, а также какой производитель предпочтительнее.
И наконец, чтобы промоделировать схему качественно, надо знать на какой частоте схема будет работать, или хотя бы одну временную длительность к временной диаграмме. Остальные можно сообразить, чего там и как.
Да еще вопрос, по питанию, потребляемую мощность оценивать в динамике(смотреть пиковое значение мощности в виде графика во время моделирования) или в статике ( просто взять максимальное потребление всех чипов и сложить).
Давайте Ваши ответы на вопросы, будем вместе ваять.

PS: На картинке у Вас Electronics Workbench. Вы в нем будете схему сдавать? Если да, можно узнать какая версия у Вас или ссылку, где скачать.


будте добры, помогите 1111493779.gif

у меня в требованиях написано:

1. Принципиальная схема логического автомата в соответствии с ГОСТ (сказали, в Visio).
3. Перечень элементов.
4. Экран программной среды Electronic Worcbench с результатами моделирования логического автомата.
5. Оценка потребляемой мощности.

и ещё надо сделать ручной запуск на генерацию заданной последовательности логических сигналов, потом цепи автоматической остановки после
генерации последовательности, а при выборе элементной базы учесть нагрузочные способности элементов разных
серий (коэффициент разветвления).

это всё, что дано в этом случае...но также надо просмотреть варианты с последовательными цифровыми устройствами, с микросхемой памяти, и с импульсными цифровыми устройствами...эти варианты мне тоже нужны, ну а пока хотя бы схемку...
tAmega
Ну а теперь пожалуйста на вопросы надо ответить
1. Какая версия Electronics Workbench установлена на Вашем компе, если я сделаю в более новой версии софта, как Вы ее откроете? Посмотрите на вкладке Help =>About
2. Нужна ли схема на реальных микросхемах, судя по тому, что указан перечень элементов, да, нужно применить реальные чипы и реальные кнопки.
Есть у Вашего руководства или препода предпочтения, какие чипы и каких серий применять. Ну поставим мы логику HCT, а он скажет, нет давайте TTL, или LVTTL
3. Вы сказали что в дальнейшем нужно будет использовать память, давайте марку памяти, от нее будем двигаться.
4. Ручной запуск не проблема, это кнопка на схеме, но преподы или начальники разные бывают, узнайте у него кнопка нужна с фиксацией или без, или неважно.
Отечественного производства или AMP, Molex подойдут
5. Тоже самое с микросхемами, отечественные или импортные. Если это препод, уверен на курсе лекций марки микросхем уже у Вас были.
6. На какой частоте должна работать схема.

Как ответите на эти вопросы, можно продолжить. Без них никак.
Если ответов не знаете и найти не сможете, давайте перечень элементов у любого из однокурсников. Если есть вопросы(глупые), пишите в личкуsm.gif

PS: На счет нагрузочной способности это актуально если логика ESL и частоты под 500MHz. А если мы говорим о стандартной логике, у них сейчас коэффициент ветвления 1:20 для Вашей схемы не проблема. Мы его учтем.
Prutvel
а) У меня EWB 5.12
б) да, перечень элементов надо, ещё номиналы из списка по госту тоже в перечне...на лекциях давал микросхемы К155Д1, 155ИP17, 155С171, КР1006ВИ (таймер)
в) преподаватель всё опирался на логику ТТЛ, КМОП: говорил еще, что с увеличением степени интеграции ТТЛ нельзя применять (разогрев), КМОП можно.
г) в лекциях были преимущественно отечественные микросхемы
д) насчет кнопки говорил, что в системе есть кнопка - отработал, встал (легко сделать на триггере - приводил пример счетчик, триггер со входом Д, счетчик-делитель на 2...)
е) память - ПЗУ с генератором на основе кварцевого резонатора
в общем, как бы несколько вариантов нужно мне, несколько схемок в EWB илм в Visio...
dvladim
К модераторам:
Может тему перенести в другой раздел, поскольку к FPGA она не имеет ни малейшего отношения?
PVL
Цитата(dvladim @ Feb 25 2011, 20:41) *
К модераторам:
Может тему перенести в другой раздел, поскольку к FPGA она не имеет ни малейшего отношения?

В ветку по теории автоматов...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.