Використання блок-діаграм для декомпозиції складних пристроїв в САПР Active-HDL

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Моделювання
Група:
КІ

Частина тексту файла (без зображень, графіків і формул):

Міністерство Освіти і Науки Національний Університет «Львівська політехніка» кафедра ЕОМ Звіт про виконання лабораторної роботи №8 з предмету «Моделювання комп’ютерних систем» на тему : «Використання блок-діаграм для декомпозиції складних пристроїв в САПР Active-HDL» Мета роботи: Навчитися використовувати блок-діаграми (Block Diagrams) для декомпозиції складних об'єктів на структурні складові. Отримати навички застосування констант generic для проектування структурних елементів. Розробити модель 8-розрядного 7-сегментного індикатора. На рисю№1 схема блоку, створена за допомогою блок-діаграм САПР Active-HDL після виконання запису в регістр і далі зчитування з нього. / Рис.№1 Коди у VHDL сгенерованих в проекті : Файл decod.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity DecoderInt is port( X : in STD_LOGIC_VECTOR(3 downto 0); Y : out STD_LOGIC_VECTOR(6 downto 0) ); end DecoderInt; architecture DecoderArch of DecoderInt is begin process (X) begin case(x) is when x"0" => Y <= "1111111"; when x"1" => Y <= "0100100"; when x"2" => Y <= "1101011"; when x"3" => Y <= "1101101"; when x"4" => Y <= "0111100"; when x"5" => Y <= "1011101"; when x"6" => Y <= "1011111"; when x"7" => Y <= "1100100"; when x"8" => Y <= "1111111"; when x"9" => Y <= "1111101"; when others => Y <="0000000"; end case; end process; end DecoderArch; Файл demux.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity DemuxInt is port( CLK : in STD_LOGIC; Seg : in STD_LOGIC_VECTOR(31 downto 0); Y7 : out STD_LOGIC_VECTOR(3 downto 0); Y6 : out STD_LOGIC_VECTOR(3 downto 0); Y5 : out STD_LOGIC_VECTOR(3 downto 0); Y4 : out STD_LOGIC_VECTOR(3 downto 0); Y3 : out STD_LOGIC_VECTOR(3 downto 0); Y2 : out STD_LOGIC_VECTOR(3 downto 0); Y1 : out STD_LOGIC_VECTOR(3 downto 0); Y0 : out STD_LOGIC_VECTOR(3 downto 0) ); end DemuxInt; architecture DemuxArch of DemuxInt is begin process (Seg) begin Y0 <= Seg(3 downto 0); Y1 <= Seg(7 downto 4); Y2 <= Seg(11 downto 8); Y3 <= Seg(15 downto 12); Y4 <= Seg(19 downto 16); Y5 <= Seg(23 downto 20); Y6 <= Seg(27 downto 24); Y7 <= Seg(31 downto 28); end process ; end DemuxArch; Файл Register.vhd library IEEE; use IEEE.STD_LOGIC_1164.all; entity ParalRg is port( CLK : in STD_LOGIC; WE : in STD_LOGIC; RE : in STD_LOGIC; Data_In : in STD_LOGIC_Vector (31 downto 0) :="01101000001101000101011100100010"; --Data_In : in STD_LOGIC_Vector (7 downto 0) :="00000000"; Data_Out : out STD_LOGIC_VECTOR(31 downto 0) ); end ParalRg; architecture ParalRGAch of ParalRg is signal temp : std_logic_vector (31 downto 0) ; -- Використовується для зберігання всередині регістра begin Proc : process (CLK) begin if RE = '0' and WE = '1' then temp<=Data_In ; elsif RE = '1' and WE = '0' then Data_Out <= temp; else Data_Out <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; end if; end process Proc; end ParalRGAch; Файл diagr.vhd library IEEE; use IEEE.std_logic_1164.all; -- other libraries declarations library LAB8; entity diagr is generic(X : in STD_LOGIC_VECTOR(31 downto 0):="00000001001000110100010101100111"); port( CLK : in STD_LOGIC; RE : in STD_LOGIC; WE : in STD_LOGIC; LCD0 : out STD_LOGIC_VECTOR(6 downto 0); LCD1 : out STD_LOGIC_VECTOR(6 downto 0); LCD2 : out STD_LOGIC_VECTOR(6 downto 0); LCD3 : out STD_LOGIC_VECTOR(6 downto 0); LCD4 : out STD_LOGIC_VECTOR(6 downto 0); LCD5 : out STD_LOGIC_VECTOR(6 downto 0); LCD6 : out STD_LOGIC_VECTOR(6 downto 0); LCD7 : out STD_LOGIC_VECTOR(6 downto 0) ); end diagr; architecture diagr of diagr is ---- Component declarations ----- component DecoderInt port ( X : in STD_LOGIC_VECTOR(3 downto 0); Y : out STD_LOGIC_VECTOR(6 downto 0) ); end component; component DemuxInt port ( CLK : in STD_LOGIC; Seg : in STD_LOGIC_VECTOR(31 downto 0); Y0 : out STD_LOGIC_VECTOR(3 downto 0); Y1 : out STD_LOGIC_VECTOR(3 downto 0); Y2 : out STD_LOGIC_VECTOR(3 downto 0); Y3 : out STD_LOGIC_VECTOR(3 downto 0); Y4 : out STD_LOGIC_VECTOR(3 downto 0); Y5 : out STD_LOGIC_VECTOR(3 downto 0); Y6 : out STD_LOGIC_VECTOR(3 downto 0); Y7 : out STD_LOGIC_VECTOR(3 downto 0) ); end component; component ParalRg port ( CLK : in STD_LOGIC; Data_In : in STD_LOGIC_VECTOR(31 downto 0) := "01101000001101000101011100100010"; RE : in STD_LOGIC; WE : in STD_LOGIC; Data_Out : out STD_LOGIC_VECTOR(31 downto 0) ); end component; ---- Signal declarations used on the diagram ---- signal BUS1609 : STD_LOGIC_VECTOR (31 downto 0); signal BUS409 : STD_LOGIC_VECTOR (3 downto 0); signal BUS783 : STD_LOGIC_VECTOR (3 downto 0); signal BUS811 : STD_LOGIC_VECTOR (3 downto 0); signal BUS819 : STD_LOGIC_VECTOR (3 downto 0); signal BUS827 : STD_LOGIC_VECTOR (3 downto 0); signal BUS835 : STD_LOGIC_VECTOR (3 downto 0); signal BUS843 : STD_LOGIC_VECTOR (3 downto 0); signal BUS851 : STD_LOGIC_VECTOR (3 downto 0); ---- Configuration specifications for declared components for U2 : ParalRg use entity work.ParalRg(ParalRGAch); begin ---- Component instantiations ---- U1 : DecoderInt port map( X => BUS851, Y => LCD0 ); U10 : DecoderInt port map( X => BUS843, Y => LCD1 ); U2 : ParalRg port map( CLK => CLK, Data_In => X, Data_Out => BUS1609, RE => RE, WE => WE ); U3 : DemuxInt port map( CLK => CLK, Seg => BUS1609, Y0 => BUS409, Y1 => BUS783, Y2 => BUS811, Y3 => BUS819, Y4 => BUS827, Y5 => BUS835, Y6 => BUS843, Y7 => BUS851 ); U4 : DecoderInt port map( X => BUS409, Y => LCD7 ); U5 : DecoderInt port map( X => BUS783, Y => LCD6 ); U6 : DecoderInt port map( X => BUS811, Y => LCD5 ); U7 : DecoderInt port map( X => BUS819, Y => LCD4 ); U8 : DecoderInt port map( X => BUS827, Y => LCD3 ); U9 : DecoderInt port map( X => BUS835, Y => LCD2 ); end diagr; Висновок :виконуючи цю лабораторну роботу ми навчилися використовувати блок-діаграми (Block Diagrams) для декомпозиції складних об'єктів на структурні складові. Отримали навички застосування констант generic для проектування структурних елементів. Розробили модель 8-розрядного 7-сегментного індикатора.
Антиботан аватар за замовчуванням

25.11.2012 18:40

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!