МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Белорусский национальный технический университет Кафедра «Программное обеспечение вычислительной техники и автоматизированных систем» ПРОЕКТИРОВАНИЕ АППАРАТНО-ПРОГРАММНЫХ СРЕДСТВ Лабораторный практикум Минск БНТУ 2013 МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Белорусский национальный технический университет Кафедра «Программное обеспечение вычислительной техники и автоматизированных систем» ПРОЕКТИРОВАНИЕ АППАРАТНО-ПРОГРАММНЫХ СРЕДСТВ Лабораторный практикум для студентов специальности 1-40 01 01 «Программное обеспечение информационных технологий», специализация 1-40 01 01-05 «Моделирование и компьютерное проектирование программно-аппаратных комплексов» Минск БНТУ 2013 УДК 004.312 (076.5) (075.8) ББК 22.19-018.1я7 П79 С о с т а в и т е л ь А. В. Щербаков Р е ц е н з е н т канд. техн. наук, доцент, доцент кафедры МПСС ИИТ БГУИР В. Н. Мухаметов Проектирование аппаратно-программных средств : лаборатор- ный практикум для студентов специальности 1-40 01 01 «Програм- мное обеспечение информационных технологий», специализация 1-40 01 01 05 «Моделирование и компьютерное проектирование программно-аппаратных комплексов» / сост. А. В. Щербаков. – Минск : БНТУ, 2013. – 79 с. ISBN 978-985-550-118-4. Издание содержит пять лабораторных работ, представляющих набор заданий и пояснений для начального ознакомления с принципами и способами проектиро- вания цифровых схем на основе ПЛИС на языке VHDL. Подробно показан способ со- здания проекта в среде Xilinx ISE. Лабораторные работы охватывают темы создания и моделирования регулярных логических схем, проектирования конечных автоматов, использование синтезируемого процессорного ядра. УДК 004.312 (076.5) (075.8) ББК 22.19-018.1я7 ISBN 978-985-550-118-4 © Белорусский национальный технический университет, 2013 П79 3 Лабораторная работа №1 Моделирование простых комбинаторных схем в среде ISE Xilinx. Цель: Ознакомиться со способами ввода цифровых схем в среде ISE Xilinx. Освоить возможности симулятора ISim для верификации работы цифровых схем. Задание: Для заданной таблицы истинности системы функций составить оптимальную цифровую схему. Минимизацию функции выполнить, используя тождества булевой алгебры и используя карты Карно. Получить временные диаграммы работы схемы. Ход выполнения работы Пусть задана таблица истинности: X2 X1 X0 Y0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 После минимизации получим булеву функцию: Y0=X0X1+X0X2+X2X1 4 Для моделирования функции следует выполнить следующие действия: 1. Создать новый проект в программе Xilinx ISE выбрав пункт меню File->New Project и ввести название проекта, например Lab1. 2. Ввести дополнительные параметры проекта как показано на рис. 1.: Рис.1. Установка параметров проекта 3. Добавить в проект файла с графическим описанием цифровой схемы как показано на рис. 2 5 Рис.2. Добавление файла в прокет 4. Выбрать тип файла и ввести имя файла (рис.3): Рис.3. Ввод названия файла 5. Для добавления логического элемента следует выбрать кнопку Add Symbols и в списке Categories выбрать пункт Logic Рис.4: 6 Рис.4. Добавление логического элемента 6. Чтобы добавить логический элемент “И” в списке Symbols следует выбрать элемент and2 и перетянуть его в поле ввода схемы (см. рис.5.) Рис.5. Выбор типа логического элемента 7. Для соединения логических элементов следует выбрать кнопку Add Wire (см.рис.6) 7 Рис.6. Соединение логического элемента 8. Для добавления входов и выходов цифровой схемы следует выбрать кнопку Add I/O Marker (см.рис.7) Рис.7. Добавление входов и выходов цифровой схемы 9. Для добавления выходного порта следует установить пункт Add an output marker (см. рис.8). 8 Рис.8 Добавление выходного порта 10. Ввести корректные названия портов можно вызвав всплывающее меню и выбрав пункт Rename Port (см. рис.9) Рис.9. Именование портов схемы 9 11. Введенную схему следует сохранить на диске. 12. Для моделирования цифровой схемы следует выбрать закладку Design и установить пункт Simulation (рис.10). Рис.10. Установка режима моделирования работы схемы 13. Выбрать файл с цифровой схемой (например s1.sch) и выбрать пункт Simulate Behavioral Model (Рис.11). Рис.11. Пункт Simulate Behavioral Model 10 14. В окне симулятора нажать кнопку сброса Restart на панели инструментов. 15. Для подключения тестовых сигналов к входам схемы следует для порта X0 вызвать всплывающее меню и выбрать пункт Force Clock (рис. 12). Рис. 12. Подключение тестовых сигналов 16. В появившемся диалоге ввести следующие параметры: начальное значение сигнала, задержку сигнала, период. Для порта X0 установить период 50ns (рис.13): 11 Рис.13. Установка параметров тестового сигнала 17. Аналогично, для порта X1 установить период 100ns. 18. Для порта X2 установить период 200ns. Для последующих входных портов увеличивать период в два раза. 19. Запуск моделирования начинается при нажатии на кнопку Run for time specified on the toolbar на панели инструментов. 20. Для изменения масштаба временной диаграммы следует нажать кнопку Zoom to Full View на панели инструментов. 12 21. Установить светлый цвет фона временной диаграмм. Для этого выбрать в меню Edit пункт Preferences и установить нужные цвета. 22. Сравнить полученную временную диаграмму (рис.14) с исходной таблицей истинности. Рис. 14. Временная диаграмма работы схемы Индивидуальные задания Вариант 1 X3 X2 X1 X0 Y1 Y0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 0 13 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 Вариант 2 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 Вариант 3 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 14 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 Вариант 4 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 15 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 Вариант 5 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 0 Вариант 6 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 1 0 0 0 1 0 0 16 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 Вариант 7 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 17 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 Вариант 8 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 Вариант 9 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 18 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 1 Вариант 10 X3 X2 X1 X0 Y1 Y0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 19 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0 0 Лабораторная работа №2 Описание и моделирование нерегулярных логических схем Цель работы: научиться составлять структурное описание нерегулярной схемы из нескольких модулей. Задание: 1) Составить описание каждого модуля, входящего в схему, на языке VHDL (см. Таблицу 1). 2) Составить структурное описание схемы в целом. 3) Провести моделирование и получить временную диаграмму. Дополнительное задание: Составить описание на языке Verilog. Таблица 1 Имя элемента Функция элемента Задержка (ns) GND Y=0 1 VCC Y=1 1 N Y= ̅ 1 A2 Y= 2 A3 Y= 3 A4 Y= 4 20 A6 Y= 6 A8 Y= 8 EX2 Y= ̅ ̅ 5 MX2 Y= ̅̅ ̅ 3 NA2 Y= ̅̅ ̅̅ 2 NA3 Y= ̅̅ ̅̅ ̅̅ 3 NA3O2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 4 NA4 Y= ̅̅ ̅̅ ̅̅ ̅̅ 5 NAO2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 3 NAO22 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 3 NAO3 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 5 NAOA2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 4 NEX2 Y= ̅ ̅ 5 NMX2 Y= ̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 6 NMX4 Y= ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ 8 NO2 Y= ̅̅ ̅̅ ̅̅ ̅ 3 NO3 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 4 NO3A2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 5 NO4 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ 5 NOA2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅ 3 NOA22 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 4 NOA3 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 5 NOAO2 Y= ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅ 4 O2 Y= 2 O3 Y= 3 O4 Y= 4 O6 Y= 6 O8 Y= 8 21 Ход выполнения лабораторной работы Пусть задана цифровая схема (Рис.15): Рис. 15. Исходная цифровая схема. 22 Таблица ответов для данной схемы имеет вид: X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 Пронумеруем на схеме все модули и внутренние сигналы обозначив их буквами U и S соответственно (Рис.16.). Нумерацию удобнее выполнять двигаясь по схеме слева на право и сверху вниз. 23 Рис.16. Схема с пронумерованными элементами 24 Учитывая введенные обозначения, добавим в проект описание каждого модуля схемы. Для этого требуется выбрать пункт “New Source.. ”, как показано на рисунке ниже: Рис.17. Пункт меню “New Source.. ” Далее в качестве типа добавляемого файла установить “VHDL Module” и два раза нажать кнопку Next. Рис.18. Выбор типа модуля 25 Файл описания модуля U1 (файл ex2.vhd) : library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity EX2 is Port ( A,B : in STD_LOGIC; Y : out STD_LOGIC); end EX2; architecture Behavioral of EX2 is begin Y<=(A and (not B)) or ((not A) and B) after 5 ns; end Behavioral; Файл описания модулей U2, U3, U6,U8,U10,U12 (файл n.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity N is Port ( A : in STD_LOGIC; Y : out STD_LOGIC); end N; architecture Behavioral of N is begin Y<=not A after 1 ns; end Behavioral; 26 Файл описания модуля U4 (файл o2.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity O2 is Port ( A,B : in STD_LOGIC; Y : out STD_LOGIC); end O2; architecture Behavioral of O2 is begin Y<=A OR B AFTER 2 ns; end Behavioral; Файл описания модуля U5 (файл naoa2.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity NAOA2 is Port ( A,B,C,D : in STD_LOGIC; Y : out STD_LOGIC); end NAOA2; architecture Behavioral of NAOA2 is begin Y<= NOT(A AND (B OR (C AND D))) AFTER 4 NS; end Behavioral; 27 Файл описания модуля U7 (файл no3a2.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity NO3A2 is Port ( A,B,C,D : in STD_LOGIC; Y : out STD_LOGIC); end NO3A2; architecture Behavioral of NO3A2 is begin Y<=NOT(A OR B OR (D AND C)) AFTER 5 NS; end Behavioral; Файл описания модуля U9 (файл na2.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity NA2 is Port ( A,B : in STD_LOGIC; Y : out STD_LOGIC); end NA2; architecture Behavioral of NA2 is begin y<=not (a and b) after 2 ns; end Behavioral; 28 Файл описания модуля U11 (файл na3o2.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity NA3O2 is Port ( A,B,C,D : in STD_LOGIC; Y : out STD_LOGIC); end NA3O2; architecture Behavioral of NA3O2 is begin Y<=NOT( A AND B AND (C OR D)) AFTER 4 NS; end Behavioral; Файл описания модуля U13 (файл a3.vhd): library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity A3 is Port ( A,B,C : in STD_LOGIC; Y : out STD_LOGIC); end A3; architecture Behavioral of A3 is begin Y<= A AND B AND C AFTER 3 NS; end Behavioral; 29 Добавим в проект файл полного структурного описания схемы (файл main.vhd). Файл main.vhd: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity MAIN is Port ( X1,X2,X3,X4 : in STD_LOGIC; Y2,Y3 : inout STD_LOGIC; Y1,Y4 : out STD_LOGIC); end MAIN; architecture struct of MAIN is component N port (A :in STD_LOGIC;Y: out STD_LOGIC); end component; component EX2 port (A,B :in STD_LOGIC;Y: out STD_LOGIC); end component; component O2 port (A,B :in STD_LOGIC;Y: out STD_LOGIC); end component; component NA2 30 port (A,B :in STD_LOGIC;Y: out STD_LOGIC); end component; component NAOA2 port (A,B,C,D :in STD_LOGIC;Y: out STD_LOGIC); end component; component NO3A2 port (A,B,C,D :in STD_LOGIC;Y: out STD_LOGIC); end component; component NA3O2 port (A,B,C,D :in STD_LOGIC;Y: out STD_LOGIC); end component; component A3 port (A,B,C:in STD_LOGIC;Y: out STD_LOGIC); end component; signal s1,s2,s3,s4,s5,s6,s7,s8,s9 : STD_LOGIC; begin u1: ex2 port map (x1,x2,s2); u2: n port map (x2,s5); u3: n port map (y2,s1); 31 u4: o2 port map (x1,s1,s3); u5: naoa2 port map (s3,x2,x4,x3,y1); u6: n port map (x1,s4); u7: no3a2 port map (x3,x4,s5,s4,y2); u8: n port map (s1,s6); u9: NA2 port map (x2,s6,s7); u10: n port map (y3,s8); u11: na3o2 port map (s7,s8,x4,x1,y4); u12: n port map (x4,s9); u13: a3 port map (s2,x3,s9,y3); end struct; Для проверки правильности описания схемы следует сравнить временную диаграмму и таблицу ответов. Временная диаграмма строится аналогично способу, представленному в первой лабораторной работе. Период первого сигнала x1 можно установить 50ns, второго x2, третьего x3 и четвертого x4, в 100 ns, 200ns, 400 ns соответственно. При проверке требуется учитывать влияние на прохождение сигнала временных задержек компонентов схемы. Временная диаграмма для рассматриваемой схемы имеет вид (Рис. 19): 32 Рис. 19 Временная диаграмма тестируемой схемы Для верификации также следует сравнить RTL представление синтезированной схемы. Для этого надо выбрать модуль верхнего уровня (main.vhd) и в закладке Design выбрать пункт View RTL Schematic. Далее в появившемся диалоге выбрать пункт “Start with a schematic of the top-level block”. Из RTL схемы видно, что синтезированная схема полностью соответствует исходной (Рис.20). 33 Рис.20. Синтезированная схема 34 Индивидуальные задания Вариант 1: 35 Ответ к варинту 1: X1 X2 X3 X4 Y1 Y2 Y3 Y4 Y5 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 36 Вариант 2: x2 Y A N Y A B A2 Y A N Y A N Y A B C NO 3 Y A N Y A B EX 2 Y A B C NA O2 Y A B C D N O3 A2 x3 x4 y2y3 y4 x1 Y A B C D N AO A2 Y A N Y A B C NA 3 Y A B C D N OA O2 Y A B C D NO A3 y1 Y A N 37 Ответ к варинту 2: X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 38 Вариант 3 39 Ответ к варианту 3 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 40 Вариант 4 Y A B C A3 x2 Y A B C D NA O 3 Y A N Y A B NA 2 Y A B C D NA O 3 Y A B C D N AO A2 y3 y4 Y A N Y A N Y A B NA 2 Y A B C D N A3 O 2 Y A B C NA 3 Y A N x3 x4 Y A N Y A B NE X2 Y A B A2 y2 Y A B NE X2 Y A N y1 Y A N Y A N Y A N x1 41 Ответ к варинту 4 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 42 Вариант 5 Y A B NA 2 Y A B C D NA O3 y4 y2y3 x2x1 Y A B NO 2 Y A N x4 Y A N Y A N Y A B C D N O3 A2 Y A N x3 Y A B C D N AO A2 Y A B A2 Y A N Y A B C D A4 Y A N Y A N Y A B C D NA O3 y1 Y A N Y A N Y A N 43 Ответ к варианту 5 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 0 44 Вариант 6 x3 x4 Y A B C D NA O 3 Y A B NO 2 y4 Y A B C D N O AO 2 y2 Y A B C NA 3 y3 Y A B C D NO 4 Y A N Y A B C D N A3 O 2 Y A B C D NA O 3 Y A N Y A N x2 Y A N Y A B C D N AO A2 Y A N Y A N Y A B NE X2 x1 Y A N y1 Y A N 45 Ответ к варианту 6 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 46 Вариант 7 47 Ответ к варианту 7 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 48 Вариант 8 y3 y4 YA B NO2 Y A B C D NA3O2 Y A B C D NAO3 Y A B C D NA3O2 YA B NO2 Y A B C NO3 y5 x2 x4 YA N Y A B C D NO4 YA N x3 Y A B C D NA4 y2Y A B C D NOAO2 y1 YA N YA N x1 YA B O2 YA N YA B O2 YA N 49 Ответ к варианту 8 X1 X2 X3 X4 Y1 Y2 Y3 Y4 Y5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 50 Вариант 9 x3 x4 YA N Y A B C D NAO3 y4Y A B C NOA2 Y A B C D NO3A2 YA N Y A B C NO3 Y A B C D NAO22 YA B NA2 y5 y3Y GND YA N Y A B C NO3 Y A B C D NAOA2 YA N x2 y2Y A B C D NOAO2 y1 x1 YA N YA N 51 Ответ к варианту 9 X1 X2 X3 X4 Y1 Y2 Y3 Y4 Y5 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 52 Вариант 10 Y A B C D A4 Y A B C D NO 4 Y A B C D N A3 O2 x4x3 y2 y3 Y A N x2 Y A B C D N A3 O2 y4 Y A B C N OA 2 Y A N Y A N Y A N Y A N Y A B C N OA 2 Y A N Y A N Y A B C N OA 2 y1 Y A B NO 2 Y A N Y A N x1 53 Ответ к варианту 10 X1 X2 X3 X4 Y1 Y2 Y3 Y4 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 Лабораторная работа №3 Описание и моделирование регулярных логических схем Цель работы: научиться составлять описание нерегулярных (систолических) схем. Задание: Провести описание (двумя способами) логической схемы с регулярными соединениями элементов и сравнить результаты моделирования. Добавить в проект модуль тестирования. 54 Способ 1. Составить структурное иерархическое описание ограниченного фрагмента регулярной схемы. Первый (нижний) уровень иерархии составляют функциональные поведенческие описания логических элементов. Второй (средний) уровень иерархии должны составлять две подсхемы. Например, в варианте 1 они выделены штриховой линией. Аналогично для остальных вариантов. Третий (верхний) уровень иерархии – это описание схемы в целом. Способ 2. Составить параметризованное описание регулярной схемы, т.е. описать регулярную схему с использованием операторов generate, generic для производной разрядности N. Ход выполнения работы 1. Ввести имена входов и выходов схемы с использованием типа STD_LOGIC_VECTOR. 2. Составить VHDL-модель каждого из типов элементов, входящих в схему. 3. Составить иерархическую VHDL-модель схемы в целом для конкретного значения N (обычно N=4). 4. Выполнить описание регулярной схемы с использованием операторов generate, generic для производной разрядности. 5. Получить временные диаграммы для первого и второго способа. 55 6. Сравнить результаты моделирования по способу 1 и способу 2 (результаты должны быть одинаковыми). 7. Добавить в проект модуль тестирования (Рис.21): Рис.21. Добавление в проект модуля тестирования 56 Индивидуальные задания Вариант 1 Регулярная схема (N=4) для иерархического описания (способ 1). a 1 b 1 c 2 b 1 c 1 b 1 b 1 b 1 b 2 b 1 a 2 b 1 c 3 b 1 Сумматор (a2, a1) + (b2, b1) = (c3, c2, c1) a2, b2, c3 – старший разряд x1 x2 b1 x3 b1 x4 b1 y2 b1 y1 b1 Логические элементы y1=x1 ⊕ x2 y2=x3 ⊕ x4 57 Вариант 2 a 1 b 1 p 1 b 1 c 1 b 1 b 1 b 1 p 2 b 1 c 2 b 1 Старший разряд Младший разряд Старший разряд Младший разряд с 1 b 1 с 2 b 1 c 3 b 1 p 2 b 1 p 1 b 1 Умножение трех чисел (a1) x (b1) x (c2, c1) = (p2, p1) c2, p2 – старший разряд Сумматор трех чисел (с1) + (с2) + (c3) = (p2, p1) p2 – старший разряд 58 Вариант 3 a 2 b 1 b 2 3 b 1 b 1 b 1 p 3 b 1 p 2 b 1 a 1 b 1 p 1 b 1 k 1 b 1 c 2 b 1 с 1 b 1 c 3 b 1 b 1 b 1 b 2 b 1 a 2 b 1 a 1 b 1 Сумматор (a2, a1) + (b2, b1) = (p3, p2, p1) a2, b2, c3 – старший разряд Умножитель (a2, a1) x (b2, b1) = (c3, c2, c1, c0) a2, b2, c3 – старший разряд k1 = b2 ⊕ b1 59 Вариант 4 p 1 b 1 p 2 b 1 p 3 b 1 p 4 b 1 b 1 b 1 b 2 b 1 a 2 b 1 a 1 b 1 a1 b1 b2 3 b1 b1 b1 p3 b1 p2 b1 a2 b1 p1 b1 Умножитель (a2, a1) x (b2, b1) = (p4, p3, p2, p1) p4 – старший разряд, p1 – младший разряд Сумматор (a2, a1) + (b2, b1) = (p3, p2, p1) p3 – старший разряд 60 Вариант 5 p 1 b 1 p 2 b 1 p 3 b 1 p 4 b 1 b 1 b 1 b 2 b 1 a2 b 1 a1 b 1 a1 b1 b2 3 b1 b1 b1 p3 b1 p2 b1 a2 b1 p1 b1 Умножитель (a2, a1) x (b2, b1) = (p4, p3, p2, p1) p4 – старший разряд, p1 – младший разряд Сумматор (a2, a1) + (b2, b1) = (p3, p2, p1) P3 – старший разряд 61 Вариант 6 Младший разряд .с0 b1 p1 b1 p2 b1 p3 b1 b1 b1 b2 b1 a2 b1 a b1 a2 b1 a1 b1 p1 b1 p2 b1 S Сумматор (a2, a1) + (b2, b1) = (p3, p2, p1) a2, b2, p3 – старший разряд Сумматор (a2, a1) + s = (p2, p1) a2, p2 – старший разряд 62 Вариант 7 p1 b1 p2 b1 p3 b1 b1 b1 b2 b1 a2 b1 a1 b1 a2 b1 a1 b1 p1 b1 p2 b1 S Младший разряд Сумматор (a2, a1) + (b2, b1) = (p3, p2, p1) a2, b2, p3 – старший разряд Умножитель (a2, a1) x s = (p2, p1) a2, p2 – старший разряд 63 Вариант 8 a 2 b 1 a 1 b 1 p 2 b 1 p 3 b 1 b 2 b 1 b 1 b 1 p 1 b 1 p 4 b 1 a1 b 1 a2 b 1 a3 b 1 p 1 b 1 p 2 b 1 Сложение трех чисел (a1) + (a2) + (a3) = (p2, p1) P2 – старший разряд Умножитель (a2, a1) x (b2, b1) = (p4, p3, p2, p1) p4 – старший разряд 64 Вариант 9 a2 b1 a1 b1 p2 b1 p3 b1 b2 b1 b1 b1 p1 b1 p4 b1 a1 b1 a2 b1 a3 b1 p3 b1 p1 b1 p2 b1 Умножитель (a2, a1) x (b2, b1) = (p4, p3, p2, p1) p4 – старший разряд Сложение трех чисел (a1)+(a2)+(a3)=(p2,p1) P3=a2 ⊕ a3 P2- старший разряд 65 Вариант 10 s1 add 1 c1 b1 b2 Полусумматор (b1) + (b2) = (c1, s1) y1 y2 b1 b2 V y1 = b1 ⊕ b2 y2 = b1 V b2 66 Лабораторная работа №4 Конечный автомат Цель работы: Научиться при помощи языка VHDL описывать и моделировать конечный автомат. Задание: Написать на HDL описание модуля конечного автомата. В описании модуля использовать перечисляемый тип VHDL. Составить тестовый модуль и получить временные диаграммы. Индивидуальные задания Вариант 1: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 a4 z1 a2\ w1 a2\ w1 a1\ w2 a1\ w4 z2 a4\ w5 a3\ w3 a4\ w4 a3\ w5 z3 a3\ w2 a3\ w3 a1\ w4 a3\ w5 z4 a3\ w3 a1\ w2 a1\ w4 a3\ w5 67 Вариант 2: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3}. Выходной алфавит W={w1,w2,w3,w4,w5,w6}. Входные сигналы Состояния a1 a2 a3 a4 z1 a2\ w1 a2\ w1 a1\ w2 a1\ w4 z2 a4\ w5 a3\ w6 a4\ w6 a3\ w5 z3 a3\ w2 a3\ w3 a1\ w4 a3\ w5 Вариант 3: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 z1 a2\ w1 a2\ w1 a1\ w2 z2 a1\ w3 a3\ w4 a3\ w4 z3 a3\ w2 a3\ w3 a1\ w3 z4 a3\ w3 a1\ w2 a1\ w4 68 Вариант 4: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 a4 z1 a2\ w1 a2\ w1 a1\ w2 a1\ w4 z2 a2\ w5 a3\ w3 a4\ w4 a3\ w5 z3 a4\ w2 a4\ w3 a1\ w3 a2\ w5 z4 a3\ w3 a1\ w2 a1\ w4 a3\ w5 Вариант 5: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4,z5}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 z1 a2\ w1 a2\ w1 a1\ w2 z2 a1\ w3 a3\ w4 a2\ w4 69 z3 a3\ w2 a3\ w3 a1\ w5 z4 a3\ w2 a1\ w2 a1\ w4 z5 a3\ w4 a1\ w3 a2\ w1 Вариант 6: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4,z5}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 a4 z1 a2\ w1 a2\ w1 a1\ w2 a1\ w4 z2 a3\ w5 a4\ w3 a2\ w4 a3\ w5 z3 a4\ w2 a4\ w5 a1\ w3 a1\ w5 z4 a3\ w3 a1\ w2 a1\ w4 a3\ w5 z5 a2\ w1 a4\ w5 a3\ w5 a3\ w5 Вариант 7: Конечный автомат Mура. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4,z5}. Выходной алфавит W={w1,w2,w3,w4}. 70 Входные сигналы Состояния a1 a2 a3 a4 z1 a1\ w3 a2\ w4 a1\ w1 a1\ w2 z2 a3\ w3 a4\ w4 a2\ w1 a3\ w2 z3 a4\ w3 a4\ w4 a3\ w1 a2\ w2 z4 a3\ w3 a1\ w4 a1\ w1 a4\ w2 z5 a2\ w3 a4\ w4 a3\ w1 a3\ w2 Вариант 8: Конечный автомат Mура. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4}. Выходной алфавит W={w1,w2,w3,w4}. Входные сигналы Состояния a1 a2 a3 a4 z1 a1\ w2 a2\ w4 a1\ w1 a2\ w3 z2 a3\ w2 a3\ w4 a2\ w1 a3\ w3 z3 a4\ w2 a4\ w4 a4\ w1 a1\ w3 z4 a3\ w2 a1\ w4 a1\ w1 a4\ w3 71 Вариант 9: Конечный автомат Мили. Алфавит внутренних состояний A={a1, a2, a3, a4}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3,z4}. Выходной алфавит W={w1,w2,w3,w4,w5}. Входные сигналы Состояния a1 a2 a3 a4 z1 a2\ w1 a2\ w1 a1\ w2 a1\ w4 z2 a1\ w5 a3\ w3 a4\ w4 a3\ w5 z3 a3\ w2 a4\ w5 a1\ w3 a1\ w1 z4 a4\ w1 a1\ w2 a1\ w4 a4\ w5 Вариант 10: Конечный автомат Mура. Алфавит внутренних состояний A={a1, a2, a3}. Начальное состояние автомата a1. Входной алфавит Z={z1,z2,z3}. Выходной алфавит W={w1,w2,w3}. Входные сигналы Состояния a1 a2 a3 z1 a1\ w2 a2\ w3 a1\ w1 z2 a3\ w2 a1\ w3 a2\ w1 z3 a3\ w2 a1\ w3 a1\ w1 72 Лабораторная работа №5 Использование синтезируемого процессорного ядра Цель работы: Научиться использовать в проекте IP-блоки. Освоить возможности использования синтезированного процессорного ядра, на примере ядра PicoBlaze. Задание: Написать на ассемблере программу для ядра PicoBlaze. Добавить в проект на HDL IP-блок процессорного ядра с созданной программой. Требуется управлять светодиодами, которые должны зажигаться в том порядке, который указан в индивидуальном задании. Ход выполнения работы 1. Спроектировать периферийные аппаратные блоки системы, подключенные к ядру PicoBlaze через порты ввода-вывода. 2. Написать и отладить на эмуляторе ассемблерную программу для PicoBlaze. 3. Объединить программную и аппаратную часть проектируемой системы. Индивидуальные задания Вариант 1: Тактовая частота 50 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O O O O O X 2 O X O O O O X O 73 3 O O X O O X O O 4 O O O X X O O O 5 O O O O O O O O Здесь X – светодиод горит, O – светодиод выключен Вариант 2. Тактовая частота 50 кГц. Частота переключения состояния 2Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X X O O O O O O 2 O O X X O O O O 3 O O O O X X O O 4 O O O O O O X X 5 X X X X X X X X Вариант 3. Тактовая частота 100 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O O O O O O 2 O O X O O O O O 3 O O O O X O O O 4 O O O O O O X O 5 X X X X X X X X Вариант 4. Тактовая частота 50 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 O O O X X O O O 2 O O X O O X O O 3 O X O O O 0 X O 4 X O O O O O O X 5 X X X X X X X X 74 Вариант 5: Тактовая частота 50 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O 0 X O O O 2 O X O O O X O O 3 O O X O O 0 X O 4 X O O X O O O X 5 X X X X X X X X Вариант 6: Тактовая частота 50 кГц. Частота переключения состояния 4Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O O O O O O 2 O X O O O O O O 3 O O X O O 0 O O 4 O O O X O O O O 5 O O O O X O O O 6 O O O O O X O O 7 O O O O O O X O 8 O O O O O O O X 9 O O O O O O X O 10 O O O O O X O O 11 O O O O X O O O 12 O O O X O O O O 13 O O X O O O O O 14 O X O O O O O O 75 Вариант 7: Тактовая частота 150 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X X O O O O O O 2 O O X X O O O O 3 O O O O X X O O 4 O O O O O O X X 5 X X X X X X X X Вариант 8: Тактовая частота 100 кГц. Частота переключения 2Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O O O O O O 2 O O X O O O O O 3 O O O O X O O O 4 O O O O O O X O 5 X X X X X X X X Вариант 9: Тактовая частота 50 кГц. Частота переключения состояния 3Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 O O O X X O O O 2 O O X O O X O O 3 O X O O O 0 X O 4 X O O O O O O X 5 X X X X X X X X 76 Вариант 10: Тактовая частота 80 кГц. Частота переключения состояния 1Гц. состояние D1 D2 D3 D4 D5 D6 D7 D8 1 X O O 0 X O O O 2 O X O O O X O O 3 O O X O O 0 X O 4 X O O X O O O X 5 X X X X X X X X 77 Литература 1. Основы языка VHDL : учебное пособие. – 4-е изд.. – М. : Книжный дом «ЛИБРОКОМ», 2009. – 328 с. 2. Зотов, В. Ю. Проектирование встраиваемых микропроцес- сорных систем на основе ПЛИС фирмы Xilinx / В. Ю. Зотов. – М. : Горячая линия – Телеком, 2006. – 520 с. 3. Сергиенко, А. М. VHDL для проектирования вычислитель- ных устройств / А. М. Сергиенко. – К. : ЧП «Корнейчук», ООО «ТИД ДС», 2003. – 208 с. 4. Максфилд, К. Проектирование на ПЛИС. Курс молодого бойца / К. Максфилд. – М. : Издательский дом «Додэка- XXI», 2007. – 408 с. 78 Содержание Лабораторная работа № 1 Моделирование простых комбинаторных схем в среде ISE Xilinx .................................................................................... 3 Лабораторная работа № 2 Описание и моделирование нерегулярных логических схем ........... 19 Лабораторная работа № 3 Описание и моделирование регулярных логических схем ............... 53 Лабораторная работа № 4 Конечный автомат ................................................................................ 66 Лабораторная работа № 5 Использование синтезируемого процессорного ядра ....................... 72 Литература ............................................................................................ 77 79 Учебное издание ПРОЕКТИРОВАНИЕ АППАРАТНО-ПРОГРАММНЫХ СРЕДСТВ Лабораторный практикум для студентов специальности 1-40 01 01 «Программное обеспечение информационных технологий», специализация 1-40 01 01-05 «Моделирование и компьютерное проектирование программно-аппаратных комплексов» С о с т а в и т е л ь ЩЕРБАКОВ Александр Владимирович Технический редактор О. В. Песенько Подписано в печать 31.05.2013. Формат 60 84 1/16. Бумага офсетная. Ризография. Усл. печ. л. 4,59. Уч.-изд. л. 3,59. Тираж 100. Заказ 1380. Издатель и полиграфическое исполнение: Белорусский национальный технический университет. ЛИ № 02330/0494349 от 16.03.2009. Пр. Независимости, 65. 220013, г. Минск.