.dqi 文件撰写指南
本指南用于指导设计者正确撰写 .dqi 条件定义文件。每个 .dqi 文件对应一个设计质量指标(DQI),定义其取值、单位及各个状态(如 Pass、Fail)的判断条件。
📁 文件位置与命名规范
每个
.dqi文件建议命名为<DQI_ID>.dqi存储路径建议为:
./<category>/<DQI_ID>.dqi
📄 文件结构范例
x[DQI_ID.dqi]DQI_ID <unique identifier>TITLE <short title>
DATA_TYPE <integer | real | bool | string>DATA_UINT <unit, e.g., %, mm2, count>DESCRIPTION <description>REFERENCE <document link or reference>
STATUS_NAME <optional internal name>STATUS <Pass | Fail | Warning>@CRITERIA = <expression>;
... more status blocks ...
DQI_END🔢 数据定义区说明
| 字段名 | 含义与要求 |
|---|---|
DQI_ID | 指标代号,应与文件名一致 |
TITLE | 简短标题 |
DATA_TYPE | 数据类型:integer、real、bool、string |
DATA_UINT | 数据单位,如 %、count、mm2 等 |
DESCRIPTION | 详细描述 |
REFERENCE | 外部文件或网页参考 |
🧩 状态判断区(@CRITERIA)
支持的运算符
| 类别 | 运算符 | 示例 |
|---|---|---|
| 比较运算 | ==, !=, <, >, <=, >= | $FOO > 100 |
| 逻辑运算 | &&, ||, ! | $A > 0 && $B == 0 |
| 算术运算 | +, -, *, / | ($X + $Y) / 2 > 5 |
| 括号 | (, ) | ($A > 10) || ($B == 0) |
💡 表达式中所有变量应写为
$<DQI_ID>,系统会自动从.val文件读取其值。
⚠️ 注意事项
每个状态区块必须以分号
;结束若使用多个变量,系统将分别查找对应的
.val文件若找不到某变量的
.val文件,系统将中止并报错若
.val存在但内容非法或不可转为数字,该条件视为不匹配系统将返回 首个满足条件的
STATUS字段值
✅ 示例:单变量
xxxxxxxxxxDQI_ID AREATITLE Cell AreaDATA_TYPE realDATA_UINT mm2DESCRIPTION Total standard cell areaREFERENCE http://...
STATUS_NAME pass_condSTATUS Pass@CRITERIA = $AREA < 100.0;
STATUS_NAME fail_condSTATUS Fail@CRITERIA = $AREA >= 100.0;
DQI_END✅ 示例:多变量逻辑判断
xxxxxxxxxxSTATUS_NAME okSTATUS Pass@CRITERIA = $TP1 == 0 && $TP2 == 0;
STATUS_NAME ngSTATUS Fail@CRITERIA = $TP1 > 0 || $TP2 > 0;
DQI_END📌 推荐规范
所有变量建议命名为大写,例如:
$LEAKAGE,$CELL_COUNT避免在表达式中混用不同类型(例如整数与字符串)
若需更复杂的判断,请先以
@CRITERIA实现,暂不支持@CRITERIA_SCRIPT
若需 .val 文件格式说明或范例 .dqi 模板,请联系工具开发人员。
