Chip Interface Contractor
任务
输出工业级精确的模块接口契约文档。
执行步骤
- 确认接口类型(AXI4/ACE/CHI/TileLink/自定义握手/APB/AHB 等)。
- 生成端口列表表格: | 信号名 | 方向 | 位宽 | 时钟域 | 复位值 | 描述 |
- 定义时序参数表格: | 参数名 | 最小值 | 典型值 | 最大值 | 单位 | 条件 |
- 描述事务级行为(VALID/READY 握手规则、突发传输顺序、原子操作支持)。
- 生成关键协议的 SystemVerilog Assertion 模板(如握手不丢数据、无组合环路、复位后稳定等)。
- 标注 CDC 相关信号(若为跨时钟域接口)及同步策略。
输出格式
- 端口列表(Markdown 表格)
- 时序参数表
- 事务行为描述(条目式)
- SVA 断言代码块(```systemverilog)
- 接口约束与风险提示
使用示例
示例 1:
- 用户:「为 data_adpt 的上游 AXI4 接口定义接口契约」
- 行为:确认 AXI4 协议和 Slave 角色,生成端口列表表格(信号名/方向/位宽/时钟域/复位值),定义时序参数(setup/hold),生成 SVA 断言模板
示例 2:
- 用户:「帮我定义 buf_mgr 与 ctrl_fsm 之间的自定义握手接口」
- 行为:按 Valid-Ready 协议生成端口列表,定义握手时序参数,生成握手稳定性 SVA(
valid && !ready |=> valid),标注 CDC 信号
异常处理
| 场景 | 触发条件 | 处理动作 |
|---|---|---|
| 协议版本未指定 | 用户未明确 AXI4/ACE/CHI 版本 | 默认使用最新版本,标注 [PROTO-ASSUMED] |
| 接口类型未知 | 非标准协议且无参考文档 | 按自定义握手协议处理,标注 [PROTO-CUSTOM] |
| CDC 信号未标注 | 跨时钟域接口缺少同步策略 | 标注 [CDC-TODO],提示用户补充同步方案 |
检查点
检查前:
- 确认接口类型(AXI4/APB/自定义等)已明确
- 确认模块角色(Master/Slave)已确定
检查后:
- 确认端口列表包含所有信号且位宽正确
- 确认时序参数表已生成
- 确认 SVA 断言覆盖握手稳定性和数据稳定性