
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36

В тази инструкция ще проектираме SPI Bus Master от нулата във VHDL.
Стъпка 1: Преглед на SPI
- SPI е синхронна серийна шина
- Неговата популярност и простота го направиха фактически стандарт в серийната комуникация
- Пълнодуплексен автобус
- Прост протокол и сред най -бързата серийна шина
Стъпка 2: Спецификации на дизайна
Това са спецификациите на SPI Master, който ще проектираме:
- Поддържа и четирите режима на работа; динамично конфигуриране
- Управление на часовника за пестене на енергия
- Статично конфигурируема дължина и скорост на думата
- Единично прекъсване както за предаване, така и за приемане
Стъпка 3: Стартиране
На първо място, нашият IP трябва да има два интерфейса. Единият е сериен интерфейс, а другият е паралелен интерфейс. Серийният интерфейс се състои от фактическите стандартни сигнали на SPI: MOSI, MISO, SS, SCLK.
MOSI понякога се нарича SDO, а MISO понякога се нарича SDI.
Серийният интерфейс се използва за комуникация с външни периферни устройства, т.е. SPI подчинени устройства.
Паралелен интерфейс се използва за комуникация с нашия хост, т.е. т.е. всички шини за данни принадлежат към паралелен интерфейс.
Имаме глобален часовник, който управлява вътрешната SPI логика, както и SCLK, който генерираме вътрешно.
Имаме и някои управляващи сигнали като разрешаване на запис, разрешаване на часовник. И прекъсвания и други сигнали за състоянието.
Тъй като трябва да се справим със сложни условия за управление, е по -лесно да се проектират такива IP адреси за серийна комуникация като FSM. Ще проектираме и SPI master като FSM. FSM ще се задвижва от друг вътрешен часовник, който е два пъти SCLK. Този вътрешен часовник се генерира с помощта на синхронни броячи от глобалния часовник.
Всички контролни сигнали, които имат кръстосани домейни, имат синхронизатори, за да бъдат от по -безопасна страна.
Стъпка 4: RTL изглед на SPI Master Core и симулационни форми на вълни


Това е чист RTL дизайн без използвани специални FPGA IP. Следователно това е напълно преносим код към всяка FPGA.
Препоръчано:
Проектиране на прост четирипосочен контролер за асоцииран кеш във VHDL: 4 стъпки

Проектиране на прост четирипосочен контролер за асоцииран кеш във VHDL: В предишните ми инструкции видяхме как да проектираме прост директно картографиран кеш контролер. Този път вървим крачка напред. Ще проектираме прост четирипосочен контролер за асоциативен кеш. Предимство? По -малък процент пропуски, но с цената на перфо
Проектиране на програмируем контролер за прекъсвания във VHDL: 4 стъпки

Проектиране на програмируем контролер за прекъсвания във VHDL: Уморен съм от вида на отговорите, които получавам в този блог. Благодаря ви момчета, че посетихте моя блог и ме мотивирахте да споделя знанията си с вас. Този път ще представя дизайна на друг интересен модул, който виждаме във всички SOC - Interrupt C
Проектиране на обикновен кеш контролер във VHDL: 4 стъпки

Дизайн на прост кеш контролер във VHDL: Пиша тази инструкция, защото ми беше малко трудно да получа някакъв референтен VHDL код, за да науча и да започна да проектирам кеш контролер. Затова сам проектирах кеш контролер от нулата и го тествах успешно на FPGA. Имам п
Дизайн на I2C Master във VHDL: 5 стъпки

Дизайн на I2C Master във VHDL: В тази инструкция се обсъжда проектирането на прост I2C master във VHDL. ЗАБЕЛЕЖКА: щракнете върху всяко изображение, за да видите пълното изображение
Проектиране на обикновен VGA контролер във VHDL и Verilog: 5 стъпки

Дизайн на прост VGA контролер във VHDL и Verilog: В тази инструкция ще проектираме прост VGA контролер в RTL. VGA контролер е цифровата схема, предназначена за задвижване на VGA дисплеи. Той чете от Frame Buffer (VGA Memory), който представлява рамката за показване и генерира необходимо