- •3.2. Использование чисел и констант в языке ahdl
- •3.2.1 Использование чисел
- •3.2.2. Использование констант
- •3.4. Последовательностная логика
- •3.4.1. Объявление регистров
- •3.4.2. Объявление регистровых выходов
- •3.4.3. Создание счетчиков
- •3.5. Цифровые автоматы с памятью (statemashine)
- •3.5.1. Реализация цифровых автоматов (statemachine)
- •3.5.2. Установка сигналов Clock, Reset и Enable
- •3.5.3. Задание выходных значений для состояний
- •3.5.4. Задание переходов между состояниями
- •3.5.5. Присвоение битов и значений в цифровом автомате
- •3.5.6. Цифровоые автоматы с синхронными выходами
- •3.5.7. Цифровые автоматы с асинхронными выходами
- •3.5.8. Восстановление после неправильных состояний
- •3.6. Реализация иерархического проекта
- •3.6.2. Создание и применение пользовательских макрофункций
- •3.6.3. Определение пользовательской макрофункции
- •3.6.4. Импорт и экспорт цифровых автоматов (statemachine)
- •Использование входных буферов плис в качестве элементов памяти конечных автоматов
- •Введение
- •Структуры конечных автоматов классов e и f
- •Синтез конечных автоматов класса e
- •Алгоритм 1
- •Синтез конечных автоматов класса f
- •Программная реализация методов синтеза автоматов классов e и f
- •Результаты экспериментальных исследований методов синтеза автоматов классов e и f
- •Вопрос3.2
- •Последовательный интерфейс spi
- •1 Описание интерфейса i2c
- •Вопрос 3.3Интерфейс Avalon
Использование входных буферов плис в качестве элементов памяти конечных автоматов
Рассматривается новый подход к проектированию конечных автоматов на ПЛИС, когда входные буферы ПЛИС используются в качестве элементов памяти конечных автоматов. Конечные автоматы типа Мили, допускающие такую реализацию, получили название автоматов класса E, а конечные автоматы типа Мура - автоматов класса F. Описывается метод синтеза автоматов классов E и F. Результаты экспериментальных исследований предложенных методов в сравнении с традиционными подходами, реализованными в пакетах MAX+PLUSII и WebPack, показали высокую эффективность новых методов синтеза, которые позволяют уменьшить число используемых макроячеек ПЛИС, в среднем, в 3,5 раза, а для отдельных примеров - в 8√9 раз.
Введение
В [1] было рассмотрено использование триггеров выходных макроячеек ПЛИС в качестве элементов памяти конечных автоматов. Но входные буферы ПЛИС также часто содержат триггеры. Отсюда возникает вопрос, нельзя ли эти триггеры использовать в качестве элементов памяти при синтезе конечных автоматов? Оказывается, что можно, а структурными моделями таких конечных автоматов являются автоматы классов E и F, рассмотренные в [2].
На основании автоматов классов E и F в [2] предложено 8 различных структурных моделей, допускающих эффективную реализацию на ПЛИС: EI, E0, F0, EI0, EI▓, FI▓, EI0▓ и FI0▓. Для реализации этих моделей достаточно располагать только двумя методами синтеза: автомата класса E и автомата класса F. Другие модели строятся на основании структур автоматов классов E и F пут╦м установки регистров на входе (EI), регистров на выходе (E0, F0), регистров одновременно на входе и выходе (EI0), защ╦лок на входе (EI▓, FI▓), а также защ╦лок на входе и регистров на выходе (EI0▓, FI0▓).
Структуры конечных автоматов классов e и f
Автоматом класса E (F) является автомат типа Мили (Мура), каждый входной набор которого совпадает с кодом следующего состояния. Это позволяет в качестве элементов памяти использовать триггеры входных буферов ПЛИС, а также исключить из структуры конечного автомата комбинационную схему, реализующую функции переходов [2]. Отметим, что значение каждой входной переменной всегда проходит через входной буфер ПЛИС, поэтому использование триггеров входных буферов в качестве элементов памяти конечного автомата не увеличивает стоимость реализации конечного автомата на ПЛИС.
Однако на практике не всегда наборы значений входных переменных могут выступать в качестве кодов внутренних состояний. Например, если число L входных переменных меньше значения intlog2M, где М - число внутренних состояний конечного автомата, или когда переходы в различные внутренние состояния конечного автомата инициируются одним и тем же набором значений входных переменных. С другой стороны, не всякая совокупность выходных наборов пригодна для кодирования внутренних состояний автомата: из условия детерминированности поведения конечного автомата коды различных состояний должны быть ортогональны между собой (по крайней мере в одном разряде иметь различные значащие значения). Во всех этих случаях в структуру автоматов классов E и F необходимо вводить дополнительные элементы памяти для различия кодов внутренних состояний.
Таким образом, наиболее часто реализуемые структуры автоматов классов E и F показаны соответственно на рис. 1а, б, где CL - комбинационная часть конечного автомата; RGI - входной буфер; RG - регистр дополнительных элементов памяти; X = {x1,...,xL} - множество входных переменных конечного автомата; Y = {y1,...,yN} - множество выходных функций (выходных переменных) конечного автомата; G = {g1,...,gL} - множество переменных, определяющих коды внутренних состояний, соответствующих входным переменным; D = {d1,...,dL} - множество функций возбуждения элементов памяти (переходов); E = {e1,...,eL} - множество переменных обратных связей.
Рисунок 1. Структуры конечных автоматов с входными буферами ПЛИС в качестве элементов памяти: а) автомат класса E (Мили); б) автомат класса F (Мура)
Отметим, что в структуре автомата класса E (рис. 1а) входной буфер имеет две связи с комбинационной частью конечного автомата: буферизированную (регистровую) и прямую (комбинационную). Это связано с тем, что в автоматах типа Мили (а автомат класса E является автоматом типа Мили) выходные функции непосредственно зависят от входных переменных. Поэтому для реализации автоматов класса E каждый входной буфер ПЛИС должен иметь две связи с внутренней логикой: регистровую и комбинационную. Такими свойствами обладают, например, ПЛИС MACH 215, семейства MACH 3, 4 и 5, а также FPGA XC3000, XC4000 [3].
