Улучшенная модель ADD4 отличается от модели ADD4 тремя особенностями:
· Данные поступающие на входные шины (data_a, и data_b) преобразовываются к типу, без знака при помощи функции перевода unsigned(); прежде, чем они складываются.
· Интерфейс объекта использует сигналы типа std_logic и std_logic_vector.
· Во время обратного присвоения сигнала на выходную шину (data_out), функция перевода std_logic_vector (); используется для управления выходной шиной std_logic_vector.
Таблица ниже отражает результаты моделирования для улучшенного кода модели add4.
время (ns) |
data_a |
data_b |
data_out |
0 |
0 |
0 |
0 |
25 |
1 |
1 |
2 |
50 |
2 |
2 |
4 |
75 |
3 |
3 |
6 |
100 |
4 |
4 |
8 |
125 |
5 |
5 |
10 |
150 |
6 |
6 |
12 |
175 |
7 |
7 |
14 |
200 |
8 |
8 |
16 |
225 |
9 |
9 |
18 |
250 |
10 |
10 |
20 |
275 |
11 |
11 |
22 |
300 |
12 |
12 |
24 |
325 |
13 |
13 |
26 |
350 |
14 |
14 |
28 |
375 |
15 |
15 |
30 |
Умножение и деление.
Ниже приведен пример умножения и деления описанный с использованием типового стиля кодирования:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity mult4 is
port(data_a, data_b : in std_logic_vector(3 downto 0);
data_out : out std_logic_vector(7 downto 0));
end;
architecture behavior of mult4 is
begin
data_out <= std_logic_vector(unsigned(data_a) *
unsigned(data_b));
end;
В таблице ниже показаны значения на входе и выходе для примера кода приведенного выше.
Время (ns) |
data_a |
data_b |
data_out |
0 |
0 |
0 |
0 |
25 |
1 |
1 |
1 |
50 |
2 |
2 |
4 |
75 |
3 |
3 |
9 |
100 |
4 |
4 |
16 |
125 |
5 |
5 |
25 |
150 |
6 |
6 |
36 |
175 |
7 |
7 |
49 |
200 |
8 |
8 |
64 |
225 |
9 |
9 |
81 |
250 |
10 |
10 |
100 |
275 |
11 |
11 |
121 |
300 |
12 |
12 |
144 |
325 |
13 |
13 |
169 |
350 |
14 |
14 |
196 |
375 |
15 |
15 |
225 |
Арифметические операции и результаты
Обратите внимание в выборке mult4 приведенной выше, выходная шина (data_out) имеет 8 бит, для размещения результата операции умножения 4-х битных сомножителей. Таблица ниже описывает руководящие принципы, которым вы должны следовать при объявлении разрядности выходных сигналов для результатов арифметических операций.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.