Difference between revisions of "A simple design with Wishbone bus"
(→General structure) |
|||
Line 1: | Line 1: | ||
− | This article intended to explain how to design Wishbone compatible components with simple example. | + | == PAGE UNDER CONSTRUCTION !!! == |
− | The design can be found in sourceforge [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/firmware/Wisbone_example/ tree]. | + | [[Image:Construction.png]] |
+ | |||
+ | |||
+ | This article intended to explain how to design Wishbone compatible | ||
+ | components with simple example. | ||
+ | The design can be found in sourceforge | ||
+ | [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/firmware/Wisbone_example/ tree]. | ||
Description of wishbone structure for armadeus can be found [[FpgaArchitecture#Le_bus_Wishbone | here]] in french. | Description of wishbone structure for armadeus can be found [[FpgaArchitecture#Le_bus_Wishbone | here]] in french. | ||
Line 6: | Line 12: | ||
== General structure == | == General structure == | ||
+ | The main functionality of this component is to do the same things | ||
+ | that [[FPGA_and_led | benoît]] project : switch on a led when a button is | ||
+ | pressed. | ||
+ | But to learn about designing Wishbone component and linux driver, the design | ||
+ | is little bit more complicated (!). | ||
− | + | When button is pressed, the component ''Wb_button'' send interrupt signal to ''irq_mngr''. ''irq_mngr'' will toggle a flag and send interruption to | |
+ | '''i.mx''' processor. A Linux driver on '''i.mx''' will read ''irq_mngr'' and | ||
+ | acknowledge irq by writing '1' on a register. And finally, Linux driver will | ||
+ | toggle led value by writing on led register. | ||
+ | |||
+ | [[Image:Wb_buttonled_top.png|center]] | ||
Line 18: | Line 34: | ||
integrate in the FPGA. | integrate in the FPGA. | ||
− | All these | + | All these components are connected together with the 'glue logic' component ''intercon''. |
== Wishbone slave application components == | == Wishbone slave application components == |
Revision as of 17:24, 14 March 2008
Contents
PAGE UNDER CONSTRUCTION !!!
This article intended to explain how to design Wishbone compatible
components with simple example.
The design can be found in sourceforge
tree.
Description of wishbone structure for armadeus can be found here in french.
General structure
The main functionality of this component is to do the same things that benoît project : switch on a led when a button is pressed.
But to learn about designing Wishbone component and linux driver, the design is little bit more complicated (!).
When button is pressed, the component Wb_button send interrupt signal to irq_mngr. irq_mngr will toggle a flag and send interruption to i.mx processor. A Linux driver on i.mx will read irq_mngr and acknowledge irq by writing '1' on a register. And finally, Linux driver will toggle led value by writing on led register.
imx_wrapper, syscon and irq_mngr are standards
ARMadeus-Wishbone IPs that just been instantiated in our design.
Wb_button and Wb_led are simple slave component we want to integrate in the FPGA.
All these components are connected together with the 'glue logic' component intercon.