Тематический план
-
-
- Создать проект на Vivado. (в соответствии с документом "Как создать проект на VIvado Файл")
- Добавить в него исходный файл.
- Написать модуль, зажигающий светодиод по нажатию кнопки.
- В файле "Основы синтаксиса VHDL и Verilog Файл " есть пример модуля на Verilog и на VHDL. (Это просто пример, ненадо его полностью копировать)
- В любом модуле должны быть порты clock и reset.
- Кроме них Вам нужно будет создать как минимум один порт для кнопки и как минимум один для светодиода.
- Добавить в проект файл ограничений. (имеет расширение *.xdc)
- Установить в файле ограничений пины для портов кнопки и диода. (В соответствии с "Полная распиновка платы 7A50T Файл
")
- Убедиться, что всё работает.
- Создать проект на Vivado. (в соответствии с документом "Как создать проект на VIvado Файл")
-
-
- Машина для голосования.
- На входе 4 кнопки. На выходе любой один светодиод (можно все сразу, если хочется). Светодиод должен гореть тогда и только тогда, когда большинство кнопок нажаты, т.е. минимум любые 3 из 4. Либо все 4. Арифметику использовать нельзя. Только логику, т.е. "И", "ИЛИ", "НЕ", "Исключающее ИЛИ".
- Двухразрядный сумматор.
- На входе два целых числа: первое число - кнопки 1 и 2, второе число - кнопки 3, 4. На выходе три светодиода (желательно стоящие рядом). Числа вводятся в двоичной системе счисления кнопками. Результат на диодах так же в двоичной системе счисления. Арифметику использовать нельзя. Только логику, т.е. "И", "ИЛИ", "НЕ", "Исключающее ИЛИ".
- Трёхразрядный дешифратор.
- На входе любые три кнопки (желательно стоящие рядом). На выходе 8 светодиодов. Должен загораться тот светодиод, номер которого введён кнопками в двоичной системе счисления. Арифметику использовать нельзя. Только логику, т.е. "И", "ИЛИ", "НЕ", "Исключающее ИЛИ".
- Трёхразрядный селектор.
- На входе любые три кнопки (желательно стоящие рядом) и 8 тумблеров. На выходе единственный светодиод. На светодиод должен транслироваться сигнал с того тумблера, номер которого указан кнопками в двоичной системе счисления. Арифметику использовать нельзя. Только логику, т.е. "И", "ИЛИ", "НЕ", "Исключающее ИЛИ".
-
-
- Реализовать адресуемую память, данные для которой устанавливаются 8-ю тумблерами а адрес и команда записи кнопками. При вводе соответствующего адреса память должна автоматически выдавать соответствующие данные на светодиоды, а при нажатии кнопки "Записать" сохранять в эту же ячейку новые данные. В памяти должно быть не менее 4-х адресов.
- Реализовать сдвиговый регистр. Данные в регистр заносятся по одному биту, кнопками, а выдаются все и сразу, на светодиоды. При вводе каждого следующего бита, предыдущие сдвигаются, что бы освободить новому биту место. Один, самый старый, бит, при этом, будет выброшен.
- Реализовать конкурентную память. представляет собой регистр, в который можно выполнить запись из двух источников (первый блок тумблеров и второй). Запись должна происходить только в случае, когда отсутствует конфликт, т.е. когда подан лишь один из двух сигналов записи. В случае же конфликта, следует сигнализировать о нём, зажигая соответствующий светодиод.
- Реализовать обратный сдвиговый регистр. Как второе задание, только наоборот. Вводятся данные все сразу, а читаются по одному биту.
-
-
-
Вычислить формулу при помощи конвейера
Варианты:
- x = a * b + 3 * c
- x = a / b + c * d
- x = (a - b) * (c - e)
- x = a * b * c * d
- x = a - b * c * d
- x = a + b / c + d
- x = a + b + c + d
- x = (a / b) / (c / d)
- x = (a * b) / (c * d)
- x = a + b + c * d
- x = a * a + b * b
- x = (a + b) / (2c)
- x = 2(a + b * c)
- x = 2(a + b) + c
- x = 2(a * b + c * d)
- x = 2(e * f + g / t)
- x = 2((a / b) / (c - e))
- x = 2(a/b)/(c-e)
-
-
Реализовать автомат детектирующий последовательность символов
- Только строчные буквы.
- Только прописные буквы.
- Только десятичные цифры (0-9).
- Шестнадцатеричное число (0-F).
- Арифметические выражения, т.е. любая последовательность цифр и операций: +-*/
- Электронная почта (что угодно с собакой @ в середине)
-
-
Выполняется по аналогии с ЛР№5.
Методички по данной лабораторной работе будут выложены до 25 ноября 2018.Задание выложено для тех, кто уже всё сдал и скучает без дела. (По сути ЛР№6 и ЛР№7 бонусные, т.к. получить зачёт можно и без них)
Реализовать автомат разбирающий последовательность в соответствии с шаблоном. Формат POSIX. Найденные подпоследовательности выводить в консоль в порядке открывающихся круглых скобок (как в POSIX). На строке следующей после последней узнанной подпоследовательности должен быть символ '+', если последовательность хорошая, и '-', если плохая. Символ конца последовательности перенос строки, т.е. ASCII код 13.
- email: "([a-zA-Z0-9.-]+)@([a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9])\.([a-zA-Z]{2,4})"
- Номер телефона: "(\+?)([0-9]{1,4})-([0-9]{3})-([0-9-]{7,10})"
- Число с плавающей точкой: "(-?)([0-9]+)\.([0-9]*)e(\+|-)([0-9]+)" (Сами числа парсить не нужно, только распознать регулярку)
- Дату: "(0?[1-9]|[12][0-9]|3[01])[\.](0?[1-9]|1[0-2])[\.](19[0-9]{2}|20[0-9]{2})"
- Время: "([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])"
- email: "([a-zA-Z0-9.-]+)@([a-zA-Z0-9][a-zA-Z0-9.-]*[a-zA-Z0-9])\.([a-zA-Z]{2,4})"
-
-
-
94.8 Кбайт документ PDF Загружено 9/12/18, 22:55
-
Структура реализованного тут автомата описана в «Пример управляющего автомата 8-битного процессора».
-
Скачать «Шаблон проекта управляющего автомата 8-битного процессора» и добавить в него инструкцию:
- Копирования регистра.
- Умножения.
- Деления.
- Вычитания.
- Условного перехода.
Так же необходимо реализовать тест для новой инструкции и проверить её работоспособность на симуляции.
-