AlteraFPGA的设计流程.pptx
《AlteraFPGA的设计流程.pptx》由会员分享,可在线阅读,更多相关《AlteraFPGA的设计流程.pptx(115页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Altera FPGA的设计流程的设计流程贺 光 辉清华大学电子工程系1目标目标掌握掌握FPGAFPGA的标准设计流程和工具的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTL Code用Quartus II做设计综合和布局布线用FPGA Mega-functions做设计返标SDF并运行门级的仿真掌握掌握FPGAFPGA的时序约束的时序约束了解了解FPGAFPGA的设计原则的设计原则2提纲提纲FPGAFPGA概要概要FPGAFPGA的设计流程的设计流程用用ModelsimModelsim进行仿真和调试进行仿真和调试用用Quartus IIQuartus II进行时序分析、综合等进
2、行时序分析、综合等FIRFIR滤波器的设计实例滤波器的设计实例3FPGA概要概要4FPGA的优点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间布局布线容易,设计过程相当于只有ASIC设计的前端研发费用低不需要投片费用5FPGA的应用前景的应用前景通信、控制、数据计算等领域得到了广泛的应用 减少电子系统的开发风险和开发成本 缩短上市时间(time to market)通过在系统编程、远
3、程在线重构等技术降低维护升级成本系统的原型实现ASIC的原型验证ASICASIC常用常用FPGAFPGA进行原型机验证进行原型机验证6CPLD与与FPGA的区别的区别CPLDFPGA内部结构ProducttermLookup Table程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源EAB(嵌入式逻辑块),锁相环保密性可加密一般不能保密7CPLD还是还是FPGA?复杂组合逻辑:CPLDCPLDPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至2030多个组合逻辑输入 复杂时序逻辑
4、:FPGAFPGAFPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万8推荐书籍推荐书籍VerilogVerilogVerilog数字系统设计教程数字系统设计教程 夏宇闻 北京航天航空大学出版社硬件描述语言硬件描述语言VerilogVerilog 刘明业等译 清华大学出版社 FPGA基于基于FPGAFPGA的嵌入式系统设计的嵌入式系统设计 任爱锋 西安电子科技大学出版社基于基于FPGAFPGA的系统设计(英文版)的系统设计(英文版)Wayne Wolf 机械工业出版社 IC设计Reuse methodology manual for system-on-a-chip designs
5、Reuse methodology manual for system-on-a-chip designs 3rd ed.Michael Keating,Pierre Bricaud.片上系统片上系统:可重用设计方法学可重用设计方法学沈戈,等译电子工业出版社,2004Writing testbenches:functional verification of HDL Writing testbenches:functional verification of HDL models/Janick Bergeronmodels/Janick Bergeron Boston:Kluwer Acade
6、mic,c2000 9推荐文章推荐文章10FPGA的设计流程的设计流程11目标目标完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计Quaturs IIModelsim12FPGA的设计流程的设计流程FPGAFPGA的设计流程的设计流程用ModelSim进行仿真用Quartus II进行综合和时序分析用Quartus II进行布局布线、调试和下载13FPGA设计流程设计流程综合综合 -Translate Design into Device Specific Primitives -Optimization to M
7、eet Required Area&Performance Constraints -Synplify,Quartus IIDesign Specification布局布线 -Map Primitives to Specific Locations inside Target Technology with Reference to Area&Performance ConstraintsDesign Entry/RTL Coding -Behavioral or Structural Description of DesignRTL仿真仿真 -Functional Simulation(Mo
8、delsim,Quartus II)-Verify Logic Model&Data Flow (No Timing Delays)LEM512M4KI/O14FPGA设计流程设计流程时序分析时序分析 -Verify Performance Specifications Were Met -Static Timing Analysis门级仿真门级仿真 -Timing Simulation -Verify Design Will Work in Target TechnologyPC Board Simulation&Test -Simulate Board Design -Program&Te
9、st Device on Board -Use SignalTap II for Debuggingtclk15系统规划和预算系统规划和预算系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。16设计的整体规划设计的整体规划设计规模的初步估计,大致应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。设计文档化非常重要17设计实现设计实现用电路框图或者HDL描
10、述实现自己的设计:简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。18功能仿真功能仿真对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时;详细一些的可以认为门延时都是一样,而忽略互连线的延时。RTL代码代码调用模块的调用模块的行为仿真模行为仿真模型型测试数据测试数据测试程序测试程序(test bench)19逻辑综合逻辑综合通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:RTL代码调用模块
11、的黑盒子接口设置综合目标和约束条件EDIF网表(netlist)HDL网表(netlist)20布局布线布局布线将综合生成的网表,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;EDIF网表网表(netlist)调用模块的综合模型设置布局布线约束条件HDL网表(netlist)SDF文件(标准延时格式)21时序逼近时序逼近流程是一个推荐的设计方法可以帮助设计满足它们的时序目标22门级仿真门级仿真HDL网表(netlist)SDF文件(标准延时格式)测试数据测试数据FPGA基本单元仿真模型测试程序(test bench)23SDF 文件文件Industry Standard
12、 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 Design for Accurate Model of Delays24物理验证物理验证将生成的二进制配置文件下载到FPGA上,进行实际的功能和时序的测试;Altera(.sof文件
13、)Xlinx(.bit 文件),由于FPGA常常是作为整个系统一部分,因此还应该将FPGA放到整个系统中进行验证,整个系统工作正常,才算完成了开发过程。25用用ModelSim仿真仿真26内容内容vModelSim产品简介vModelSim的用途v用ModelSim进行功能仿真v用ModelSim进行时序仿真27ModelSim产品简介(1)v由Mentor Graphics公司 的子公司Model Tech公司开发v工业上最通用的仿真器之一v支持Verilog 和 VHDL仿真OEM版本允许Verilog仿真 或者或者 VHDL 仿真vModelSim/SE首要的版本,能混合仿真Verilo
14、g 和 VHDLvModelSim/XEOEM版,包含Xilinx公司的库文件vModelSim/AEOEM版,包含Altera公司的库文件28ModelSim产品简介(2)ModelSim 用户界面main主窗口:structure结构窗口process处理窗口:Signal&variable信号和变量窗口dataflow数据流窗口source源窗口Wave&list波形和列表窗口29ModelSim的用途1.RTL 仿真(功能仿真)v验证设计HDL的基本逻辑功能,属于最基本的验证v仿真速度最快2.门级仿真 v采用综合软件综合后生成的门级网表v不带有布局布线后产生的时序信息3.时序仿真(后仿
15、真)v在门级仿真的基础上加入时延文件“.sdf”文件v速度很慢,需要很长时间30用ModelSim作功能仿真(1)ModelSim 的实现方法:v交互式的命令行(Cmd)利用控制台的命令行v用户界面(UI)能接受菜单输入和命令行输入v批处理模式从DOS或UNIX命令行运行批处理文件31用ModelSim作功能仿真(2)基本仿真步骤:1 1 建立库2 映射库到物理目录3 编译源代码-所有的HDL代码必须被编译4 启动仿真器5 执行仿真32用ModelSim作功能仿真(3)1 建立库UI)从主菜单里面:Design-Create a New LibraryCmd)从main,记录窗口:ModelS
16、im vlib 33用ModelSim作功能仿真(4)2 映射库到物理目录UI)从主菜单:Design-Browse Libraries Design-Create a New LibraryCmd)从主体的记录窗口:ModelSim vmap 34用ModelSim作功能仿真(5)3 编译源代码(Verilog)UI)Design-CompilevCmd)vlog-work .v.v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要v支持增量式编译(只有被改动的设计单元被编译)v缺省编译到work库例如.vlog my_design.v35用ModelSim作功能仿真(6)3 编译源代码点
17、亮一个或多个文点亮一个或多个文件并点击件并点击 Compile36用ModelSim作功能仿真(7)4 启动仿真器UI)Design-Load New DesignCmd)vsim-lib vVHDLvsim top_entity top_architecturevVerilogvsim top_level37用ModelSim作功能仿真(8)4 启动仿真器选择库选择库选择顶级选择顶级module 或或 entity/architecture38用ModelSim作功能仿真(9)5 执行仿真UI)RunCMD)run 按timesteps指定的时间长度执行仿真39用用ModelSim作功能仿真
18、作功能仿真(10)(10)5 执行仿真(UI)选择选择 timesteps数量就数量就可以执行仿真可以执行仿真Restart 重装任何已改动的重装任何已改动的设计元素并把仿真时间设为设计元素并把仿真时间设为零零COM)restart40用用ModelSim作功能仿真作功能仿真(11)(11)5 执行仿真-run 命令举例命令举例vrun 1000 从当前位置运行仿真 1000 timestepsvrun 2500 ns 从当前位置运行仿真2500 nsvrun 3000 运行仿真到 timestep 300041用用ModelSim作功能仿真作功能仿真(12)(12)5 执行仿真-仿真器激励v
19、测试台 Verilog 或 VHDL代码非常复杂的仿真(交互式仿真、数据量大的仿真)vforce命令简单的模块仿真直接从命令控制台输入.DO 文件(宏文件)42用用ModelSim作功能仿真(作功能仿真(13 13)5 执行仿真-仿真器激励.do文件v自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励v能在所有的ModelSim 模式里被调用UI)Macro-ExecuteCOM)do.dov能调用其他的DO文件43用用ModelSim作功能仿真(作功能仿真(14 14)5 执行仿真-仿真器激励.do文件举例vlib workvcom counter.vhdvsim counterview*a
20、dd wave/*add list/*do run.doadd wave/clkadd wave/clradd wave/loadadd wave-hex/dataadd wave/qforce/clk 0 0,1 50-repeat 100force/clr 0 0,1 100run 500force/load 1 0,0 100force/data 16#A5 0force/clk 0 0,1 50-repeat 100run 1000cd c:mydirvlib workvcom counter.vhdvsim counterview*do stimulus.domy_sim.dosti
21、mulus.do44用用ModelSim作功能仿真(作功能仿真(15 15)5 执行仿真-仿真器激励测试台文件(test bench)v针对复杂的仿真v在测试台文件中将设计模块实例化-将测试台文件置于TOP层,调用设计模块-在测试台文件中加载时钟激励信号,以及给部分信号赋初值v测试台文件的写法与设计模块写法有区别-一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用45用ModelSim作功能仿真(总结)基本仿真步骤:1 1 建立库(Altera MegaFunction库)2 映射库到物理目录3 编译源代码-所有的HDL代码必须被编译4 启动仿真器5 执行仿真#
22、Create libary#Create libaryvlib workvlib work#Compile the altera_mf library#Compile the altera_mf libraryvlog d:/quartus51/eda/sim_lib/altera_mf.vvlog d:/quartus51/eda/sim_lib/altera_mf.v#Create altera_mf library and map it to#Create altera_mf library and map it to workworkexec vmap altera_mf workex
23、ec vmap altera_mf work#source files#source files#FIFO#FIFOvlog./core/INFIFO.vvlog./core/INFIFO.v#top_level#top_levelvlog./src/chip_top.vvlog./src/chip_top.vvlog./src/tb_top.vvlog./src/tb_top.v#simulation and testbenches#simulation and testbenchesvsim-L work tb_topvsim-L work tb_topdo wave_tb_top.dod
24、o wave_tb_top.dorun 5 msrun 5 ms46用ModelSim作时序仿真(1)时序仿真的含义:v布局布线后进行的后仿真v包含有延时信息v仿真结果可能与功能仿真不相同v除功能仿真时需要的文件以外,还需要网表文件(如time_sim.vhd或time_sim.v)和包含延时信息的文件(time_sim.sdf文件)v在Quartus中是.vo 和.sdo文件47用ModelSim作时序仿真(2)指定SDF文件指定指定 SDF文件文件使用定时值的等级的使用定时值的等级的类型类型(如果不是顶级如果不是顶级)48用ModelSim作时序仿真(3)vsim 命令的参数参数-t 指定
25、仿真的时间分辨率单位可以是fs,ps,ns,ms,sec,min,hr如果用了 Verilog的 timescale指令,将使用整个设计中的最小的时间精度可选项(缺省是 ns)-sdfmin|-sdftyp|-sdfmax=注释SDF文件可选项使用实例名也是可选项;如果没有使用,SDF用于顶级49用ModelSim作时序仿真(总结)基本仿真步骤:1 建立库2 编译Altera器件库3 映射库到物理目录4 编译综合后网表5 加入SDF文件4 启动仿真器5 执行仿真#script for Modelsim post timing#script for Modelsim post timing si
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AlteraFPGA 设计 流程
限制150内