Specialization implementation bugs
No. |
Issue |
Resolution |
Status |
|
1 |
bitFieldProperties (simpletable) does not have a node for (strow), causing malformed table |
Fix element declarations so that bitFieldProperties contains bitFieldPropset and bitFieldPropset contains the stentry's |
fixed in 0.3 |
|
2 |
bitFieldPropset misused to contain bitFieldState |
Remove extraneous bitFieldPropset; children go to the new bitFieldPropset inserted in issue No. 1. |
fixed in 0.2 |
|
3 |
missing "specentry" atts on several stentry's |
add said atts. Decided to maintain #IMPLIED value rather than providing a #FIXED value per localization implications of embedding language-dependent content in the DTD. Also considered the mixed purpose of providing presentation information in a structure-enforcing device. |
fixed in 0.3 |
|
4 |
cannot create shell dtds for "sidsc-register.dtd" to be used individually because the root element is "register" (and you cannot have more than one root element) |
(this was not a requirement, so it's not a bug; however, we should discuss whether these shells are intended to be used outside the context of "sidsc-component") Perhaps a valid collection of registers is the memoryMap? |
discussion point |
|
5 |
no IP-management considerations |
create a domain (to be used in other sidsc specializations) to hold information pertaining to the component tracking information (IP management system and uID) |
to be discussed |
|
6 |
bitField needs more name choices |
|
to be discussed |
|
7 |
referenced infotypes allowed exactly once |
fix dtd syntax |
fixed in 0.2 and 0.3 |
|
Release candidate enhancements
1. Support for multiple instances of registers
Vocabulary requirements
add <unitQualifier> to inform processing how to qualify register names to make them unique
add <namePattern> to inform processing how to implement the <unitQualifier> About <unitQualifier> and <namePattern> We understand that qualifiers will not be conceived or applied consistently or by any specific pattern. For instance, you might have UARTA and UARTB. In some cases, the qualifier might not be a logical "adder"; for instance: RAM_INT and RAM_EXT. For this usecase, <unitQualifier> is designed to accept a comma-delimited list of the strings that must be added. Use <namePattern> to explain how the <unitQualifier> is implemented. For example (RAM register):
<pre>
<dimension>
<dimensionValue>2</dimensionValue> <dimensionIncrement>1</dimensionIncrement> <unitQualifier>_INT,_EXT</unitQualifier> <namePattern>end</namePattern>
</dimension>
</pre> This syntax says, "There are two instances of this register. The first one is at the address determined by <addressOffest>, and its name is formulated by adding "_INT" to the "end" of the registerName (RAM_INT). The second instance is at the very next register space and has the name "RAM_EXT". The value of namePattern can "start", "end" or an integer. If an integer is supplied, it means the number of characters from the left to insert the unitQualifier. For example (TIMSC register)
<pre>
<dimension>
<dimensionValue>2</dimensionValue> <dimensionIncrement>1</dimensionIncrement> <unitQualifier>A,B</unitQualifier> <namePattern>3</namePattern>
</dimension>
</pre> This syntax says, "To build the unique names, I parse the <registerName> value, count three characters to the right and insert the <unitQualifier> at that location. The results would be "TIM1SC" and "TIM2SC"
Publishing ramifications.
If you build a register summary, you may enumerate all register instances. Or you may wish to "collapse" blocks of identical registers and provide an address range. If you build a register section, you may provide a generalized view of the register. Using the <namePattern>, you can insert a "wildcard" character. For example, to describe UARTA and UARTB generically, you can build the name as "UARTn". You can then render the addresses of each instance using the <addressOffset> as the first and the calculated address of subsequent instances by using <dimensionIncrement>
2. Support for multiple instances of components
When an identical component exists on a product more than once, we should be able to use the same sidsc-component file. The existing data model for <componentInstanceVariables> is weak. Vocabulary requirements
add <instanceParameters> to contain data to define the placement and name qualification of instances
add <instancesNumber> to define the number of instances
add <instanceOffsets> to specify the offset address of instances
add <unitQualifier> and <namePattern> (described in the enhancement #1) About <instanceOffsets> This element contains a comma-delimited list of values that designate where the subsequent instances of the block are located, relative to the <unitAddress> of the component. Here is an example (SCI component): <pre>
<componentInstanceVariables>
<componentData>
<instanceParameters>
<instancesNumber>2</instancesNumber> <!-- how many instances --> <instanceOffsets>0,A0</instanceOffsets> <!-- location of instances relative to unitAddress (comma-delimited list> <unitQualifier>1,2</unitQualifier> <!-- string with which to qualify componentName --> <namePattern>3</namePattern> <!-- number of characters before the unitQualifier is added (could have used "end">
</instanceParameters>
</componentData>
</componentInstanceVariables>
<pre> The means, "The SCI component exists two times. The first time is my unitAddress plus the first value of instanceOffsets (n + 0). To build the name of the first component name, I will use the componentName, count three characters, and insert the first value in the nameQualifier.... which gives me "SCI1". == Inheritance model changes: ==
- componentInstanceVariables from topic/dl reference/dl sidsc-component/componentInstanceVariables to topic/simpletable dataTableDomain/dataTable/componentInstanceVariables
- componentData from topic/dlentry reference/dlentry sidsc-component/componentData to topic/strow dataTableDomain/dataRow sidsc-component/componentData
- componentDataKey from topic/dt reference/dt sidsc-component/componentDataKey to topic/stentry dataTableDomain/dataEntry sidsc-component/componentDataKey
- componentDataValue from topic/dd reference/dd sidsc-component/componentDataValue to topic/stentry dataTableDomain/dataEntry sidsc-component/componentDataValue == Structural changes ==
- componentData from ((componentDataKey, componentDataValue)) to componentData (((componentDataKey, componentDataValue)| instanceParameters)*)
- dimension from ((dimensionValue, dimensionIncrement)) to ((dimensionValue, dimensionIncrement, unitQualifier?, namePattern?))
Dita Wiki