- •Вопрос 1 - Основные свойства цифровых устройств (цу) обработки сигнала. Элементная база цу. Классификация цу.
- •Вопрос 2 - Функциональный преобразователь (фп) на программируемой логической матрице (плм). Структурная схема и работа фп. Реализация контерма и переключательной функции на плм.
- •Вопрос 3 - Функциональный преобразователь (фп) на программируемой матрице логики (пмл). Структурная схема и работа фп. Реализация системы уравнений в нормальной дизъюнктивной форме (ндф) на пмл.
- •Вопрос 4 - Функциональный преобразователь (фп) табличный lut. Структурная схема и работа фп. Реализация переключательных функций на пзу.
- •Вопрос 5 - Функциональный преобразователь (фп) на мультиплексоре. Структурная схема и работа фп фирмы Actel. Реализация переключательных функций на мультиплексоре.
- •Вопрос 6 - Функциональный преобразователь (фп) на программируемом логическом устройстве (плу). Структурная схема и работа плу. Реализация секции цифрового автомата на плу.
- •Вопрос 7 - Семейство плис max 7000. Общая характеристика семейства. Структурная схема плис max 7000. Назначение элементов структурной схемы.
- •Вопрос 8 - Структурная схема макроячейки плис max 7000. Основные характеристики ячейки. Назначение логического и параллельного расширителей.
- •Вопрос 9 - Семейство flex10k. Общая характеристика семейства. Структурная схема плис семейства flex10k. Назначение элементов структурной схемы.
- •Вопрос 10 - Структурная схема логического блока и логического элемента плис семейства flex10k. Назначение элементов структурной схемы.
- •Вопрос 12 - Организация процесса обработки информации. Основные характеристики последовательного и потокового (конвейерного) стилей обработки.
- •Вопрос 13 - Трехстабильный порт. Назначение, область применения. Использование примитивы tri для проектирования трехстабильного порта.
- •Вопрос 14 - Двунаправленный порт. Назначение, область применения. Использование мегафункции lpm_bustri для проектирования двунаправленного порта.
- •Вопрос 15 - Реализация звена нерекурсивного фильтра типа tdf II с использованием мегафункции lpm_mult. Организация конвейерной обработки.
- •Вопрос 16 - Реализация звена рекурсивного фильтра типа tdf II с использованием мегафункции lpm_mult. Организация конвейерной обработки.
- •Вопрос 19 - Разработка иерархических проектов. Способы подключения к проекту модулей нижнего уровня. Способы использования модулей.
- •Вопрос 20 - Программирование и конфигурирование плис. Способы программирования и конфигурирования (конфигурационная микросхема, пассивная последовательная (ps) и jtag).
- •Вопрос 21 - Языки описания аппаратуры. Язык ahdl. Структура проекта текстового описания модуля. Алфавит языка. Строчные и блочные комментарии (назначение, синтаксис, применение).
- •Вопрос 22 - Имена (символические, модуля, вывода) в языке ahdl. Назначение, синтаксис, применение.
- •Вопрос 23 - Константы (литеральные, именованные, параметры) в языке ahdl. Назначение, синтаксис, применение.
- •Порты модуля
- •Порты модулей нижнего уровня
- •Вопрос 25 - Арифметические, логические операторы и операторы сравнения языка ahdl. Назначение, синтаксис, область применения в текстовом проекте.
- •Вопрос 26 - Логические выражения и уравнения языка ahdl. Логические уравнения управления. Назначение, синтаксис, применение.
- •Вопрос 27 - Условный оператор If Then. Назначение, синтаксис и применение оператора.
- •Вопрос 28 - Условный оператор If Generate. Назначение, синтаксис и применение оператора.
- •Вопрос 29 - Оператор выбора Case. Назначение, синтаксис и применение оператора.
- •Вопрос 30 - Таблица истинности Truth Table. Назначение, синтаксис и применение оператора.
- •Вопрос 31 - Оператор цикла For Generate. Назначение, синтаксис и применение оператора.
- •Вопрос 32 - Оператор объявления значения по умолчанию Defaults. Назначение, синтаксис и применение оператора.
- •Вопрос 33 - Оператор контроля Assert. Назначение, синтаксис и применение оператора.
- •Вопрос 34 - Операторы заголовка Title и задания опции Options. Назначение, синтаксис и применение операторов.
- •Вопрос 36 - Оператор задания константы Constant. Назначение, синтаксис и применение оператора.
- •Вопрос 37 - Оператор обозначения Define. Назначение, синтаксис и применение оператора.
- •Вопрос 38 - Оператор объявления параметра Parameters. Назначение, синтаксис и применение оператора.
- •Вопрос 39 - Оператор описания прототипа Function Prototype. Назначение и синтаксис оператора.
- •Вопрос 40 - Оператор непосредственного обращения к прототипу In-Line Logic Function Reference. Назначение, синтаксис и применение оператора. Позиционное и именное присвоение.
Вопрос 23 - Константы (литеральные, именованные, параметры) в языке ahdl. Назначение, синтаксис, применение.
Литеральные (без имени):
Логические (GND, gnd, VCC, vcc),
Числовые (целые числа без знака):
десятичная система счисления (обозначение нет; цифры: 0..9): 525, 4110 ;
двоичная система счисления (обозначение B, b; цифры: 0, 1, X): B”1101”, b”1101”, B”10X1”, b”10X1” ;
восьмеричная система счисления (обозначение O, o, Q, q; цифры: 0..7): O”125”, o”125”, Q”125”, q”125” ;
шестнадцатеричная система счисления (обозначение H, h, X, x; цифры: 0..9, a..f, A..F): H”2A3F”, h”2A3f”, X”2a3f”, x”2a3F” .
Строковые: “FLEX10K”, "Controller ""MCS51""" .
Именованные: Constant width = 8;
Параметры: Parameters (width = 8, data = 16);
Вопрос 24 - Простые (порты, узлы, группы) и сложные (примитивы буферов и триггеров, модули) переменные в языке AHDL. Назначение, объявление, синтаксис и область применения простых и сложных переменных.
Порты:
Порты модуля
<port name> : <port type> [ = <default port value> ]
<port type> ::=
INPUT | OUTPUT
| BIDIR | MACHINE INPUT
| MACHINE OUTPUT
<default port value> ::= VCC | GND
Порты модулей нижнего уровня
<instance name>. <port name>
<instance name> ::= <symbolic name>
Примеры:
SUBDESIGN my_modul
(
data[7..0], clk : INPUT;
reset : INPUT= GND;
ce : INPUT= VCC;
out[3..0] : OUTPUT;
InOut : BIDIR;
InSm : MACHINE INPUT;
out_sm : MACHINE OUTPUT;
)
--------------------------------------
dff.clk, 7segment.a, 7segment.i[] ;
my_modul. data[]; my_modul.ce
Узлы:
SUBDESIGN logika
( --интерфейсная секция
a, b : INPUT = GND;
c, d : INPUT = VCC;
a_out, b_out : OUTPUT;
)
VARIABLE -- секция переменных
a_var, b_var : NODE;
--ts[3..0] : TRI_STATE_NODE;
BEGIN --логическая секция
a_var = a # b;
b_var = c !& d;
a_out = a_var !# b_var;
b_out = a_var & b_var;
END;
Группы:
1. Одномерные:
v[3..0], data[7..0];
q[N-1 .. 0]; tr[LOG2(M)-1 .. 0];
Обращение к элементам группы:
data[5]; data5; data[7..4];
Обращение ко всей групе: v[];
2. Двухмерные:
a[2..0][3..0]; tr[N-1..0][M-1..0];
Обращение к элементам группы:
a[1][2], a1_2;
Обращение ко всей групе: a[][];
3. Временные
(v[3..0], a, c) ;
Одномерные и двухмерные группы объявляются в секции переменных:
Variable
v[3..0], data[7..0] : NODE; --объявление одномерной группы узлов
a[2..0][3..0] : NODE; --объявление двухмерной группы узлов
tr[N-1..0] : dff; --объявление одномерной группы триггеров
tr[N-1..0][M-1..0] : dff; -- объявление двухмерной группы триггеров
Временные группы создаются в логической секции по мере необходимости: (v[2..0], a, c) ;
Примитивы буферов:
№ |
Примитивы |
Прототип |
Назначение |
1 |
CARRY |
FUNCTION CARRY (in) RETURNS (out); |
Буфер цепочного переноса; (Только для семейств FLEX6000, FLEX8000, FLEX10K) |
2 |
CASCADE |
FUNCTION CASCADE (in) RETURNS (out); |
Буфер каскадного наращивания логической функции; (как и CARRY) |
3 |
EXP |
FUNCTION EXP (in) RETURNS (out); |
Буфер логического расширителя; (Только для семейств MAX5000, MAX7000, MAX9000) |
4 |
GLOBAL |
FUNCTION GLOBAL (in) RETURNS (out); |
Буфер глобальной цепи распространения управляющего сигнала; |
5 |
LCELL |
FUNCTION LCELL (in) RETURNS (out); |
Неудаляемый буфер размещения логической ячейки; |
6 |
OPNDRV |
FUNCTION OPNDRV (in) RETURNS (out); |
Буфер выхода с открытым коллектором; (Только для семейств MAX7000S и FLEX10K , иначе TRI) |
7 |
SOFT |
FUNCTION SOFT (in) RETURNS (out); |
Удаляемый буфер размещения логической ячейки; |
8 |
TRI |
FUNCTION TRI (in, oe) RETURNS (out); |
Буфер выхода с Z-состоянием. |
Примитивы триггеров:
№ |
Примитив |
Прототип примитива |
1 |
DFF |
FUNCTION DFF(D, CLK, CLRN, PRN) RETURNS (Q); |
2 |
DFFE |
FUNCTION DFFE(D, CLK, CLRN, PRN, ENA) RETURNS (Q); |
3 |
TFF |
FUNCTION TFF(T, CLK, CLRN, PRN) RETURNS (Q); |
4 |
TFFE |
FUNCTION TFFE(T, CLK, CLRN, PRN, ENA) RETURNS (Q); |
5 |
JKFF |
FUNCTION JKFF(J, K, CLK, CLRN, PRN) RETURNS (Q); |
6 |
JKFFE |
FUNCTION JKFFE(J, K, CLK, CLRN, PRN, ENA) RETURNS (Q); |
7 |
SRFF |
FUNCTION SRFF(S, R, CLK, CLRN, PRN) RETURNS (Q); |
8 |
SRFFE |
FUNCTION SRFFE(S, R, CLK, CLRN, PRN, ENA) RETURNS (Q); |
9 |
LATCH |
FUNCTION LATCH(D, ENA) RETURNS (Q); |
Модули:
-- Использование оператора FUNCTION
-- Файл sreg_p1d.tdf должен
-- находиться в текущем каталоге!!
----------------------------------------
FUNCTION sreg_p1d (data, clk, ce, reset)
WITH (width)
RETURNS (out[(width) - (1)..0]);
------------------
SUBDESIGN filter
(
clk, ce, clrn, d : INPUT;
-------
outA[7..0],
outB[11..0] : OUTPUT;
)
BEGIN
--IN LINE REFERENCE
outA[] = sreg_p1d(d, clk, ,! clrn)
WITH (width = 8);
(sign, outB[10..0]) = sreg_p1d(d, clk, , )
WITH (width = 12);
-------
END;
-- Использование оператора INCLUDE
-- Файл sreg_p1d.inc вместе с файлом
-- sreg_p1d.tdf должен находиться в
-- доступной библиотеке!!
----------------------------------------
INCLUDE “sreg_p1d.inc”;
------------------
SUBDESIGN filter
(
clk, ce, clrn, d : INPUT;
-------
outA[7..0], sign,
outB[11..0] : OUTPUT;
)
VARIABLE
reg8s : sreg_p1d WITH (width = 8);
reg12s : sreg_p1d WITH (width = 12);
-------
BEGIN
reg12s.clk = clk;
--IN LINE REFERENCE
(sign, outA[],,,) = reg12s(d, clk, , );
(outB[10..3]) = reg8s(.data=d, .clk = clk);
-------
END;