Tabla de contenido:
- Paso 1: descripción general de SPI
- Paso 2: especificaciones de diseño
- Paso 3: Comenzando
- Paso 4: Vista RTL del núcleo maestro SPI y formas de onda de simulación
Video: Diseño de SPI Master en VHDL: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este instructable, vamos a diseñar un SPI Bus Master desde cero en VHDL.
Paso 1: descripción general de SPI
- SPI es un bus serie síncrono
- Su popularidad y simplicidad lo convirtieron en un estándar de facto en la comunicación en serie.
- Bus full-duplex
- Protocolo simple y uno de los buses serie más rápidos
Paso 2: especificaciones de diseño
Estas son las especificaciones del SPI Master que vamos a diseñar:
- Admite los cuatro modos de funcionamiento; configurable dinámicamente
- Control de activación del reloj para ahorrar energía
- Longitud y velocidad de palabra configurables estáticamente
- Interrupción única tanto para transmisión como para recepción
Paso 3: Comenzando
En primer lugar, nuestra IP debe tener dos interfaces. Una es la interfaz en serie y la otra es la interfaz paralela. La interfaz en serie consta de las señales estándar de facto de SPI: MOSI, MISO, SS, SCLK.
MOSI a veces se llama SDO y MISO a veces se llama SDI.
La interfaz en serie se utiliza para comunicarse con periféricos externos, es decir, esclavos SPI.
La interfaz paralela se utiliza para comunicarse con nuestro host, es decir, un microcontrolador o microprocesador, que en realidad le dice al Maestro qué datos deben transmitirse y recibirse en serie a través de las líneas serie. es decir, todos los buses de datos pertenecen a la interfaz paralela.
Tenemos un reloj global que impulsa la lógica SPI interna, así como SCLK, que generamos internamente.
También tenemos algunas señales de control como escritura habilitada, habilitación de reloj. E interrupción y otras señales de estado.
Dado que tenemos que lidiar con condiciones de control complejas, es más sencillo diseñar tales IP de comunicación en serie como un FSM. También diseñaremos el maestro SPI como un FSM. El FSM será impulsado por otro reloj interno que es dos veces SCLK. Ese reloj interno se genera utilizando contadores síncronos del reloj global.
Todas las señales de control que cruzan dominios de reloj tienen sincronizadores para estar en el lado más seguro.
Paso 4: Vista RTL del núcleo maestro SPI y formas de onda de simulación
Es un diseño RTL desnudo sin IP FPGA dedicadas utilizadas. Por lo tanto, es un código totalmente portátil para cualquier FPGA.
Recomendado:
Diseño de un controlador de caché asociativo de cuatro vías simple en VHDL: 4 pasos
Diseño de un controlador de caché asociativo de conjunto de cuatro vías simple en VHDL: en mi instructable anterior, vimos cómo diseñar un controlador de caché mapeado directo simple. Esta vez, avanzamos un paso. Diseñaremos un controlador de caché asociativo de cuatro vías simple. Ventaja ? Menos tasa de fallos, pero a costa de perfo
Diseño de un controlador de interrupciones programable en VHDL: 4 pasos
Diseño de un controlador de interrupciones programable en VHDL: Estoy abrumado por el tipo de respuestas que recibo en este blog. Gracias a todos por visitar mi blog y motivarme a compartir mis conocimientos con ustedes. Esta vez, voy a presentar el diseño de otro módulo interesante que vemos en todos los SOC: Interrupt C
Diseño de un controlador de caché simple en VHDL: 4 pasos
Diseño de un controlador de caché simple en VHDL: estoy escribiendo este instructivo, porque me resultó un poco difícil obtener algo de código VHDL de referencia para aprender y comenzar a diseñar un controlador de caché. Así que diseñé un controlador de caché desde cero y lo probé con éxito en FPGA. Tengo p
Diseño de I2C Master en VHDL: 5 pasos
Diseño de I2C Master en VHDL: En este instructable, se discute el diseño de un I2C master simple en VHDL NOTA: haga clic en cada imagen para ver la imagen completa
Diseño de un controlador VGA simple en VHDL y Verilog: 5 pasos
Diseño de un controlador VGA simple en VHDL y Verilog: En este instructable, vamos a diseñar un controlador VGA simple en RTL. El controlador VGA es el circuito digital diseñado para controlar pantallas VGA. Lee de Frame Buffer (memoria VGA) que representa el marco que se mostrará y genera la necesidad