• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сдвиговый регистр VHDL

  • Автор темы Автор темы Abraziv
  • Дата начала Дата начала

Abraziv

Новые
Регистрация
28 Июл 2011
Сообщения
275
Реакции
2
Баллы
0
Сдвиговый регистр VHDL

Всем привет.Описываю сдвиговый регистр. Параллельная загрузка по 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:process(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 );


проект и тест бенч прикрепил. Помогите люди добрые ))))
 

Вложения

  • Снимок.webp
    Снимок.webp
    71 KB · Просмотры: 307
  • Снимок2.webp
    Снимок2.webp
    95.2 KB · Просмотры: 1,436
  • test.txt
    test.txt
    2.9 KB · Просмотры: 583
  • proj.txt
    proj.txt
    13.2 KB · Просмотры: 822
Назад
Сверху