Московский Государственный Институт Электронной Техники
(ТУ)
Задание №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;

Вход