Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
În acest instructable, vom proiecta un SPI Bus Master de la zero în VHDL.
Pasul 1: Prezentare generală a SPI
- SPI este o magistrală serial sincronă
- Popularitatea și simplitatea sa au făcut-o un standard de facto în comunicarea în serie
- Autobuz full-duplex
- Protocol simplu și printre cele mai rapide magistrale seriale
Pasul 2: Specificații de proiectare
Acestea sunt specificațiile SPI Master pe care le vom proiecta:
- Suportă toate cele patru moduri de operare; configurabil dinamic
- Ceasul permite controlul pentru economisirea energiei
- Lungimea și viteza cuvintelor configurabile static
- Întrerupere unică atât pentru transmisie, cât și pentru recepție
Pasul 3: Pornire
În primul rând, IP-ul nostru ar trebui să aibă două interfețe. Una este interfața serială, iar cealaltă este interfața paralelă. Interfața serială constă din semnale standard de facto ale SPI: MOSI, MISO, SS, SCLK.
MOSI este uneori numit SDO, iar MISO este numit uneori SDI.
Interfața serială este utilizată pentru a comunica cu periferice externe, de exemplu, sclavi SPI.
Interfața paralelă este utilizată pentru a comunica cu gazda noastră, adică un microcontroler sau microprocesor, care îi spune de fapt Maestrului ce date trebuie transmise și primite în serie prin intermediul liniilor seriale. adică, toate autobuzele de date aparțin unei interfețe paralele.
Avem un ceas global care conduce logica SPI internă, precum și SCLK, pe care îl generăm intern.
Avem, de asemenea, câteva semnale de control, cum ar fi activarea scrierii, activarea ceasului. Și întreruperea și alte semnale de stare.
Deoarece trebuie să ne confruntăm cu condiții de control complexe, este mai simplu să proiectăm astfel de adrese IP de comunicații seriale ca un FSM. Vom proiecta masterul SPI și ca FSM. FSM va fi condus de un alt ceas intern care este de două ori SCLK. Acest ceas intern este generat folosind contoare sincrone din ceasul global.
Toate semnalele de control care traversează domeniile de ceas au sincronizatoare pentru a fi pe partea mai sigură.
Pasul 4: Vizualizare RTL a SPI Master Core și a formelor de undă de simulare
Este un design RTL gol, fără IP-uri FPGA dedicate utilizate. Prin urmare, este un cod complet portabil pentru orice FPGA.
Recomandat:
Proiectarea unui controler asociat asociat de cache simplu în patru direcții în VHDL: 4 pași
Proiectarea unui controler de cache asociativ setat în patru direcții în VHDL: În instructajul meu anterior, am văzut cum să proiectăm un controler de cache direct mapat simplu. De data aceasta, facem un pas înainte. Vom proiecta un controler cache asociativ simplu cu patru căi. Avantaj? Mai puțină rata de rate, dar cu prețul perfo
Proiectarea unui controler de întrerupere programabil în VHDL: 4 pași
Proiectarea unui controler de întrerupere programabil în VHDL: sunt copleșit de tipul de răspunsuri pe care le primesc în acest blog. Mulțumesc băieți că mi-ați vizitat blogul și m-ați motivat să vă împărtășesc cunoștințele. De data aceasta, voi prezenta designul unui alt modul interesant pe care îl vedem în toate SOC - Interrupt C
Proiectarea unui controller de cache simplu în VHDL: 4 pași
Proiectarea unui controler de cache simplu în VHDL: scriu acest lucru instructiv, pentru că mi s-a părut puțin dificil să obțin un cod VHDL de referință pentru a învăța și a începe proiectarea unui controler de cache. Așa că am proiectat un controler cache de la zero și l-am testat cu succes pe FPGA. Am p
Proiectarea masterului I2C în VHDL: 5 pași
Proiectarea masterului I2C în VHDL: în acest instructable, este discutată proiectarea unui master I2C simplu în VHDL. NOTĂ: faceți clic pe fiecare imagine pentru a vedea imaginea completă
Proiectarea unui controler VGA simplu în VHDL și Verilog: 5 pași
Proiectarea unui controler VGA simplu în VHDL și Verilog: În acest instructable, vom proiecta un controler VGA simplu în RTL. VGA Controller este circuitul digital conceput pentru a conduce afișaje VGA. Se citește din Frame Buffer (memorie VGA) care reprezintă cadrul care trebuie afișat și generează nece