Практикум по пакетам проектирования сверхбольших интегральных схем (осенний семестр 2016 года)
Содержание
Общая информация
- Занятия проходят по пятницам с 14:35 до 16:10 в аудиториях 604 и 605.
- Занятия ведут Шуплецов Михаил Сергеевич, Данилов Борис Радиславович и Подымов Владислав Васильевич.
Материалы занятий для группы 618/1
Раздел находится в разработке
Материалы занятий для группы 618/2
Темы семинаров и слайды
Лекция 1. DE0-Nano. Синтаксис Verilog. Управляющие автоматы.
Семинар 1. Управляющие автоматы.
Лекция 2. Модельный процессор: общая структура, система команд, операционный автомат.
Лекция 3. Debug схем: визуализация схемы, диаграммы Мура, симуляция.
Лекция 4. Модельный многотактовый процессор, виды управляющих автоматов.
Домашние задания
Решения домашних заданий присылать на почты Шуплецова М.С. и Подымова В.В. (на обе сразу). Тема письма: "[Prac 618/2 hw-i-] Фамилия И.О.", где -i- - номер домашнего задания. Как правило, решение домашнего задания - это набор verilog-файлов.
Домашнее задание 1. В материалах семинара 1 сформулировано 6 задач: 5 нумерованных и "Домашнее задание". Каждая следующая задача считается строго сложнее предыдущей ("Домашнее задание" - самая сложная задача). Задание: постараться прорешать все задачи семинара, и прислать решение самой сложной решённой. Крайний срок: до конца выходных после второго семинара. Сложность присланной задачи будет учитываться при определении результатов по итогам семестра.
Внимание! Срок сдачи первого домашнего задания продлён, новый крайний срок: 23.10.2016, 23:59.
Домашнее задание 2. В материалах лекции 2 предложена общая структура операционного автомата процессора, поддерживающего а) только инструкцию add, б) только инструкцию beq. Задача: реализовать операционный автомат для каждого из этих двух случаев (т.е. в решении реализуются два разных независимых операционных автомата). Крайний срок: 24.11.2016, 23:59. По запросу будут выданы некоторые элементы реализации операционных автоматов. Чтобы не писать слишком много, можно сократить число регистров и размер адресного пространства используемой памяти (но не до тривиального предела).
Поправки к домашнему заданию 2:
- изменён крайний срок сдачи: 24.11.2016, 23:59,
- появились и будут выданы по запросу оттестированные (точно работающие) базовые блоки операционного автомата модельного процессора,
- появилась краткая справка по инструкциям и операционному автомату модельного процессора,
- небольшая помощь в симуляции операционного автомата:
- разрешается вместо add рассмотреть инструкцию addi, чтобы можно было проводить симуляцию, не изменяя кода базовых блоков процессора,
- подсказка, как можно содержательно симулировать выполнение инструкций add, beq: достаточно изменить код регистра, записывая по сигналу reset не 0, а желаемое начальное значение.
Домашнее задание 3. Реализовать однотактовый процессор, поддерживающий (как минимум) одну арифметическую инструкцию R-типа (например, add), одну арифметическую инструкцию I-типа (например, addi) и одну инструкцию ветвления I-типа (beq или bne). Если при проверке работоспособности процессора производилась симуляция в icarus verilog, то приложить к решению модули тестирования процессора. Подсказка: управляющий автомат однотактового процессора - это просто комбинационная схема, а совмещение операционных автоматов нескольких инструкций обсуждалось в лекции 2 и иллюстрируется в краткой справке по инструкциям и операционному автомату модельного процессора. Крайний срок: 08.12.2016, 23:59.
Домашнее задание 4. Реализовать многотактовый процессор (см. лекцию 4), поддерживающий (как минимум) одну арифметическую инструкцию (например, add или addi) и инструкцию безусловного ветвления (j). Если при проверке работоспособности процессора производилась симуляция в icarus verilog, то приложить к решению модули тестирования процессора. Крайний срок: 22.12.2016, 23:59.
Критерии зачёта
Каждое домашнее задание, сделанное полностью (если предложено несколько вариантов задач - если сделан самый сложный) и в срок, оценивается в 15 баллов. За каждый день просрочки накладывается штраф: минус один балл. Если будет проставляться зачёт без оценки, то чтобы получить зачёт, достаточно набрать не менее половины требуемых баллов.
Тем, кто не набрал половину баллов по результатам выполнения домашних заданий, для получения зачёта требуется реализовать многотактовый процессор, поддерживающий как минимум одну арифметическую инструкцию (например, addi), одну инструкцию условного ветвления (beq или bne), инструкцию безусловного ветвления (j) и хотя бы одну из инструкций работы с памятью данных (sw, lw).