Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
Dans ce instructable, nous allons concevoir un maître de bus SPI à partir de zéro en VHDL.
Étape 1: Présentation de SPI
- SPI est un bus série synchrone
- Sa popularité et sa simplicité en ont fait un standard de facto dans la communication série
- Bus duplex intégral
- Protocole simple et parmi les bus série les plus rapides
Étape 2: Spécifications de conception
Voici les spécifications du SPI Master que nous allons concevoir:
- Prend en charge les quatre modes de fonctionnement; configurable dynamiquement
- Horloge activer le contrôle pour économiser de l'énergie
- Longueur et vitesse de mot configurables de manière statique
- Interruption unique pour la transmission et la réception
Étape 3: Commencer
Tout d'abord, notre IP devrait avoir deux interfaces. L'une est une interface série et l'autre est une interface parallèle. L'interface série se compose des signaux standard de facto de SPI: MOSI, MISO, SS, SCLK.
MOSI est parfois appelé SDO et MISO est parfois appelé SDI.
L'interface série est utilisée pour communiquer avec des périphériques externes, c'est-à-dire des esclaves SPI.
L'interface parallèle est utilisée pour communiquer avec notre hôte, c'est-à-dire un microcontrôleur ou un microprocesseur, qui indique en fait au maître quelles données doivent être transmises et reçues en série via les lignes série. c'est-à-dire, tous les bus de données appartiennent à l'interface parallèle.
Nous avons une horloge globale qui pilote la logique SPI interne, ainsi que SCLK, que nous générons en interne.
Nous avons également des signaux de contrôle comme l'activation de l'écriture, l'activation de l'horloge. Et interruption et autres signaux d'état.
Étant donné que nous devons faire face à des conditions de contrôle complexes, il est plus simple de concevoir de telles IP de communication série en tant que FSM. Nous allons également concevoir le maître SPI en tant que FSM. Le FSM sera piloté par une autre horloge interne qui est deux fois SCLK. Cette horloge interne est générée à l'aide de compteurs synchrones de l'horloge globale.
Tous les signaux de contrôle qui traversent les domaines d'horloge ont des synchroniseurs pour être plus sûrs.
Étape 4: Vue RTL du SPI Master Core et des formes d'onde de simulation
Il s'agit d'une conception RTL nue sans IP FPGA dédiée utilisée. C'est donc un code entièrement portable vers n'importe quel FPGA.
Conseillé:
Conception d'un contrôleur de cache associatif simple à quatre voies en VHDL : 4 étapes
Conception d'un contrôleur de cache associatif simple à quatre voies en VHDL : dans mon précédent instructable, nous avons vu comment concevoir un contrôleur de cache mappé direct simple. Cette fois, nous avançons d'un pas. Nous allons concevoir un simple contrôleur de cache associatif à quatre voies. Avantage ? Moins de ratés, mais au prix de perfo
Conception d'un contrôleur d'interruption programmable en VHDL : 4 étapes
Conception d'un contrôleur d'interruption programmable en VHDL : je suis submergé par le type de réponses que je reçois dans ce blog. Merci les gars de visiter mon blog et de me motiver à partager mes connaissances avec vous. Cette fois, je vais présenter la conception d'un autre module intéressant que nous voyons dans tous les SOC -- Interrupt C
Conception d'un contrôleur de cache simple en VHDL : 4 étapes
Conception d'un contrôleur de cache simple en VHDL : j'écris cette instructable, car j'ai trouvé un peu difficile d'obtenir du code VHDL de référence pour apprendre et commencer à concevoir un contrôleur de cache. J'ai donc conçu moi-même un contrôleur de cache à partir de zéro et l'ai testé avec succès sur FPGA. J'ai p
Conception du Master I2C en VHDL : 5 étapes
Conception du maître I2C en VHDL : dans cette instructable, la conception d'un simple maître I2C en VHDL est discutée. REMARQUE : cliquez sur chaque image pour voir l'image complète
Conception d'un contrôleur VGA simple en VHDL et Verilog : 5 étapes
Conception d'un contrôleur VGA simple en VHDL et Verilog : dans cette instructable, nous allons concevoir un contrôleur VGA simple en RTL. Le contrôleur VGA est le circuit numérique conçu pour piloter les écrans VGA. Il lit à partir de Frame Buffer (VGA Memory) qui représente la trame à afficher, et génère nece