3.1需求定义(功能定义)
设计和实现一个系统的第一步,是明确整个系统的性能指标,然后进一步将系统功能划分为可实现的具体功能模块,同时明确各模块的功能与基本时序,还可大致确定模块间的接口,如时钟、读写信号、数据流和控制信号等。
3.2 RTL级HDL描述
RTL级(寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少逻辑门、逻辑门的连接拓扑结构等),通过描述寄存器到寄存器之间的逻辑功能的HDL设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL级的最大特点是可以直接用综合工具将其综合为门级网表。RTL级设计直接决定着系统的功能和效率。我们使用的HDL语言是verilog。
3.3功能仿真(前仿真)
功能仿真也称综合前仿真,其目的是验证RTL级描述是否与设计意图一致。为了提高效率,功能仿真需要建立testbench,其测试激励一般使用行为级HDL语言描述。
3.4管脚分配与设计约束
无论是RTL级还是门级的HDL设计方法,在实现该逻辑时都需要与实际的FPGA芯片相匹配。管脚分配是指将设计文件的输入输出信号指定到器件的某个管脚,设置此管脚的电平标准、电流强度等。设计约束指对设计的时序约束和在综合、布局布线阶段附加的约束等。
3.5综合
将RTL级HDL语言翻译成由与、或、非门等基本逻辑单元组成的门级连接(网表),并根据设计目标与要求(约束条件)优化所生成的逻辑连接,输出门级网表文件。
3.6门级仿真(综合后仿真)
在综合后通过后仿真来检查综合结果是否与原设计一致。一般,综合后仿真和功能仿真的测试激励相同。由于综合工具日益完善,在目前的FPGA设计中,这一步骤被省略掉。
3.7布局布线
布局布线就是使用综合后的网表文件,将工程的逻辑与时序要求与器件的可用资源相匹配。也可以简单地将布局布线理解为对FPGA内部查找表和寄存器资源的合理配置,那么‘布