
- •1. Плис. Основные понятия, области использования.
- •2. Комбинаторные схемы.
- •3. Логические элементы и, или, не и т.Д. И схемы на их основе
- •4. Шифратор и дешифратор. Реализация на логических элементах.
- •5. Триггеры.
- •Типы триггеров rs-триггеры rs-триггер асинхронный
- •Rs-триггер синхронный
- •Rs-триггер двухступенчатый со сложной логикой
- •D-триггеры
- •D-триггер синхронный
- •6. Схемы с элементами памяти.
- •7. Синхронные и асинхронные входы триггеров.
- •11. Описание логических выражений. Реализация в виде схем и текстового описания.
- •1.3.9 Булевы выражения
- •1.3.9.1 Логические операторы
- •1.3.9.1.1 Булевы операторы, использующие not
- •1.3.9.1.2 Булевы операторы, использующие and, nand, or, nor, xor, и xnor
- •1.3.9.4 Приоритеты булевых операторов и компараторов
- •1.3.10 Логические функции
- •1.3.10.1 Мегафункции/lpm
- •1.3.10.2 Макрофункции
- •14. Реализация счетчика на языке ahdl.
- •17. Процесс создания и отладки программ для плис.
1.3.9.1.1 Булевы операторы, использующие not
Оператор НЕ является префиксом инвертора. Поведение оператора НЕ зависит от операнда, на который он воздействует.
С оператором НЕ можно использовать три типа операндов:
1. Если операнд - одиночный узел, GND, или VCC, выполняется одиночная инверсия. Например, !a означает, что сигнал проходит через инвертор.
2. Если операнд - группа узлов, то каждый член группы проходит через инвертор. Например, шина !a[4..1] интерпретируется как (!a4, !a3, !a2, !a1).
3. Если операнд - число, он трактуется как двоичное число и каждый его бит инвертируется. Например, !9 интерпретируется как !B"1001", то есть B"0110".
1.3.9.1.2 Булевы операторы, использующие and, nand, or, nor, xor, и xnor
С бинарными операторами существует пять сочетаний операндов. Каждое из этих сочетаний интерпретируется различно:
1. Если оба операнда - одиночные узлы или константы GND и VCC, оператор выполняет логическую операцию над двумя элементами. Например, (a & b).
2. Если оба операнда - группы узлов, оператор действует на соответствующие узлы каждой группы, выполняя побитовые операции между группами. Группы должны иметь одинаковый размер. Например, (a, b, c) # (d, e, f) интерпретируется как (a # d, b # e, c # f).
3. Если один операнд - одиночный узел, GND, или VCC, а другой группа узлов, одиночный узел или константа дублируется для создания группы такого же размера как другой оператор. Затем выражение трактуется как групповая операция. Например, a & b[4..1] интерпретируется как (a & b4, a & b3, a & b2, a & b1).
4. Если оба операнда - числа, то более короткое число расширяется с учетом знака для согласования с размером другого числа и трактуется затем как групповая операция. Например, в выражении (3 # 8), 3 и 8 преобразуются в двоичные числа B"0011" и B"1000", соответственно. Результатом будет B"1011".
5. Если один операнд - число, а другой узел или группа узлов, то число разделяется на биты для согласования с размером группы и выражение рассматривается как групповая операция. Например, в выражении (a, b, c) & 1, 1 преобразуется к B"001" и выражение становится (a, b, c) & (0, 0, 1). Результатом будет (a & 0, b & 0, c & 1).
Выражение, которое использует VCC как операнд, интерпретируется в зависимости от выражения, которое использует 1 как операнд. Например, в первом выражении, 1 - число в знакорасширенном формате . Во втором выражении, узел VCC дублируется . Затем каждое выражение трактуется как групповая операция.
(a,b,c) & 1 = (0, 0,c)
(a,b,c) &VCC= (a,b,c)
1.3.9.4 Приоритеты булевых операторов и компараторов
Операнды, разделенные логическими и арифметическими операторами и компараторами вычисляются в соответствии с правилами приоритетов, приведенными ниже (приоритет 1 - наивысший). Операции одинакового приоритета оцениваются слева направо. С помощью скобок () можно менять порядок вычислений.
Приоритет: |
Оператор/Компаратор:
|
1 |
- (минус) |
1 |
! (НЕ) |
2 |
+ (сложение) |
2 |
- (вычитание) |
3 |
== (равно) |
3 |
!= (не равно) |
3 |
< (меньше чем) |
3 |
<= (меньше чем или равно) |
3 |
> (больше чем) |
3 |
>= (больше чем или равно) |
4 |
& (И) |
4 |
!& (И-НЕ) |
5 |
$ (Исключающее ИЛИ) |
5 |
!$ (Исключающее ИЛИ-НЕ) |
6 |
# (ИЛИ) |
6 |
!# (ИЛИ-НЕ) |