Лабораторные работы. Неелова / Ответы на вопросы экзамена
.pdf1.Предпосылки создания программируемой логики. Общая структура кристалла FPGA. Основные блоки, входящие в структуру кристалла, их расположение, организация соединений.
Любая цифровая система должна содержать элементы, сохраняющие информацию, то есть имеющие возможность подтверждать записанную в них информацию с помощью отрицательной обратной связи, ПЦУ, и элементы линейной структуры для преобразования информации или направления потоков информации, КЦУ.
Синтез КЦУ предполагает следующие этапы: - постановку задачи;
- составление таблицы истинности для всех выходов относительно подаваемых на вход комбинаций согласно заявленному заданию:
- запись системы логических уравнений для каждого выхода относительно состояний входов в канонической форме, - изображение схемы устройства на основе записанной системы уравнений.
Таким образом мы имеем устройство, имеющее неравномерную задержку при прохождении сигнала от входов до различных выходов. Такую задержку стандартизировать невозможно. Для любой схемы, построенной классическим методом, КЦУ являются проблемными местами, снижающими производительность устройства.
Поэтому стали искать методы замены классических КЦУ на их схемные эмуляторы.
Эмуляторы, построенные на основе имитации уравнений, и замене схемы КЦУ на ПЛИС, блоки которой представлены первичной матрицей И, включаемой в вторичную матрицу ИЛИ, позволяли построить только схемы КЦУ, так как не содержали необходимого количества регистров.
Широкое применение нашло схемное решение ПЛИС FPGA (field programmable gate array), где схема КЦУ заменяется ее табличным эмулятором – триггерной матрицей, в которую записываются отклики выхода на все возможные входные комбинации. Внутренняя структура FPGA последних поколений представлена блоками четырех основных конфигураций, расположенных на внутренней поверхности кристалла в форме матрицы, см. рис. 1.
Блоки для построения узлов проектируемых устройств – наборные логические блоки LAB (logic array block(s)) и MLAB (memory logic
array block(s)), каждый из которых состоит из 10 даптивных логических модулей ALM (adaptive logic module).
Блоки LAB-MLAB объединяются в тройки, подключаемые к общему блоку, формирующему подачу управляющих сигналов, см. рис. 2.
Для хранения больших массивов используются блоки M10K ёмкостью 10 килобит. Эти блоки, в отличие от MLAB, имеют стандартную конфигурацию, переконфигурируемую в зависимости от разрядности используемых данных.
Для цифровой обработки сигналов в структуре FPGA имеются блоки
DSP (digital signal processing).
Все блоки располагаются в виде матрицы, разделяемые горизонтальными и вертикальными линиями каналов, объединяемых в шины. Каналы представляют собой выделенное пространство переходов, содержащее точки связей между блоками. Конечно, такие связи представляют собой жесткое, динамически неуправляемое соединение, но, так как плотность соединений на каналах всегда гораздо меньше плотности соединений внутри блоков, каналы служат для температурной разгрузки кристалла.
Структура кристалла многослойная. В слоях располагаются важнейшие элементы для поддержания функционирования синтезируемых в кристалле устройств.
Это элементы частотных сетей – внутренние, фракциональные PLL (phase lock loop), служащие для подстройки фазы тактовой частоты в зависимости от места нахождения блока, а также для поддержания необходимого номинала частоты путем умножения или деления тактовой частоты кристалла, а также блоки DLL (delay lock loop), служащие только для регулирования задержки тактового сигнала, структуры контроллера памяти и PCIe.
Это элементы преобразования данных для дальнейшей последовательной передачи в линию и приема с линии и последовательно-параллельного преобразования данных для работы в схеме устройства, синтезированного в матрице кристалла. К таким устройствам относятся каналы трансивера – PMA (physical medium attachment) и устройства кодирования данных - PCS (physical coding sublayer).
Рис. 1.
Рис. 2.
2.Структура наборного логического блока (LAB) и организация блока
MLAB.
Структура каждого блока состоит из 10-ти адаптивных модулей. В этой структуре всегда выделяется правая и левая части: в состав правой части ALM входят триггеры, формирующие регистры, а в левой части расположены простые, не имеющие входа синхронизации, матрицы LUT (look-up tables) для записи функционирования КЦУ; для управляемых соединений элементов модулей в блоке служит простая логика. ALM в структуре LAB может содержать LUT на 3 входа и 4 входа, или LUT на 5 входов. См. рис. 3.
Для построения модулей памяти применяются блоки MLAB – аналогичные по структуре блокам LAB, но содержащие LUT на 6 входов. Таким образом, ёмкость этой памяти 640 бит.
Рис. 3.
Структура LUT на 4 входа относительно чтения информации представлена на рис. 4.
Рис. 4.
3.Как определяется максимальное время задержки в схемах, реализуемых на FPGA?
Задержки в любой цифровой схеме рассчитываются относительно возможности считывания информации из одного регистра, её обработки на КЦУ и записи в следующий регистр. Для наивысшей производительности схемы желательно, чтобы вся процедура произошла за один такт. Считывание не требует подачи синхроимпульса, но при этом необходимо, чтобы информация уже присутствовала в ячейке хранения. Запись происходит только в момент достижения фронтом синхроимпульса уровня фиксируемой единицы (или 0 при определенных режимах работы устройств).
Основная ячейка хранения построена по принципу асинхронного RSтриггера на основе базовых логических элементов: И-НЕ или ИЛИ-НЕ. Соответственно, управляющим уровнем внешнего воздействия в 1-ом случае будет 0, а во 2-м – 1. См. рис. 5.
Рис. 5.
Ячейка хранения как базовая часть входит в структуру любого синхронного триггера. Самой удобной для использования в вычислительных системах структурой является D-триггер.
Схема, позволяющая фиксировать информацию в момент прихода фронта синхроимпульса, называется схемой 3-х триггеров. Она построена на элементах 1 – 4. Основная ячейка, в которой хранится информация, построена на элементах 5 – 6. Элементы, формирующие эту ячейку, имеют 3 входа. Внешними для нее являются установочные R и S входы, выводится для управления только сброс.
Для рассмотрения функционирования динамического входа синхронизации и D – входа считаем, что на установочные входы поступают уровни «1». При этом выходы элементов 2 и 3 становятся управляющими записью, а выходы элементов 1 и 4 – стабилизирующими запись сигнала, подаваемого с информационного входа. См. рис. 6.
1.Момент времени, предшествующий подаче импульса синхронизации: C = 0, D = 1. Если C = 0, то выходы элементов «2» и «3» в состоянии «1», а, значит, ячейка на элементах «5» и «6» находится в режиме хранения, предположим, хранится «0». Теперь определим состояние выходов элементов «1» и «4». Т.к. вход D = 1 и выход элемента «2» в состоянии
«1», то выход элемента «1» находится в состоянии «0». Этот уровень «0» будет удерживать выход элемента «4» в состоянии «1».
2.Следующий момент времени, D = 1, C = 1. Выход элемента «1» продолжает оставаться в состоянии «0», его состояние поступает на вход элемент «2», таким образом, на выходе элемента «2» продолжает удерживаться в «1». На вход элемента «3» теперь поступают «1» с входа C и от связи с выходом элемента «4». Теперь на выходе элемента «3» устанавливается «0», что приводит к установке в «1» основной ячейки
– Q = 1, nQ = 0. Состояние «0» выхода элемента «3» позволяет удерживать в «1» выходы элементов «2» и «4» вне зависимости от состояния выхода элемента «1». Т.е. изменение информации на входе D теперь не влияет на состояние триггера.
Таким образом, мы видим, что, для уверенной записи информации от входа D, необходима установка элементов 1 и 4 в состояние, предписанное уровнем, поданным на этот вход при отсутствии синхроимпульса. Это время называется временем удержания. Выходной уровень установится при удержании временного интервала между поступлением информации и достижением уровня синхронизации «1» минимум на время задержки двух элементов. Установка выходного состояния триггера при этом займет время срабатывания трёх элементов. Задержка триггера tз = tуд + tуст.
Для возможности обработки информации в КЦУ за один такт (период синхроимпульса T) работы системы необходимо время задержки такого КЦУ
tз=T – (tуд + tуст)
Рис. 6.
4. Необходимость присвоения различных типов данных при программировании устройства в FPGA.
При моделировании и макетировании устройств под схему в FPGA производится строгое разделение типов переменных: wire – цепи непрерывного назначения и reg – значение, хранящееся в ячейке.
Цепи непрерывного назначения в FPGA представлены простой логикой и коммутационной логикой, служащей для передачи данных между регистрами и регистрами и LUT. В таких цепях задержка суммируется для каждой ветви устройства и рассчитывается по самой протяжённой ветви. Поэтому для работы с переменными такого типа используется блокирующее присвоение, позволяющее дождаться прихода сигнала, следующего по самому длинному пути.
Триггерная ячейка всегда имеет стандартное строение и, соответственно, одинаковую задержку. Поэтому работа с такими переменными ведется в отдельных блоках (always, initial) с использованием неблокирующего присвоения.
5.Основные управляющие сигналы, поступающие на адаптивный логический модуль. Работу каких устройств регулируют эти сигналы?
•Основными управляющими сигналами, поступающими на ALM являются:
•Тактовая частота – clk;
•Асинхронный сброс – reset (aclr);
•Синхронный сброс – res(sclr);
•Синхронная установка состояния – syncload.
•Сигналы формируются в блоке управления на основе состояний линий стволовой частоты (6 горизонтальных + 2 опорные частоты). Регулируют работу регистров.
6.Структура и принцип функционирования конечного автомата. Синтез конечных автоматов в FPGA.
Рис. 7.
Конечный автомат – схема, управляющая заданным процессом. Такая схема состоит из двух основных узлов: узла формирования потока команд и узла исполнения этих команд, см. рис. 7. (первый узел изображен для одного разряда).
Узел формирования потока команд содержит регистр, состояние которого на данный момент времени является командой для исполнительного устройства, и элемент памяти, в который заложены коды этих состояний. Для схем, построенных классическим способом, таким элементом может служить обычный кодопреобразователь, т.е. КЦУ, что значительно снижает скорость работы автомата, в FPGA коды состояний помещаются в простую триггерную матрицу – LUT. На схеме видно, что каждое текущее состояние выхода регистра будет частью адреса при выборе последующего состояния. Старшими разрядами адреса управляют сигналы внешнего воздействия. Если команда должна исполняться за несколько тактов, существует возможность удержания текущего состояния при помощи мультиплексора, управляемого сигналом внешнего воздействия. Работа узла формирования управляется сигналом сброса и тактовой частотой.
Исполнительное устройство содержит схемы, необходимые для решения задач управления заданным объектом. Это, как правило, элементы АЛУ и таймеры. Каждая команда, поступающая из блока формирования, может иметь или неизменный код исполнения, или код, расширенный сигналом внешнего воздействия. В первом случае это автомат Мура, во втором – автомат Мили. Как правило, при синтезе сложных автоматов выбирается гибридный вариант. Сигналы выходной шины исполнительного устройства могут использоваться как непосредственно для управления элементами цифровой схемы, так и преобразовываться в аналог для управления электромеханическими устройствами.
7.Способы организации выделенной памяти в FPGA. Структура такой памяти.
К выделенной памяти FPGA относятся блоки MLAB, служащие для построения памяти объемом 640 бит/блок. В качестве матрицы в блоке используются 6-входовые LUT, в качестве портов – регистры правой части. Такая память используется для хранения небольших массивов данных. для хранения больших массивов служат сконфигурированные блоки M10K ёмкостью 10Кбит. Структура блока может переконфигурирована в зависимости от ширины адресной шины.
По своей структуре память может быть одно-портовая или двухпортовая, в зависимости от предназначения. При построении двухпортовой памяти на MLAB для конфигурации портов дополнительно задействуется один из блоков LAB используемой тройки. Выделенная память может использоваться в качестве ROM, RAM и FIFO.
8.Одно-портовая и двух-портовая память.
Одно-портовая и двух-портовая память в FPGA может быть построена на MLAB или на M10K.
Одно-портовая память всегда имеет один порт адреса (регистр, в котором сохраняется значение адреса, записанного с шины). Это может быть или адрес записываемой информации, или адрес считываемой информации. Всё зависит от активизации бит порта управления: для записи 1 запишется в wr_en, а для считывания – в rd_en. Портов данных два – для принимаемой информации и для информации, выдаваемой на шину. Управляющие биты позволяют приостанавливать поток адресов, пропуская ненужные и выбирать определённые байты в принимаемом/передаваемом слове. См. рис.8
Рис. 8.
