OVM E USERS: VR_AD REGISTER DEFINITION SHAREWARE UTILITY
Hello fellow OVM e users,
One of our OVM e colleagues Steve Hobbs, has put together a small Perl script to generate vr_ad register definitions from SPIRIT (IP-XACT) XML.
If you've got not idea what IP-XACT is, have a look here http://www.spiritconsortium.org/, then start pestering your design manager to use it :-)
The script can filter out registers and override R/W access types if needed.
An example XML file is included with the package so that you can play with it, and there's a detailed README.txt as well.
Here's an example of the generated e code:
// Automatically generated from xdmac.xml
// DO NOT EDIT, or your changes may be lost
<'
import vr_ad/e/vr_ad_top;
// Component = XDMAC
// memoryMap = xdmac
extend vr_ad_map_kind : [XDMAC];
// addressBlock = dma_eth
extend vr_ad_reg_file_kind : [DMA_ETH];
extend DMA_ETH vr_ad_reg_file {
keep size == 20;
keep addressing_width_in_bytes == 4;
};
// Register = command
// Reset = 0x00
reg_def COMMAND DMA_ETH 0x0 {
// Field resv3 = command[31:29]
reg_fld resv3 : uint(bits:3) : R : 0 : cov ;
// Field transfer_size = command[28:19]
reg_fld transfer_size : uint(bits:10) : RW : 0 : cov ;
// Field dma_transfer_target = command[18:14]
reg_fld dma_transfer_target : uint(bits:5) : RW : 0 : cov ;
// Field resv2 = command[13:10]
reg_fld resv2 : uint(bits:4) : R : 0 : cov ;
// Field transmit_receive = command[9:9]
reg_fld transmit_receive : uint(bits:1) : RW : 0 : cov ;
// Field resv1 = command[8:5]
reg_fld resv1 : uint(bits:4) : R : 0 : cov ;
// Field dest_address_enable = command[4:4]
reg_fld dest_address_enable : uint(bits:1) : RW : 0 : cov ;
// Field source_address_enable = command[3:3]
reg_fld source_address_enable : uint(bits:1) : RW : 0 : cov ;
// Field word_size = command[2:0]
reg_fld word_size : uint(bits:3) : R : 0 : cov ;
};
// Register = queue_exec
// Reset = 0x00
reg_def QUEUE_EXEC DMA_ETH 0x10 {
// Field resv = queue_exec[31:1]
reg_fld resv : uint(bits:31) : R : 0 : cov ;
// Field exec = queue_exec[0:0]
reg_fld exec : uint(bits:1) : RW : 0 : cov ;
};
extend XDMAC vr_ad_map {
dma_eth : DMA_ETH vr_ad_reg_file;
post_generate() is also {
add_with_offset(0x00, dma_eth);
dma_eth.reset();
};
}
'>
<p>Any comments, please feed them back to teamspecman so we can pass them along to Steve.</p>
<p>Note: Please be careful to unpack the file under Linux, not Windows, else the DOS linefeeds will corrupt the Perl and XML files. </p>
<p><br>
<br>
</p></td>
<td> </td>
|