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

Московский Государственный Институт Электронной Техники

(ТУ)

Задание №2 по курсу «Лингвистические средства проектирования высокоуровневых бис»

Выполнил: …

гр. ЭКТ-44

Проверила: Целюлитова В.Н.

МОСКВА 2003

Вариант №33

Задание:

Вход

Вход

Вход

Выход

Выход

С

D

R

Q

Qn

/

H 0

H 0

H 0

Qn-1

/

B 1

H 0

B 1

Qn-1

X

X

B 1

H 0

H 0

Примечание: Схема содержит два независимых четырехразрядных регистра сдвига. Каждый регистр имеет четыре выхода Qот каждого триггера. Все триггеры регистра двухступенчатые,D-типа. Данные в регистр вводятся через последовательный входD. Регистр имеет вход тактовых импульсовC, причем данные принимаются от входаDпервого триггера и сдвигаются на один такт вправо после каждого положительного тактового интервала на входеC. Сброс в нуль данных на выходеqрегистра получится, еслиyfвход асинхронного сбросаRподать напряжение высокого логического уровня. Состояния каждого регистра представлены в таблице. Четыре выхода регистра позволяют преобразовывать последовательный код, принимаемый по входуD, в параллельный, на выходахQ0..Q3, отображаемый через четыре такта.

Схемный символ

Описание работы.

Библиотека элементов lib.vhd

интерфейс D-триггера DCRT

entity dcrtt is

port(d,c,r: in bit; q,nq: out bit);

end dcrtt;

архитектурное тело DCRT

architecture trig of dcrtt is

signal stored,intsig: bit;

begin

process

begin

if r = '1' then

intsig <= '0'; stored <= '0';

elsif c = '0' and not c'stable then

intsig <= stored;

elsif c = '1' then

stored <= d;

end if;

if intsig'event then

q <= intsig;

nq <= not intsig;

end if;

end process;

end trig;

интерфейс INV

entity inv is

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

end inv;

архитектурное тело INV

architecture inv_pov of inv is

begin

y<=not x;

end inv_pov;

Архитектура регистра registr.vhd

library lib;

use lib.all;

entity kurs is

port(r,d,c:in bit_vector(1 to 2);q1,q2:out bit_vector(1 to 4));

end kurs;

architecture kurs_log of kurs is

component dcrtt

port(d,c,r:in bit;q,nq:out bit);

end component;

component inv

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

end component;

signal x2: bit_vector(1 to 6);

signal x1,xq1,xq2,xq3,xq4: bit_vector(1 to 4);

signal q1,q2: bit_vector(1 to 4)

begin

d1: inv port map(d(1),x1(1));

d2: inv port map(r(1),x1(2));d3: inv port map(d(2),x1(3));

d4: inv port map(r(2),x1(4));d5: inv port map(x1(1),x2(1));

d6: inv port map(c(1),x2(2));d7: inv port map(x1(2),x2(3));

d8: inv port map(x1(3),x2(4));d9: inv port map(c(2),x2(5));

d10: inv port map(x1(4),x2(6));

d11: dcrtt port map(x2(1),x2(2),x2(3),xq1(1),xq1(2));

d12: dcrtt port map(x2(4),x2(5),x2(6),xq1(3),xq1(4));

d13: dcrtt port map(xq1(1),x2(2),x2(3),xq2(1),xq2(2));

d14: dcrtt port map(xq1(1),x2(2),x2(3),xq2(3),xq2(4));

d15: dcrtt port map(xq2(1),x2(2),x2(3),xq3(1),xq3(2));

d16: dcrtt port map(xq2(1),x2(2),x2(3),xq3(3),xq3(4));

d17: dcrtt port map(xq3(1),x2(2),x2(3),xq4(1),xq4(2));

d18: dcrtt port map(xq3(1),x2(2),x2(3),xq4(3),xq4(4));

d19: inv port map(xq1(2),q1(1));

d20: inv port map(xq2(2),q1(2));

d21: inv port map(xq3(2),q1(3));

d22: inv port map(xq4(2),q1(4));

d23: inv port map(xq1(4),q2(1));

d24: inv port map(xq2(4),q2(2));

d25: inv port map(xq3(4),q2(3));

d26: inv port map(xq4(4),q2(4));

end kurs_log;

architecture kurs_reg of kurs is

component dcrtt

port(d,c,r:in bit;q,nq:out bit);

end component;

for all:dcrtt use entity lib.dcrtt(trig);

signal x2: bit_vector(1 to 6);

signal x1,xq1,xq2,xq3,xq4: bit_vector(1 to 4);

begin

d1: x1(1)<=not d(1);d2: x1(2)<=not r(1);

d3: x1(3)<=not d(2);d4: x1(4)<=not r(2);

d5: x2(1)<=not x1(1);d6: x2(2)<=not c(1);

d7: x2(3)<=not x1(2);d8: x2(4)<=not x1(3);

d9: x2(5)<=not c(2);d10: x2(6)<=not x1(4);

d11: dcrtt port map(x2(1),x2(2),x2(3),xq1(1),xq1(2));

d12: dcrtt port map(x2(4),x2(5),x2(6),xq1(3),xq1(4));

d13: dcrtt port map(xq1(1),x2(2),x2(3),xq2(1),xq2(2));

d14: dcrtt port map(xq1(1),x2(2),x2(3),xq2(3),xq2(4));

d15: dcrtt port map(xq2(1),x2(2),x2(3),xq3(1),xq3(2));

d16: dcrtt port map(xq2(1),x2(2),x2(3),xq3(3),xq3(4));

d17: dcrtt port map(xq3(1),x2(2),x2(3),xq4(1),xq4(2));

d18: dcrtt ort map(xq3(1),x2(2),x2(3),xq4(3),xq4(4));

d19: q1(1)<=not xq1(2);d20: q1(2)<=not xq2(2);

d21: q1(3)<=not xq3(2);d22: q1(4)<=not xq4(2);

d23: q2(1)<=not xq1(4);d24: q2(2)<=not xq2(4);

d25: q2(3)<=not xq3(4);d26: q2(4)<=not xq4(4);

end kurs_reg;