Реализация n-битного умножения на Spartan 3E Kit с использованием аппаратных умножителей
Функционирование встроенных умножителей 18х18, которые ускоряют DSP логику (отключения устройства) в семействе Spartan ™ -3. Особенности проектирования на примере реализации 4-битного умножения на Spartan-3 E Kit с использованием аппаратных умножителей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 25.04.2012 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
NET "P<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "A<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<3>" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ;
NET "load" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ;
NET "rst" LOC = "D18" | IOSTANDARD = LVTTL | PULLDOWN
ПРИЛОЖЕНИЕ Б
Листинг кода реализации 4-х разрядного умножения чисел без знака с использованием специализированного встроенного блока умножителя.
Sorce.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity sorce is
port (
A : in std_logic_vector (3 downto 0);
load, rst, clk: in std_logic;
P : out std_logic_vector (7 downto 0)
);
end sorce;
architecture Behavioral of sorce is
component mult4x4_u is
port (
A : in std_logic_vector (3 downto 0);
B : in std_logic_vector (3 downto 0);
P : out std_logic_vector (7 downto 0)
);
end component;
signal reg1: std_logic_vector (3 downto 0);
signal sA,sB :std_logic_vector (3 downto 0);
signal sP,sAA :std_logic_vector (7 downto 0);
signal s :std_logic;
begin
M1: mult4x4_u port map (A,reg1,sP);
process(clk, rst)
begin
if rst='1' then
reg1<="0000";
elsif clk='1' and clk'event then
if load='1'then
reg1<=A;
end if;
end if;
end process;
p2: process(clk)
begin
if clk='1' and clk'event then
p <= sP;
end if;
end process;
end Behavioral;
mult4x4_u.vhd
library IEEE;
use IEEE.std_logic_1164.all;
--
-- pragma translate_off
library UNISIM;
use UNISIM.VCOMPONENTS.ALL;
-- pragma translate_on
--
entity mult4x4_u is
port (
A: in std_logic_vector (3 downto 0);
B : in std_logic_vector (3 downto 0);
P : out std_logic_vector (7 downto 0)
);
end mult4x4_u;
--
architecture mult4x4_u_arch of mult4x4_u is
--
-- Components Declarations:
--
component MULT18X18
port (
A: in std_logic_vector (17 downto 0);
B: in std_logic_vector (17 downto 0);
P: out std_logic_vector (35 downto 0)
);
end component;
--
signal A_int : std_logic_vector (17 downto 0);
signal B_int : std_logic_vector (17 downto 0);
signal P_int : std_logic_vector (35 downto 0);
begin
A_int (17 downto 8) <= "0000000000";
A_int (7 downto 4) <= "0000";
A_int (3 downto 0) <= A (3 downto 0);
B_int (17 downto 4) <= "00000000000000";
B_int (3 downto 0) <= B (3 downto 0);
P (7 downto 0) <= P_int (7 downto 0);
--Multiplier Instantiation
U_MULT18X18: MULT18X18
port map (
A => A_int (17 downto 0),
B => B_int (17 downto 0),
P => P_int (35 downto 0)
);
end mult4x4_u_arch;
raspinovki.ucf
NET "clk" LOC = "C9"|IOSTANDARD = LVCMOS33;
NET "P<7>" LOC = "F9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "P<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "A<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ;
NET "A<3>" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ;
NET "load" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ;
NET "rst" LOC = "D18" | IOSTANDARD = LVTTL | PULLDOWN ;
ПРИЛОЖЕНИЕ В
Структурно-функциональное представление устройства
Подобные документы
История развития логических схем с программируемой и репрограммируемой структурами, рост уровня их интеграции и взаимосвязь между ними. Краткий обзор основных семейств Плис фирмы Xilinx. Детальный обзор архитектур и характеристик серий семейства Spartan.
контрольная работа [1,2 M], добавлен 13.06.2013Характеристика таблицы умножения Пифагора; ее применение. Русские математические изобретения, основанные на манипуляциях, которые приводят к нужному результату. Изучение алгоритма работы русского крестьянского способа умножения. Вычисление длинных чисел.
курсовая работа [1,2 M], добавлен 05.12.2013Теоретическое изучение системы проведения арифметических операций над двоичными числами. Создание описания операций умножения и блок-схемы алгоритма её выполнения. Определение набора управляющих сигналов и синтез схемы арифметико-логического устройства.
курсовая работа [169,3 K], добавлен 25.12.2012Составление программы, реализующей моделирование операции умножения, начиная со старших разрядов множителя, при сдвиге суммы частичного произведения влево и неподвижным множителем. Особенности реализации программы на алгоритмическом языке Assembler.
курсовая работа [26,9 K], добавлен 25.05.2014Понятие САПР и общее представление об автоматизированных рабочих местах. Информационная технология проектирования автоматизированного рабочего места и эргономика аппаратных и программных средств АРМ. Сравнительная характеристика современных плоттеров.
дипломная работа [3,9 M], добавлен 03.03.2011Принципы осуществления администрирования и управления кабельной системой. Анализ компонентов коммутационного оборудования кроссовых и аппаратных кабельных систем, а также особенности составления планов их размещения в помещениях кроссовых и аппаратных.
реферат [571,8 K], добавлен 11.12.2010Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.
реферат [49,4 K], добавлен 18.01.2011Понятие двоично-десятичного кода (ДДК), его получение и использование. Изучение арифметико-логических устройств, использующихся для обработки ДДК. Алгоритмы сложения, вычитания, умножения и деления ДДК при помощи арифметико-логических устройств.
контрольная работа [145,5 K], добавлен 05.09.2010Анализ аппаратных и программных средств предприятия ТОО "Alicesystems", занимающегося разработкой web-сайтов. Выбор структур, топологий и технологий разработки системы. Технологии создания сайтов и выбор площадки. Описание программно-аппаратных средств.
отчет по практике [690,9 K], добавлен 29.05.2015Разработка вычислительного устройства для умножения двоичных чисел с фиксированной запятой, без знака, представленных в прямом коде. Алгоритм операции, структурная схема АЛУ, диаграмма управляющих сигналов, функциональная схема устройства управления.
контрольная работа [180,2 K], добавлен 01.10.2014