Khushi Posted October 28, 2020 Report Share Posted October 28, 2020 In IP-Xact there is a section localMemoryMap inside address space which looks similar to the memoryMap. I am not sure to understand the difference between the two and what should be used and when. Can you help me on this ? Also in IP-xact, is it possible to define a register somewhere and instantiate it or use it at other places ? Thanks Khushi Quote Link to comment Share on other sites More sharing options...
kock Posted October 29, 2020 Report Share Posted October 29, 2020 Hi Kushi, A normal memory map is accessible through a slave bus interface; a local memory map is not. A local memory map is local to the component. You can describe internal registers in it, for instance, for a CPU. A local memory map is described with an address space that can be referenced from a cpu element. The current IEEE std. 1685-2014 does not allow separate definition and instantiation of registers. The Accellera IP-XACT Working Group is working on a proposal for a revision of the standard that does support that. Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
Rohith_M Posted January 28, 2023 Report Share Posted January 28, 2023 Hi everyone, can any one explain me how to write memory map components in IPXACT FILE , in example there are two address block , i think one for register and one for memory map, here the address block is there can you explain me what will be the baseAddress for memory and what will be the baseAddress for register. <ipxact:addressBlock> <ipxact:name>mem</ipxact:name> <ipxact:baseAddress>0x100</ipxact:baseAddress> <ipxact:range>8</ipxact:range> <ipxact:width>64</ipxact:width> <ipxact:usage>memory</ipxact:usage> <ipxact:volatile>false</ipxact:volatile> <ipxact:access>read-write</ipxact:access> <ipxact:vendorExtensions> <cadence:extensions> <cadence:hdlAccess cadence:path="mem"/> </cadence:extensions> </ipxact:vendorExtensions> </ipxact:addressBlock> <ipxact:addressUnitBits>8</ipxact:addressUnitBits> if possible please explain baseAddress,addressUnitBits,width. ipxact_example.xml Quote Link to comment Share on other sites More sharing options...
kock Posted January 30, 2023 Report Share Posted January 30, 2023 Hello Rohit, The value of addressUnitBits defines the number of bits that is used to address an element in the memory map (mmap0). In your example the value is 8 meaning that you address bytes in the memory map. So address offset 0 addresses the first 8 bits, address offset 1 addresses the second 8 bits, and so on. The value of addressBlock base address defines the address offset of the address block in the memory map expressed in the address unit bits value. In your example, the value 0x100 means that the address block is located at bit offset 0x100 * 8 bits = 2048 which is equal to byte offset 256 (0x100). The value of addressBlock width defines the maximum number of data bits that are accessed by a single transaction in the address block. Note that the number of bits in a register in the addressBlock cannot exceed the width of an addressBlock. Note that register addressOffsets are relative compared to the addressBlock baseAddress. They are also expressed in addressUnitBits. So the offset of a register in an addressBlock in a memoryMap equals addressBlock baseAddress + register addressOffset. Best regards, Erwin Quote Link to comment Share on other sites More sharing options...
R_Rohit Posted February 5, 2023 Report Share Posted February 5, 2023 if for Registers, in addressBlock the baseAddress is 0x00000000, then what will be the baseAddress inside memory map. Quote Link to comment Share on other sites More sharing options...
kock Posted February 6, 2023 Report Share Posted February 6, 2023 In the memory map that encloses the address block, the base address is also 0x0. This memory map is referenced by the slave bus interface. When you instantiate this component and connect the slave interface to a master interface of another component instance, then the memory map is mapped into the address space that is referenced by that master interface. Typically that address space is then mapped into a memory in the same component using a transparent bridge or subspace map. The address space can then be shifted. Please see Clauses 12 and 13 and Annex H of IEEE Std 1685 for details. Quote Link to comment Share on other sites More sharing options...
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.