Например TDA7294

Форум РадиоКот :: Просмотр темы - Двухразрядный умножитель vhdl
Форум РадиоКот
https://radiokot.ru/forum/

Двухразрядный умножитель vhdl
https://radiokot.ru/forum/viewtopic.php?f=60&t=95315
Страница 1 из 1

Автор:  SKyzZz [ Вт окт 08, 2013 14:22:22 ]
Заголовок сообщения:  Двухразрядный умножитель vhdl

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

С сумматором все понятно, но как описать умножитель?((

Вложения:
Комментарий к файлу: фотка
1.JPG [51.67 KiB]
Скачиваний: 1027

Автор:  Kavka [ Вт окт 08, 2013 20:32:43 ]
Заголовок сообщения:  Re: Двухразрядный умножитель vhdl

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

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

Для множителей больших размеров есть хитрости. Посмотреть можно, например, тут. И вообще, поисковики рулят.

Банзай! Дерзай! :)

Автор:  SKyzZz [ Ср окт 09, 2013 14:26:06 ]
Заголовок сообщения:  Re: Двухразрядный умножитель vhdl

Как раз таки это до меня дошло (вот только применять уж извините мозговю.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;

Автор:  Kavka [ Ср окт 09, 2013 15:04:41 ]
Заголовок сообщения:  Re: Двухразрядный умножитель vhdl

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

С синтаксисом VHDL я вам не помогу, давно это было, как говориться.
И, как вы наверное уже догадались, поисковики снова рулят!
http://yandex.ru/yandsearch?text=vhdl+m ... 9644&lr=67
http://www.csee.umbc.edu/portal/help/VH ... html#mul32
Я бы на вашем месте пару тройку страниц поискового ответа просмотрел бы...
Вы не первый с таким вопросом, и вы далеко не одиноки...

Автор:  SKyzZz [ Ср окт 09, 2013 15:27:19 ]
Заголовок сообщения:  Re: Двухразрядный умножитель vhdl

Да не там искал скорее всего, спасибо, просто мне по большому счастью это не нужно, потому, мне гораздо интересно ковыряться в ассемблере например...не мое это явно)

Автор:  da-nie [ Ср окт 09, 2013 16:04:17 ]
Заголовок сообщения:  Re: Двухразрядный умножитель vhdl

А есть ещё однотактные умножители... :) http://paralichka85.px6.ru/5cpu/glava05_11.htm

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/