Счётчик числа импульсов

Автор работы: Пользователь скрыл имя, 27 Ноября 2013 в 22:47, курсовая работа

Краткое описание

Микросхема КР1533ИЕ13 обеспечивает параллельную запись и режим счета. Счет происходит от 0 до 16(от 0000 до 1111), следовательно Кпер.=16. Входы D1, D2, D4, D8 служат для подачи сигналов кода при параллельной записи информации. Запись в триггеры счетчика происходит асинхронно при поступлении на вход PE лог. 0 независимо от состояния других входов. При лог. 1 на входе PE и лог. 0 на входе разрешения работы SR счетчик изменяет состояние по спадам импульсов отрицательной полярности на входе С. Направление счета определяется сигналом на входе CEP: при лог. 0 происходит счет вверх, при лог. 1 - вниз.

Прикрепленные файлы: 1 файл

Наташка1(ие13).docx

— 312.35 Кб (Скачать документ)

ВВЕДЕНИЕ

 

Счётчик числа импульсов  — устройство, на выходах которого получается двоичный (двоично-десятичный) код, определяемый числом поступивших  импульсов. Счётчики могут строиться  на двухступенчатых D-триггерах, T-триггерах и JK-триггерах.

Основной параметр счётчика — модуль счёта — максимальное число единичных сигналов, которое  может быть сосчитано счётчиком. Счётчики обозначают через СТ (от англ. counter).

Счётчики классифицируют:

- по числу устойчивых состояний триггеров

- на двоичных триггерах

- на троичных триггерах

- на n-ичных триггерах

- по модулю счёта:

- двоично-десятичные (декада);

- двоичные;

- с произвольным постоянным модулем счёта;

- с переменным модулем счёта;

- по направлению счёта:

- суммирующие;

- вычитающие;

- реверсивные;

- по способу формирования внутренних связей:

- с последовательным переносом;

- с ускоренным переносом;

- с параллельным ускоренным переносом;

- со сквозным ускоренным переносом;

- с комбинированным переносом;

- кольцевые;

- по способу переключения триггера:

- синхронные;

- асинхронные;

- Счётчик Джонсона 

1 ОПИСАНИЕ И ПРИНЦИП  РАБОТЫ МОДЕЛИРОВАННОГО УСТРОЙСТВА

 

Микросхема КР1533ИЕ13 обеспечивает параллельную запись и режим счета. Счет происходит от 0 до 16(от 0000 до 1111), следовательно Кпер.=16. Входы D1, D2, D4, D8 служат для подачи сигналов кода при параллельной записи информации. Запись в триггеры счетчика происходит асинхронно при поступлении на вход PE лог. 0 независимо от состояния других входов. При лог. 1 на входе PE и лог. 0 на входе разрешения работы SR счетчик изменяет состояние по спадам импульсов отрицательной полярности на входе С. Направление счета определяется сигналом на входе CEP: при лог. 0 происходит счет вверх, при лог. 1 - вниз.

Для построения многоразрядных счетчиков у микросхемы есть два  специальных выхода: последнего состояния  Qn и переноса TC. На выходе Qn лог. 1 появляется при достижении состояния 16 при счете. В остальных случаях на выходе Qn - лог. 0. При наличии лог. 1 на выходе Qn и лог. 0 на входе SR одновременно с импульсом на входе С на выходе переноса TC появляется импульс отрицательной полярности и той же длительности.

  Счетчик КР1533ИЕ13 не имеет входа установки в 0. Для этой цели на входы D1, D2, D4, D8 подают лог. 0, а на вход PE - импульс отрицательной полярности. Смена сигналов на входах CEP и SR должна происходить в момент переключения сигнала на входе С из лог. 0 в лог. 1 или в паузе между импульсами на входе С (то есть при лог. 1 на этом входе).

  По импульсу отрицательной  полярности на входе PE записываются сигналы кода числа 7 в триггеры счетчика (сигналы кода 0111 на входах D8, D4, D2, D0 не показаны). Импульс на его выходе TC формируется одновременно с третьим импульсом на входе С, по спаду которого счетчик переключается в состояние 0.

  Если необходим реверсивный счетчик с максимально возможным быстродействием, его собирают по схеме. В этом счетчике все триггеры микросхем переключаются одновременно и его быстродействие не зависит от числа разрядов. Однако для каждого десятичного разряда, кроме первого, требуется элемент И-НЕ с числом входов, возрастающим по мере роста номера разряда.

  В зависимости от  необходимого быстродействия возможно  построение различных вариантов  последовательно-параллельного счетчика. Можно, например, не использовать  выход Qn микросхемы DD4, а ее выход TC соединить с входом тактовых импульсов второго такого счетчика.

 

Рисунок 1 – Структура  регистра ИЕ13.

 

 

Рисунок 2 – Условное обозначение и цоколевка ИЕ13.

 

 

Таблица 1 -  Состояния мультиплексора ИЕ13.

 

 

2 РАЗРАБОТКА МОДЕЛИ ПОВЕДЕНЧЕСКОЙ

 

Поведенческая модель описывает отображение входов проекта в выходы, не раскрывая  структуру проекта. Благодаря этому  свойству поведенческая модель является основным средством формального  описания проекта в следующих  случаях:

- в  начале процесса проектирования, когда составляется абстрактная  спецификация на проект и отсутствуют  детали его реализации;

- при  наличии в проекте частей, представляющих  интеллектуальную собственность.

Разработаем поведенческую VHDL-модель микросхемы КР1533ИЕ13, условно-графическое изображение которой приведено на рисунке 2. Также на рисунке 2 показаны расположение всех выводов микросхемы. Информация и выводах служит исходными данными для построения VHDL-модуля entity, описывающего интерфейс данной микросхемы.

 

library IEEE;

use IEEE.std_logic_1164.all;

 

entity ie13 is

port(

d0: in std_logic;

d1: in std_logic;

d2: in std_logic;

d3: in std_logic;

pe: in std_logic;

cep: in std_logic;

cet: in std_logic;

sr: in std_logic;

c: in std_logic;

 

q0: inout std_logic;

q1: inout std_logic;

q2: inout std_logic;

q3: inout std_logic;

tc: inout std_logic);

end ie13;

 

Интерфейс содержит девять портов(pe, cet, cep, sr, c,  d0..d3) с режимом in, 5 портов(q0..q3,tc) с режимом inout. Все порты имеют тип std_logic. Заметим, что число портов на два меньше числа выводов микросхемы. Порты соответствуют информационным выводам, исключая питание и общий.

VHDL-модуль  architecture поведенческого уровня строится по таблице истинности таблица 1.

 

architecture Behavior of ie13 is

begin

zv: process(cep, cet, pe, sr, c, d0, d1, d2, d3) 

begin

if sr='0' and c'Event and c='1' then q0<='0'; q1<='0'; q2<='0'; q3<='0'; tc<='0'; 

elsif sr='1' and (cep='0' or cet='0') and pe='1' then q0<=q0; q1<=q1; q2<=q2; q3<=q3; 

elsif sr='1' and c'Event and c='1' and pe='0' then q0<=d0; q1<=d1; q2<=d2; q3<=d3; 

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='0' and q1='0' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='0' and q1='0' and q0='1' then q1<='1'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='0' and q1='1' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='0' and q1='1' and q0='1' then q2<='1'; q1<='0'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='1' and q1='0' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='1' and q1='0' and q0='1' then q1<='1'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='1' and q1='1' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='0' and q2='1' and q1='1' and q0='1' then q3<='1'; q2<='0'; q1<='0'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='0' and q1='0' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='0' and q1='0' and q0='1' then q1<='1'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='0' and q1='1' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='0' and q1='1' and q0='1' then q2<='1'; q1<='0'; q0<='0';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='1' and q1='0' and q0='0' then q0<='1'; 

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='1' and q1='0' and q0='1' then q1<='1'; q0<='0';    

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='1' and q1='1' and q0='0' then q0<='1';

elsif c'Event and c='1' and cep='1' and cet='1' and pe='1' and q3='1' and q2='1' and q1='1' and q0='1' then q3<='0'; q2<='0'; q1<='0'; q0<='0'; tc<='1'; 

end if;

end process zv;

end behavior;

 

Модуль начинается с зарезервированного слова architecture, за которым следуют имя модуля Behavior, зарезервированное слово of, имя ie13 модуля entity и процесса zv. Процесс описывает поведение микросхемы. После зарезервированного слова process следует список сигналов, события на которых запускают процесс, вызывая выполнение входящих в него операторов с первого по последний.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 РАЗРАБОТКА ТЕСТОВОЙ  ПРОГРАММЫ

 

Среда тестирования (Test_Bench) создается как отдельный объект проекта на языке VHDL. Все сигналы, воздействующие на тестируемый модуль, представленный VHDL-модулями ie13 и Behavior, генерируются внутри среды, поэтому VHDL-модуль entity среды с именем ie13_tb не включает параметров настройки и портов.

 

entity ie13_tb is

end ie13_tb;

 

architecture TB_ARCHITECTURE of ie13_tb is

 

component ie13

port(

d0: in STD_LOGIC;

d1: in STD_LOGIC;

d2: in STD_LOGIC;

d3: in STD_LOGIC;

pe: in STD_LOGIC;

cep: in STD_LOGIC;

cet: in STD_LOGIC;

c: in STD_LOGIC;

sr: in STD_LOGIC;

 

 

q0: inout STD_LOGIC;

q1: inout STD_LOGIC;

q2: inout STD_LOGIC;

q3: inout STD_LOGIC;

tc: inout STD_LOGIC);

end component;

 

signal d0: STD_LOGIC;

signal d1: STD_LOGIC;

signal d2: STD_LOGIC;

signal d3: STD_LOGIC;

signal pe: STD_LOGIC;

signal cep: STD_LOGIC;

signal cet: STD_LOGIC;

signal c: STD_LOGIC;

signal sr: STD_LOGIC;

signal q0: STD_LOGIC;

signal q1: STD_LOGIC;

signal q2: STD_LOGIC;

signal q3: STD_LOGIC;

signal tc: STD_LOGIC;  

 

begin

UUT : ie13

port map(d0 => d0,

d1 => d1,

d2 => d2,

d3 => d3,

pe => pe,

cep => cep,

cet => cet,

c => c,

sr => sr,

q0 => q0,

q1 => q1,

q2 => q2,

q3 => q3,

tc => tc

);   

 

 

process

begin

C<='1'; wait for 5ns;

C<='0'; wait for 5ns;

end process;

 

pe<='1', '0' after 10ns, '1' after 25ns; 

sr<='0', '1' after 10ns, '0' after 190ns;

cep<='1', '0' after 30ns, '1' after 40ns;

cet<='1', '0' after 40ns, '1' after 60ns;

d0<='1', '0' after 30ns,  '1' after 60ns, '1' after 120ns, '0' after 180ns;

d1<='1', '0' after 30ns,  '1' after 60ns, '0' after 120ns, '1' after 180ns;

d2<='0', '1' after 30ns,  '1' after 60ns, '0' after 120ns, '1' after 180ns;

d3<='0', '1' after 30ns,  '0' after 60ns, '0' after 120ns, '0' after 180ns;

 

end TB_ARCHITECTURE;

 

Архитектура среды тестирования (VHDL-модуль architecture с именем TB_ARCHITECTURE) построена на смешанном структурно-потоковом уровне. Тестируемый модуль объявлен как компонент (component) с именем ie13 и формальными портами. Объявление компонента используется для определения одной его копии с именем UUT посредством параллельного оператора конкретизации компонента, входящего в исполнительную часть модуля architecture среды тестирования. Оператор конкретизации включает отображение формальных портов (port map) компонента на фактические одноименные сигналы, объявленные в разделе объявлений архитектуры TB_ARCHITECTURE. Все порты и сигналы имеют тип STD_LOGIC. Входные сигналы, для которых порты имеют режим in, являются внешними стимулами для тестируемого модуля и генерируются вне его. Они генерируются, за исключением сигналов s, в модуле TB_ARCHITECTURE посредством параллельных операторов назначения сигнала. Правая часть оператора содержит последовательность разделенных запятой транзакций, описывающих будущую временную диаграмму для сигнала, имя которого составляет левую часть оператора. Каждая транзакция представляется парой выражений. Первое выражение определяет значение сигнала. Второе выражение, стоящее после зарезервированного слова after, определяет время, через которое, начиная с текущего момента времени, сигнал получит значение. Второй элемент пары может опускаться, время в этом случае принимается равным нулю. Например, в результате выполнения оператора:

pe<='1', '0' after 10ns, '1' after 25ns;

Сигнал pe сначала получит значение '1', через 60нс получит значение '0' и еще через 25нс снова получит значение '1'. Таким образом, операторы назначения сигнала устанавливают последовательность событий на каждом сигнале. Для генерации тактирующих сигналов s используется специальное средство среды Active-VHDL. Это средство позволяет определить временные диаграммы сигналов, как это показано на рисунке 3.

 

 

Рисунок 3 - Генерация тактирующих сигналов.

Сигналы периодически изменяют значение с ‘0’ на ‘1’ и с ‘1’ на ‘0’, причем время цикла составляет 50ns, что обеспечивает частоту 20МГц. На протяжении 50% времени значение сигнала равно ‘0’ и на протяжении 50% времени значение равно ‘1’. VHDL-модуль configuration связывает копию UUT компонента ie13 с объектом проекта, представленным интерфейсом ie13 и архитектурным телом Behavior.

События на входных сигналах определяют порядок перезапуска  процессов, моделирующих работу мультиплексоров. Процессы, в свою очередь, вычисляют временные диаграммы для выходных сигналов. На рисунке 4 показано окно временных диаграмм всех сигналов-портов микросхемы КР1533ИЕ13 в среде Active-VHDL. Окно содержит шкалу времени, изменяющегося в данном случае в диапазоне от 0нс до 200нс. Время работы микросхемы разделено на четыре фазы: сброс, параллельная загрузка, хранение и счет.

 

Рисунок 4 - Временные диаграммы входных и выходных сигналов регистра.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 РАЗРАБОТКА МОДЕЛИ  СТРУКТУРНОЙ

 

Структурная модель описывает состав компонентов  проекта, типы компонентов, соединения выходов одних компонентов с  входами других. Благодаря этому  свойству структурная модель является основным средством формального  детального описания проекта в следующих  случаях:

- в  конце процесса проектирования, когда строится или генерируется  детальное описание проекта, представляющее  собой реализацию исходной спецификации  поведенческого уровня;

- при  иерархической многоуровневой декомпозиции  сложного проекта на части,  представленные в свою очередь  на структурном уровне, либо представленные  на поведенческом или потоковом  уровне.

Разработаем структурную VHDL-модель микросхемы КР1533ИЕ13, функциональная схема которой представлена на рисунке 5.

 

 

Рисунок 5 - функциональная схема  микросхемы КР1533ИЕ13, с пронумерованными компонентами и цепями.

 

Информация о работе Счётчик числа импульсов