Съдържание:
- Стъпка 1: Спецификации
- Стъпка 2: RTL изглед на цялата система
- Стъпка 3: Резултати от теста
- Стъпка 4: Прикачени файлове
Видео: Проектиране на прост четирипосочен контролер за асоцииран кеш във VHDL: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В предишните ми инструкции видяхме как да проектираме прост директно картографиран кеш контролер. Този път вървим крачка напред. Ще проектираме прост четирипосочен контролер за асоциативен кеш. Предимство? По -малък процент пропуски, но с цената на производителността. Точно като предишния ми блог, ние ще проектираме и емулираме цял процесор, основна памет и кеш среда, за да тестваме нашия кеш контролер. Надявам се, че вие ще намерите това като полезна справка, за да разберете концепциите и да проектирате свои собствени кеш контролери в бъдеще. Тъй като моделът за процесор (тестова пейка) и основната система с памет са абсолютно същите като предишния ми блог, няма да ги обяснявам отново. Моля, вижте предишните инструкции за подробности относно него.
Стъпка 1: Спецификации
Бързо разгледайте представените тук спецификации на Cache Controller:
- Четирипосочен контролер за асоцииращ кеш (отидете на тази връзка, ако търсите контролер за директно картографиран кеш).
- Еднобанков, блокиращ кеш.
- Политика за запис при посещения.
- Политика за писане около грешки при запис.
- Политика за подмяна на псевдо-LRU (pLRU) на дърво.
- Tag Array в контролера.
- Конфигурируеми параметри.
Спецификациите по подразбиране за кеш памет и основна памет са същите като от предишните ми инструкции. Моля, обърнете се към тях.
Стъпка 2: RTL изглед на цялата система
Пълното RTL представяне на горния модул е показано на фигурата (с изключение на процесора). Стандартните спецификации за автобусите са:
- Всички автобуси за данни са 32-битови автобуси.
- Адресна шина = 32-битова шина (Но само 10 бита са адресирани тук от паметта).
- Блок данни = 128 бита (Широка ширина на честотната лента за четене).
- Всички компоненти се задвижват от един и същ часовник.
Стъпка 3: Резултати от теста
Модулът Top е тестван с помощта на Test Bench, който просто моделира неконвейерен процесор, точно както направихме в последния инструктаж. Test Bench често генерира заявки за четене/запис на данни в паметта. Това се подиграва с типичните инструкции „Зареждане“и „Съхранение“, общи за всички програми, изпълнявани от процесор.
Резултатите от теста успешно провериха функционалността на Cache Controller. По -долу са наблюдавани статистическите данни за теста:
- Всички сигнали за четене/запис на пропуски и удари са генерирани правилно.
- Всички операции за четене/запис на данни бяха успешни и по четирите начина.
- pLRU алгоритъмът е успешно проверен за подмяна на кеш линии.
- Не са открити проблеми в несъответствието/несъответствието на данните.
- Дизайнът беше успешно проверен по време на Maxm. Тактова честота на работа = 100 MHz в Xilinx Virtex-4 ML-403 Board (цялата система), 110 MHz само за Cache Controller.
- За основната памет се извеждат блокови RAM. Всички останали масиви са внедрени на LUT.
Стъпка 4: Прикачени файлове
Следните файлове са приложени тук с този блог:
- . VHD файлове на Cache Controller, Cache Data Array, Main Memory System.
- Тестова пейка.
- Документация за Cache Controller.
Бележки:
- Прегледайте документацията за пълно разбиране на представените тук спецификации на кеш контролера.
- Всички промени в кода зависят от други модули. Така че промените трябва да се извършват разумно.
- Обърнете внимание на всички коментари и заглавки, които съм дал.
- Ако по някаква причина не се извеждат блокови RAM за основната памет, НАМАЛЯВАЙТЕ размера на паметта, последван от промени в ширината на адресната шина във файловете и т.н. Така че същата памет може да бъде внедрена или на LUT, или на разпределена RAM. Това ще спести време и ресурси за маршрутизиране. Или отидете в конкретната документация за FPGA и намерете съвместимия код за Блокиране на RAM и съответно редактирайте кода и използвайте същите спецификации на ширината на адресната шина. Същата техника за Altera FPGA.
Препоръчано:
Проектиране на програмируем контролер за прекъсвания във VHDL: 4 стъпки
Проектиране на програмируем контролер за прекъсвания във VHDL: Уморен съм от вида на отговорите, които получавам в този блог. Благодаря ви момчета, че посетихте моя блог и ме мотивирахте да споделя знанията си с вас. Този път ще представя дизайна на друг интересен модул, който виждаме във всички SOC - Interrupt C
Проектиране на обикновен кеш контролер във VHDL: 4 стъпки
Дизайн на прост кеш контролер във VHDL: Пиша тази инструкция, защото ми беше малко трудно да получа някакъв референтен VHDL код, за да науча и да започна да проектирам кеш контролер. Затова сам проектирах кеш контролер от нулата и го тествах успешно на FPGA. Имам п
Проектиране на обикновен VGA контролер във VHDL и Verilog: 5 стъпки
Дизайн на прост VGA контролер във VHDL и Verilog: В тази инструкция ще проектираме прост VGA контролер в RTL. VGA контролер е цифровата схема, предназначена за задвижване на VGA дисплеи. Той чете от Frame Buffer (VGA Memory), който представлява рамката за показване и генерира необходимо
Проектиране на UART във VHDL: 5 стъпки
Дизайн на UART във VHDL: UART означава универсален асинхронен приемник предавател. Това е най -популярният и най -прост протокол за серийна комуникация. В тази инструкция ще научите как да проектирате UART модул във VHDL
Прост контролер Unity: 5 стъпки
Simple Unity Controller: Описание Този проект е много прост контролер, който може да даде въвеждане на Unity при натискане на бутони. Разбира се, винаги можете да го регулирате за повече контроли. Няма п