In every precinct there is one node under <PREC_NAME-registers> for each type of LATC register managed by that precinct. These nodes serve the dual purpose of making it clear which precinct manages which registers and specifying a default (aka ``broadcast'') value for those registers.
If the register is to be set as a single unit, the XML would look like:
<GRP_register_name>
<broadcast>0</broadcast>
</GRP_register_name>
If the register is to be broken into fields which are set independently, the XML would look like:
<GRP_register_name>
<broadcast_field name='field_0'>0x0</broadcast_field>
<broadcast_field name='field_1'>0x0</broadcast_field>
</GRP_register_name>
Note that any fields not mentioned default to 0.
In the case of singleton registers in the AEM and GEM 'broadcast' is replaced with 'singleton'. This would look like:
<GEM_register_name>
<singleton>0x0</singleton>
</GEM_register_name>
or
<GEM_register_name>
<singleton_field name='field_0'>0x0</singleton_field>
<singleton_field name='field_1'>0x0</singleton_field>
</GEM_register_name>
In some cases we may want to override the settings for a small number of registers; we can call out specific exceptions in the votes files. Here is an example of such an exception:
<GRP_register_name>
<broadcast>0</broadcast>
<except channel_id_tags>2</except>
</GRP_register_name>
Valid channel id tag names are the various hardware components: arc, afe, tem, spt, tfe, tcc, trc, ccc, crc, cfe. All of these except for spt take a integer as value, spt takes a split name (such as ``+x0'' or ``-y4'') as value. Note that these names match exactly the LATC_XML tags described above.
We have made no effort to be overly clever here, each channel must be specified completely in each ``except'' node; you can not play games of leaving out part of the channel specification to call out a group of registers. Also note that the ``exception'' nodes are treated the same whether they are masks, integers or bit fields. Even if the broadcast settings are specified in bit fields, the exception nodes must specify the value for the entire register.