Задачи по VHDL
Нужно сделать следующие вопросы до 06.05.2019
1) Запропонуйте структурний і поведінковий опис двонаправленого регістру циклічного зсуву.
2) Запропонуйте структурний і поведінковий опис двонаправленого регістру арифметичного зсуву. Використайте оператори паралельної генерації і параметри настроювання.
3)Виправте помилки та промоделюйте наступну модель:
entity UpDownCount_Bad is
port( clock, reset, up: STD_LOGIC;
D: STD_LOGIC_VECTOR (7 to 0)); end UpDownCount_Bad;
architecture Behave of UpDownCount_Bad is begin process (clock, reset, up);
begin
if (reset = '0') then D
else D
end if;
end if;
end process;
end Behave;
4) Створіть функцію та процедуру за наступною декларацією та перевірте їх роботу:
function Is_X_Zero (signal X : in BIT) return BIT; procedure Is_A_Eq_B (signal A, B : BIT; signal Y : out BIT);
5) Створіть підпрограму, яка виконує перетворення між типами integer і bit_vector. Створіть об'єкт та архітектурне тіло для перевірки цієї функції.
6) Створіть пакет, в якому декларується одна константа і одна функція, і його тіло. Збережіть пакет та його тіло у деякій бібліотеці. Продемонструйте використання операторів опису контексту library та use для використання змісту пакету без префікса.
7) Спробуйте промоделювати наступний фрагмент, поясніть і виправте помилки в ньому:
library ieee; use ieee.std_logic_1164.all; package config is
type type1 is record
f1 : std_logic_vector(31 downto 0);
f2 : std_logic_vector(3 downto 0);
end record; type type2 is record
f1 : std_logic_vector(31 downto 0);
f2 : std_logic_vector(3 downto 0);
end record; end config;
library ieee;
use ieee.STD_LOGIC_1164.all;
use work.config.all; entity Swap_1 is port ( Data1 : type1; Data2 : type2; sel : STD_LOGIC; Data1Swap : out type1; Data2Swap : out type2); end Swap_1;
architecture Behave of Swap_1 is begin
Swap: process (Data1, Data2, sel) begin
case sel is
when '0' => Data1Swap
when others => Data1Swap
end case;
end process Swap;
end Behave;