СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 21
Текст из файла (страница 21)
2) Cтоимость и быстродействие:
–дешевые семейства– COOLRUNNER 2, SPARTAN–3,6 (стоимость микросхемы от десятка долларов, тактовые частоты 100–300 МГц).
–дорогие и быстродействующие VIRTEX 4–6 (от сотен до тысяч долларов, тактовые частоты 200–700 МГц).
3) Логические возможности микросхем, измеряемые либо в количестве логических ячеек (макроячейки, LUT)– от сотен до сотен тысяч, либо в количестве эквивалентных двухвходовых вентилей 2И: от десятков тысяч до нескольких миллионов.
4) Специализация – подсемейства ПЛИС, ориентированные на определенный класс задач – цифровая обработка сигналов, встроенные системы и т.п.
5) Конструктивные и электрические параметры – для коммерческого, автотранспортного, аэрокосмического, военного назначения и т.п.
Специализация подсемейств ПЛИС.
В зависимости от специализации, семейства ПЛИС делятся на подсемейства. Например, для семейства VIRTEX–5 это подсемейства LX,LXT,SXT,TXT,FXT.
− LX: логическая обработка данных;
− LXT: логическая обработка данных с высокоскоростными последовательными приемопередатчиками;
− SXT: цифровая обработка сигналов(DSP) c высокоскоростными последовательными приемопередатчиками;
− TXT: цифровая обработка сигналов c высокоскоростными последовательными приемопередатчиками удвоенной производительности;
− FXT: системы cо встроенными процессорами и высокоскоростными последовательными приемопередатчиками.
6.2.3. Конфигурирование ПЛИС.
ПЛИС семейства Spartan-3 конфигурируются путем загрузки конфигурационных данных во внутреннюю конфигурационную память. Часть специальных контактов, которые при этом используются, не могут применяться для других целей, в то же время остальные могут после завершения конфигурирования служить в качестве контактов ввода-вывода общего назначения.
6.2.4 Проектирование систем на ПЛИС.
Проектирование цифровых систем на ПЛИС осуществляется автоматизированным способом, с применением САПР.
Типичные этапы автоматизированной разработки устройств на базе ПЛИС перечислены в таблице ниже:
Этапы проектирования устройства | Этапы верификации проекта |
Создание проекта и ввод исходного функционального описания (Design entry) | Функциональная верификация (Behavioral simulation) |
Логический Синтез( Synthesis ) | Логическое моделирование (Simulate Post-Translate Model) |
Конструкторско-технологическое проектирование (Implementation) | Временное моделирование (Post place & routing simulation) |
Программирование (конфигурирование) микросхемы ПЛИС | Верификация схемы проекта на отладочной плате |
Исходное описание проекта выполняется либо в текстовой форме на HDL, либо в графической с использованием схемного редактора. Наблюдается тенденция к высокоуровневому описанию проекта, в частности на языке программирования С, на котором описывается алгоритм работы проектируемого устройства. Затем САПР переводит это описание на HDL. Кроме того, использование библиотек готовых типовых решений (IP-ядер) также упрощает и ускоряет процесс проектирования.
Элементы функционального моделирования уже иллюстрировались в предыдущих главах на примерах моделей инвертора, схемы 3И и др.
Логический синтез заключается в автоматизированной реализации схемы проекта в элементном базисе ПЛИС.
Логическое моделирование этой схемы не учитывает задержки и является предварительным этапом проверки соответствия поведения полученной схемы ее функциональному описанию.
Автоматизированное конструкторско-технологическое проектирование включает стадии размещения спроектированной схемы на кристалле ПЛИС и разводке соединений. Получаемая информация о длине проводников позволяет оценить задержки сигналов, которые учитываются при так называемом посттрассировочном (временном) моделировании.
После этого система подготавливает файл программирования ПЛИС и этот файл из компьютера, на котором осуществлялось автоматизированное проектирование, загружается по кабелю через порт USB в порт отладочной платы с ПЛИС. После физической верификации проекта на отладочной плате проект готов к проверке в составе реального устройства.
[увы слушатели данного курса не могут потрогать ПЛИСы своими руками, сюда, для ознакомления, можно было бы поставить фотографию этого оборудования]
Ниже приведены в качестве примера результаты этапов проектирования D- триггера.
-
1. Создание HDL- ОПИСАНИЯ
library IEEE;-- используется стандартная библиотека IEEE[1][2]
use IEEE.STD_LOGIC_1164.ALL;-- подключаемые пакеты
entity dtrig is
Port ( C : in STD_LOGIC;
D : in STD_LOGIC;
Q : out STD_LOGIC;
NQ : out STD_LOGIC);
end dtrig;
architecture dtr_arch of dtrig is
begin
process (C) begin
if C'event and C='1' then
Q<=D;
NQ<= not D;
end if;
end process;
end dtr_arch;
-
Создание HDL- ОПИСАНИЯ ТЕСТИРУЮЩЕЙ ПРОГРАММЫ( TEST_BENCH)
---- Описание тестирующей программы может быть в от-дельном файле, а для
---- его автоматизированного получения можно использовать средства САПР ISE.(project> new file>vhdl testbench>)
LIBRARY ieee; [1][2]
USE ieee.std_logic_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;
ENTITY test IS
END test;
ARCHITECTURE behavior OF test IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT dtrig
PORT(
C : IN std_logic;
D : IN std_logic;
Q : OUT std_logic;
NQ : OUT std_logic
);
END COMPONENT;
--Inputs
signal C : std_logic := '0';
signal D : std_logic := '0';
--Outputs
signal Q : std_logic;
signal NQ : std_logic;
constant clock_period : time := 20 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: dtrig PORT MAP (
C => C,
D => D,
Q => Q,
NQ => NQ
);
-- Clock process definitions
clock_process :process
begin
C <= '0';
wait for clock_period/2;
C <= '1';
wait for clock_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
-- insert stimulus here
D<='1';
wait for 3 * clock_period; wait until clk'event and clk=’0’;
D<='0';
wait for 3 * clock_period; wait until clk'event and clk=’0’;
end process;
-- процесс сравнения значений выходов тестируемого объекта с
--ожидаемыми
check: process -- процесс самопроверки модели
wait until clk'event and clk=’1’;
wait for 3 ns;-- задержка на предполагаемое время прохождения
---сигнала в D-триггере и выходном порте микросхемы!
assert(d = q) report "OCHIBKA !! MISCOMPARING ERROR"
severity FAILURE;
end process;
end;
2. Функциональная верификация проекта (Behavioral simulation
Ниже представлена временная диаграмма функционального моделирования
3.Синтез
3.1. функциональная схема
3.2 Схема принципиальная.
На схеме видны входные и выходные буферные элементы. Сам триггер реализован на D-триггере , входящем в состав ЛУТ
3.3. Фрагмент текстового отчета синтезатора.
Из отчета видно, что использовался D-триггер, входящий в состав буферного элемента ПЛИС, из трех буферных элементов один представляет буфер для ввода тактового сигнала. Этот сигнал трассируется в ПЛИС специальным образом- см. главу по проектированию синхронных схем.
Device utilization summary:
---------------------------
Selected Device : 3s200ft256-5
Number of Slices: 0 out of 1920 0%
Number of IOs: 3
Number of bonded IOBs: 3 out of 173 1%
IOB Flip Flops: 1
Number of GCLKs: 1 out of 8 12%
Фрагмент отчета о предварительной оценке быстродействия схемы задержках сигналов (примерно 6.2 нс задержка выходного сигнала, из них во входном буфере 0.7 нс,в проводнике 0.68 нс, в самом триггере 0.17 6 нс. Остальное В выходном буфере) Виден высокий процент задержек в проводниках ПЛИС по отношению к задержкам логических элементов
Timing Summary:
---------------
Speed Grade: -5
Minimum period: No path found
Minimum input arrival time before clock: 1.572ns
Maximum output required time after clock: 6.216ns
Maximum combinational path delay: No path found
Data Path: d to q
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
IBUF:I->O 1 0.715 0.681 d_IBUF (d_IBUF)
FD:D 0.176 q
----------------------------------------
Total 1.572ns (0.891ns logic, 0.681ns route)
(56.7% logic, 43.3% route)
Data Path: q to q
Gate Net
Cell:in->out fanout Delay Delay Logical Name (Net Name)
---------------------------------------- ------------
FD:C->Q 1 0.626 0.681 q (q_OBUF)
OBUF:I->O 4.909 q_OBUF (q)
----------------------------------------
Total 6.216ns (5.535ns logic, 0.681ns route)
(89.0% logic, 11.0% route)
=================
Вопросы и упражнения к главе 6
Вопрос 1. Что такое элемент типа LUT в ПЛИС типа FPGA?
Вопрос 2. Что такое элемент типа макроячейка (macrocell) в ПЛИС типа CPLD?
Вопрос 3. Сколько LUT занимает схема D- триггера в ПЛИС типа FPGA?
Вопрос 4. Как запрограммировать ПЗУ LUT в ПЛИС типа FPGA на выполнение функции 4И-НЕ
Вопрос 5. Что такое ПЛИС типа CPLD и в чем её отличие от FPGA?
Вопрос 6. Сколько LUT занимает схема одноразрядного сумматора в ПЛИС типа FPGA?
Вопрос 7. Сохраняется ли информация о программировании ПЛИС типа при сбросе питания?
Упражнение
Реализуйте схему одноразрядного сумматора на ПЛИС типа FPGA и укажите, какая информация должна при программировании ПЛИС записываться в используемые LUT.
ГЛАВА 7. Двоичная арифметика и Арифметико-логические устройства (АЛУ) (Лекции 15-16)
7.1. Системы счисления и перевод чисел из одной системы счисления в другую
Над цифровыми сигналами могут выполняться не только логические, но и арифметические операции, такие как сложение +, вычитание -, умножение *, деление /, целочисленное деление mod, получение остатка rem. Информация, как уже было отмечено, обычно представляется в цифровых системах в виде двоичных кодов ,соответствующих значениям сигналов. Отдельные элементы двоичного кода, имеющие значение 0 или 1, называют разрядами или битами(bit). Обычно используется позиционная система представления чисел в двоичном коде, при которой вес каждого разряда равен степени двойки. Например, двоичный код 1011 соответствует десятичному числу 11 (1* 23 +0 *22 +1* 21 + 1* 20 =8+0+2+1 =11). [схематичное представление информативнее]