aboutsummaryrefslogtreecommitdiffstats
path: root/questions/1-c.txt
blob: 048ca036c300db88eb20250b4bb710a9e303befb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Арифметическое устройство

Требуется при помощи языка Verilog спроектировать параметрическое
арифметическое устройство для выполнения операций сложения и умножения чисел с
фиксированной запятой.

Имя модуля должно быть au.

Параметры модуля:

  * WIDTH_1 - размер целой части числа (по умолчанию, 4 бита).
  * WIDTH_2 - размер дробной части числа (по умолчанию, 4 бита).

Входы модуля:

  * x_int, y_int - шины проводов размера WIDTH_1, которые задают целые части
    	входных аргументов x и y.
  * x_frac, y_frac - шины проводов размера WIDTH_2, которые задают дробные
    	части входных аргументов x и y.
  * operation - провод, задающий тип операции (0 - сложение, 1 - умножение).

Выходы модуля:

  * zero - провод, который сигнализирует о том, что результат является 0.
  * overflow - провод, который сигнализирует о том, что произошло переполнение.
  * result_int - шина проводов размера WIDTH_1, которая выдает целую часть
    	результата операции.
  * result_frac - шина проводов размера WIDTH_2, которая задает дробную часть
    	результата.

Примечание: при выходе результирующего значения за пределы ширины целой части
происходит переполнение.