- Wishbone (bus informatique)
-
Le bus Wishbone est un bus open source pour le matériel informatique destiné à permettre aux différents circuits intégrés de communiquer entre eux. L'objectif est de permettre une connexion de différents cœurs entre eux dans un circuit. Le bus Wishbone Bus est utilisé par beaucoup de projets chez OpenCores.
Un très grand nombre de conception open-source pour des CPUs, pour des périphériques auxiliaires ont été adaptés à l'interface Wishbone. Beaucoup peuvent être trouvés chez OpenCores, une fondation qui essaie de rendre disponible le matériel open-source.
Wishbone a comme prétention d'être un "bus logique". Il ne spécifie donc pas d'information électrique ou de topologie de bus. Ainsi, la spécification est écrite en termes de "signaux", cycles d'horloge, et niveau logiques hauts et bas.
Cette ambiguité est intentionnelle. Wishbone est fait pour laisser les concepteurs combiner plusieurs conceptions décrites en Verilog, VHDL ou un autre langage de description logique pour la Conception assistée par ordinateur pour l'électronique. Wishbone fourni une façon standard pour les concepteurs de combiner ces conceptions matérielles (appelées "cœurs" - core en anglais). Wishbone est défini pour avoir des bus 8, 16, 32 bits. Tous les signaux sont synchrones à une horloge unique mais les réponses des esclaves peuvent être générées de manière combinatoires pour un maximum de performances. Wishbone permet l'addition d'un "tag bus" pour décrire les données. Mais un reset, une simple lecture adressée ou son écriture, mouvement des blocs de données, et les cycles indivisible du bus cycles travaillent tous sans tags.
Sommaire
Topologies des bus Wishbone
Les bus Wishbone s'adaptent facilement aux topologies courantes comme le point-à-point, plusieurs-à-plusieurs (i.e. le bus classique), hiérarchique, où même commutés. Pour des topologies moins courantes, Wishbone requiert un contrôleur de bus ou arbitre, avec des composants gardant la même interface.
Bus partagé
Fichier:Wishbone shared bus.jpg
Pipeline
Fichier:Wishbone pipeline.jpg
Cross Bar Switch
Fichier:Wishbone cross bar.jpg
Comparaisons
Signaux de contrôle du bus Wishbone comparé aux autres bus standards pour System_on_Chip
Wishbone => Avalon Wishbone Avalon Bus Description cyc = !write_n or !read_n indique qu'un cycle valide du bus est en cours stb = chipselect indique un cycle de transfert de données valide we = !write_n and read_n indique si le bus courant local est un cycle d'écriture ou de lecture. Le signal estpositionné à 0 durant un cycle de lecture, et positionné à 1 durant un cycle d'écriture. ack = !waitrequest indique la terminaison d'un cycle normal de bus par l'esclave. Avalon => Wishbone Avalon Bus Wishbone Description chipselect = stb indique qu'un esclave est sélectionné. write_n = !(cyc and we) indique que la requête du maître est pour une écriture dans un esclave. read_n = !(cyc and !we) indique que la requête du maitre est pour une lecture d'un esclave. waitrequest = !ack indique que le maître attend une requête de l'esclave. Autres bus
- Bus Avalon
- Bus AMBA
- IBM et sa technologie CoreConnect
- PLB Processor local Bus (partie de CoreConnect)
- OPB (On-chip Peripheral Bus) (partie de CoreConnect)
- OCP Open Core Protocol
Liens externes
- (en) Wishbone Version B3- la spécification en format PDF
- (en) Wishbone Version B4- la spécification en format PDF récemment mise à jour
- (en) appnote_01
- (en) Comparison to other SoC buses
Wikimedia Foundation. 2010.