Nick_is_asking Ответов: 1

Комплекс кто-нибудь ?


Всем привет.
Я хочу написать код для 16-битного регистра с параллельной нагрузкой / shift_R / shift_L / asynchronous_reset.
Я уже написал код(ниже) ,но понятия не имею, правильно ли он написан.Мне нужна твоя помощь !!!
Через несколько дней у меня экзамен...

// 16-битный регистр -> асинхронный сброс && параллельная загрузка входов D[0...15] && правый и левый сдвиг с последовательным входом SI

Код:
========================================

Что я уже пробовал:

сущность register_16-это
порт(D_in : in std_logic_vector(15 downto 0); D_out : out std_logic_vector(15 downto 0); CLK , CLR , S1 , S0 : in std_logic );
конечная сущность register_16;


архитектурное поведение register_16 таково
начать
процесс(CLK , CLR , S)
если(CLR = '0'), то -- асинхронный сброс
D_out <= (D_out'Range => '0');

elsif(CLK = '1' и CLK ' Event) затем -- параллельная нагрузка S1S0 => 00
если( (не S1 и не S0) = '1'), то
D_out &ЛТ;= D_in;

elsif((не S1 и S0) = '1') затем -- shift right S1S0 => 01
для меня в 15 до 1 петли
D_out(i - 1) <= D_in(i);
концевая петля;

elsif( (S1 и не S0) = '1') затем -- shift left S1S0 => 10
для меня в 0 до 14 петли
D_out(i + 1) <= D_in(i);
концевая петля;
конец, если;
конец, если;
конечный процесс;
конец веди себя хорошо;

1 Ответов

Рейтинг:
12

OriginalGriff

Так что запустите его через симулятор: Google - VHDL симулятор[^]
Как, по-твоему, это делается в реальном мире?


Richard MacCutchan

Я использую пентаграмму и несколько отборных заклинаний. :)

OriginalGriff

Я попробовал это сделать пару десятилетий назад - а потом передал это людям, которые знали, что они делают (и которые выложили процессор Arm и FPGA на крошечную печатную плату ...) :D

Nick_is_asking

Приятно!!!