реклама на сайте
подробности

 
 
> Машина состояний и "переменные" (AHDL)
Кузнецофф Ю.
сообщение Dec 10 2013, 08:26
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 15-02-11
Из: мск
Пользователь №: 62 983



Здравствуйте, уважаемые товарищи Инженеры!
Вчера отлаживал схему многоканального частотомера,а именно ту её часть, где производится получение пакета по UART с технологического компьютера, и был повержен такой обьективной реальностью:

CODE
SUBDESIGN 1
(
clk : INPUT =GND; -- 33 МГц
IN, INP[7..0] : INPUT;
OUT, OUTP[7..0] : OUTPUT;
)

VARIABLE
SS: MACHINE WITH STATES (idle, INI, RX_START_BYTE, RX_CMD, RX_CHS, RX_CHECK, RX_STOP_BYTE, RX_ERR, CH_START, CH_123);
DT:DFF;

BEGIN

DT.CLK = !CLK;

Ss.clk = CLK;
CASE SS IS
WHEN idle =>
SS = ini;

WHEN ini =>
OUTP=0;
SS = CH_START;

WHEN CH_START =>
OUTP=5;
DT.D=VCC;
SS = CH_123;

WHEN CH_123 =>
SS = CH_123;

WHEN RX_ERR =>
IF OUTP==5 THEN SS = IDLE; END IF;

WHEN OTHERS =>
SS = idle;
END CASE;

OUT=DT.Q;

END;


временная диаграмма сигналов - файл 1.жпг во вложении.
Прикрепленное изображение


Смущает следующее - при записи принятых байтов в "переменные" типа node или dff в одних состояниях автомата, не получается работать с ними в других состояниях, они чудесным для меня образом обнуляются. Мозг, засраный парадигмой структурного программирования контроллеров, отказывается понять концепцию программирования конфигурации ПЛИС.

Худо-бедно удалось реализовать желаемое через lpm_ff:
CODE
INCLUDE "LPM_FF.INC";

SUBDESIGN 1
(
clk : INPUT =GND; -- 33 МГц
IN, INP[7..0] : INPUT;
OUTP[7..0] : OUTPUT;
)

VARIABLE
SS: MACHINE WITH STATES (idle, INI, RX_START_BYTE, RX_CMD, RX_CHS, RX_CHECK, RX_STOP_BYTE, RX_ERR, CH_START, CH_123);
DTT:LPM_FF WITH (LPM_WIDTH=8);
CLR:NODE;

BEGIN

DTT.CLOCK = VCC;

Ss.clk = CLK;
CASE SS IS
WHEN idle =>
SS = ini;

WHEN ini =>
CLR=VCC;
SS = CH_START;

WHEN CH_START =>
DTT.DATA=5;
DTT.aload=VCC;
SS = CH_123;

WHEN CH_123 =>
SS = CH_123;

WHEN OTHERS =>
SS = idle;
END CASE;

DTT.sclr = !CLR;
OUTP[]=DTT.Q;

END;


диаграмма сигналов - рис. 2 во вложении
Прикрепленное изображение


Но такой способ,мягко говоря, притянут за уши.
Посоветуйте неграмотному,как строить схемотехнику в таких случаях. Перейти на vhdl/verilog не предлагать)

Всем заранее благодарен!

Изучение внутренностей lpm_ff показало,что асинхронная установка реализуется примитивом latch.
Можно ли реализовать в таком случае вообще "переменные" через синхронные триггеры? Была попытка уменьшить частоту тактирования автомата относительно триггеров "переменных", результата это не дало..

Сообщение отредактировал Кузнецофф Ю. - Dec 10 2013, 08:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Кузнецофф Ю.
сообщение Dec 10 2013, 11:05
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 15-02-11
Из: мск
Пользователь №: 62 983



Иосиф К, большое спасибо вам за конструктивную критику! С аппаратным UARTом на ПЛИС проблемы нет, он отлажен и в симуляторе и в железе! Есть проблема разобраться в парадигме "программирования" логики ПЛИС.
А вы предлагаете вместо того,чтобы разобраться и закончить проект - учить знакомый и нравящийся вам язык.
Пост не читал, но использование AHDL осуждаю))
Пару статей с вашего сайта схоронил когда-то, но особо не разбирался за ненадобностью.
Ответ на интересующий меня вопрос очень интересует, буду рад выслушать любое мнение.

Цитата(Dmitriyspb @ Dec 10 2013, 14:53) *
Синусоидальность дидукционнго индуктора некоэмутируется с хромофорной эфузией аксирогентно-адиквантного фотонного триангулятора

cranky.gif
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 10 2013, 12:03
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Кузнецофф Ю. @ Dec 10 2013, 15:05) *
Пост не читал, но использование AHDL осуждаю))
Вам на полном серьёзе говорят, что AHDL давно в могиле. В здравом уме им никто не пользуется. Хотите AHDL -- за ради бога, но "всё сама, всё сама".
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Кузнецофф Ю.   Машина состояний и "переменные" (AHDL)   Dec 10 2013, 08:26
- - XVR   Ваш DT защелкивает новое состояние каждый такт (по...   Dec 10 2013, 09:44
- - Кузнецофф Ю.   XVR, спасибо за оперативный ответ! Как же тогд...   Dec 10 2013, 09:52
- - iosifk   Цитата(Кузнецофф Ю. @ Dec 10 2013, 12:26)...   Dec 10 2013, 10:40
- - Dmitriyspb   Цитата(Кузнецофф Ю. @ Dec 10 2013, 12:26)...   Dec 10 2013, 10:53
|- - Maverick   Цитата(Dmitriyspb @ Dec 10 2013, 12:53) С...   Dec 11 2013, 21:07
|- - iosifk   Цитата(Кузнецофф Ю. @ Dec 10 2013, 15:05)...   Dec 10 2013, 12:13
- - Кузнецофф Ю.   Иосиф, ещё раз огромное спасибо вам за комментарий...   Dec 10 2013, 12:49
|- - iosifk   Цитата(Кузнецофф Ю. @ Dec 10 2013, 16:49)...   Dec 10 2013, 12:51
|- - Кузнецофф Ю.   Цитата(iosifk @ Dec 10 2013, 16:51) Через...   Dec 10 2013, 13:02
|- - iosifk   Цитата(Кузнецофф Ю. @ Dec 10 2013, 17:02)...   Dec 10 2013, 13:11
- - Кузнецофф Ю.   Проектик представляет собой многоканальный частото...   Dec 10 2013, 13:46
|- - andrew_b   Цитата(Кузнецофф Ю. @ Dec 10 2013, 17:46)...   Dec 11 2013, 04:30
|- - Кузнецофф Ю.   Цитата(andrew_b @ Dec 11 2013, 08:30) За ...   Dec 11 2013, 11:10
|- - Джеймс   Цитата(Кузнецофф Ю. @ Dec 11 2013, 14:10)...   Dec 11 2013, 11:44
|- - Кузнецофф Ю.   Цитата(Джеймс @ Dec 11 2013, 15:44) Вы мн...   Dec 11 2013, 21:02
- - Tiro   Цитата(Кузнецофф Ю. @ Dec 10 2013, 11:26)...   Dec 11 2013, 21:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 02:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.02816 секунд с 7
ELECTRONIX ©2004-2016