Календарный план
-
-
Содержит краткое описание основных особенностей языка и целевой архитектуры.
(пишется по ходу чтения курса)
-
Билет содержит два вопроса из программы коллоквиума и одну задачу для составления программы на языке Ассемблера.
-
Неплохие ресурсы, на которых можно подсматривать синтаксис Verilog и VHDL.
http://www.vanko.me/ru/story/vvedenie-v-vhdl
http://kit-e.ru/articles/circuit/2008_4_164.php
http://portal-ed.ru/index.php/uchebnik-verilog
https://habrahabr.ru/post/212507/
http://digitrode.ru/computing-devices/fpga/91-verilog-bazovyy-kurs-chast-vi.html
http://electrosofts.com/verilog/if_else.html
-
-
-
- Написать программу выводящую на экран "Hello world" или любой другой текст по вашему желанию.
- Написать программу, которая спрашивает имя пользователя и приветствует его по имени. Вопрос и приветствие так же можно заменить на любой текст по вашему желанию.
-
-
-
-
- Написать программу, которая: вводит с консоли строку, преобразует её в число unsigned int16, совершает с числом арифметические операции (сложение. вычитание, умножение, ...), преобразует результат обратно в строку и выводит на консоль.
- Написать программу, которая сортирует массив целых чисел и выводит на экран.
-
-
-
Решить две предыдущие лабораторные работы при помощи макросов и процедур. Шаблон проекта с примерами описания процедур и макросов: https://yadi.sk/d/xHwhH7_JjEnyP
-
-
-
То же, что и в третьей, но вынести в отдельный модуль.
Задача на строковые инструкции, по вариантам (Выбрать один вариант):
А. Сравнить две строки на больше / меньше / равно. При помощи строковых инструкций сравнения.
Б. Найти в одной строке все вхождения другой. При помощи строковых инструкций сравнения.
В. Заменить часть одной строки, начиная с указанной позиции, другой строкой. (При помощи строковых инструкций копирования)
Г. Генерировать одну строку из повторения другой строки указанное число раз. (При помощи строковых инструкций копирования).
Д. Разбить строку заданным разделителем на подстроки. (При помощи строковых инструкций поиска).
-
-
-
-
- Написать GUI приложение, содержащее текстовое поле, кнопку, табы. И способное:
- a. Скопировать текст по нажатию кнопки. Выполнить с текстом по нажатию кнопки одну из строковых операций из Лаб. №4.
- b. Решить лабораторную работу 1 полностью в ГУИ. Красивенько.
- c. Решить лабораторную работу 2 в ГУИ.
- Написать ГУИ приложение, которое при помощи SSE реализует какой-нибудь алгоритм, вроде задачи N-тел (можно решать только часть задачи: расчёт сил, расчёт скоростей, расчёт координат), Интеграла функции одной или двух переменных или чего-то подобного по вашему желанию.
-
-
-
-
-
-
-
-
Задача
Построить автомат.
Варианты
-
А. Разработать Калькулятор. (хотя бы 2 арифметических или логических операции)
-
Б. Разработать автомат и программу, ведёт диалог с пользователем, предлагая вопрос с вариантами ответа (соответствуют кнопкам). При нажатии на кнопку текст на экране меняется на другой.
-
В. Ввод цифр с тумблеров и вывод их на экран в виде текста. (подразумевает преобразование числа в строку и обратно)
-
Г. Разработать автомат, реализующий элемент памяти с 8-битной адресацией. И адрес и данные устанавливаются на тумблерах (точнее или адрес или данные). То, как интерпритировать значение на тумблерах, зависит от нажатия на ту или иную кнопку (две кнопки «адрес», и «данные»). Так же есть ещё две кнопки «Читать» и «Писать». При нажатии на первую в последний выбранный адрес пишутся последние выбранные данные. А при нажатии на читать по последнему выбранному адресу данные читаются в регистр для данных. Значение регистра данных может отображаться диодами или на ЖК экране.
-
Д. разработать автомат продающий напитки. Выбор напитка, оплата и забирание стакана эмитируются кнопками. Выдача стакана, индикация его наличия и другие события эмитируются диодами. (можно использовать экран, но не обязательно). (задание допускает вариации функционала автомата, можно менять количество напитков от 1 до ∞, способ оплаты, учёт или не учёт конечного количества стаканов и денег, выдачу или невыдачу сдачи и другие параметры, при желании).
-
Е. Реализовать автомат, обеспечивающий функционал двунаправленного счётчика с пред-установкой. При нажатии на одну кнопку значение увеличивается, при нажатии на другую — уменьшается. При нажатии на третью кнопку значение счётчика устанавливается в соответствии с тумблерами.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Задание 1.
- Создайте проект.
- Добавьте в него файлы из каталога "Примеры исходного кода с комментариями".
- Входные порты привяжите к кнопкам и/или тумблерам, а выходные к диодам и/или семи-сегментным индикаторам.
- Откомпилируйте проект.
- Прошейте в ПЛИС, убедитесь, что всё работает именно так, как и ожидалось.
- Задание 2.
- Создайте ещё один проект.
- Создайте собственный файл, описывающий работу коммутатора. (можно на выбор любое другое асинхронное логическое устройство, которое Вам по душе).
- Входные порты привяжите к кнопкам и/или тумблерам, а выходные к диодам и/или семи-сегментным индикаторам.
- Откомпилируйте проект.
- Прошейте в ПЛИС, убедитесь, что всё работает именно так, как и ожидалось.
- Задание 3.
- Создайте ещё один проект.
- Создайте собственный файл, описывающий работу регистра, с возможностью сдвига данных. (можно на выбор любое другое синхронное логическое устройство, которое Вам по душе).
- Входные порты привяжите к кнопкам и/или тумблерам, а выходные к диодам и/или семи-сегментным индикаторам.
- Откомпилируйте проект.
- Прошейте в ПЛИС, убедитесь, что всё работает именно так, как и ожидалось.
-