Altera FPGA的设计流程.ppt
《Altera FPGA的设计流程.ppt》由会员分享,可在线阅读,更多相关《Altera FPGA的设计流程.ppt(183页珍藏版)》请在三一办公上搜索。
1、贺 光 辉清华大学电子工程系,Altera FPGA的设计流程,1,目标,掌握FPGA的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTL Code用Quartus II做设计综合和布局布线用FPGA Mega-functions做设计返标SDF并运行门级的仿真掌握FPGA的时序约束了解FPGA的设计原则,2,提纲,FPGA概要FPGA的设计流程用Modelsim进行仿真和调试用Quartus II进行时序分析、综合等FIR滤波器的设计实例,3,FPGA概要,4,FPGA的优点,集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提
2、供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间布局布线容易,设计过程相当于只有ASIC设计的前端研发费用低不需要投片费用,5,FPGA的应用前景,通信、控制、数据计算等领域得到了广泛的应用 减少电子系统的开发风险和开发成本 缩短上市时间(time to market)通过在系统编程、远程在线重构等技术降低维护升级成本系统的原型实现ASIC的原型验证,6,ASIC常用FPGA进行原型机验证,CPLD与FPGA的区别,7,CPLD还是FPGA?,复杂组合逻辑:CPLDPLD分解组合逻辑的功
3、能很强,一个宏单元就可以分解十几个甚至2030多个组合逻辑输入复杂时序逻辑:FPGAFPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万,8,推荐书籍,VerilogVerilog数字系统设计教程 夏宇闻 北京航天航空大学出版社硬件描述语言Verilog 刘明业等译 清华大学出版社 FPGA基于FPGA的嵌入式系统设计 任爱锋 西安电子科技大学出版社基于FPGA的系统设计(英文版)Wayne Wolf 机械工业出版社 IC设计Reuse methodology manual for system-on-a-chip designs 3rd ed.Michael Keating,Pi
4、erre Bricaud.片上系统:可重用设计方法学沈戈,等译电子工业出版社,2004Writing testbenches:functional verification of HDL models/Janick Bergeron Boston:Kluwer Academic,c2000,9,推荐文章,http:/www.sunburst-Coding Styles For Improved Simulation Efficiency State Machine Coding Styles for Synthesis Synthesis and Scripting Techniques fo
5、r Designing Multi-Asynchronous Clock Designs Synchronous Resets?Asynchronous Resets?I am so confused!Nonblocking Assignments in Verilog Synthesis,Coding Styles That Kill!,10,FPGA的设计流程,11,目标,完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计Quaturs IIModelsim,12,FPGA的设计流程,FPGA的设计流程用Mode
6、lSim进行仿真用Quartus II进行综合和时序分析用Quartus II进行布局布线、调试和下载,13,14,FPGA设计流程,15,综合-Translate Design into Device Specific Primitives-Optimization to Meet Required Area&Performance Constraints-Synplify,Quartus II,Design Specification,布局布线-Map Primitives to Specific Locations inside Target Technology with Refere
7、nce to Area&Performance Constraints,Design Entry/RTL Coding-Behavioral or Structural Description of Design,RTL仿真-Functional Simulation(Modelsim,Quartus II)-Verify Logic Model&Data Flow(No Timing Delays),LE,M512,M4K,I/O,FPGA设计流程,16,时序分析-Verify Performance Specifications Were Met-Static Timing Analysi
8、s,门级仿真-Timing Simulation-Verify Design Will Work in Target Technology,PC Board Simulation&Test-Simulate Board Design-Program&Test Device on Board-Use SignalTap II for Debugging,tclk,系统规划和预算,系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。,17,设计的整体规划,设计规模的初步估计,大致
9、应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。,18,设计文档化非常重要,设计实现,用电路框图或者HDL描述实现自己的设计:图形输入:状态图输入,波形图输入,原理图输入简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。,19,功能仿真,对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时
10、;详细一些的可以认为门延时都是一样,而忽略互连线的延时。,20,逻辑综合,通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:,21,逻辑综合,将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。,22,布局布线也叫适配,将综合生成的网表文件,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;如JEDEC、JAM格式的文件,适配所选定的目标器件必须属于原综合器指定的目标器件系列,23,逻辑综合器,EDIF网表(netlist),FPGA厂家工具,调用模块的综合模型,设置布局布线约束条件,HDL网表(netlist),SDF文件(
11、标准延时格式),下载/编程文件,时序逼近,时序逼近流程是一个推荐的设计方法可以帮助设计满足它们的时序目标,24,门级仿真,25,SDF 文件,Industry Standard FormatAutomatically Generated When You Compile a Design(Output File with Extension.sdo)Contain Timing InformationDevice DelaysInterconnect DelaysPort DelaysPath DelaysTiming ChecksCan be Back-annotated to a Desi
12、gn for Accurate Model of Delays,26,物理验证,将生成的二进制配置文件下载到FPGA上,进行实际的功能和时序的测试;Altera(.sof文件)Xlinx(.bit 文件),由于FPGA常常是作为整个系统一部分,因此还应该将FPGA放到整个系统中进行验证,整个系统工作正常,才算完成了开发过程。,27,28,用ModelSim仿真,内容,ModelSim产品简介ModelSim的用途用ModelSim进行功能仿真用ModelSim进行时序仿真,29,ModelSim产品简介(1),由Mentor Graphics公司 的子公司Model Tech公司开发工业上最通
13、用的仿真器之一支持Verilog 和 VHDL仿真OEM版本允许Verilog仿真 或者 VHDL 仿真ModelSim/SE首要的版本,能混合仿真Verilog 和 VHDLModelSim/XEOEM版,包含Xilinx公司的库文件ModelSim/AEOEM版,包含Altera公司的库文件,30,ModelSim产品简介(2),ModelSim 用户界面,31,main主窗口:,structure结构窗口,process处理窗口:,Signal&variable信号和变量窗口,dataflow数据流窗口,source源窗口,Wave&list波形和列表窗口,ModelSim的用途,RTL
14、 仿真(功能仿真)验证设计HDL的基本逻辑功能,属于最基本的验证仿真速度最快门级仿真 采用综合软件综合后生成的门级网表不带有布局布线后产生的时序信息时序仿真(后仿真)在门级仿真的基础上加入时延文件“.sdf”文件速度很慢,需要很长时间,32,用ModelSim作功能仿真(1),ModelSim 的实现方法:交互式的命令行(Cmd)利用控制台的命令行用户界面(UI)能接受菜单输入和命令行输入批处理模式从DOS或UNIX命令行运行批处理文件,33,用ModelSim作功能仿真(2),基本仿真步骤:1 建立库2 映射库到物理目录3 编译源代码-所有的HDL代码必须被编译4 启动仿真器5 执行仿真,3
15、4,用ModelSim作功能仿真(3),1 建立库UI)从主菜单里面:Design-Create a New LibraryCmd)从main,记录窗口:ModelSim vlib,35,用ModelSim作功能仿真(4),2 映射库到物理目录UI)从主菜单:Design-Browse Libraries Design-Create a New LibraryCmd)从主体的记录窗口:ModelSim vmap,36,用ModelSim作功能仿真(5),3 编译源代码(Verilog)UI)Design-CompileCmd)vlog-work.v.v文件按出现的顺序被编译文件的顺序或者编辑的
16、顺序不重要支持增量式编译(只有被改动的设计单元被编译)缺省编译到work库例如.vlog my_design.v,37,用ModelSim作功能仿真(6),3 编译源代码,38,点亮一个或多个文件并点击 Compile,用ModelSim作功能仿真(7),4 启动仿真器UI)Design-Load New DesignCmd)vsim-lib VHDLvsim top_entity top_architectureVerilogvsim top_level,39,用ModelSim作功能仿真(8),4 启动仿真器,40,选择库,选择顶级module 或 entity/architecture,
17、用ModelSim作功能仿真(9),5 执行仿真UI)RunCMD)run 按timesteps指定的时间长度执行仿真,41,42,用ModelSim作功能仿真(10),5 执行仿真(UI),选择 timesteps数量就可以执行仿真,Restart 重装任何已改动的设计元素并把仿真时间设为零COM)restart,43,用ModelSim作功能仿真(11),5 执行仿真-run 命令举例run 1000从当前位置运行仿真 1000 timestepsrun 2500 ns从当前位置运行仿真2500 nsrun 3000运行仿真到 timestep 3000,44,用ModelSim作功能仿真
18、(12),5 执行仿真-仿真器激励测试台 Verilog 或 VHDL代码非常复杂的仿真(交互式仿真、数据量大的仿真)force命令简单的模块仿真直接从命令控制台输入.DO 文件(宏文件),45,用ModelSim作功能仿真(13),5 执行仿真-仿真器激励.do文件自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励能在所有的ModelSim 模式里被调用UI)Macro-ExecuteCOM)do.do能调用其他的DO文件,add wave/clkadd wave/clradd wave/loadadd wave-hex/dataadd wave/qforce/clk 0 0,1 50-re
19、peat 100force/clr 0 0,1 100run 500force/load 1 0,0 100force/data 16#A5 0force/clk 0 0,1 50-repeat 100run 1000,46,用ModelSim作功能仿真(14),5 执行仿真-仿真器激励.do文件举例,vlib workvcom counter.vhdvsim counterview*add wave/*add list/*do run.do,cd c:mydirvlib workvcom counter.vhdvsim counterview*do stimulus.do,my_sim.do
20、,stimulus.do,47,用ModelSim作功能仿真(15),5 执行仿真-仿真器激励测试台文件(test bench)针对复杂的仿真在测试台文件中将设计模块实例化-将测试台文件置于TOP层,调用设计模块-在测试台文件中加载时钟激励信号,以及给部分信号赋初值测试台文件的写法与设计模块写法有区别-一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用,用ModelSim作功能仿真(总结),基本仿真步骤:1 建立库(Altera MegaFunction库)2 映射库到物理目录3 编译源代码-所有的HDL代码必须被编译4 启动仿真器5 执行仿真,48,#Crea
21、te libaryvlib work#Compile the altera_mf libraryvlog d:/quartus51/eda/sim_lib/altera_mf.v#Create altera_mf library and map it to workexec vmap altera_mf work#source files#FIFOvlog./core/INFIFO.v#top_levelvlog./src/chip_top.vvlog./src/tb_top.v#simulation and testbenchesvsim-L work tb_topdo wave_tb_to
22、p.dorun 5 ms,用ModelSim作时序仿真(1),时序仿真的含义:布局布线后进行的后仿真包含有延时信息仿真结果可能与功能仿真不相同除功能仿真时需要的文件以外,还需要网表文件(如time_sim.vhd或time_sim.v)和包含延时信息的文件(time_sim.sdf文件)在Quartus中是.vo 和.sdo文件,49,用ModelSim作时序仿真(2),指定SDF文件,50,指定 SDF文件,使用定时值的等级的类型(如果不是顶级),用ModelSim作时序仿真(3),vsim 命令的参数参数-t 指定仿真的时间分辨率单位可以是fs,ps,ns,ms,sec,min,hr如果用
23、了 Verilog的 timescale指令,将使用整个设计中的最小的时间精度可选项(缺省是 ns)-sdfmin|-sdftyp|-sdfmax=注释SDF文件可选项使用实例名也是可选项;如果没有使用,SDF用于顶级,51,用ModelSim作时序仿真(总结),基本仿真步骤:建立库 编译Altera器件库3 映射库到物理目录4 编译综合后网表5 加入SDF文件4 启动仿真器5 执行仿真,52,#script for Modelsim post timing simulation of Altera cyclone device#by Wayne#set your PC environment
24、set modelsim_home d:/edatools/Modeltech_6.1dset quartus_home d:/quartus51#build work libvlib work#add cyclone device lib and its sim modelsvlog-reportprogress 300-work cyclone$quartus_home/eda/sim_lib/cyclone_atoms.v,程序接下页,53,vmap cyclone work#post simulation in modelsim for Altera devicesset design
25、_name chip_topset home./impvlog./src/tb_top.vvlog./imp/simulation/modelsim/$design_name.vovsim-sdftyp/tb_top/UUT=chip_top_v.sdo-t ps work.tb_topdo wave.dorun 500 us,程序接上页,54,用Quartus II 进行综合、时序分析和布局布线,设计流程,Create a New Quartus II ProjectCompile a Design into an FPGALocate Resulting Compilation Infor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Altera FPGA的设计流程 FPGA 设计 流程
链接地址:https://www.31ppt.com/p-2940152.html