«…лишь недалекие люди боятся конкуренции, а люди подлинного творчества ценят общение с каждым талантом…» А. Бек, Талант.

ПЦУСБ/Лекция 3 — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Слайд: Классификация триггеров)
(Слайд: Классификация триггеров)
Строка 343: Строка 343:
  
 
[[Файл:Alib3-triggers.png|center]]
 
[[Файл:Alib3-triggers.png|center]]
 +
 +
=== Слайд: VHDL-минимум для описания триггеров ===
 +
 +
* Атрибуты — это различные характеристики объектов VHDL
 +
 +
{| border="1" align=center
 +
|+ Атрибуты сигналов (S)
 +
! Атрибут
 +
! Описание
 +
|-
 +
| S'active
 +
| TRUE, если было присвоение, но текущее значение еще прежнее
 +
|-
 +
| S'delayed(t)
 +
| Значение сигнала, существовавшее на время t перед вычислением данного атрибута
 +
|-
 +
! {{Зел|S'event}}
 +
| TRUE, если происходит изменение сигнала
 +
|-
 +
| S'last_active
 +
| Время от последнего присвоения значения сигналу до момента вычисления атрибута
 +
|-
 +
| S'last_event
 +
| Время от последнего изменения сигнала до момента вычисления атрибута
 +
|-
 +
| S'last_value
 +
| Последнее присвоенное сигналу значение
 +
|-
 +
! S'stable(t)
 +
| TRUE, если не происходило изменение сигнала в течение времени t
 +
|-
 +
| S'transaction
 +
| TRUE, если происходит очередное присвоение значения сигналу
 +
|-
 +
| S'quiet
 +
| FALSE, если было присвоение, но текущее значение еще прежнее
 +
|}
 +
 +
<!--
 +
'''Таблица 2'''
 +
 +
{| border="1"
 +
! Атрибут
 +
! Описание
 +
|-
 +
| A'left(N)
 +
| Левая граница N-го индекса массива А
 +
|-
 +
| A'right(N)
 +
| Правая граница N-го индекса массива А
 +
|-
 +
| A'high(N)
 +
| Верхняя граница N-го индекса массива А
 +
|-
 +
| A'low(N)
 +
| Нижняя граница N-го индекса массива А
 +
|-
 +
| A'range(N)
 +
| Диапазон N-го индекса массива А
 +
|-
 +
| A'reverse_range(N)
 +
| Обратный диапазон N-го индекса массива А
 +
|-
 +
| A'length(N)
 +
| Длина диапазона N-го индекса массива А
 +
|}
 +
 +
<br>
 +
 +
'''Таблица 3'''
 +
 +
{| border="1"
 +
! Атрибут
 +
! Описание
 +
|-
 +
| T'base
 +
| Базовый тип данных
 +
|-
 +
| T'left
 +
| Левая граница значений T
 +
|-
 +
| T'right
 +
| Правая граница значений T
 +
|-
 +
| T'high
 +
| Верхняя граница значений T
 +
|-
 +
| T'low
 +
| Нижняя граница значений T
 +
|-
 +
| T'pos(X)
 +
| Позиция значения Х в наборе значений Т
 +
|-
 +
| T'val(N)
 +
| Значение элемента в позиции N набора значений Т
 +
|-
 +
| T'succ(X)
 +
| Значение в наборе значений T, на одну позицию большее X
 +
|-
 +
| T'pred(X)
 +
| Значение в наборе значений T, на одну позицию меньшее X
 +
|-
 +
| T'succ(X)
 +
| Значение в наборе значений T, на одну позицию вправо от X
 +
|-
 +
| T'pred(X)
 +
| Значение в наборе значений T, на одну позицию влево от X
 +
|}
 +
-->
  
 
=== Слайд: END ===
 
=== Слайд: END ===

Версия 15:42, 25 сентября 2013

Лекции ПЦУСБ

Лекции

Практические
Тесты

Лабораторные

Доп. материалы

Заголовок
Базовые цифровые устройства
Автор
Авдеев Н.А.
Нижний колонтитул
ПЦУСБ/Лекция 3
Дополнительный нижний колонтитул
Авдеев Н.А., 08:44, 9 июня 2014


Содержание

Слайд: Содержание

  • Логические элементы (И, ИЛИ, НЕ, Исключающее ИЛИ)
  • Комбинационные схемы [1], [2]:
    • Дешифратор [3] /Шифратор
    • Мультиплексор/Демультиплексор
    • Сумматор
    • Компаратор
  • Последовательностные схемы
    • Триггеры
      • Синхронные
        • по фронту
        • по уровню
      • Асинхронные
    • Регистры
    • Автоматы
    • Счетчики

Слайд: Логические элементы

В алгебре логики известны три основные логические операции:

  1. Логическое умножение (конъюнкция или операция И). Записывается как F = A Λ B, F = A & B, F = A·B, F = AB, читается – A и B.
  2. Логическое сложение (дизъюнкция или операция ИЛИ). Записывается как F = A V B, F = A | B, F = A+B, читается – F = A или B.
  3. Логическое отрицание (инверсия или операция НЕ). Записывается F = A , читается – F = “не” A.

Слайд:Таблица истинности логических элементов

Image80.gif


Аргументы Логические операции (булевы функции)
А В И ИЛИ НЕ
A·B A+B A B
0 0 0 0 1 1
0 1 0 1 1 0
1 0 0 1 0 1
1 1 1 1 0 0
Операторы VHDL A and B A or B not A not B


Комментарий

Таким образом, выполнение сколь угодно сложной логической операции может быть сведено к трем вышеперечисленным операциям. Следовательно, имея некоторые технические устройства, реализующие операции И, ИЛИ, НЕ, можно построить сколь угодно сложное цифровое устройство. Такие устройства называются соответственно логическими элементами И, ИЛИ, НЕ (рис. 2) и образуют основной базис или функционально полную систему логических элементов.


Слайд: Дешифратор (DC)

  • комбинационная схема, преобразующее n-разрядный двоичныйв -ичный одноединичный (позиционный) код
image234.png

Слайд:Дешифратор (VHDL модель)

entity dc is
  port (
    x : in  std_logic_vector(2 downto 0);
    y : out std_logic_vector(7 downto 0));
end dc;
 
architecture beh of dc is
begin 
  y <=
    "00000001" when x = "000" else
    "00000010" when x = "001" else
    "00000100" when x = "010" else
    "00001000" when x = "011" else
    "00010000" when x = "100" else
    "00100000" when x = "101" else
    "01000000" when x = "110" else
    "10000000" when x = "111" else
    "00000000";
end beh;

Слайд:Шифратор

  • комбинационная схема, выполняющее преобразование одноединичный (позиционного) n-разрядного кода в m-разрядный двоичный код.
image232.png


Слайд:Шифратор (VHDL модель 1)

VHDL модель 1 VHDL модель 2
entity cd is
 
  port (
    x : in  std_logic_vector(7 downto 0);
    y : out std_logic_vector(2 downto 0));
 
end dc;
 
architecture beh1 of cd is
 
begin  
 
  y <=
    "000" when x(0) = "1" else
    "001" when x(1) = "1" else
    "010" when x(2) = "1" else
    "011" when x(3) = "1" else
    "100" when x(4) = "1" else
    "101" when x(5) = "1" else
    "110" when x(6) = "1" else
    "111" when x(7) = "1" else
    "000";    
 
end beh1;
entity cd is
 
  port (
    x : in  std_logic_vector(7 downto 0);
    y : out std_logic_vector(2 downto 0));
 
end dc;
 
architecture beh2 of cd is
 
begin 
 
  y(0) <= x(1) or x(3) or x(5) or x(7);
  y(1) <= x(2) or x(3) or x(6) or x(7);
  y(2) <= x(4) or x(5) or x(6) or x(7);
 
end beh2;

Слайд: Мультиплексор

  • комбинационная схема, которая передает сигнал с одного из информационных входов Xi на единственный выход Y, причем номер выбираемого входа задается с помощью управляющих сигналов (адресных входов ai).
tabl5.gif
y = OE(x0*a1*a0 + x1*a1*a0 + x2*a1*a0 + x3*a1*a0)


Слайд:Мультиплексор (Схема)

6.htm1.gif
MS_S.gif

Слайд:Мультиплексор (VHDL модель)

entity mux is
 
  port (
    x : in  std_logic_vector(3 downto 0);
    a : in  std_logic_vector(1 downto 0);
    y : out std_logic);
 
end mux;
 
architecture beh of mux is
begin
  y <=
    x(0) when a = "00" else
    x(1) when a = "01" else
    x(2) when a = "10" else
    x(3) when a = "11" else
    '0';
end beh;


Слайд:Мультиплексор (Особенность)

  • с помощью мультиплексора можно реализовать любую логическую функцию
arhitektura-pc-60.png

Слайд:Мультиплексор (Особенность)

6.htm8.jpg

Слайд: Демультиплексор [4] [5]

  • комбинационная схема, которая выполняет функцию, обратную мультиплексору, т.е. в соответствии с принятой адресацией Ai направляет информацию с единственного входа D на один из M выходов Fj. При этом на остальных выходах будут логические нули (единицы).
Входы Выходы
A1 A0 F3 F2 F1 F0
0 0 0 0 0 D
0 1 0 0 D 0
1 0 0 D 0 0
1 1 D 0 0 0

Слайд: Демультиплексор (Схема)

uch_cifr_t4_45_image016.gif uch_cifr_t4_45_image015.gif uch_cifr_t4_45_image017.gif

Слайд: Демультиплексор (VHDL модель)

entity dms is
  port (
    x : in  std_logic;
    a : in  std_logic_vector(1 downto 0);
    y : out std_logic_vector(3 downto 0));
end dms;
 
architecture beh of dms is
begin
  y <=
    "000" & x      when a = "00" else
    "00" & x & '0' when a = "01" else
    '0' & x & "00" when a = "10" else
    x & "000"      when a = "11" else
    "0000";
end beh;

Слайд: Сумматор

Слайд: Классификация триггеров

Слайд: Триггеры [6] [7]

Ссылки:

Слайд: УГО триггеров

Alib3-triggers.png

Слайд: VHDL-минимум для описания триггеров

  • Атрибуты — это различные характеристики объектов VHDL
Атрибуты сигналов (S)
Атрибут Описание
S'active TRUE, если было присвоение, но текущее значение еще прежнее
S'delayed(t) Значение сигнала, существовавшее на время t перед вычислением данного атрибута
S'event TRUE, если происходит изменение сигнала
S'last_active Время от последнего присвоения значения сигналу до момента вычисления атрибута
S'last_event Время от последнего изменения сигнала до момента вычисления атрибута
S'last_value Последнее присвоенное сигналу значение
S'stable(t) TRUE, если не происходило изменение сигнала в течение времени t
S'transaction TRUE, если происходит очередное присвоение значения сигналу
S'quiet FALSE, если было присвоение, но текущее значение еще прежнее


Слайд: END