olofk Posted February 17, 2015 Report Posted February 17, 2015 Hi,I finally started to explore IP-XACT with the intention of creatingbus definitions and interface models for most of the cores we use inthe OpenRISC ecosystem. During my brief encounter I have come across afew practical issues where I'm interested in guidance on bestpractices.1. Is there a publicly available central registry for common thingslike bus definitions? It feels like half of the idea of the standardis lost if everyone is pusing their own SPI, I2C, SDRAM buses and soon.2. How do I treat variants of a bus? The most common bus we use is theWishbone bus, and there are a few variants of it. It has seen at leastthee revisions (called b2, b3 and b3) with signals added in eachrevision, and it also comes in different widths with 32 and 8 bitsbeing the most common. It seems to me like I would need to create 3x2= 6 different combinations to cater this. I'm also not sure what wouldbe the preferred naming scheme for this. One way is to create sixdifferent versions (e.g. b3.8, b3.32, b4.8, b4.32... etc). Another wayis to give different VLNV names to the different data widthcombinations (e.g. wishbone32 with versions b2, b3, b4 and wishbone8with versions b2, b3,b4). I'm basically looking for best practices forthis.3. Are the bus definitions parametrizable? I'm using an Open sourceIP-XACT tool called Kactus2, and it doesn't allow me to set paramtersfor buses, but I haven't figured out if this is a tool limitation orif the standard prevents configuration. I have come across this issuefor DRAM interfaces where I would like to vary address width, datawidth and so on to avoid having a myriad of similar buses.Best Regards,Olof Kindgren Quote
kock Posted February 20, 2015 Report Posted February 20, 2015 Hello Olof, Let me comment on your issues. Ad 1) There is no central registery for bus definitions. The idea is that protocol owner publish there own bus definitions. The Accellera IP-XACT Working Group has created some bus definitions that will be published shortly on the Accellera web page. These bus definitions are promoted as best practices. They include SPI, I2C, TLMGP, and JTAG. SDRAM is not part of it yet.Ad 2) You can use the bus and abstraction definition extends mechanism to make variants of buses. This makes sense for adding signals if it is allowed to connect different versions of bus interfaces (e.g. if it is possible to connect a b2 bus interface to a b3 bus interface. If that is not allowed then I suggest to make different bus definitions (i.e. in which the version element value differs). In order to handle different numbers of bits in a bus, you can also leave out the width of the logical port in the onMaster and onSlave element in an abstraction definition. If you do not specify a width, then you can map any number of bits on that logical port in a bus interface port map. Ad 3) In IP-XACT IEEE 1685-2009 the bus definitions are not parameterizable. In the new revision IEEE 1685-2014, they are parameterizable. To handle address width and data width in 1685-2009, I advice you to omit the width elements in the abstraction definitions. Best regards, Erwin Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.