Оглавление:
- Шаг 1: Технические характеристики
- Шаг 2: RTL-просмотр всей системы
- Шаг 3: Тестовая среда
- Шаг 4: прикрепленные файлы
Видео: Разработка простого контроллера кеша на VHDL: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Я пишу это руководство, потому что мне было немного сложно получить некоторый эталонный код VHDL для изучения и начала проектирования контроллера кеша. Поэтому я сам разработал контроллер кеш-памяти с нуля и успешно протестировал его на ПЛИС. Я представил здесь простой контроллер кэш-памяти с прямым отображением, а также смоделировал всю систему «процессор-память» для тестирования контроллера кеша. Я надеюсь, что вы, ребята, сочтете это руководство полезным в качестве справочника при разработке собственных контроллеров кеша.
Шаг 1: Технические характеристики
Вот основные характеристики контроллера кеша, который мы собираемся разработать:
- Прямое сопоставление. (перейдите по этой ссылке, если вы ищете контроллер ассоциативного сопоставленного кэша)
- Однобанковый, блокирующий кэш.
- Политика сквозной записи при обращениях к записи.
- Политика запрета записи на выделение или циклическая запись при промахах записи.
- Нет буфера записи или других оптимизаций.
- Массив тегов включен.
Кроме того, мы также разработаем кэш-память и систему основной памяти.
Стандартные (настраиваемые) характеристики кэш-памяти:
- Однобанковый кэш 256 байт.
- 16 строк кэша, каждая строка (блок) кэша = 16 байтов.
Характеристики основной памяти:
- Синхронная память чтения / записи.
- Многобанковая память с чередованием - четыре банка памяти.
- Размер каждого банка = 1 КБ каждый. Следовательно, общий размер = 4 КБ.
- Адресная память по словам (4 байта) с 10-битной адресной шиной.
- Более высокая пропускная способность для чтения. Ширина считываемых данных = 16 байт за один такт.
- Ширина записи данных = 4 байта.
ПРИМЕЧАНИЕ: ознакомьтесь с моими новыми инструкциями, если вы ищете 4-сторонний дизайн контроллера ассоциативного кеша
Шаг 2: RTL-просмотр всей системы
Полное RTL-представление верхнего модуля показано на рисунке (без процессора). Технические характеристики автобусов по умолчанию:
- Все шины данных - это 32-битные шины.
- Адресная шина = 32-битная шина (но здесь память может адресовать только 10 бит).
- Блок данных = 128 бит (широкополосная шина для чтения).
- Все компоненты работают по одним и тем же часам.
Шаг 3: Тестовая среда
Модуль Top был протестирован с помощью Test Bench, который просто моделирует процессор без конвейера (потому что спроектировать весь процессор совсем не просто !!). Тестовый стенд часто генерирует запросы на чтение / запись данных в память. Это имитирует типичные инструкции «Загрузить» и «Сохранить», общие для всех программ, выполняемых процессором. Результаты тестирования успешно подтвердили работоспособность контроллера кеша. Ниже приведены наблюдаемые статистические данные о тестах:
- Все сигналы промаха чтения / записи и попадания были сгенерированы правильно.
- Все операции чтения / записи данных были успешными.
- Проблем несогласованности / несогласованности данных не обнаружено.
- Дизайн был успешно проверен по времени для Maxm. Тактовая частота работы = 110 МГц для платы Xilinx Virtex-4 ML-403 (вся система), 195 МГц для одного контроллера кэш-памяти.
- Для основной памяти предполагались блочные ОЗУ. Все остальные массивы были реализованы на LUT.
Шаг 4: прикрепленные файлы
К этому блогу прикреплены следующие файлы:
- . VHD-файлы контроллера кеша, массива данных кэша, системы оперативной памяти.
- Испытательный стенд.
- Документация по контроллеру кеша.
Примечания:
- Просмотрите документацию для полного понимания спецификаций контроллера кэширования, представленных здесь.
- Любые изменения в коде зависят от других модулей. Итак, изменения следует вносить разумно. Обратите внимание на все комментарии и заголовки, которые я дал.
- Если по какой-либо причине блочные ОЗУ не предполагаются для основной памяти, УМЕНЬШИТЕ размер памяти с последующими изменениями ширины адресной шины в файлах и т. Д. Так что одна и та же память может быть реализована либо в LUT, либо в распределенной RAM. Это сэкономит время и ресурсы на маршрутизацию. Или перейдите к конкретной документации FPGA и найдите совместимый код для блочного ОЗУ, отредактируйте код соответствующим образом и используйте те же спецификации ширины шины адреса. Тот же метод для ПЛИС Altera.
Рекомендуемые:
Разработка простого четырехкомпонентного ассоциативного контроллера кэширования на VHDL: 4 шага
Проектирование простого четырехстороннего ассоциативного контроллера кэширования на VHDL. В моем предыдущем руководстве мы увидели, как разработать простой контроллер кэш-памяти с прямым отображением. На этот раз мы идем на шаг впереди. Мы будем проектировать простой четырехсторонний ассоциативный контроллер кеш-памяти. Преимущество ? Меньше промахов, но за счет перфорации
Разработка программируемого контроллера прерываний на VHDL: 4 шага
Дизайн программируемого контроллера прерываний на VHDL: я поражен тем, какие ответы я получаю в этом блоге. Спасибо, ребята, что посетили мой блог и побудили меня поделиться с вами своими знаниями. На этот раз я собираюсь представить дизайн еще одного интересного модуля, который мы видим во всех SOC - Interrupt C
Как сделать простого робота-паука на Хэллоуин: 4 шага (с картинками)
Как сделать простого робота-паука на Хэллоуин: это простой и забавный бот-робот для Хэллоуина! Bristlebots - отличные стартовые проекты для людей, изучающих основы схем и конструкции роботов. Используя головку зубной щетки для тела, небольшой мотор для движения и батарею
Разработка простого контроллера VGA на VHDL и Verilog: 5 шагов
Проектирование простого контроллера VGA на VHDL и Verilog: в этом руководстве мы собираемся разработать простой контроллер VGA на RTL. Контроллер VGA - это цифровая схема, предназначенная для управления дисплеями VGA. Он считывает из буфера кадра (память VGA), который представляет кадр, который нужно отобразить, и генерирует необходимые
Создайте свою собственную команду запуска с помощью простого шага: 4 шага
Создайте свою собственную команду запуска с помощью простого шага: здесь я покажу, как вы можете создать свою собственную команду запуска в ОС Windows. На самом деле это отличная функция в Windows, которая позволяет мгновенно открыть окно вашего приложения. Итак, теперь вы также можете создать свою команду для открытия любого приложения, введя