СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 15
Текст из файла (страница 15)
VHDL-описание такого регистра, предполагающее, что сброс синхронный, т.е.происходит при приходе фронта синхросигнала С , дано ниже.
library IEEE; [2][1]
use IEEE.std_logic_1164.all;
entity Reg_1 is
port ( R : in std_logic;
D : in std_logic_vector(7 downto 0);
C : in std_logic;
Y : out std_logic_vector(7 downto 0) );
end entity;
architecture BEH of Reg_1 is
begin
process (C)
begin
if (C'event and C = '1') then
if R = '1' then
Y <= (others => '0');
else
Y <= D;
end if;
end if;
end process;
end;
На выходах триггеров регистра могут быть установлены выходные каскады с тремя состояниями. Схема и УГО 8-ми разрядного параллельного регистра с входами сброса R, синхронизации С и разрешения выхода EN, собранного на D-триггерах с динамическим управлением( аналог микросхемы ИР23), приведена на рис. 4.17.
Входное 8-ми разрядное число подается на входы D1 – D8, запись числа в регистр происходит по фронту синхроимпульса С. Активный сигнал на входе разрешения выхода EZ открывает выходные каскады с тремя состояниями, в результате чего записанное число появляется на выходы Q1 – Q8. [диаграмма]
Практически по такой же схеме собран регистр типа ИР22, в котором используются D-триггера защелки с потенциальным управлением. Запись информации в этом регистре проводится по уровню синхросигнала С.
Динамические характеристики регистров по сути повторяют динамические характеристики входящих в них триггеров.
На входе регистра могут быть установлены дополнительные логические элементы, позволяющие реализовать различные логические функции, в частности ввод информации от нескольких источников.
а) б)
а) – схема регистра, б) – УГО регистра типа ИР23
Рис. 4.17. Параллельный регистр с выходными каскадами с тремя состояниями.
4.3.2. Описание параллельного регистра с выходами с тремя состояниями на VHDL.
Описание восьмиразрядного регистра(nbgf BH23) с синхронизацией по фронту синхросигнала С и выходами с тремя состояниями и управляющим асинхронным сигналом EZ.
library IEEE; use IEEE.std_logic_1164.all; [1][2]
entity Reg_2 is
port ( EZ,C : in std_logic;
D : in std_logic_vector(7 downto 0);
Y : out std_logic_vector(7 downto 0) );
end entity;
architecture Reg_1_arc of Reg_2 is
signal Y1: std_logic_vector(7 downto 0);
begin
process (C)
begin
if (C'event and C = '1') then
Y1 <= D;
end if;
end if;
end process;
Y <= Y1 when EZ=’0’ else ‘Z’;
end Reg_2_arc;
4.3.3. Регистры сдвига.
Последовательные или сдвигающие регистры содержат цепочку триггеров, связанных цепями переноса. В сдвигающих регистрах применяются или двухступенчатые триггеры, или триггеры с синхронизацией по фронту. D-триггеры с синхронизацией по уровню (защелки) в регистрах сдвига не применяются, потому что в таких регистрах за время действия синхроимпульса возможен проскок импульса сразу через несколько разрядов. Промышленность выпускает несколько типов регистров сдвига в интегральном исполнении, например, ИР9.
Схема регистра сдвига вправо (DSR) на D-триггерах с синхронизацией по фронту сигнала С приведена на рис. 4.18.
Рис. 4.18. Схема регистра сдвига вправо (DSR).
Информационный сигнал поступает на D вход левого триггера DD1 и по фронту импульса синхронизации записывается в этот триггер, оказываясь через время задержки триггера DD1 на D входе второго триггера DD2. Следующий импульс синхронизации сдвигает информацию еще на один разряд вправо.
В ременная диаграмма работы регистра сдвига вправо приведена на рис. 4.19. [не хватает стрелочек]
Рис. 4.19. Временная диаграмма работы регистра сдвига вправо.
Регистр сдвига влево (DSL) отличается только другой организацией связей между разрядами. Схема регистра приведена на рис. 4.20.На ней вход D находится справа, а выход Q – слева.
Рис. 4.20. Схема регистра сдвига влево (DSL).
Разработано большое количество схем универсальных регистров, в которых объединены функции параллельного регистра и регистра сдвига. Универсальный регистр выполняет следующие функции:
-
Параллельную загрузку двоичного числа;
-
Параллельную выгрузку двоичного числа, и
-
Сдвиг числа влево или вправо.
Схема универсального регистра сдвига достаточно сложна. Поэтому приведем описание универсального регистра на VHDL, позволяющее достаточно просто понять алгоритм его работы.
4.3.4. Описание универсального регистра на VHDL.
У ГО регистра сдвига с параллельной загрузкой по сигналу DL , последовательной загрузкой по сигналу S1 и асинхронным сбросом по сигналу R приведено на рис.4.23.
Рис.4.21.УГО регистра сдвига с параллельной загрузкой по команде DL , последовательной загрузкой по команде S1 и сбросом по R = 0.
library IEEE;
use IEEE.std_logic_1164.all;
entity shft_reg is
port ( C : in std_logic; -- синхроимпульсы
S1 : in std_logic; -- вход данных последовательный
D : in std_logic_vector(7 downto 0); -- вход данных параллельный
DL : in std_logic; -- параллельная загрузка данных
R_n : in std_logic; -- асинхр. сброс
Q : out std_logic_vector(7 downto 0)); --
end entity;
architecture shft_reg_arch of shft_reg is
signal TEMP_Q : std_logic_vector(7 downto 0);
begin
process(C, R_n)
begin
if R_n = '0' then
TEMP_Q <= (others => '0');
elsif (C'event and C = '1') then
if DL = '1' then
TEMP_Q <= D;
else
TEMP_Q <= SI & TEMP_Q(7 downto 1);
end if;
end if;
end process;
Q <= TEMP_Q;
end architecture;
4.7. Счетчики.
Счетчиком называется цифровое устройство, предназначенное для счета числа входных импульсов.
Счетчик выполняет следующие операции:
– сброс счетчика в ноль;
– параллельная загрузка начального числа импульсов;
– хранение текущего числа импульсов;
– выдача текущего числа импульсов в параллельном коде;
– инкремент (увеличение хранящегося числа на единицу)
– декремент (уменьшение хранящегося числа на единицу)
– деление частоты входных сигналов
Основные параметры счетчика:
1) Модуль счета (основание счетчика) – M – максимальное число импульсов, после прихода которых счетчик возвращается в исходное состояние.
2) Время установления очередного числа импульсов на выходе после прихода входного импульса tk . Время установления является основным динамическим параметром счетчика, определяющим максимальную частоту счета.
Состояние счетчика определяется по выходам разрядов. Входные сигналы поступают на младший разряд.
4.7.1. Счетчики с непосредственной связью.
Счетчик с непосредственной связью между триггерами относится к классу счетчиков с последовательным переносом.
Схема счетчика с М = 16 = 24[не очень понятно] с непосредственной связью и временная диаграмма его работы приведены на рис. 4.22 и 4.23.
Рис. 4.22. Счетчик с непосредственной связью на триггерах типа ТМ2.
CLK
R
Q0
Q1
Q2
Q3
DEC
Рис. 4.23. Временная диаграмма работы счетчика с непосредственной связью.
[Следует повторить назначение сигналов]
[Такие диаграммы лучше показывать на фоне в клетку]
В схеме счетчика нет других элементов, кроме D-триггеров, включенных по схеме счетных Т-триггеров. Состояние Т-триггера меняется на противоположное на каждом синхроимпульсе, поступающем на вход CLK. Таким образом счетчик считает число импульсов, поступающих на вход CLK.
Сигнал на выходе триггера DD1 младшего разряда Q0 изменяется с частотой, равной половине частоты сигнала CLK. Фронт этой последовательности является сигналом переноса в старший разряд, собранный на триггере DD2. Таким образом, сигнал переноса последовательно передается от младшего разряда к старшему. Это счетчик с последовательным переносом.
Счетчик с непосредственной связью обладает малым быстродействием. Сигнал переноса в худшем случае достигает последнего разряда n за время, равное Tp = n tpTQ, где tpTQ – время задержки сигнала в триггере.
Это видно на временной диаграмме, представленной на рис. 4.26. [где он?] В промежутках между состояниями 1 и 2, 3 и 4, 5 и 6, 7 и 8 видны недействительные (неправильные) состояния счетчика. Видно, что время, занятое недействительными состояниями, возрастает по направлению к старшему разряду.
4.7.2. Вычитающий счетчик с непосредственной связью.
Вычитающий счетчик с непосредственной связью отличается от суммирующего счетчика только подключением входа С триггера к прямому выходу Q триггера младшего разряда (рис. 4.24).
Первый импульс CLK устанавливает все триггеры счетчика в состояние 11112 = 1510, а затем, по мере поступления импульсов CLK, число в счетчике уменьшается до 00002 = 010.
Рис. 4.24. Вычитающий счетчик с непосредственной связью на триггерах ТМ2.
В вычитающем счетчике сигналы между разрядами называются заемами. [нарушен порядок рисунков]
Временная диаграмма вычитающего счетчика представлена на рис. 4.25.
CLK
R
Q0
Q1
Q2
Q3
[опять же фон клеткой]