- 节点之间关系以及出现次数
- training、commands只能出现一次。
- training节点为根节点,training 包含commands和多个loops节点。
- commands节点里面可以包含多个command节点。
- loops里面包含多个loop节点,loop里面包含多个group节点。
- group里面包含多个registergroup节点。
- registergroup包含多个register节点。
- 节点包含的属性介绍
- training节点包括mode属性,mode属性定义了Training模式,mode属性值可选"byte"和"bit"。两者只能选其一。
说明:
当training节点上不包含mode属性时,默认mode类型为 "byte"。
- command节点包括value属性,value属性定义了执行的命令字符串,value属性值不能为空,当命令中包括符号时,必须使用此符号的html转义符。
- loops节点上包括max属性,max属性定义了loops指定的最大寄存器的名称。
说明:
当mode为"bit"时, loops节点可包含max属性,也可不包含。当包含max属性时,定义的属性值不能为空。max属性的存在性会使工具对bittraining结果有不同的处理。
注:max属性值定义的最大寄存器必须在当前loops的每一个loop都存在定义。
当mode为"byte"时,因为max属性只在bit模式时才起作用,所以byte模式下max属性可定义也可不定义。
- loop节点包含key和description属性,不能为空。key属性定义了当前loop指定的关键寄存器名称;description属性定义了当前loop节点下的所有寄存器名称,每个loop节点中所有寄存器的名称必须在loop节点上的description中存在定义,否则无效。description属性值中定义的每个寄存器名称之间用英文逗号分隔,第一个名称将被忽略,名称不能存在重复值。
如: 第一个“read”将被忽略,实际的寄存器名称为:“rdqs0,rdq0,rdq1,rdq2,rdq3,rdq4,rdq5,rdq6,rdq7” 。
说明:
当mode为"bit"时,loop节点上的key属性必须定义,且 保证定义的key属性值在当前loop中的任意一个regsitergroup中的register列表中存在定义。
当mode为"byte"时,因为key属性只在bit模式时才起作用,所以byte模式下key属性可定义也可不定义。
- group节点无属性值。
- registergroup节点包括initvalue、sequence、maxvalue,minvalue和defaultvalue属性。如下:
initvalue值指定当前registergroup是否只是输出初始值,值可取true或false,默认为false, 当为true时,该registergroup的其他属性全部无效,加载时不做校验;否则,加载并验证其他属性配置。
sequence值控制registergroup结果的排列输出顺序,值不能为空;值可取true或false,为true时,顺序排列输出,否则,逆序排列输入;
maxvalue定义了当前节点下所有寄存器循环执行的最大值;
minvalue 定义了当前节点下所有寄存器循环执行的最小值;
defaultvalue定义了当前节点下所有寄存器的默认值;
说明:
registergroup节点中的maxvalue和minvalue属性定义时,只能二选一。即registergroup节点上maxvalue和minvalue属性任何时候只能存在一个。
除initvalue为true外, maxvalue, minvalue和defaultvalue三者必须定义一个。
-
register节点下包括name、address、start和end属性,name定义了当前寄存器的名称;address定义了寄存器地址;start定义了截取寄存器的起始位置;end定义了截取寄存器的结束位置。
- 脚本书写注意事项
- 必须包含xml的声明, 编码格式为UTF-8。
- 脚本文件所有节点均是成对出现,且脚本中所有节点名称为小写,书写必须符合xml规范。
- 在loop节点下,当两个寄存器的address,start和end属性值都相同时,那么这两个寄存器的name属性值也必须相同,否则,当有一项不同时,两个寄存器的name属性值必须不同。
- 脚本文件后缀名建议为“.xml” 。
样例
注意:样例只作为书写脚本格式的参考,并不能拿来直接使用。
