Курсовая работа: Проектирование цифровых устройств в САПР ISE
-------------------------------
1.564 reg_3_1
1.540 reg_2
1.209 reg_0
1.202 reg_1
0.853 reg_3
0.721 din_IBUF
0.469 clk_BUFGP
0.007 clk_BUFGP/IBUFG
---------------------------------
На рис. 19 показан фрагмент ПЛИС, на котором размещена проектируемая схема. Данный рисунок получен с помощью программы редактора FPGA (FPGAEditor).
Рис. 2.19. Окончательное размещение узлов и связей
На этом рисунке приведены контакты P40, P41, P43, P44 и P45, которые соответствуют входному сигналу DIN и выходным сигналам DOUT[0], DOUT[1], DOUT[2] и DOUT[3]. На рисунке показаны также внутренние сигналы reg_0, reg_1, reg_2 и reg_3. Название последних присвоила сама система, и их имена соответствуют индексам сигналов DOUT[0] … DOUT[3]. В схеме продублирован внутренний сигнал reg_3, его аналог имеет наименование reg_3_1 и используется для формирования сигнала DOUT[3] на контакте P45, сам сигнал reg_3 используется для формирования сигнала reg_2 при сдвиге. Указанное дублирование вызвано тем, что в системе задан режим оптимизации по быстродействию, и система обеспечивает максимальное быстродействие, пусть и за счет усложнения схемы.
Фрагмент секции CLB_R8C8.S0, где формируются два младших разряда, показан на рис. 2.20.
Рис. 2.20. Блок ввода-вывода
На рис. 2.21 показан фрагмент блока ввода-вывода (IOB) P40, который обеспечивает прохождение входного сигнала DIN. Сигнал поступает на входной контакт PAD, затем проходит через ряд буферных схем. Во внутреннюю логику ПЛИС поступает сигнал din_IBUF, а также сигнал reg_3_1, который вырабатывается на выходе D–триггера, находящегося в блоке ввода-вывода.
Рис. 2.21. Программируемый логический блок
Таким образом, разработчику достаточно ввести описание схемы на языке VHDL, а все остальное выполняет система проектирования.
6. Разработка умножителя
Пусть требуется разработать комбинационный умножитель 16х16 разрядов. Выходной код в этом случае должен иметь 32 разряда. Необходимо отметить, что в ряде современных семейств ПЛИС имеются встроенные умножители, однако в настоящем разделе используется ПЛИС типа FPGAXC2S15-VQ100, в которой таких блоков нет.
Описание умножителя на языке VHDL имеет следующий вид:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity mult is
Port ( a : in std_logic_vector(7 downto 0);