1、FPGA系列培训培训指导思想基于实战基于高速,复杂逻辑FPGA系列培训计划热身 FPGA标准设计流程第一讲 VHDL入门第二讲 从原理图到语言方法学的飞跃第三讲 推行同步设计第四讲 系统级仿真第五讲 综合第六讲 布局布线FPGA系列培训计划(续)第七讲 深入理解FPGA和CPLD第八讲 FPGA的团队开发第九讲 提高FPGA性能的技巧第十讲 高手之路FPGA标准设计流程FPGA系列培训之热身公司现行流程原理图描述波形图仿真厂商工具综合现行流程局限性不具有跨平台移植能力,不利于技术积累仿真非常有限,无法进行大数据量仿真厂商工具综合能力较差易被厂商开发工具锁定标准流程Design EntryTes
2、tBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramDesign EntryVHDL/Verilog HDL描述可以是两种语言混合描述描述必须是可综合的IP厂商工具产生的模块(Altera MagaWizard和Xilinx Core Generator)公司购买的IP Core公司自行开发的通用模块IP的形式可能是源代码,也可能是EDIF网表Function Simulati
3、onDesign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramFunction Simulation功能仿真验证设计的正确性功能仿真没有延时使用专门的仿真工具,推荐Active HDLTestbench用VHDL/Verolog HDL编写功能仿真速度快,应在功能仿真阶段发现尽可能多的问题功能仿真做得好,可以大大减少调试时间TestbenchDesign
4、 EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramTestBenchTestBench用VHDL和Verilog HDL编写利用HDL的语言机制,可以产生非常丰富的测试激励,对设计进行尽可能全面的验证系统级仿真把Testbench描述成虚拟PCB在虚拟PCB上放置虚拟元件,包括我们的设计和外围元件从器件商获得器件的功能仿真模型(VHDL/Verilog HD
5、L)如果没有模型可用,就需要作行为建模,可以是功能很简单的模型系统级仿真就是用虚拟逻辑分析仪观察虚拟PCB上的波形系统级仿真的例子LCD ControllerVRAMCPUMCF5307LCD系统级仿真的例子从供应商获得VRAM的模型对MCF5307的总线接口进行行为建模编写Testbench,描述虚拟PCB只需要给出CPU的访问序列,不需要关心VRAM的响应时序可以进行大数据量仿真仿真工具FPGA厂商提供的开发工具仿真功能很弱,只提供波形输入,属于入门级PC平台上的仿真工具:Active HDL(Aldec)推荐 ModelSim(Mentor Graphics)SynthesisDesig
6、n EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramSynthesis综合将行为级描述转化成门级描述FPGA厂商提供的开发工具综合效果都不太好,属于入门级综合应在第三方工具上完成PC平台上常用的综合工具:Leonardo Spectrum(Mentor Graphics)推荐 Syplify Pro(Syplicity)Constraints(Synthes
7、is)Design EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramConstraints(Synthesis)综合阶段的约束通常只有时间约束综合阶段的约束条件并不是必须满足,在布局布线阶段会对设计进一步优化综合阶段的约束将传递到布局布线阶段综合的输出EDIF网表,供布局布线用VHDL/Verilog网表,供门级仿真用约束文件,传递给布局布线工具Gate l
8、evel SimulationDesign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramGate level Simulation门级仿真验证综合结果与设计的一致性门级仿真没有延时,即使源文件中加入了延时门级仿真使用功能仿真相同的TestBench门级仿真的结果必须与功能仿真一致门级仿真的必要性门级仿真并不是必要的综合将忽略敏感表,当敏感表中的信号没有包
9、括进程中用到的所有右值时,门级仿真将给出与功能仿真不同的结果当设计中使用了抽象描述(比如虚拟时钟)时,必须做门级仿真Place&RouteDesign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramPlace&RouteP&R的输入是综合产生的EDIF网表P&R将门级网表转化成FPGA配置代码P&R在厂商开发工具中进行Constraints(P&R)Des
10、ign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramConstraints(P&R)P&R阶段的约束包括时间约束和位置约束时间约束有这样几种:tpd:pin-to-pin delay,只用于组合逻辑 tsu:setup time,用于输入 tco:clock-to-out delay,用于输出 fmax:内部最高工作频率 Cut timing path:
11、用于低速路径Constraints(P&R)位置约束包括:引脚位置内部逻辑单元位置Static Timing AnalysisDesign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramStatic Timing Analysis静态时序分析给出P&R的结果是否满足时间约束的信息所有的时间约束必须满足如不满足时间约束,需要加入内部逻辑单元的位置约束(即部分
12、手动布局),重新进行P&RP&R 的输出FPGA编程文件VHDL/Verilog网表和SDF文件,供时序仿真用Timing SimulationDesign EntryTestBenchIPFunction SimulationSynthesisGate level SimulationPlace&RouteConstraintsStatic Timing AnalysisConstraintsTiming SimulationProgramTiming Simulation时序仿真验证P&R结果与设计的一致性时序仿真加入了延时,此延时是真实延时的上限时序仿真使用功能仿真相同的TestBench时序仿真的结果必须与功能仿真一致时序仿真耗时较长时序仿真的必要性当设计满足以下条件时,可以不做时序仿真:纯同步逻辑 设计通过了功能仿真 设计通过了静态时序分析同步设计可以简化流程各阶段的时间分配Design EntryFunction SimulationSynthesisP&RDesign EntryFunction SimulationSynthesis P&R功能仿真是FPGA设计中最重要的部分!下周再见第一讲 VHDL入门