чи введені позначення і дані таблиці 1, додамо в проект програми Xilinx ISE опис кожного модуля схеми. Для цього потрібно вибрати пункт «New Source.», Як показано на малюнку нижче:
Малюнок 10. Створення файлу проекту
Далі в якості типу додається файлу встановити «VHDL Module» і два рази натиснути кнопку Next.
Малюнок 11. Додавання в проект файлу з VHDL описом модуля схеми
Назви файлів для елементів братимемо з колонки «Ім'я елемента» таблиці 1.
) Файл опису модулів U3, U4, U5, U6, U7, U8, U9, U10, U11, U12 (файл N.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; N is (A: in STD_LOGIC ;: out STD_LOGIC); N; Behavioral of N is lt;=NOT A AFTER 1 NS; Behavioral;
) Файл опису модулів U2 (файл A2.vhd): IEEE; IEEE.STD_LOGIC_1164.ALL; A2 is (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); A2; Behavioral of A2 is
begin
Y lt;=A AND B AFTER 2 NS; Behavioral;
3) Файл опису модуля U16, U18 (файл NAO3.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; NAO3 is (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); NAO3; Behavioral of NAO3 is lt;=NOT (A AND (B OR C OR D)) AFTER 5 NS; Behavioral;
4) Файл опису модуля U1 (файл NO2.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; NO2 is (A, B: in STD_LOGIC ;: out STD_LOGIC); NO2; Behavioral of NO2 is lt;=NOT (A OR B) AFTER 3 NS; Behavioral;
) Файл опису модуля U15 (файл NO3A2.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; NO3A2 is (A: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: out STD_LOGIC); NO3A2; Behavioral of NO3A2 is= lt ;=NOT (A OR B OR (D AND C)) AFTER 5 NSBehavioral;
) Файл опису модуля U13 (файл NAOA2.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; NAOA2 is (A: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: out STD_LOGIC); NAOA2; Behavioral of NAOA2 is lt;= NOT (A AND (B OR (C AND D))) AFTER 4 NS; Behavioral;
7) Файл опису модуля U14 (файл NA2.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; NA2 is (A: in STD_LOGIC ;: in STD_LOGIC ;: out STD_LOGIC); NA2; Behavioral of NA2 is lt;=NOT (A AND B); Behavioral ;
8) Файл опису модулів U17 (файл A4.vhd):
library IEEE; IEEE.STD_LOGIC_1164.ALL; A4 is (A: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: in STD_LOGIC ;: out STD_LOGIC); A4; Behavioral of A4 is lt;= A AND B AND C AND D; Behavioral;
Додамо в проект файл повного структурного опису схеми (файл circuit.vhd). Даний файл потрібно встановити як модуль верхнього рівня, вибравши у спливаючому меню пункт «Set as Top Module».
Малюнок 12. Установка файлу circuit.vhd. як модуля верхнього рівня.
) Файл опису всієї схеми проекту cicuit.vhd:
library IEEE; IEEE.STD_LOGIC_1164.ALL; circuit is (X1, X2, X3, X4: in STD_LOGIC ;, Y1, Y3: inout STD_LOGIC ;, Y5: out STD_LOGIC); circuit; struct of circuit isN (A: in STD_LOGIC ;: out STD_LOGIC); component; NA3O2 (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); component; NA4 (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); component; NAO3 (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); component; NO2 (A, B: in STD_LOGIC ;: out STD_LOGIC); component; NO3 (A, B, C: in STD_LOGIC ;: out STD_LOGIC); component; NO4 (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); component; NOAO2 (A, B, C, D: in STD_LOGIC ;: out STD_LOGIC); component; O2 (A, B: in STD_LOGIC ;: out STD_LOGIC); component; S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12: STD_LOGIC;
U1: N port map (Y1, S1) ;: N port map (X1, S2) ;: N port map (X4, S3) ;: NO2 port map (X2, Y4, S4) ;: N port map (X3, S5) ;: N port map (X2, S6) ;: O2 port map (X1, S1, S7) ;: N port map (S1, S8) ;: O2 port map (X1, S1, S9) ;: NA4 port map (X3, X1, S6, X4, S10) ;: NO2 port map (S2, X4, S11) ;: NA3O2 port map (S3, S4, X3, X1, S12) ;: NO4 port map (S5, S3, X1, S6, Y3) ;: NOAO2 port map (S3, S7, Y3, S8, Y2) ;: NO3 port map (S5, S2, X4, Y4) ;: NAO3 port map ( S12, S11, X3, S6, Y1) ;: NA3O2 port map (S9, S10, X4, S6, Y5); struct;
3. Тестування і аналіз результату
Для моделювання цифрової схеми слід в закладці Design встановити пункт Simulation.
Малюнок 13. Вкладка Simulation
Додамо файл cicuit_...