Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Разное / Курсовик.doc
Скачиваний:
4
Добавлен:
16.04.2013
Размер:
956.42 Кб
Скачать

Курсовое задание Вариант-7

Данная схема содержит два синхронных двоичных счетчика- делителя (без дешифраторов). Каждый счётчик основан на четырёх D- триггерах. Линии С и ЕС(тактовая и разрешения тактов) взаимозаменяемые, но отличаются противоположными активными уровнями, поэтому можно организовать счёт по каждому фронту такта: по положительному и отрицательному.

ВХОД

C1ECR1 Режим

/ BHСчётчик работает

Н \ Н “ “

\ xН Код не меняется

x / Н “ “

/ H Н “ “

B\ Н“ “

x x Н “ “

Элементы использующиеся в архитектурах

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

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

Перед подключением компонент в архитектурах надо сначала откомпилировать этот файл чтобы потом подключить библиотеки.

Имя файла: Kunits.Vhd

entity sdnctt is

port(s,d,c: in bit; q,nq: inout bit);

end sdnctt;

architecture behavior of sdnctt is

signal stored,intsig: bit;

begin

process(s,d,c)

begin

if s = '1' then intsig <= '1'; stored <= '1';

elsif c = '1' and not c'stable then intsig <= stored;

elsif c = '0' then stored <= d;

end if;

q <= intsig;

nq <= not intsig;

end process;

end behavior;

entity mnd is

generic(p:natural:=2);

port (x: in bit_vector(1 to p);y: out bit);

end mnd;

architecture poh of mnd is

begin

process(x)

variable count: integer :=0;

begin

for i in x'range loop

if x(i) = '0' then count:= count + 1; end if;

end loop;

if count /= p then y<= '0' ;

else y<= '1' ;

end if;

end process;

end poh;

entity inv is

port(x: in bit;y: out bit);

end inv;

architecture beh of inv is

begin

y<=not(x);

end beh;

entity sum is

port(x,y: in bit;z: out bit);

end sum;

architecture sum_beh of sum is

begin

z<=(x or y);

end sum_beh;

Архитектуры

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

Имя файла: Kursovik.Vhd

library kunits;

use kunits.all;

entity KURS is

port(r1,c1,ec: in bit; q: out bit_vector(1 to 3); qo: inout bit);

end KURS;

architecture KROT of KURS is

component inv

port(x: in bit; y: out bit);

end component;

component sum

port(x,y: in bit; z: out bit);

end component;

component mnd

generic(m:natural:=2);

port(x: in bit_vector(1 to m); y: out bit);

end component;

component SDNCTT

port(s,d,c: in bit; q,nq: inout bit);

end component;

for all: sdnctt use entity kunits.sdnctt(behavior);

for all: inv use entity kunits.inv(beh);

for all: mnd use entity kunits.mnd(poh);

for all: sum use entity kunits.sum(sum_beh);

signal na,nb,nc : bit_vector(1 to 2);

signal k,a,b,d,h: bit;

begin

d1: inv port map(ec,a);

d2: sum port map(c1,a,b);

d3: inv port map(b,d);

d5: inv port map(qo,na(1));

d6: mnd port map(na(1),b,na(2));

d8: mnd generic map(3)

port map(nb(1),na(1),b,nb(2));

d10: mnd generic map(4)

port map(nc(1),nb(1),na(1),b,nc(2));

d4: SDNCTT port map(r1,h,d,qo,h);

d7: SDNCTT port map(r1,nb(1),na(2),q(1),nb(1));

d9: SDNCTT port map(r1,nc(1),nb(2),q(2),nc(1));

d11: SDNCTT port map(r1,k,nc(2),q(3),k);

end krot;

architecture lis of KURS is

component SDNCTT

port(s,d,c: in bit; q,nq: inout bit);

end component;

for all: sdnctt use entity kunits.sdnctt(behavior);

signal na,nb,nc: bit_vector(1 to 2);

signal k,a,b,d,h: bit;

begin

d1: a<=not ec;

d2: b<=not c1 or a;

d3: d<=not b;

d4: SDNCTT port map(r1,h,d,qo,h);

d7: SDNCTT port map(r1,nb(1),na(2),q(1),nb(1));

d9: SDNCTT port map(r1,nc(1),nb(2),q(2),nc(1));

d11: SDNCTT port map(r1,k,nc(2),q(3),k);

d5: na(1)<=not qo;

d6: na(2)<= not(na(1)) and not(b);

d8: nb(2)<= not(nb(1)) and not(b) and not(na(1));

d10: nc(2)<= not(nc(1)) and not(nb(1)) and not(b) and not(na(1));

end lis;

Соседние файлы в папке _Разное