Vivado操作备注
Vivado操作备注
Vivado操作界面
Vivado工程整体工作流程及其对应仿真
Vivado一整个工程整体流程如下:
第一步 | 第二步 | 第三步 | |
---|---|---|---|
工程流程 | 写.v /.sv 文件用于实现电路逻辑 |
Run Synthesis(综合) 将代码转成门级网表 |
Run Implementation(实现) 将门级网表转成FPGA中的电路,即布局布线 |
功能仿真 (不含延迟) |
Run Behavioral Simulation (验证 RTL 原始功能) |
Run Post-Synthesis Functional Simulation (验证综合后功能未改变—不带电路延迟) |
Run Post-Implementation Functional (验证实现后功能未改变—不带电路延迟) |
时序仿真 (含延迟) |
无(RTL 无延迟信息) | Run Post-Synthesis Timing Simulation (验证综合后是否满足时序—带电路延迟) |
SimulationRun Post-lmplementation Timing Simulation (验证最终实现是否满足时序—带电路延迟) |
可以看到最重要的就是实现电路逻辑,之后综合和实现软件可以自动实现,在综合和实现后进行仿真进行逻辑时序确认。
对于Vivado中的各种仿真,有不小的区别:
仿真类型 | 输入来源 | 是否包含时延 | 主要目的 | 典型应用阶段 |
---|---|---|---|---|
Behavioral Simulation | RTL代码 | 否 | 验证功能逻辑 | 初始开发 |
Post-Synthesis Functional | 综合后的网表 | 否 | 验证综合后功能是否正确 | 综合后 |
Post-Synthesis Timing | 网表 + 综合时延 | 是 | 初步验证时序逻辑 | 时序分析前 |
Post-Implementation Functional | 布局布线后的网表 | 否 | 验证最终实现逻辑 | 实现后 |
Post-Implementation Timing | 网表 + 精确时延 | 是 | 完整时序验证,签核阶段 | 收尾 |
因此对于小型模块或代码的仿真,可以直接用Post-Synthesis Functional来进行,验证功能逻辑ok即可;而对于大型模块或代码的仿真,则需要使用Post-Implementation Timing来进行最终时序的仿真,确保万无一失。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JERRY'S BLOG!