Реферат: ПЛИС Xilinx семейства Virtex™
Базовым элементом КЛБ является логическая ячейка - ЛЯ (LogicCell — LC). ЛЯ состоит из 4-входового функционального генератора, логики ускоренного переноса и запоминающего элемента. Выход каждого функционального генератора каждой логической ячейки подсоединен к выходу КЛБ и к D-входу триггера. Каждый КЛБ серии Virtex содержит четыре логические ячейки, организованные в виде двух одинаковых секций (Рис. 4). На Рис. 5 представлено детальное изображение одной секции.
В дополнение к четырем базовым логическим ячейкам, КЛБ серии Virtex содержит логику, которая позволяет комбинировать ресурсы функциональных генераторов для реализации функций от пяти или шести переменных. Таким образом, при оценке числа эквивалентных системных вентилей для микросхем семейства Virtex, каждый КЛБ приравнивается к 4.5 ЛЯ.
4.3.1. Таблица преобразования
Функциональные генераторы реализованы в виде 4-входовых таблиц преобразования (Look-UpTable — LUT). Кроме использования в качестве функциональных генераторов, каждый LUT-элемент может быть также использован как синхронное ОЗУ размерностью 16х1 бит. Более того, из двух LUT-элементов в рамках одной секции можно реализовать синхронное ОЗУ размерностью 16х2 бита или 32х1 бит, либо двухпортовое синхронное ОЗУ размерностью 16х1 бит.
На LUT-элементе микросхемы Virtex может быть реализован 16-разрядный сдвиговый регистр, который идеально подходит для захвата высокоскоростных или пакетных потоков данных. Этот режим может также использоваться для запоминания данных в приложениях цифровой обработки сигналов.
4.3.2. Запоминающие элементы
Запоминающие элементы в каждой секции КЛБ Virtex могут конфигурироваться как динамические триггеры (чувствительные к фронту сигнала) D-типа, либо как триггеры-защелки, чувствительные к уровню сигнала. D-вход триггера может управляться либо от функционального генератора в рамках той же секции КЛБ, либо непосредственно от входов данной секции КЛБ, минуя функциональные генераторы.
Кроме сигналов синхронизации (Clock) и разрешения синхронизации (ClockEnable — СЕ) в каждой секции КЛБ есть сигналы синхронной установки (Set) и сброса (Reset). Обозначение этих сигналов — SR и BY соответственно. Сигнал SR переводит запоминающий элемент в состояние, определенное для него в конфигурационных данных, а сигнал BY — в противоположное состояние. Эти же сигналы могут быть использованы также в качестве асинхронной предустановки (Preset) и очистки (Clear). Все сигналы управления могут быть независимо про-инвертированы. Они подаются на оба триггера в рамках конкретной секции КЛБ.
4.3.3. Дополнительная логика
Дополнительная логика, входящая в каждый КЛБ, представлена двумя мультиплексорами: F5 и F6.
На вход мультиплексора F5 подаются сигналы с выходов функциональных генераторов данной секции КЛБ. Этот узел может работать как функциональный генератор, реализующий любую 5-входовую функцию, либо как мультиплексор 4:1, либо как некоторая функция от девяти входных переменных.
Аналогично, мультиплексор F6 объединяет выходы всех четырех функциональных генераторов КЛБ, используя один из выходов мультиплексора F5. Это позволяет реализовать либо любую 6-входовую функцию, либо мультиплексор 8:1, либо некоторую функцию до 19 переменных.
Каждый КЛБ имеет четыре сквозных линии — по одной на каждую логическую ячейку. Эти линии используются как дополнительные входы данных, либо как дополнительные трассировочные ресурсы, не расходующие логические ресурсы.
4.3.4. Арифметическая логика
Каждая ЛЯ содержит специальную логику ускоренного переноса, которая обеспечивает наилучшую реализацию на ПЛИС различных арифметических функций. КЛБ содержит две отдельные цепи переноса — по одной на каждую секцию. Размерность цепи переноса — два бита на КЛБ.
Арифметическая логика включает в себя элемент, реализующий функцию исключающего ИЛИ, который позволяет реализовать однобитовый сумматор в одной логической ячейке.
В каждой логической ячейке имеется элемент, реализующий функцию И (AND), который предназначен для построения быстродействующих умножителей.
Специальные трассы логики ускоренного переноса могут также использоваться для каскадного включения функциональных генераторов при необходимости создания функций с большим количеством входных переменных.
4.3.5. Буферы с тремя состояниями
Каждый КЛБ Virtex содержит два буфера с тремя состояниями, которые нагружены на внутренние шины (см. также п. 4.4.4 «Специальные трассировочные ресурсы»). Каждый буфер BUFT имеет независимый вход управления с третьим состоянием и независимый входной контакт.
4.3.6. Блочная память ( Block RAM )
В FPGAVirtex встроена особая блочная память (BlockSelectRAM) большой емкости. Она создана в дополнение к распределенной памяти небольшой емкости (SelectRAM), реализованной на таблицах преобразования (LookUpTableRAM — LUTRAM).
Блоки памяти BlockSelectRAM+ организованы в виде столбцов. Все устройства Virtex содержат два таких столбца, по одному вдоль каждой вертикальной стороны кристалла. Эти колонки увеличивают полный размер кристалла. Каждый блок памяти равен по высоте четырем КЛБ, таким образом, микросхема Virtex, имеющая 64 КЛБ по высоте, содержит 1-6 блоков памяти на колонку и 32 блока памяти в целом. В Табл. 5 приводятся емкости блочной памяти для различных кристаллов Virtex.
Таблица 5. Емкость блочной памяти.
Кристалл Virtex | Число блоков | Общий объем блочной памяти [бит] |
XCV50 | 8 | 32 768 |
XCV100 | 10 | 40 960 |
XCV150 | 12 | 49 152 |
XCV200 | 14 | 57 344 |
XCV300 | 16 | 65 536 |
XCV400 | 20 | 81 920 |
XCV600 | 24 | 98 304 |
XCV800 | 28 | 114 688 |
XCV1000 | 32 | 131 072 |
Каждый блок памяти, как показано на Рис. 6, это полностью синхронное двухпортовое ОЗУ с независимым управлением для каждого порта. Размерность шины данных для обоих портов может быть сконфигурирована независимо, что позволяет создавать преобразователи размерности шины. В Табл. 6 показаны возможные соотношения размерностей шин данных и адреса.
В кристаллах Virtex созданы специальные трассировочные ресурсы для связи блочной памяти с блоками КЛБ и другими блоками памяти.
Таблица 6. Соотношение шин адреса и данных
Разрядность | Глубина | Шина адреса | Шина данных |
1 | 4096 | ADDR<11:0> | DATA<0> |
2 | 2048 | ADDR<10:0> | DATA<1:0> |
4 | 1024 | ADDR<9:0> | DATA<3:0> |
8 | 512 | ADDR<8:0> | DATA<7:0> |
16 | 256 | ADDR<7:0> | DATA<15:0> |
4.4. Программируемая трассировочная матрица
Быстродействие проекта, рассчитанного для наихудшего случая, ограничивает величина задержки для наиболее длинной трассы. Поэтому архитектура трассировочных ресурсов и программы размещения и трассировки создавались с учетом использования их в едином процессе оптимизации. Этот совместный процесс оптимизации минимизирует наиболее длинные пути и, таким образом, создает проект с наилучшей системной производительностью.
Кроме того, совместная оптимизация сокращает время компиляции, так как программное обеспечение и архитектура микросхемы создавались с учетом наилучшего взаимодействия. Циклы проектирования, таким образом, сократились благодаря более коротким временам каждой из итераций всего процесса.