Двухразрядный умножитель vhdl

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
SKyzZz
Родился
Сообщения: 3
Зарегистрирован: Вт окт 08, 2013 14:18:45

Двухразрядный умножитель vhdl

Сообщение SKyzZz »

Провести описание (двумя способами) логической схемы с регулярными соединениями элементов и сравнить результаты моделирования.

С сумматором все понятно, но как описать умножитель?((
Вложения
1.JPG
фотка
(51.67 КБ) 1034 скачивания
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Двухразрядный умножитель vhdl

Сообщение Kavka »

Что, лекции не слушал? :))

i - номер бита множимого
j - номер бита множителя

Ni*Mj=0, если Ni или Mj равно 0
Ni*Mj=Ni*2^j, если Ni и Mj равны 1

Умножение на 2^j это, фактически, сдвиг, т.е. можно свести к одно битовым сумматорам со сдвигом, подобно обычному умножению в столбик.

Код: Выделить всё

      11001001b
*          101b
  ------------
      11001001b
+    00000000 b
+   11001001  b  
  ------------
    1111101101b
Для множителей больших размеров есть хитрости. Посмотреть можно, например, тут. И вообще, поисковики рулят.

Банзай! Дерзай! :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
SKyzZz
Родился
Сообщения: 3
Зарегистрирован: Вт окт 08, 2013 14:18:45

Re: Двухразрядный умножитель vhdl

Сообщение SKyzZz »

Как раз таки это до меня дошло (вот только применять уж извините мозговю.net), я начеркал такой код, но правильно ли я в begin все сделал?

Код: Выделить всё

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity mult2 is
    Port ( a1 : in  STD_LOGIC;
           a2 : in  STD_LOGIC;
           sx : in  STD_LOGIC;
           p1 : out  STD_LOGIC;
           p2 : out  STD_LOGIC);
end mult2;

architecture Behavioral of mult2 is

COMPONENT add1
	PORT(
		a : IN std_logic;
		b : IN std_logic;          
		s : OUT std_logic;
		c : OUT std_logic
		);
	END COMPONENT;
	
signal s1,s2 : std_logic;

begin

	p1 <= a1 and sx;
	s1 <= a1 and a2;
	s2 <= a2 and sx;
	o1: add1 port map (s1,p2,s2);
	o2: add1 port map (s2);

end Behavioral;
Последний раз редактировалось SKyzZz Ср окт 09, 2013 15:24:20, всего редактировалось 1 раз.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Двухразрядный умножитель vhdl

Сообщение Kavka »

Цитировать предыдущее сообщение, да ещё полностью, это нарушение правил этого форума (если мне не изменяет память). Уберите цитату, а то от модераторов ещё оплеуху получите. :)

С синтаксисом VHDL я вам не помогу, давно это было, как говориться.
И, как вы наверное уже догадались, поисковики снова рулят!
http://yandex.ru/yandsearch?text=vhdl+m ... 9644&lr=67
http://www.csee.umbc.edu/portal/help/VH ... html#mul32
Я бы на вашем месте пару тройку страниц поискового ответа просмотрел бы...
Вы не первый с таким вопросом, и вы далеко не одиноки...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Эиком - электронные компоненты и радиодетали
SKyzZz
Родился
Сообщения: 3
Зарегистрирован: Вт окт 08, 2013 14:18:45

Re: Двухразрядный умножитель vhdl

Сообщение SKyzZz »

Да не там искал скорее всего, спасибо, просто мне по большому счастью это не нужно, потому, мне гораздо интересно ковыряться в ассемблере например...не мое это явно)
Реклама
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Двухразрядный умножитель vhdl

Сообщение da-nie »

А есть ещё однотактные умножители... :) http://paralichka85.px6.ru/5cpu/glava05_11.htm
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Реклама
Ответить

Вернуться в «ПЛИС»