[an error occurred while processing this directive]
|
1 ----- Solution 1: in/out=SIGNED ----------
2 LIBRARY ieee;
3 USE ieee.std_logic_1164.all;
4 USE ieee.std_logic_arith.all;
5 ------------------------------------------
6 ENTITY adder1 IS
7 PORT ( a, b : IN SIGNED (3 DOWNTO 0);
8 sum : OUT SIGNED (4 DOWNTO 0));
9 END adder1;
10 ------------------------------------------
11 ARCHITECTURE adder1 OF adder1 IS
12 BEGIN
13 sum <= a + b;
14 END adder1;
15 ------------------------------------------
Работаю в QuartusII. Пишет сообщение об ошибке в строке "13".
Error: Выражение имеет 4 элемента, а должно иметь 5 элементов.
Я конечно понимаю, что если написать:
7 PORT ( a, b : IN SIGNED (4 DOWNTO 0);
8 sum : OUT SIGNED (4 DOWNTO 0));
или
7 PORT ( a, b : IN SIGNED (3 DOWNTO 0);
8 sum : OUT SIGNED (3 DOWNTO 0));
то всё скомпилиться, но в первом случае задействованы лишние порты,
а во втором результат просто некорректен т.к. :
"1111" + "1111" = "11110" т.е 5 портов, а не 4.
Как с этим справится?
P.S. Извините, если что. Изучаю только 1 неделю.
Лёха.
E-mail: info@telesys.ru