Комплекс кто-нибудь ?
Всем привет.
Я хочу написать код для 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);
концевая петля;
конец, если;
конец, если;
конечный процесс;
конец веди себя хорошо;