FPGA一般的设计流程
FPGA一般采用自上而下的设计方法,从系统的设计需求开始,划分为一系列的二级单元模块,然后再把二级单元模块根据模块需求划分为下一层次的基本单元,依次进行划分到最基础的模块或者IP直接实现为止。
设计阶段 | 主要行为 |
---|---|
需求定义阶段 | 根据需求完善设计说明,定义并详细描述功能需求、接口、性能以及设计裕量。(甚至可以预估可能遇到的问题) |
结构设计阶段 | 功能实现的具体技术;选择器件厂商、器件型号和开发工具;定义系统架构,考虑系统可升级维护性;分割固定的功能模块与可编程模块;定义模块的功能指标。 |
实现阶段 | 1、 设计输入:对各个功能模块实现逻辑代码的编写,现常用Verilog HDL语言。 2、 功能仿真:对逻辑代码进行最基本的仿真验证,常用仿真工具ModelSim。3、 逻辑综合:这部分大多是由编译器进行把设计语言转化成由基本逻辑单元组成的逻辑链表。4、 综合后仿真:通过把综合产生的标准延时文件反标注到仿真模型中来评估延时对逻辑功能产生的影响。(这部分不能评估布线的延时)5、 映射与布局布线:布局布线是实现功能可靠的重要一步,在时序约束的条件下来完成逻辑的具体器件的布局和连线。6、 时序仿真:将布局布线后产生的延时信息反标注到设计网表中来检查是否时序违规。7、 静态时序分析:设计者提出特定的时序要求,利用精确的时序模型对完成布局布线的门级电路进行时序分析来验证FPGA是否满足设计需求。 |
验证阶段 | 设计测试、时序验证、必要的设计更改;产生下载需要的配置文件;在目标硬件上进行调试和功能验证; |