Курсовая работа: Цифровой измеритель разности двух напряжений

Рисунок 3.1 - Временная
диаграмма, полученная при анализе модели ДУ.
Из временной диаграммы видно,
что дифференциальный усилитель выполняет вычитание In1-In2 и выдает на выход Out1
получившуюся разность.

Рисунок 3.2 - Временная
диаграмма, полученная при анализе модели ГЛИН.
Генератор линейно изменяющегося
напряжения выдает на выход out1, нарастающее со
скоростью 100нс, напряжение от 1В до 10В. На инверсном выходе not_out1 напряжение, падающее со скоростью 100нс, от -1В до 10В.

Рисунок 3.3 - Временная
диаграмма, полученная при анализе модели генератора
На выходе устройства появляются
логические уровни 0 и 1 длительностью 50нс.

Рисунок 3.4 - Временная
диаграмма, полученная при анализе модели счетчика.
Как видно из диаграммы счетчик
считает от 0 до 16.
Из полученных диаграмм можно
сделать заключение о работоспособности отдельных модулей.
Для построения модели устройства
в целом используется структурное описание. При этом модель представляется в
виде совокупности отдельных модулей описанных ранее и связей между ними. Это
позволяет применить принцип декомпозиции, значительно упрощающий процесс
разработки модели.
В качестве внешних портов
ввода-вывода устройства используются следующие:
Входное напряжение (Ua);
Входное напряжение (Ub);
вход сброса (Reset1);
выход знака разности (znak)
выход цифрового кода,
эквивалентного разности напряжений (cod_out).
library IEEE;
use IEEE. STD_LOGIC_1164.
all, IEEE. Numeric_STD. all;
entity
V_metr is
port (Ua: in
integer range - 5 to 5;
Ub: in
integer range - 5 to 5;
Reset1: in
std_logic;
znak: out
std_logic;
cod_out: out
unsigned (3 downto 0));
end V_metr;
Ниже приведен листинг,
описывающий работу устройства. Узлы, разработанные ранее, подключены в составе
библиотеки "RGR" (library RGR).
Так же используются некоторые
простейшие логические элементы (и, или), их описание не приводилось в виду очевидности.
architecture
A10 of V_metr is
component GLIN
port (out1: out
integer range 0 to 10;
not_out1: out
integer range - 10 to 0);
end component;
component comp
port (U1: in
integer range - 10 to 10;
U2: in integer
range - 10 to 10;
U_out: out
std_logic);
end component;
component gen
port (gen_out: out
std_logic);
end component;
component dif_oy
port (In1: in
integer range - 5 to 5;
In2: in integer
range - 5 to 5;
Out1: out
integer range - 10 to 10);
end component;
component
counter
port (reset: in
std_logic;
up: in
std_logic;
C_out: out
unsigned (3 downto 0));
end component;
component
And_op
port (a: in
std_logic;
b: in std_logic;
z: out
std_logic);
end component;
component Or_op
port (a: in
std_logic;
b: in std_logic;
c: in std_logic;
z: out
std_logic);
end component;
component
not_op
port (a: in
std_logic;
z: out
std_logic);
end component;
signal Ua_b: integer
range - 10 to 10;
signal GLN: integer
range 0 to 10;
signal NGLN: integer
range - 10 to 0;
signal GND: integer
range - 10 to 10;
signal nznak,R1:
std_logic;
signal
K1,K2,NK1,NK2,NK1_takt,NK2_takt,clock: std_logic;
signal
takt,zk1,zk2,zk1_k2,zk2_k1,Res: std_logic;
begin
u1: dif_oy port
map (In1=>Ua, In2=>Ub,Out1=>Ua_b);
u2: comp port
map (U1=>Ua_b, U2=>GND, U_out=>nznak);
u3: not_op port
map (a=>nznak, z=>znak);
u4: GLIN port
map (out1=>GLN,not_out1=>NGLN);
u5: comp port
map (U1=>Ua_b, U2=>GLN, U_out=>K1);
u6: comp port
map (U1=>Ua_b, U2=>NGLN, U_out=>K2);
u7: Or_op port
map (a=>K1, b=>K1,c=>K1, z=>NK1);
u8: not_op port
map (a=>K2, z=>NK2);
u9: gen port
map (gen_out=>takt);
u10: And_op
port map (a=>NK1,b=>takt,z=>NK1_takt);
u11: And_op
port map (a=>NK2,b=>takt,z=>NK2_takt);
u12: Or_op port
map (a=>NK1_takt,b=>NK2_takt,c=>NK2_takt,z=>clock);
u13: counter
port map (reset=>Res,up=>clock,C_out=>cod_out);
u14: not_op
port map (a=>NK1,z=>zk1);
u15: not_op
port map (a=>NK2,z=>zk2);
u16: And_op
port map (a=>zk1,b=>NK2,z=>zk1_k2);
u17: And_op
port map (a=>NK1,b=>zk2,z=>zk2_k1);
u18: Or_op port
map (a=>zk1_k2,b=>zk2_k1,c=>zk2_k1,z=>R1);
u19: And_op
port map (a=>R1,b=>Reset1,z=>Res);
В результате анализа модели
устройства получена следующая временная диаграмма.

Рисунок 3.5 - Временная
диаграмма, полученная при анализе модели устройства
Из диаграммы видно, что на
выходе cod_out формируется
цифровой код, эквивалентный разности напряжений Ua-Ub, поданных на вход устройства. С выхода znak
снимается знак разности: 1, если Ua-Ub<0
и 0 если Ua-Ub>=0.
При проектировании цифрового
устройства, для последующего имплементации в PLD,
появляется ряд дополнительных трудностей, связанных с невозможностью
использования некоторых типов данных и языковых конструкций. Так же приходится
учитывать особенности имплементации для ПМЛ разных фирм и устанавливаемые
ограничения: максимальная частота, количество доступных элементов и т.д. Наиболее
эффективным способом в этом случае является построение структурных моделей с
использованием библиотек компонентов поставляемых производителем конкретного
типа ПМЛ. Однако в данной расчетно-графической работе этого не было сделано,
так как основной целью было - приобретение навыков построение моделей отдельных
узлов и структурных моделей. В целом при построении моделей цифровых узлов не
использовались запрещенные языковые конструкции и типы данных, также были
учтены ограничения на количество доступных элементов памяти и максимальную
частоту сигнала.
В ходе выполнения работы была
построена и исследована модель цифрового измерителя разности двух напряжений.
Модель содержит не только
цифровые блоки, но и аналоговые устройства. Были построены временные диаграммы
сигналов, по которым можно судить об особенностях функционирования устройства.
При необходимости, для большей
наглядности и удобства, модель можно дополнить дешифратором и цифровым
семисегментным индикатором.
|