post sim下如何将timing信息反标到仿真工具


历史内容合集

0 前言

跑post sim时需要带入timing信息,目前接触到的,timing信息往往存在sdf文档中(sdf是跑STA时吃sdc生成的)

简单介绍下simulation时仿真工具是如何将sdf信息添加到仿真环境的

1 调用格式

下图是反标sdf的引用格式,需要调用task $sdf_annotate

通常sdf反标在tb中调用

下面是各option的介绍

2 option介绍

2.1 sdf_file (必须)

sdf文档,没有什么可说的

2.2 module_instance (可选)

指定sdf的作用范围,仿真工具会根据指定范围,对范围内的logic进行反标

如果缺省,会将所有调用$sdf_annotate的模块都添加上时序信息

举个例子

module A调用了$sdf_annotate,sdf中的时序信息就会添加到module A中

如果此时module A作为特例,不应用sdf中的时序信息,则仿真结果就有可能会与预期不符

2.3 config_file (可选)

可以对timing反标提供更细节的控制 (还没用过 -_-||)

2.4 log_file (可选)

log文档

每从sdf文档中读取并应用一条timing信息时,都会记录在log中

log主要包括一下信息:

  • 应用的timing信息的具体内容
  • 相关module的instance name
  • data path或者signal name
  • 进行timing反标操作的时间戳
  • pass or fail的状态信息

2.5 mtm_spec (可选)

mtm代表 min、typical、max

用于指定要使用的延迟值类型

三个值分别代表如下三种情况:

  • min:最小延迟,对应最佳条件
  • typical:典型延迟,对应标志条件
  • max:最大延迟,对应最差条件

2.6 scale_factors (可选)

对min、typical、max延迟值进行放大/缩小,格式为x:y:z,分别对应min、typical、max

默认值为1.0:1.0:1.0,即min、typical、max分别*1.0

这个目前一直用的默认值 -_-||

2.7 scale_type (可选)

用于指定将 scale_factors应用到哪种延迟类型(min/typical/max)

### 关于Vivado后仿真的使用方法 在完成设计的综合、实现和约束之后,可以进入后仿真阶段。后仿真用于验证实际硬件行为是否符合预期,通常涉及时序分析和功能测试。 #### 后仿真的基本流程 1. **生成后仿真网表** 在 Vivado 中,完成设计实现后,可以通过 `File` -> `Export` -> `Export Simulation` 来导出后仿真所需的网表文件[^2]。此过程会生成包含精确时序信息的网表,以便更真实地模拟目器件的行为。 2. **配置仿真环境** 导入生成的网表到仿真工具中(如 Xilinx 提供的 ISim 或第三方工具 ModelSim)。确保仿真环境中加载了正确的库和支持文件[^1]。 3. **编写或调整测试平台 (Testbench)** 测试平台需要针对后仿真进行适当修改,以适应实际硬件条件下的输入激励和输出响应检测。例如,在测试过程中加入延迟时间来映真实的时钟周期影响[^2]。 ```vhdl process begin switch <= '1'; wait for 10 ms; switch <= '0'; wait for 10 ms; end process; ``` 4. **运行后仿真** 设置仿真时间为足够长的时间范围以覆盖所有可能的状态转换情况。利用仿真工具中的控制按钮操作如下: - a 是重新开始仿真, - b 开始仿真直到手动中断(F5), - c 则允许设定固定时间段内的连续运行,比如设置为 100ms[^1]^。 5. **查看并分析波形** 完成仿真后,通过点击相应选项展示完整的波形图谱,确认无误后再继续后续步骤如比特流生成等[^2]。 6. **注意事项** - 确保所有的信号都已正确定义并且连接正确; - 检查是否有未使用的端口或者多余的驱动源存在; - 特别关注异步电路部分及时钟域交叉处理是否合理[^3]。 ```python def post_simulation_setup(): export_netlist() configure_test_environment() adjust_testbench_for_post_sim() execute_simulation_with_timing_constraints() post_simulation_setup() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值