Запам’ятовувальний пристрій з мікропрограмним керуванням VHDL-частина

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

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

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

Рік:
2012
Тип роботи:
Пояснювальна записка до курсового проекту
Предмет:
Комп’ютерна схемотехніка

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  КУРСОВА РОБОТА VHDL-частина з курсу “Комп’ютерна схемотехніка” на тему: “Запам’ятовувальний пристрій з мікропрограмним керуванням” Львів – 2012 Таблиця істинності ПЗП A Q1 Q0 Y1 Y0 K3 K2 K1 K0 D1 D0 B  0 0 0 0 0 0 0 1 0 1 0 10  1 0 0 0 1 0 1 0 0 0 0 16  2 0 0 1 0 0 1 0 0 1 1 19  3 0 0 1 1 0 0 0 1 0 1 5  4 0 1 0 0 1 1 0 0 0 1 49  5 0 1 0 1 0 1 0 0 1 0 18  6 0 1 1 0 0 0 1 0 1 0 10  7 0 1 1 1 0 1 0 0 1 0 18  8 1 0 0 0 1 1 0 0 1 0 50  9 1 0 0 1 0 0 0 1 0 0 4  10 1 0 1 0 0 0 0 1 1 1 7  11 1 0 1 1 1 1 0 0 1 0 50  12 1 1 0 0 0 0 0 1 0 0 4  13 1 1 0 1 0 1 0 0 0 1 17  14 1 1 1 0 0 0 0 1 1 1 7  15 1 1 1 1 0 1 0 0 1 0 18   8 4 2 1 32 16 8 4 2 1    Схема  VHDL-опис PZP architecture PZP of PZP is type A is array (0 to 15) of STD_LOGIC_VECTOR(5 downto 0); constant Word:A:=("010010" ,"000111" ,"010001" ,"000100" ,"110010" ,"000111" ,"000100" ,"110010" ,"010010" ,"001010" ,"010010" ,"110001" ,"000101" ,"010011" ,"010000" ,"001010"); begin process (Adr3, Adr2, Adr1, Adr0) begin Data<= Word(Conv_Integer(Adr3&Adr2&Adr1&Adr0)); end process; end architecture; VHDL-опис Reg library IEEE ; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity REG is port( CLK: in std_logic; DataIn: in std_logic_vector(5 downto 0); Res: in std_logic; DataOut5: out std_logic; DataOut4: out std_logic; DataOut3: out std_logic; DataOut2: out std_logic; DataOut1: out std_logic; DataOut0: out std_logic ); end REG; architecture REG of REG is signal Save:std_logic_vector(5 downto 0):=(others => 'Z'); begin D:process (CLK, RES) begin if CLK'event and CLK = '1' then if RES = '0' then Save <= "000000"; DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); else DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); end if; else if RES = '0' then Save <="000000"; DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); else DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); save<=DataIn; end if; end if; end process; end architecture; VHDL-опис NOT library IEEE; use IEEE.std_logic_1164.all; entity NOT1 is port( A:in std_logic; F:out std_logic); end entity; architecture NOT1 of NOT1 is begin F<=not(A); end architecture; VHDL-опис MUX library IEEE; use IEEE.STD_LOGIC_1164.all; entity MUX is port( E : in STD_LOGIC; A0 : in STD_LOGIC; A1 : in STD_LOGIC; A2 : in STD_LOGIC; D0 : in STD_LOGIC; D1 : in STD_LOGIC; D2 : in STD_LOGIC; D3 : in STD_LOGIC; D4 : in STD_LOGIC; D5 : in STD_LOGIC; D6 : in STD_LOGIC; D7 : in STD_LOGIC; OutP : out STD_LOGIC ); end MUX; architecture MUX of MUX is begin process(E, A0, A1, A2) begin if E='0' then if A0='0' and A1='0' and A2='0' then OutP<=D0; elsif A0='0' and A1='0' and A2='1' then OutP<=D1; elsif A0='0' and A1='1' and A2='0' then OutP<=D2; elsif A0='0' and A1='1' and A2='1' then OutP<=D3; elsif A0='1' and A1='0' and A2='0' then OutP<=D4; elsif A0='1' and A1='0' and A2='1' then OutP<=D5; elsif A0='1' and A1='1' and A2='0' then OutP<=D6; elsif A0='1' and A1='1' and A2='1' then OutP<=D7; end if; end if; end process; end MUX; VHDL-опис REG library IEEE ; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity REG is port( CLK: in std_logic; DataIn: in std_logic_vector(5 downto 0); Res: in std_logic; DataOut5: out std_logic; DataOut4: out std_logic; DataOut3: out std_logic; DataOut2: out std_logic; DataOut1: out std_logic; DataOut0: out std_logic --DataOut: out std_logic_vector(5 downto 0) ); end REG; architecture REG of REG is signal Save:std_logic_vector(5 downto 0):=(others => 'Z'); begin D:process (CLK, RES) begin if CLK'event and CLK = '1' then if RES = '0' then Save <= "000000"; DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); else DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); end if; else if RES = '0' then Save <="000000"; DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); else DataOut5<= Save(5); DataOut4<= Save(4); DataOut3<= Save(3); DataOut2<= Save(2); DataOut1<= Save(1); DataOut0<= Save(0); save<=DataIn; end if; end if; end process; end architecture; VHDL-опис Counter library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity Counter is port(CLK: in std_logic; NR: in std_logic; E_1: in std_logic; EWR: in std_logic; Cin: in std_logic; Din: in std_logic_vector(3 downto 0); Cout: out std_logic; Dout: out std_logic_vector(3 downto 0)); end entity; architecture Counter of Counter is signal CNT: std_logic_vector(3 downto 0); begin Dout<=CNT; process(CLK) begin if CNT="1111" then Cout<='1'; end if; if CLK'event and CLK = '1' then if NR='0'then CNT<="0000"; end if; if NR='1' then if EWR='0'then CNT<=Din; end if; if EWR='1' then if E_1='1' then CNT<=CNT+1; end if; end if; end if; end if; end process; end architecture; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity RAM is Port(AB: in std_logic_vector(7 downto 0); WE: in std_logic; CS: in std_logic; DB: inout std_logic_vector(3 downto 0)); end RAM; VHDL-опис RAM architecture RAM of RAM is type MEM256X4 is array(0 to 255) of std_logic_vector(3 downto 0); signal RAMM: MEM256X4; begin process(CS,WE,AB) begin if CS='0' then if WE='0' then DB<=(others=>'Z'); RAMM(conv_integer(AB))<=DB; end if; if WE='1' then DB<=RAMM(conv_integer(AB)); end if; else DB<=(others=>'Z'); end if; end process; end architecture; Схема
Антиботан аватар за замовчуванням

19.12.2013 23:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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