El Wishbone Bus es un bus de computadora de hardware de código abierto destinado a permitir que las partes de un circuito integrado se comuniquen entre sí. El objetivo es permitir la conexión de diferentes núcleos entre sí dentro de un chip. El Wishbone Bus es utilizado por muchos diseños en el proyecto OpenCores .
Creado por | Corporación Silicore |
---|---|
Ancho en bits | 8, 16, 32, 64 |
Estilo | Paralelo |
Interfaz de conexión en caliente | No (en chip bus) |
Interfaz externa | No |
Wishbone está diseñado como un "bus lógico". No especifica información eléctrica ni la topología del bus. En cambio, la especificación está escrita en términos de "señales", ciclos de reloj y niveles altos y bajos.
Esta ambigüedad es intencionada. Wishbone está hecho para permitir que los diseñadores combinen varios diseños escritos en Verilog , VHDL o algún otro lenguaje de descripción lógica para la automatización del diseño electrónico (EDA). Wishbone proporciona una forma estándar para que los diseñadores combinen estos diseños lógicos de hardware (llamados "núcleos"). Wishbone se define para tener buses de 8, 16, 32 y 64 bits. Todas las señales son sincrónicas a un solo reloj, pero algunas respuestas esclavas deben generarse de forma combinatoria para obtener el máximo rendimiento. Wishbone permite la adición de un "bus de etiquetas" para describir los datos. Pero el restablecimiento, las lecturas y escrituras direccionadas simples, el movimiento de bloques de datos y los ciclos de bus indivisibles funcionan sin etiquetas.
Wishbone es de código abierto , lo que facilita a los ingenieros y aficionados compartir diseños de dominio público para la lógica del hardware en Internet. Para evitar la apropiación de sus tecnologías mediante patentes agresivas, la especificación Wishbone incluye ejemplos del estado de la técnica para demostrar que sus conceptos son de dominio público.
Un dispositivo no conforme a la especificación Wishbone menos que incluya una hoja de datos que describe lo que hace, ancho de bus, la utilización, etc. Promoción de la reutilización de un diseño requiere la hoja de datos. Hacer que un diseño sea reutilizable, a su vez, hace que sea más fácil compartirlo con otros.
La arquitectura de bus simple es una versión simplificada de la especificación Wishbone. [1]
Topologías de horquilla
Wishbone se adapta bien a topologías comunes como punto a punto, muchos a muchos (es decir, el sistema de bus clásico), estructuras jerárquicas o incluso conmutadas, como interruptores de barra cruzada . En las topologías más exóticas, Wishbone requiere un controlador de bus o árbitro, pero los dispositivos aún mantienen la misma interfaz.
Flujo de datos
Interruptor de barra transversal
Comparaciones
Señales de control de horquilla comparadas con otros estándares de bus SOC:
Espoleta | Autobús Avalon | Descripción |
---|---|---|
ciclo | =! write_n o! read_n | indica que hay un ciclo de bus válido en curso |
stb | = chipselect | indica un ciclo de transferencia de datos válido |
nosotros | =! write_n y read_n | indica si el ciclo de bus local actual es un ciclo de LECTURA o ESCRITURA. La señal se niega durante los ciclos READ y se confirma durante los ciclos WRITE. |
ack | =! waitrequest | indica la terminación de un ciclo de bus normal por parte del dispositivo esclavo. |
Autobús Avalon | Espoleta | Descripción |
---|---|---|
seleccionar chip | = stb | indica que el dispositivo esclavo está seleccionado. |
write_n | =! (cyc y nosotros) | indicó que el maestro solicita escribir en el dispositivo esclavo. |
read_n | =! (cyc y! we) | indicó que el maestro solicita leer desde el dispositivo esclavo. |
esperar | =! ack | indica que el esclavo solicita que el maestro espere. |
Ver también
Referencias
enlaces externos
- Wishbone Version B3 : la especificación PDF
- Wishbone Version B4 : especificación en PDF de la última versión de Wishbone
- appnote_01 - Nota de aplicación de señales de interfaz WISHBONE combinadas
- Comparación con otros buses SoC
- Wishbone @ OpenCores
- [email protected]