Всем привет.Описываю сдвиговый регистр. Параллельная загрузка по 8 бит за три такта , того 24 ( см рис) . После загрузки входные буфера отключаются ( в 'Z' ) . Происходит сдвиг на 2 такта и выгружается через выходные буфера.Схемой управляет автомат (точно работает). Описал на VHDL , проблема с загрузкой в регистры. Как я понял ошибка в описание сдвигового регистра ( срабатывает по переднему фронту).
entity REGISTR_8_BIT is
port(
D : in STD_LOGIC_VECTOR(0 to 7);
CLK : in STD_LOGIC;
OE : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR(0 to 7);
outQ: out STD_LOGIC_VECTOR(0 to 7)
);
end REGISTR_8_BIT;
-- Описание архитектуры 8 битного регистра
architecture Behavioral of REGISTR_8_BIT is
begin
p0
rocess(OE,CLK)
variable DD : STD_LOGIC_VECTOR(0 to 7) ;
begin
if( CLK = '1' and OE = '0') then
DD := D;
end if;
if( OE = '1') then
Q <= (others => 'Z');
else
Q <= DD;
end if;
outQ <= DD;
end process;
end Behavioral;
ниже карта портов для этого регистра:
REG1 : REGISTR_8_BIT
port map( D(0) => lineREG1(0),D(1) => lineREG1(1), D(2) => lineREG1(2), D(3) => lineREG1(3),
D(4) => lineREG1(4),D(5) => lineREG1(5), D(6) => lineREG1(6), D(7) => lineREG1(7),
CLK => line_avtomat_control(3), OE => line_avtomat_control(6),
Q(0) => lineREG3(7),Q(1) => lineREG1(0),Q(2) => lineREG1(1),Q(3) => lineREG1(2),
Q(4) => lineREG1(3),Q(5) => lineREG1(4),Q(6) => lineREG1(5),Q(7) => lineREG1(6),outQ => rreg );
проект и тест бенч прикрепил. Помогите люди добрые ))))