Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Лабораторна робота №1
з дисципліни "Основи проектування цифрових засобів на ПЛІС"
Тема: САПР Xilinx WebPack. Проектування найпростіших вузлів.
Мета: засвоєння навичок роботи у середовищі Xilinx WebPack, навчитись створювати проекти в САПР Xilinx WebPack.
Мій варіант: F = (a v /b v c) xor (d & e)
Я створив новий проект, вибрав потрібні елементи та розмістив їх в робочій області схемного редактора. Зробив між ними зв’язки.
/
Рис. 1. Логічна схема для реалізації заданої ФАЛ
У вікні Processes запустив на виконання процес Synthesize. У процесі синтезу з файлів HDL-описів проектованого пристрою зформувався файл списку з'єднань. Відкрив звіт про результати синтезу(View Text Report).
/
Рис. 2. Звіт.
/
Рис. 3. Функціональна схема.
/
Рис. 4. Технологічна схема.
/
Рис. 5. Функціональна схема.
/
Рис. 6. Технологічна схема.
/
Рис. 7. Часова діаграма.
/
Рис. 8. Створення тестбенчу.
/
Рис. 9. Опис портів під час створення тестбенчу.
/
Рис. 10. Звіт.
/
Рис. 11. Функціональна схема.
/
Рис. 12. Технологічна схема.
/
Рис. 13. Функціональна схема.
/
Рис. 14. Технологічна схема.
/
Рис. 15. Часова діаграма.
Висновок
На цій лабораторній роботі я засвоїв навички роботи у середовищі Xilinx WebPack, навчився створювати проекти в САПР Xilinx WebPack. В першому варіанті я сам обираю, які елементи мають бути в схемі і як їх створювати, а в другому варіанті я описую лише логіку роботи ПЛІС і Xilinx сам обирає як це реалізувати. В першому варіанті частота приблизно 163 MHz. В другому варіанті максимальна частота складає приблизно 190 MHz.
Додаток
kb_tb2.vhd
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
LIBRARY UNISIM;
USE UNISIM.Vcomponents.ALL;
ENTITY kb_sch2_kb_sch2_sch_tb IS
END kb_sch2_kb_sch2_sch_tb;
ARCHITECTURE behavioral OF kb_sch2_kb_sch2_sch_tb IS
COMPONENT kb_sch2
PORT( kb_a : IN STD_LOGIC;
kb_b : IN STD_LOGIC;
kb_c : IN STD_LOGIC;
kb_d : IN STD_LOGIC;
kb_e : IN STD_LOGIC;
kb_res : OUT STD_LOGIC);
END COMPONENT;
SIGNAL kb_a : STD_LOGIC:='0';
SIGNAL kb_b : STD_LOGIC:='0';
SIGNAL kb_c : STD_LOGIC:='0';
SIGNAL kb_d : STD_LOGIC:='0';
SIGNAL kb_e : STD_LOGIC:='0';
SIGNAL kb_res : STD_LOGIC;
BEGIN
UUT: kb_sch2 PORT MAP(
kb_a => kb_a,
kb_c => kb_c,
kb_d => kb_d,
kb_e => kb_e,
kb_res => kb_res,
kb_b => kb_b
);
kb_a<=not kb_a after 10 ns;
kb_b<=not kb_b after 20 ns;
kb_c<=not kb_c after 40 ns;
kb_d<=not kb_d after 80 ns;
kb_e<=not kb_e after 160 ns;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
WAIT; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
kb_tb3.vhd
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--USE ieee.numeric_std.ALL;
ENTITY kb_tb3 IS
END kb_tb3;
ARCHITECTURE behavior OF kb_tb3 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT kb_vl
PORT(
kb_a : IN std_logic;
kb_b : IN std_logic;
kb_c : IN std_logic;
kb_d : IN std_logic;
kb_e : IN std_logic;
kb_res : OUT std_logic
);
END COMPONENT;
--Inputs
signal kb_a : std_logic := '0';
signal kb_b : std_logic := '0';
signal kb_c : std_logic := '0';
signal kb_d : std_logic := '0';
signal kb_e : std_logic := '0';
signal clk : std_logic := '0';
--Outputs
signal kb_res : std_logic;
-- No clocks detected in port list. Replace clk below with
-- appropriate port name
constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: kb_vl PORT MAP (
kb_a => kb_a,
kb_b => kb_b,
kb_c => kb_c,
kb_d => kb_d,
kb_e => kb_e,
kb_res => kb_res
);
kb_a<=not kb_a after 10 ns;
kb_b<=not kb_b after 20 ns;
kb_c<=not kb_c after 40 ns;
kb_d<=not kb_d after 80 ns;
kb_e<=not kb_e after 160 ns;
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
wait for clk_period*10;
-- insert stimulus here
wait;
end process;
END;
kb_vl.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity kb_vl is
Port ( kb_a : in STD_LOGIC;
kb_b : in STD_LOGIC;
kb_c : in STD_LOGIC;
kb_d : in STD_LOGIC;
kb_e : in STD_LOGIC;
kb_res : out STD_LOGIC);
end kb_vl;
architecture Behavioral of kb_vl is
begin
kb_res<=(kb_a or not kb_b or kb_c) xor (kb_d and kb_e);
end Behavioral;