Модераторы: Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Устройство вычитания двух 16-разрядных чисел VHDL. 
:(
    Опции темы
FauLL
Дата 29.5.2014, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.12.2011

Репутация: нет
Всего: нет



Здравствуйте люди добрые, помогите допилить код. Нужно построить устройство вычитания двух 16-разрядных чисел, представленных в прямом коде. Использовать синхронный сброс.

Код

entity kurs is port (   A, B  : in std_logic_vector  (15 downto 0);
          Clk, Rst : in std_logic;
          S: out std_logic_vector (16 downto 0);
             SignA , SignB: in std_logic;               -- 1 положит/ 0 отритц
             P : out std_logic
      );
end ts2;
 architecture Behavioral of kurs is
signal bA    :  signed(15 downto 0);
signal bB    :  signed(15 downto 0);
signal bS    :  signed(16 downto 0);
          
begin
 
bA <= to_signed(A, 16); 
bB <= to_signed(B, 16);
bS <= Std_logic_vector(to_signed(S, 16));
process (Rst, Clk)       
    begin
If (Clk='1' and Clk'event)  then
        if Rst='1' then 
bS <= 0;
             P <= '0';
                    if SignA = '1' and SignB = '0' then bS <= bA + bB; P <= '1';         --    A+B
                         elsif SignA = '0' and SignB = '1' then bS <= bA + bB; P <= '0';  --   -A-B
                              elsif SignA = '1' and SignB = '1' then                                      --    A-B
                                    if bA > bB then  bS <= bA - bB; P <= '1';          --    A > B
                                         else bS <= bB - bA; P <= '0';                        --    A =< B
                                     end if;
                                     elsif SignA = '0' and SignB = '0' then                                  --    -A-(-B)
                                         if bA >= bB then  bS <= bA - bB; P <= '0';     --    A=>B
                                             else bS <= bB - bA; P <= '1';                    --    A < B
                                         end if;
                     end if;
        end if;      
end process; 
end Behavioral;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное (электроника) | Следующая тема »


 




[ Время генерации скрипта: 0.0930 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.