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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Инструмент для создания микропрограмных автоматов, Подскажите
Stas
сообщение Jul 31 2006, 10:20
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Имею большой автомат состояний (FSM) в девайсе Stratix II, работающий на частоте 333 MHz, хочу сделать то же самое микропрограмным автоматом на модуле памяти M512 или M4K, вроде как должно получится быстрей и ресурсов меньше занимать. Те мне надо подсказать пакет, который бы на описание состояний генерировал содержание памяти в *.hex. Кто в чем делает такие штуки??
Go to the top of the page
 
+Quote Post
Stas
сообщение Aug 1 2006, 11:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Неужели все делают конечные автоматы и ни у кого небыло мысли сделать микропрогаммный автомат по схеме типа Уилкса и т.п. в блоке памяти? Или кодируем вручную по таблице переходов???? Интересует софт для МПА не привязываясь к производителю (XILINX/ALTERA) - без разницы... Кто что видел из этого направления?
Go to the top of the page
 
+Quote Post
acex2
сообщение Aug 1 2006, 13:57
Сообщение #3


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(Stas @ Aug 1 2006, 08:13) *
Неужели все делают конечные автоматы и ни у кого небыло мысли сделать микропрогаммный автомат по схеме типа Уилкса и т.п. в блоке памяти? Или кодируем вручную по таблице переходов???? Интересует софт для МПА не привязываясь к производителю (XILINX/ALTERA) - без разницы... Кто что видел из этого направления?



Делали в свое время на BlockRAM, Xilinx Virtex-II. Все работало великолепно.
Автомат был, если не ошибаюсь, на пару сотен состояний, поэтому был на скорую руку написан ассемблер под задачу, который переводил описание алгоритма в mif- или coe- файл для заливки в память по свободному порту BlockRAM. В итоге, сэкономили кучу времени на перекомпиляциях проекта - автомат можно было менять и заливать прямо на ходу через один из интерфейсов на плате.

По поводу готового софта, в журнале Xilinx XCell где-то в 2002-2003 году была статья про реализацию микропрограммных автоматов, и там же автор рекламировал свой софт для описания автомата. Поищите на сайте Xilinx - у них есть архив журнала.
Go to the top of the page
 
+Quote Post
Doka
сообщение Aug 1 2006, 16:36
Сообщение #4


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(acex2 @ Aug 1 2006, 17:57) *
Делали в свое время на BlockRAM, Xilinx Virtex-II. Все работало великолепно.
Автомат был, если не ошибаюсь, на пару сотен состояний, поэтому был на скорую руку написан ассемблер под задачу, который переводил описание алгоритма в mif- или coe- файл для заливки в память по свободному порту BlockRAM. В итоге, сэкономили кучу времени на перекомпиляциях проекта - автомат можно было менять и заливать прямо на ходу через один из интерфейсов на плате.


хех =)
на скорую руку можно было и пикоблейз взять - чем не автомат?! =)
- и блочное ОЗУ там тоже можно на лету обновлять =)


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Джеймс
сообщение Aug 1 2006, 17:23
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата(Stas @ Aug 1 2006, 15:13) *
Или кодируем вручную по таблице переходов???? Интересует софт для МПА не привязываясь к производителю (XILINX/ALTERA) - без разницы... Кто что видел из этого направления?


Конечно не вручную :) HDL Designer -> State Diagram Editor (весь пакет называется FPGA Advantage)
http://www.tkt.cs.tut.fi/kurssit/1200/S05/...torial6_eng.htm

Про нюансы использования для этих целей памяти ничего не скажу. Не исключено, что это вообще можно сделать, указав только соответствующие настройки.
Go to the top of the page
 
+Quote Post
Stas
сообщение Aug 1 2006, 18:12
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Цитата
Конечно не вручную smile.gif HDL Designer -> State Diagram Editor (весь пакет называется FPGA Advantage)
http://www.tkt.cs.tut.fi/kurssit/1200/S05/...torial6_eng.htm

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


В документе описывается графическое создание конечного автомата в среде FPGA Advantage. На мой взгляд это излишне, хватает Quartus'а с его убогим просмоторщиком FSM... Вопрос не в создании конечного автомата, а интересуют именно МПА. Вот если FPGA Advantage может синтезировать по какому либо из описаний автомат типа Уилкса или на счетчике - это интересно, но пока я не нашел в его возможностях этого.
Вообще интересно, в приборах типа Stratix II содержится значительное количество модулей блочной памяти, конечно много уходит на FIFO, сдвиговые регистры и прочие вещи, но логично в них же распологать крупные автоматы, а как синтезировать?

Сообщение отредактировал Stas - Aug 1 2006, 18:19
Go to the top of the page
 
+Quote Post
acex2
сообщение Aug 1 2006, 18:59
Сообщение #7


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(Doka @ Aug 1 2006, 13:36) *
Цитата(acex2 @ Aug 1 2006, 17:57) *
Делали в свое время на BlockRAM, Xilinx Virtex-II. Все работало великолепно.
Автомат был, если не ошибаюсь, на пару сотен состояний, поэтому был на скорую руку написан ассемблер под задачу, который переводил описание алгоритма в mif- или coe- файл для заливки в память по свободному порту BlockRAM. В итоге, сэкономили кучу времени на перекомпиляциях проекта - автомат можно было менять и заливать прямо на ходу через один из интерфейсов на плате.


хех =)
на скорую руку можно было и пикоблейз взять - чем не автомат?! =)
- и блочное ОЗУ там тоже можно на лету обновлять =)


Во-первых, тогда PicoBlaze еще не было. Первая статья Чапмена появилась в начале 2002, а разработка была закончена в 2001. Во-вторых, частота работы автомата была около 200 Мгц, что для PicoBlaze на Virtex-II просто физически недостижимо.
Go to the top of the page
 
+Quote Post
disel
сообщение Aug 2 2006, 07:02
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



в XST есть описание такой фичи: RAM-based FSM Synthesis. Сам не пробывал
Go to the top of the page
 
+Quote Post
cdg
сообщение Aug 2 2006, 07:05
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 8-09-04
Из: Таганрог
Пользователь №: 617



Как сделать полностью автоматом не знаю, но вот логику переходов можно точно упрятать в память, например с помощью синтеза в Synplify (или в Quartus применением аналогичного constraint):

Код
module FSM_Logic (
                input [...:0] CurState,
                input [...:0] DependentVar,
                output reg [...:0] NextState
                );          
          always @(*)
       case (CurState, DependentVar)
             {} : if ()  NextState = {};
             .......
             default: NextState = {};
       endcase        
endmodule




module FSM (
        input Clk,
       ...............
       output reg [...:0] CurState,
       ...............
      );

    .........
    war [...:0] NextState;
    reg [...:0] DependentVar;
    .........
                
                FSM_Logic FSM_Logic_Component (
                    .CurState(CurState),
                   .DependentVar(DependentVar)
                   .NextState(NextState))
        /* synthesis altera_implement_in_eab=1 */;
          
    always @(posedge Clk,.....)
             CurState <= NextState;
    
    ........................            

endmodule


По крайней мере Synplify генерирует mif файл, с внедрением в синхронную память придется еще помудрить.

Сообщение отредактировал cdg - Aug 2 2006, 07:11
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 5 2006, 04:16
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



автору, если проблема еще актуально то:
1. посмотрите на алтера авалон стейт секвенсер (Avalon State Sequencer).
Это похоже на то что вы ищете. Очень простой псевдокод + ассемблер. Правда будут проблемы с дополнением (расширением) комманд, т.к исходников ассемблера нет.

2. Посмотрите на MPMC2 от ксалинкса, там все на автоматах на брамах и арбитр и секвенсер комманд ДДР. в составе есть ассемблер написаный на перле. но, в о отличие от первого варианта доков никаких.

3. у меня в планах разработка ядра на основе Avalon State Sequencer, только на VHDL с конфигурированием из пактеа (без гуя) и ассемблера для него. Можно выполнить разработку вместе %)


--------------------
Go to the top of the page
 
+Quote Post
Gate
сообщение Sep 5 2006, 11:01
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



mentor precision в доках хвастается тем, что умеет делать fsm на блоках встроенной памяти - автоматически, задав специальную опцию при синтезе.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 26 2006, 09:05
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата
если кому актуально, есть такая разработка (см. документ)

распространяется свободно, код открытый, с двумя условиями:

1. не ломать
2. обо всех багах и предложениях по модернизации сообшать.

Если кого нибудь заинтересовало выложу.


Сделал более подробное описание.
Код выложу чуть позже, т.к. нужно немного модифицировать программу-ассемблер.


--------------------
Go to the top of the page
 
+Quote Post
Stas
сообщение Sep 26 2006, 12:28
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



Конечно выкладывайте, вещь интересная. Я правда сейчас немного другим занят, мб через месяц руки дойдут попробовать...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 26 2006, 12:33
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(des00 @ Sep 26 2006, 12:05) *
Если кого нибудь заинтересовало выложу.

Заинтересовало.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 27 2006, 08:31
Сообщение #15


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Выкладываю текущую версию проекта.

если будут вопросы, обращайтесь отвечу.


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:00
Рейтинг@Mail.ru


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