Turinys:

„SPI Master“dizainas VHDL: 6 žingsniai
„SPI Master“dizainas VHDL: 6 žingsniai

Video: „SPI Master“dizainas VHDL: 6 žingsniai

Video: „SPI Master“dizainas VHDL: 6 žingsniai
Video: Implementation of I2C Master Bus Controller on FPGA 2024, Liepa
Anonim
„SPI Master“dizainas VHDL
„SPI Master“dizainas VHDL

Šioje pamokoje mes suprojektuosime SPI magistralės magistralę nuo nulio VHDL.

1 žingsnis: SPI apžvalga

  • SPI yra sinchroninė nuoseklioji magistralė
  • Dėl savo populiarumo ir paprastumo jis tapo de facto serijinės komunikacijos standartu
  • Visiškai dvipusis autobusas
  • Paprastas protokolas ir vienas greičiausių nuosekliųjų autobusų

2 žingsnis: projektavimo specifikacijos

Tai yra SPI Master specifikacijos, kurias mes suprojektuosime:

  • Palaiko visus keturis veikimo režimus; dinamiškai konfigūruojamas
  • Laikrodis leidžia valdyti energiją
  • Statiškai konfigūruojamas žodžio ilgis ir greitis
  • Vienas pertraukimas tiek perdavimui, tiek priėmimui

3 žingsnis: pradėkite

Visų pirma, mūsų IP turėtų turėti dvi sąsajas. Viena yra nuosekli sąsaja, o kita - lygiagreti sąsaja. Serijinę sąsają sudaro de facto standartiniai SPI signalai: MOSI, MISO, SS, SCLK.

MOSI kartais vadinamas SDO, o MISO kartais vadinamas SDI.

Serijinė sąsaja naudojama bendrauti su išoriniais išoriniais įrenginiais, ty SPI vergais.

Lygiagreti sąsaja naudojama bendrauti su mūsų pagrindiniu kompiuteriu, ty mikrovaldikliu ar mikroprocesoriumi, kuris faktiškai nurodo kapitonui, kokie duomenys turi būti nuosekliai perduodami ir gaunami per nuoseklias linijas. y., visos duomenų magistralės priklauso lygiagrečiai sąsajai.

Turime pasaulinį laikrodį, kuris valdo vidinę SPI logiką, taip pat SCLK, kurį sukuriame viduje.

Mes taip pat turime keletą valdymo signalų, tokių kaip rašymo įgalinimas, laikrodžio įgalinimas. Ir pertraukimo ir kiti būsenos signalai.

Kadangi turime susidoroti su sudėtingomis valdymo sąlygomis, paprasčiau sukurti tokius nuoseklaus ryšio IP kaip FSM. Mes taip pat suprojektuosime SPI meistrą kaip MFV. MFV valdys kitas vidinis laikrodis, kuris yra du kartus didesnis už SCLK. Šis vidinis laikrodis generuojamas naudojant sinchroninius visuotinio laikrodžio skaitiklius.

Visi valdymo signalai, kertantys laikrodžio domenus, turi sinchronizatorius, kad jie būtų saugesni.

4 žingsnis: „SPI Master Core“ir modeliavimo bangos formų RTL vaizdas

„SPI Master Core“ir simuliacinių bangų formų RTL vaizdas
„SPI Master Core“ir simuliacinių bangų formų RTL vaizdas
RTL „SPI Master Core“ir modeliavimo bangų formų vaizdas
RTL „SPI Master Core“ir modeliavimo bangų formų vaizdas

Tai plikas RTL dizainas, nenaudojant tam skirtų FPGA IP. Taigi tai yra visiškai nešiojamas kodas bet kuriai FPGA.

Rekomenduojamas: