Проектирование RTL: тракты данных и конвейеры
Определите числовые требования и поведение по тактам, затем спроектируйте АЛУ, контроллер, конвейер и буферизацию ready-valid. Четыре лабораторные работы с исполняемыми эталонными моделями проверяют арифметические границы, остановки, FIFO и порядок обработки перед итоговым проектом потоковых вычислений.
Чему вы научитесь
- Различать требования к разрядности, знаковости, переносу и переполнению
- Планировать регистровые передачи, управление конечным автоматом и работу синхронной памяти
- Вычислять задержку, пропускную способность и интервал запуска
- Обрабатывать остановки ready-valid и граничные состояния FIFO без потерь
- Создавать проверки с таблицей ожидаемых результатов для конфликтов и сброса
- Проверять итоговый проект потоковых вычислений автономными моделями
Перед началом
Упражнения в браузере используют учебные модели и не компилируют и не запускают HDL. Для отдельного запуска исходного кода следуйте руководству Digital Design Studio для вашей ОС и войдите в аккаунт, если этого требует операция.
Установка и первый запуск ↗ · Загрузки ↗Программа
- Числовые и арифметические требования
- Превратите уравнение в спецификацию тракта данныхТеория
Задайте разрядности, события приёма и признаки достоверности результатов вместе с арифметикой.
- Разрядности, знаковое расширение и переполнениеТеория
На числовых примерах разграничьте интерпретацию, расширение и сужение.
- Лабораторная работа: эталонная модель восьмибитного АЛУПрактика
Проверьте ADD, SUB, AND, XOR, перенос и заём в автономной исполняемой программе.
- Проверка: перенос и знаковое переполнениеПроверка знаний
Различайте числовые границы при беззнаковой и знаковой интерпретации.
- Регистровые передачи и управление
- Читайте регистровые передачи на тактовых фронтахТеория
Разделяйте старое и следующее состояние и прослеживайте сохранение значений сигналами разрешения.
- Планируйте общие ресурсы конечным автоматомТеория
Сложите четыре значения одним сумматором, определив переходы состояний и фиксацию данных.
- Временные требования к запросам и ответам памятиТеория
Различайте синхронное чтение, задержанные метки и конфликты одинакового адреса.
- Проверка: сохранение готового результатаПроверка знаний
Отделяйте выдачу в состоянии DONE от приёма следующего запроса.
- Временные характеристики и пропускная способность конвейера
- Храните полную транзакцию на границах конвейераТеория
Разделяйте сложение и масштабирование, согласуя valid, метку и разрядности.
- Задержка, пропускная способность и интервал запускаТеория
Вычисляйте задержку одной транзакции отдельно от установившейся частоты завершений.
- Лабораторная работа: проследите две ступени и пустые тактыПрактика
Вычисляйте следующее состояние из старого и сравнивайте выходные метки, значения и фронты.
- Проверка: смысл II=1Проверка знаний
Не путайте количество ступеней с установившейся пропускной способностью.
- Управление потоком ready-valid
- События приёма и стабильность при остановкахТеория
Назначьте обязанности источника и приёмника и сохраняйте задержанные полезные данные.
- Спроектируйте эластичный регистр на одно местоТеория
Принимайте данные в пустое место или заменяйте одновременно потреблённый элемент.
- Лабораторная работа: проверьте 1024 шаблона остановокПрактика
Проверьте удержание, замену и освобождение для всех десятизначных тактовых шаблонов ready.
- Проверка: подсчёт задержанной транзакцииПроверка знаний
Различайте длительность valid и фактическое количество подтверждённых передач.
- FIFO и границы конфликтов
- Пустая и полная FIFO и одновременные передачиТеория
Отделяйте заполненность от указателей и задавайте добавление/извлечение на границах.
- Зависимости, ресурсные конфликты и обходная передачаТеория
Сравните остановки и обходную передачу, когда операции нужен предыдущий результат.
- Сохраняйте учёт транзакций при очистке и сбросеТеория
Отделяйте отмену от выдачи и согласуйте valid с очередями ожидаемых результатов.
- Проверка: замена в полной FIFOПроверка знаний
Вычислите заполненность и порядок при одновременных push и pop.
- Верификация и потоковый вычислитель
- Совместите таблицу ожидаемых результатов с локальными инвариантамиТеория
Проверяйте значения, порядок, заполненность и стабильность остановок по принятым транзакциям.
- Итоговая лабораторная работа: FIFO и двухступенчатый потоковый вычислительПрактика
Соедините входную FIFO глубины два, две эластичные ступени и таблицу ожидаемых результатов.
- Измерьте производительность и проверьте проектТеория
Задавайте окна наблюдения, диагностируйте остановки и ограничивайте выводы модели.
- Итоговая проверка: остановки без потерь и опустошениеПроверка знаний
Совместите арифметику, учёт незавершённой работы и условия завершения.