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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать документ)

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

Структурная VHDL-модель микросхемы и компонентов структуры:

 

library IEEE;

use IEEE.std_logic_1164.all;

 

architecture Structure of ie13 is

 

component i2

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

component i3

port(A,B,C:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

component i4

port(A,B,C,D:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

component ili

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end component; 

 

component neili

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

component nei

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end component; 

 

component inv

port(A:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

component trig2

port(A,B,C:in STD_LOGIC; Y,Z:out STD_LOGIC);

end component;

 

component nei5

port(A,B,C,D,E:in STD_LOGIC; Y:out STD_LOGIC);

end component;

 

         signal s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,sd0,sd1,sd2,sd3,pe1,npe,pcc,ncet,nc,nsr,nq0,nq1,nq2,nq3: STD_LOGIC;

 

begin

Comp1:inv port map(pe,npe);

Comp2:inv port map(npe,pe1);

Comp3:i3 port map (pe,cep,cet,pcc);

Comp4:inv port map (cet,ncet);

Comp5:inv port map (c,nc);

Comp6:i2 port map (d0,npe,s1);

Comp7:i2 port map(pe1,q0,s2);

Comp8:ili port map(s2,pcc,s18);

Comp9:i2 port map(s1,s18,s19);   

Comp10:inv port map(s19,sd0);

Comp11:i2 port map (d1,npe,s3);

Comp12:i2 port map (pe1,q1,s4);

Comp13:i2 port map (pcc,npe,s5);

Comp14:ili port map(s4,s5,s6);

Comp15:i2 port map(s3,s6,s7);

Comp16:inv port map(s7,sd1);

Comp17:i2 port map (d2,npe,s8);

Comp18:i2 port map(pe1,q2,s9);

Comp19:i3 port map(q0,q1,pcc,s10);

Comp20:ili port map(s9,s10,s11);

Comp21:i2 port map(s8,s11,s12);

Comp22:inv port map(s12,sd2);

Comp23:i2 port map (d3,npe,s13);

Comp24:i2 port map(pe1,q3,s14);

Comp25:i4 port map(q2,q1,q0,pcc,s15);

Comp26:ili port map(s14,s15,s16);

Comp27:i2 port map(s13,s16,s17);

Comp28:inv port map(s17,sd3);

Comp29:inv port map(sr,nsr);

Comp30:nei5 port map(ncet,nq0,nq1,nq2,nq3,tc);

Comp31:trig2 port map(sd0,nc,nsr,q0,nq0);

Comp32:trig2 port map(sd1,nc,nsr,q1,nq1);

Comp33:trig2 port map(sd2,nc,nsr,q2,nq2);

Comp34:trig2 port map(sd3,nc,nsr,q3,nq3);

 

end Structure;

 

library IEEE;

use IEEE.std_logic_1164.all;

entity i2 is

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end i2;

architecture DF_i2 of i2 is

   begin

   Y <= A and B;

end DF_i2;

 

library IEEE;

use IEEE.std_logic_1164.all;

entity i3 is

port(A,B,C:in STD_LOGIC; Y:out STD_LOGIC);

end i3;

architecture DF_i3 of i3 is

   begin   

   Y <= A and B and C;

end DF_i3; 

 

library IEEE;

use IEEE.std_logic_1164.all;

entity i4 is

port(A,B,C,D:in STD_LOGIC; Y:out STD_LOGIC);

end i4;

architecture DF_i4 of i4 is

   begin

   Y <= A and B and C and D;

end DF_i4;

 

library IEEE;

use IEEE.std_logic_1164.all;

entity ili is

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end ili;

architecture DF_ili of ili is

   begin

   Y <= A or B;

end DF_ili; 

 

library IEEE;

use IEEE.std_logic_1164.all;

entity neili is

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end neili;

architecture DF_neili of neili is

   begin

   Y <= not(A or B);

end DF_neili; 

 

library IEEE;

use IEEE.std_logic_1164.all;

entity nei is

port(A,B:in STD_LOGIC; Y:out STD_LOGIC);

end nei;

architecture DF_nei of nei is

   begin

   Y <= not(A and B);

end DF_nei;

 

library IEEE;

use IEEE.std_logic_1164.all;   

entity inv is

port(A:in STD_LOGIC; Y:out STD_LOGIC);

end inv;

architecture DF_inv of inv is

   begin

   Y <= not A ;

end DF_inv;

 

library IEEE;

use IEEE.std_logic_1164.all;

entity trig2 is

port(A,B,C:in STD_LOGIC; Y,Z:out STD_LOGIC);

end trig2;

architecture DF_trig2 of trig2 is

begin

T2: process(A,B,C)

  Begin

if C='0' then Y<='0'; Z<='1';

elsif B'Event and B='1' then Y<=A; Z<=not A;

end if;

end process T2;

   end DF_trig2;

  

 library IEEE;

use IEEE.std_logic_1164.all;

entity nei5 is 

port(A,B,C,D,E:in STD_LOGIC; Y:out STD_LOGIC);

end nei5;

architecture DF_nei5 of nei5 is

   begin

   Y <= (not A) and (not B) and (not C) and (not D) and (not E);

end DF_nei5;

 

Это VHDL-модуль architecture структурного уровня. Уровень модуля определяется наличием в нем таких типично «структурных» конструкций, как объявление компонента и конкретизация компонента. Объявление выполняется для каждого нового типа компонента. Конкретизация выполняется для каждой отдельной копии компонента в структуре. В рассматриваемую микросхему входят пять типов и семнадцать копий компонентов. Типы компонентов именуются идентификаторами i2, i3, inv, trig2, nei5. Копии компонентов именуются идентификаторами Comp1,…,Comp17,… . Связи между входами и выходами копий компонентов представляются сигналами.

Объявление компонента начинается с зарезервированного слова component, за которым следует имя компонента. Далее объявляются формальные параметры настройки (generic) и порты (port) компонента. Для каждого указываются имя, режим (in, out, inout) и тип или подтип. Объявление заканчивается парой зарезервированных слов end component. Так, первый объявляемый компонент имеет имя i2 и формальные порты A, B, Y. Все порты имеют тип STD_LOGIC. Первые два являются входными (режим in), третий – выходным (режим out). За объявлением компонентов следует объявление сигналов, используемых для представления связей между входами и выходами компонентов. В рассматриваемой структурной модели связи представляются сигналами s0,…,s19,… . Объявление сигналов начинается с зарезервированного слова signal, за которым следуют имена сигналов, их тип STD_LOGIC. Начальное значение сигналов устанавливается по умолчанию. Им является первое значение перечислимого типа STD_LOGIC, т.е. значение ‘U’.

Конкретизация компонента начинается с определения имени для копии  компонента. За именем копии через  символ ‘:’ следует имя компонента, введенное в его объявлении. Описание отображения параметров настройки начинается зарезервированными словами generic map, отображения портов – зарезервированными словами port map. Параметры настройки являются для компонента константами, порты – сигналами. Отображение назначает формальным параметрам или портам фактические константы или сигналы, объявленные за пределами компонента. Назначение может быть позиционным, ключевым или смешанным. Позиционное назначение использовано при конкретизации компонента Comp1. Формальному порту A ставится в соответствие входной порт pe микросхемы, порту Y – сигнал npe.

Компонентам архитектурного тела структурного уровня ставятся в  соответствие объекты проекта следующего уровня иерархии. Соответствие устанавливается  с помощью VHDL-модуля configuration. Каждый объект описывается двумя модулями: модулем entity и модулем architecture. Имена модулей отличаются в общем случае от имени, используемом в объявлении компонента. Имена параметров настройки и портов модуля entity также отличны (но не обязательно) от имен формальных параметров и портов компонента. Компоненту с именем i2, объявленному в архитектуре с именем Structure, ставятся в соответствие одноименный модуль entity и модуль architecture с именем DF_i2. Формальные порты A, B, Y компонента совпадают по имени с фактическими портами модуля entity. Соответствие между формальными и фактическими портами позиционное. Модуль architecture включает единственный параллельный оператор назначения сигнала, устанавливающий в качестве значения выходного порта Y значение выражения A and B.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 РАЗРАБОТКА МОДЕЛИ ПОТОКОВОЙ

 

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

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

 

architecture Data_Flow of ie13 is

signal s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,sd0,sd1,sd2,sd3,pe1,npe,pcc,ncet,nc,nsr,nq0,nq1,nq2,nq3: STD_LOGIC;

begin

s1 <= d0 and npe;

s2 <= pe1 and q0;

s3 <= d1 and npe;

s4 <= pe1 and q1;

s5 <= pcc and npe;

s6 <= s4 or s5;

s7 <= s3 and s6;

s8 <= d2 and npe;

s9 <= pe1 and q2;

s10 <= q0 and q1 and pcc;

s11 <= s9 or s10;

s12 <= s8 and s11;

s13 <= d3 and npe;

s14 <= pe1 and q2;

s15 <= q2 and q1 and q0 and pcc;

s16 <= s14 or s15;

s17 <= s13 and s16;

s18 <= s2 and pcc;

s19 <= s1 and s18;

sd0 <= not s19;

sd1 <= not s7;

sd2 <= not s12;

sd3 <= not s17;

npe <= not pe;

pe1 <= not npe;

pcc <= pe and cep and cet;

ncet <= not cet;

nc <= not c;  

nsr <= not sr;

 

process (sd0,nc,nsr)

begin

if nsr='0' then q0<='0'; nq0<='1';

elsif nc'Event and nc='1' then q0<=sd0; nq0<=not sd0;

end if;

end process;

 

process (sd1,nc,nsr)

begin

if nsr='0' then q1<='0'; nq1<='1';

elsif nc'Event and nc='1' then q1<=sd1; nq1<=not sd1;

end if;

end process;

 

process (sd2,nc,nsr)

begin

if nsr='0' then q2<='0'; nq2<='1';

elsif nc'Event and nc='1' then q2<=sd2; nq2<=not sd2;

end if;

end process;

 

process (sd3,nc,nsr)

begin

if nsr='0' then q3<='0'; nq3<='1';

elsif nc'Event and nc='1' then q3<=sd3; nq3<=not sd3;

end if;

end process;

 

tc <= (not ncet) and (not nq0) and (not q1) and (not q2) and (not nq3);

end Data_Flow;

 Левая часть оператора содержит имя сигнала, будущая временная диаграмма которого определяется правой частью оператора. Правая часть состоит из последовательности транзакций. В процессе компиляции VHDL-модели, каждый параллельный оператор назначения сигнала автоматически трансформируется в отдельный оператор process, имя которого совпадает с именем оператора назначения сигнала (если такое имеется). В список чувствительности процесса включаются имена всех сигналов, входящих в правую часть оператора назначения. В исполнительную часть процесса включается один последовательный оператор назначения сигнала, который в отношении левой части и транзакций копирует исходный параллельный оператор. Заметим, если исходный оператор является условным или селективным, то в исполнительную часть процесса включаются также условные операторы if или селективный оператор case. Далее процесс со списком чувствительности трансформируется в процесс без такого списка, при этом в конец исполнительной части вставляется последовательный оператор ожидания.

Имитационное  моделирование потоковой VHDL-модели выполнено в той же среде тестирования, что и имитационное моделирование поведенческой и структурной VHDL-моделей. Временные диаграммы входных и выходных сигналов (портов), а также внутренних сигналов представлены на рисунке 6.

 

 

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

 

ЗАКЛЮЧЕНИЕ

 

В процессе выполнения моделирования микросхемы КР1533ИЕ13 была разработана поведенческая модель устройства poved_model, тестовая программа tb по средствам Test Bench, структурная модель stukturnaya_model и потоковая модель potokovaya_model. Временные диаграммы соответствуют таблице истинности микросхемы КР1533ИЕ13.

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

1. Учебник VHDL.

2. Методические указания по курсовому проектированию.


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