Проектирование цифровых устройств с использованием пакета VHDL. Моделирование элементов. Текст программы, моделирующей работу схемы

Страницы работы

19 страниц (Word-файл)

Фрагмент текста работы

Рязанская государственная радиотехническая академия

Кафедра САПР ВС

Задание на курсовую работу по дисциплине «Схемотехника ЭС»

Тема:                                                            Проектирование цифровых устройств с использованием пакета VHDL

Срок представления к защите:              20 мая 2002г.

Задание принято к исполнению             __________  /студент гр.045 /

Задание выдал                                            __________  /асс. каф. САПР ВС Н.В./

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

  1. Моделирование элементов

1.1.  Схема К155ЛА3 (2-И-НЕ)

1.2.  Схема К155ЛЕ1 (2-ИЛИ-НЕ)

1.3.  Схема К155ЛН1 (инвертор)

1.4.  Схема К555ТМ2 (D-триггер)

1.5.  Схема К580ВА86 (шинный формирователь)

1.6.  Схема К580ВИ53 (программируемый таймер)

  1. Моделирование схемы
  2. Список литературы

ЗАКЛЮЧЕНИЕ

ПРИЛОЖЕНИЯ

Приложение 1: Текст программы, моделирующей работу схемы

Приложение 2: Результаты моделирования схемы

ВВЕДЕНИЕ

Широкое распространение цифровой техники, ее доступность обывателю и дешевизна обусловлены появлением интегральных микросхем. Цифровые устройства, собранные на базе дискретных транзисторов и диодов, имели значительные габаритные размеры и массу; обладали невысокой надежностью в связи с наличием большого числа элементов и паяных связей между ними. Интегральные микросхемы, содержащие в своем составе десятки и сотни тысяч компонентов, позволили по-новому подойти к проектированию и изготовлению цифровых устройств. Надежность одной микросхемы практически не зависит от количества включенных в нее элементов и близка к надежности одиночного транзистора, а потребляемая мощность в пересчете на отдельный компонент уменьшается с ростом степени интеграции.

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

1. МОДЕЛИРОВАНИЕ ЭЛЕМЕНТОВ

1.1.  Схема К155ЛА3( 2-И-НЕ)

Данная схема реализует логическую функцию

Y = not ( X1 and X2 )

Таблица истинности выглядит следующим образом:

X1

X2

Y

0

0

0

0

1

1

1

0

1

1

1

1

Текст программы

library IEEE;

use IEEE.std_logic_1164.all;

entity K155LA3 is

port (

x1: in STD_LOGIC;

x2: in STD_LOGIC;

y: out STD_LOGIC

);

end K155LA3;

architecture K155LA3 of K155LA3 is

begin

-- <<enter your statements here>>

process (x1,x2)

begin

y <= not(x1 and x2)after 22 ns;

end process;

end K155LA3;

Временные диаграммы


1.2. Схема К155ЛЕ1 ( 2-ИЛИ-НЕ)

Данная схема реализует логическую функцию

Y = not ( X1 or X2 )

Таблица истинности выглядит следующим образом:

X1

X2

Y

0

0

1

0

1

0

1

0

0

1

1

0

Текст программы

library IEEE;

use IEEE.std_logic_1164.all;

entity K155LE1 is

port (

x1: in STD_LOGIC;

x2: in STD_LOGIC;

y: out STD_LOGIC

);

end K155LE1;

architecture K155LE1 of K155LE1 is

begin

-- <<enter your statements here>>

Process(x1,x2)

begin

Y<=not(X1 or X2) after 22ns;

end process;

end K155LE1;

Временные диаграммы


1.2.  Схема К155ЛН1

Данная схема реализует логическую функцию

Y = not ( X )

Таблица истинности выглядит следующим образом:

X

Y

0

1

1

0

Текст программы

library IEEE;

use IEEE.std_logic_1164.all;

entity K155LN1 is

port (

x: in STD_LOGIC;

y: out STD_LOGIC

);

end K155LN1;

architecture K155LN1 of K155LN1 is

begin

-- <<enter your statements here>>

process (x)

begin

y <= not(x)after 22 ns;

end process;

end K155LN1;

Временные диаграммы


1.3.  Схема К555ТМ2 (D-триггер)

Данный триггер имеет четыре входа:

- С  –   вход тактовых импульсов.

- D  –   вход установки триггера в состояние, в котором находится сигнал, поступающий на этот вход по спадам тактовых импульсов.

- R,S – управляющие входы (сигнал R устанавливает триггер в ‘1’, сигнал S – в ‘0’,  если и R, и S равны ‘1’, то триггер устанавливается в ‘1’).

Текст программы

library IEEE;

use IEEE.std_logic_1164.all;

entity k155tm2 is

port (

R: in STD_LOGIC;

D: in STD_LOGIC;

C: in STD_LOGIC;

S: in STD_LOGIC;

Q: out STD_LOGIC;

Q1: out STD_LOGIC

);

end k155tm2;

architecture k155tm2 of k155tm2 is

begin

-- <<enter your statements here>>

process (s,r,c,d)

variable q0,a: std_logic;

begin

a:='1';

if R='1'and S='0' and (C='1' or C='0')and (D='1' or D='0')then q0:='0';

else

if R='0' and S='1' and (C='1' or C='0')and (D='1' or D='0') then q0:='0';

else

If R='1' and S='1' then

if C'event and C='1' and D='1' then q0:='1';

else

if C'event and C='1' and D='0' then q0:='0';

end if;

end if;

else

if R='0' and S='0'and(C='1' or C='0')and (D='1' or D='0') then q0:=a;   

end if;

end if;

end if;

end if;

q <= q0 after 25ns;

a := q0;

q1<=not(q0) after 25ns;      

end process;

end k155tm2;

Временные диаграммы


1.4.  Схема КР580ВА86 ( шинный формирователь)

Это микросхема представляет собой двунаправленный восьмиразрядный шинный формирователь, предназначенный для обмена данными между процессором и системной шиной.

В зависимости от управляющих сигналов ОЕ и Т микросхемы могут работать в режиме передачи А®В, В®А или в режиме «выключено»:

- при ОЕ = 0, Т = 1 – направление передачи А®В

- при ОЕ = 0, Т = 0 – направление передачи В®А

- при ОЕ = 1, Т =Х – на выводах А и В третье состояние (Z)

Текст программы

library IEEE;

use IEEE.std_logic_1164.all;

entity K580VA86 is

port (

t: in STD_LOGIC;

de: in STD_LOGIC;

x: inout STD_LOGIC_vector(7 downto 0);

y: inout STD_LOGIC_VECTOR(7 downto 0)

);

end K580VA86;

architecture K580VA86 of K580VA86 is

begin

-- <<enter your statements here>>

process (t,de,x,y)

variable i:integer;

begin

-- signal x -> y

if (de' event)and (de='0') and (t='1') then

for i in 0 to 7 loop

y(i)<= x(i) after 30 ns;

end loop;

else

if (t' event)and (t='1')and(de='0') then

for i in 0 to 7 loop

y(i)<= x(i) after 22 ns;

end loop;

end if;

for i in 0 to 7 loop

if (x(i)' event)and(t='1')and(de='0')then

y(i)<= x(i) after 22 ns;

end if;

end loop;

end if;

-- signal y -> x 

if (de' event)and (de='0') and (t='0') then

for i in 0 to 7 loop

x(i)<= y(i) after 30 ns;

end loop;

else

if (t' event)and (t='0')and(de='0') then

for i in 0 to 7 loop

x(i)<= y(i) after 22 ns;

end loop;

end if;

for i in 0 to 7 loop

if (y(i)' event)and(t='0')and(de='0')then

x(i)<= y(i) after 22 ns;

end if;

end loop;

end if;

-- Z sostoyanie

if de' event and de='1' then

if t='0' then

for i in 0 to 7 loop

x(i)<='Z'after 18 ns;

end loop;

end if;

if t='1' then

for i in 0 to 7 loop

y(i)<='Z' after 18 ns;

end loop;

end if;  

end if;

end process;

end K580VA86;

Временные диаграммы


1.6. Схема КР580ВИ53 (программируемый таймер)

Данная схема представляет собой таймер с тремя независимо-программируемыми каналами и может работать в шести различных режимах.:

Режим 0: Прерывание терминального счета.

Режим 1:Ждущий мультивибратор.

Режим 2: Генератор импульсный.

Режим 3: Генератор меандра.

Режим 4: Одиночный программно-формируемый стробирующий сигнал.

Режим 5: Одиночный аппаратно стробирующий сигнал.

Из этих режимов нас интересует только один – ждущий мультивибратор.

Входы микросхемы КР580ВИ53:

-    С0, С1, С2 – входы синхронизации каналов.

-    СЕ0, СЕ1, СЕ2 – входы каналов, по переднему фронту сигналов которых осуществляется загрузка счетчика.

-  А1, А0 – сигналы выбора канала.

-  OUT0, OUT1, OUT2 – выходы каналов.

-  D(0..7) – входы, на которые подается управляющее слово. В момент прихода положительного фронта сигнала СЕ(i) после предварительного выбора канала с них считывается начальное значение счетчика.

Текст программы

--  File: KR580vi83.1

--  created by Design Wizard: 05/14/02 19:11:17

-library IEEE;

use IEEE.std_logic_1164.all;

entity KR580vi83 is

port (

D: in STD_LOGIC_VECTOR (7 downto 0);

C: in STD_LOGIC_VECTOR (2 downto 0);

CE: in STD_LOGIC_VECTOR (2 downto 0);

A: in STD_LOGIC_VECTOR (4 downto 0);

Q: out STD_LOGIC_VECTOR (2 downto 0)

);

end KR580vi83;

architecture KR580vi83 of KR580vi83 is

begin

process (D,C,CE,A)

type Tmode is array (0 to 2) of integer;

variable counter : Tmode;

variable i,n,c1: integer;

function st (X : STD_LOGIC) return integer is

begin

if X = '1' then return 1; end if;

if X = '0' then return 0; end if;

end st;

Function stop(D: std_logic_vector(7 downto 0))return integer is

begin

return 128*st(d(7))+64*st(d(6))+32*st(d(5))+16*st(d(4))+8*st(d(3))+4*st(d(2))+2*st(d(1))+1*st(d(0));

end stop;

procedure quit (i: integer)is

begin

if CE(i)'event and CE(i)='0' then counter(i):=0; end if;

if CE(i)'event and CE(i)='1' then counter(i):=stop(D); end if;

if counter(i)>0 and C(i)'event and C(i)='0' then

Q(i)<='0';

counter(i):=counter(i)-1;      

end if;

if counter(i)=0 and C(i)'event and C(i)='0' then Q(i)<='1';  end if;

end quit;

begin

if a(4)'event or a(3)'event then

if a(4)='0' and a(3)='0' then i:=0; end if;

if a(4)='0' and a(3)='1' then i:=1; end if;

if a(4)='1' and a(3)='0' then i:=2; end if;

end if;

for n in 0 to 2 loop

if n=i then quit(n);end if;

end loop;

end process;

end KR580vi83;

Временные диаграммы.


2.  МОДЕЛИРОВАНИЕ СХЕМЫ

Из описанных ранее на языке VHDL элементов моделируется схема следующего вида:

Программа, моделирующая работу схемы, и временные диаграммы представлены в приложениях.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Шило В. Л. Популярные цифровые микросхемы. Челябинск: Металлургия, 1989. 352 с.

2. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: В 2 томах. Том 1. / Под ред. В.А. Шахнова. М.: Радио и связь, 1988. 368 с.

3. Схемотехника ЭВМ / Под ред. Г.Н. Соловьева. М.: Высшая школа, 1985.    391 с.


ЗАКЛЮЧЕНИЕ

В процессе  выполнения данной курсовой работы были изучены методы проектирования и разработки цифровых устройств в соответствии с данными технического задания. Практическая сторона задания (проектирование кристалла БИС) выполнялась с использованием пакета описания цифровых схем Activ-VHDL. Важным достоинством этого пакета является возможность дополнения его библиотек собственными элементами, что дает проектировщику большую свободу действий.

Использование ЭВМ делает проектирование более простым и эффективным.


ПРИЛОЖЕНИЕ 1: Текст программы, моделирующей схему.

--  File: Shema.vhd

--  created by Design Wizard: 05/16/02 00:41:37

-library IEEE;

use IEEE.std_logic_1164.all;

entity Shema is

port (

D: in STD_LOGIC_VECTOR (7 downto 0);

A: in STD_LOGIC_VECTOR (4 downto 0);

b: out STD_LOGIC_VECTOR (7 downto 0);

F2TTL: in STD_LOGIC;

x1: in STD_LOGIC;

x2: in STD_LOGIC;

s: in STD_LOGIC;

c: in STD_LOGIC;

r: in STD_LOGIC;

from1: out STD_LOGIC;

from2: out STD_LOGIC

);

end Shema;

architecture sructure of Shema is

component K155LA3 is

port (

x1: in STD_LOGIC;

x2: in STD_LOGIC;

y: out STD_LOGIC

);

end component K155LA3;

component K155LE1 is

port (

x1: in STD_LOGIC;

x2: in STD_LOGIC;

y: out STD_LOGIC

);

end component K155LE1;

component K155LN1 is

port (

x: in STD_LOGIC;

y: out STD_LOGIC

);

end component K155LN1;

component K155TM2 is

port (

R: in STD_LOGIC;

D: in STD_LOGIC;

C: in STD_LOGIC;

S: in STD_LOGIC;

Q: out STD_LOGIC;

Q1: out STD_LOGIC

);

end component k155tm2;

component K580VA86 is

port (

t: in STD_LOGIC;

de: in STD_LOGIC;

x: in STD_LOGIC_vector(7 downto 0);

y: out STD_LOGIC_VECTOR(7 downto 0)

);

end component K580VA86;

component KR580VI53 is

port (

D: in STD_LOGIC_VECTOR (7 downto 0);

C: in STD_LOGIC_VECTOR (2 downto 0);

CE: in STD_LOGIC_VECTOR (2 downto 0);

A: in STD_LOGIC_VECTOR (4 downto 0);

Q: out STD_LOGIC_VECTOR (2 downto 0)

);

end component KR580vi53;

signal p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13:STD_LOGIC

Похожие материалы

Информация о работе