Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11
I det här instruerbara kommer vi att designa en SPI Bus Master från grunden i VHDL.
Steg 1: Översikt över SPI
- SPI är en synkron seriell buss
- Dess popularitet och enkelhet gjorde den till en de facto standard för seriell kommunikation
- Buss i full duplex
- Enkelt protokoll och bland de snabbaste seriella bussen
Steg 2: Designspecifikationer
Det här är specifikationerna för SPI Master vi ska designa:
- Stöder alla fyra driftsätt; dynamiskt konfigurerbar
- Klocka möjliggör kontroll för energibesparing
- Statiskt konfigurerbar ordlängd och hastighet
- Enstaka avbrott för både överföring och mottagning
Steg 3: Börja
Först och främst bör vår IP ha två gränssnitt. Det ena är ett seriellt gränssnitt och det andra är ett parallellt gränssnitt. Seriellt gränssnitt består av de-facto standardsignaler från SPI: MOSI, MISO, SS, SCLK.
MOSI kallas ibland SDO och MISO kallas ibland SDI.
Seriellt gränssnitt används för att kommunicera med externa kringutrustning, dvs SPI -slavar.
Parallellt gränssnitt används för att kommunicera med vår värd, dvs en mikrokontroller eller mikroprocessor, som faktiskt berättar för mästaren vilken data som måste överföras i serie och mottas genom serielinjerna. dvs. Alla databussar tillhör ett parallellt gränssnitt.
Vi har en global klocka som driver intern SPI -logik, liksom SCLK, som vi genererar internt.
Vi har också några styrsignaler som skrivaktivering, klockaktivering. Och avbrott och andra statussignaler.
Eftersom vi måste hantera komplexa kontrollförhållanden är det enklare att utforma sådana seriella kommunikations -IP: er som en FSM. Vi kommer också att utforma SPI master som en FSM. FSM kommer att drivas av en annan intern klocka som är två gånger SCLK. Den interna klockan genereras med hjälp av synkronräknare från den globala klockan.
Alla styrsignaler som korsar klockdomäner har synkroniserare för att vara på den säkrare sidan.
Steg 4: RTL -vy över SPI Master Core och Simulation Waveforms
Det är en ren RTL -design utan några dedikerade FPGA -IP: er. Därför är det en helt bärbar kod till alla FPGA.
Rekommenderad:
Design av en enkel fyrvägsuppsättning associerad cachekontroller i VHDL: 4 steg
Utformning av en enkel fyrvägsuppsättning associerad cachekontroller i VHDL: I min tidigare instruerbarhet såg vi hur man utformar en enkel direktkartad cachekontroller. Den här gången går vi ett steg framåt. Vi kommer att utforma en enkel fyrvägsuppsättning associerad cache-kontroller. Fördel? Mindre missfrekvens, men på bekostnad av perfo
Design av en programmerbar avbrottsstyrenhet i VHDL: 4 steg
Design av en programmerbar avbrottsstyrenhet i VHDL: Jag är överväldigad av den typ av svar jag får i den här bloggen. Tack killar för att du besökte min blogg och motiverade mig att dela min kunskap med dig. Den här gången kommer jag att presentera designen av en annan intressant modul som vi ser i alla SOC - Interrupt C
Design av en enkel cachekontroller i VHDL: 4 steg
Design av en enkel cachekontroller i VHDL: Jag skriver detta instruerbart, eftersom jag tyckte att det var lite svårt att få lite referens -VHDL -kod att lära sig och börja designa en cachekontroller. Så jag designade själv en cachekontroller från början och testade den framgångsrikt på FPGA. Jag har p
Design av I2C Master i VHDL: 5 steg
Design av I2C Master i VHDL: I den här instruktionsboken diskuteras att designa en enkel I2C -master i VHDL. OBS: klicka på varje bild för att se hela bilden
Design av en enkel VGA -kontroller i VHDL och Verilog: 5 steg
Design av en enkel VGA -styrenhet i VHDL och Verilog: I den här instruktören ska vi designa en enkel VGA -styrenhet i RTL. VGA Controller är den digitala kretsen som är utformad för att driva VGA -skärmar. Den läser från Frame Buffer (VGA Memory) som representerar ramen som ska visas, och genererar nece