资源预览内容
第1页 / 共183页
第2页 / 共183页
第3页 / 共183页
第4页 / 共183页
第5页 / 共183页
第6页 / 共183页
第7页 / 共183页
第8页 / 共183页
第9页 / 共183页
第10页 / 共183页
亲,该文档总共183页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Altera FPGA的的设计流程流程目目标标掌握掌握FPGAFPGA的标准设计流程和工具的标准设计流程和工具用Modelsim进行功能级仿真并诊断RTL Code用Quartus II做设计综合和布局布线用FPGA Mega-functions做设计返标SDF并运行门级的仿真掌握掌握FPGAFPGA的时序约束的时序约束了解了解FPGAFPGA的设计原则的设计原则提提纲纲FPGAFPGA概要概要FPGAFPGA的设计流程的设计流程用用ModelsimModelsim进行仿真和调试进行仿真和调试用用Quartus IIQuartus II进行时序分析、综合等进行时序分析、综合等FIRFIR滤波器的设计实例滤波器的设计实例FPGA概要概要FPGA的的优优点点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间布局布线容易,设计过程相当于只有ASIC设计的前端研发费用低不需要投片费用FPGA的的应用前景用前景通信、控制、数据计算等领域得到了广泛的应用 减少电子系统的开发风险和开发成本 缩短上市时间(time to market) 通过在系统编程、远程在线重构等技术降低维护升级成本系统的原型实现ASIC的原型验证ASICASIC常用常用FPGAFPGA进行原型机验证进行原型机验证CPLD与与FPGA的区的区别CPLDFPGA内部结构ProducttermLookup Table程序存储内部EEPROMSRAM,外挂EEPROM资源类型组合电路资源丰富触发器资源丰富集成度低高使用场合完成控制逻辑能完成比较复杂的算法速度慢快其他资源EAB(嵌入式逻辑块),锁相环保密性可加密一般不能保密CPLD还是是FPGA ? 复杂组合逻辑:CPLDCPLDPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至2030多个组合逻辑输入 复杂时序逻辑:FPGAFPGAFPGA芯片中包含的LUT和触发器的数量非常多,往往都是成千上万推荐推荐书籍籍VerilogVerilogVerilog数字系统设计教程数字系统设计教程 夏宇闻 北京航天航空大学出版社硬件描述语言硬件描述语言VerilogVerilog 刘明业等译 清华大学出版社 FPGA基于基于FPGAFPGA的嵌入式系统设计的嵌入式系统设计 任爱锋 西安电子科技大学出版社基于基于FPGAFPGA的系统设计(英文版)的系统设计(英文版) Wayne Wolf 机械工业出版社 IC设计Reuse methodology manual for system-on-a-chip designsReuse 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 Academic, c2000 推荐文章推荐文章http:/www.sunburst-design.com/papers/http:/www.sunburst-design.com/papers/Verilog Coding Styles For Improved Simulation Efficiency State Machine Coding Styles for Synthesis Synthesis and Scripting Techniques for Designing Multi-Asynchronous Clock Designs Synchronous Resets? Asynchronous Resets? I am so confused!Nonblocking Assignments in Verilog Synthesis, Coding Styles That Kill! FPGA的的设计流程流程目目标标完成本单元的学习后你将会列出FPGA设计过程的步骤(以Altera的FPGA为设计例子)用缺省的软件选项来实现一个FPGA的设计Quaturs IIModelsimFPGA的的设计设计流程流程FPGAFPGA的设计流程的设计流程用ModelSim进行仿真用Quartus II进行综合和时序分析用Quartus II进行布局布线、调试和下载FPGA设计流程设计流程综合综合 - Translate Design into Device Specific Primitives - Optimization to Meet 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 (Modelsim, Quartus II) - Verify Logic Model & Data Flow (No Timing Delays) LEM512M4KI/OFPGA设计流程设计流程时序分析时序分析 - Verify Performance Specifications Were Met - Static Timing Analysis门级仿真门级仿真 - Timing Simulation - Verify Design Will Work in Target TechnologyPC Board Simulation & Test - Simulate Board Design - Program & Test Device on Board - Use SignalTap II for Debuggingtclk系系统规划和划和预算算系统功能的总体规划:功能集的定义;端口的定义;模块的基本划分和功能定义:每个模块应该完成的功能;模块之间的接口定义;模块间通讯的问题一定要考虑好,硬件通信的成本一般比较大。设计的整体的整体规划划设计规模的初步估计,大致应该选择哪一层次的芯片;设计时序的宏观规划:频率和时钟结构;可能的关键路径,着重优化;模块的进一步细化,考虑可重用性等的规划:可以考虑基本单元,比如加法、乘法器和寄存器等。设计文档化非常重要设计实现用电路框图或者HDL描述实现自己的设计:图形输入:状态图输入,波形图输入,原理图输入简单的设计可以用电路框图;大型复杂的一般倾向于用HDL描述;HDL描述和计算机编程中的高级语言描述有很大不同,每一个描述都要考虑硬件的实现能力,是不是可以综合的等等,目前HDL语言标准中仍然有不能被综合的语法,这些要尤其注意。功能仿真功能仿真对逻辑功能进行验证:不考虑时序问题,认为门都是理想门,没有延时;详细一些的可以认为门延时都是一样,而忽略互连线的延时。RTL代码代码调用模块的调用模块的行为仿真模行为仿真模型型测试数据测试数据测试程序测试程序(test bench)逻辑综合合通过映射和优化,把逻辑设计描述转换为和物理实现密切相关的工艺网表:RTL代码调用模块的黑盒子接口设置综合目标和约束条件EDIF网表(netlist)HDL网表(netlist)逻辑综逻辑综合合将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。布局布布局布线也叫适配也叫适配将综合生成的网表文件,在FPGA内部进行布局布线的设计,并最终生成用于下载的二进制配置文件;如JEDEC、JAM格式的文件,适配所选定的目标器件必须属于原综合器指定的目标器件系列EDIF网表网表(netlist)调用模块的综合模型设置布局布线约束条件HDL网表(netlist)SDF文件(标准延时格式)时序逼近序逼近时序逼近流程是一个推荐的设计方法可以帮助设计满足它们的时序目标门级仿真仿真HDL网表(netlist)SDF文件(标准延时格式)测试数据测试数据FPGA基本单元仿真模型测试程序(test bench)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 Design for Accurate Model of Delays物理物理验证将生成的二进制配置文件下载到FPGA上,进行实际的功能和时序的测试;Altera (.sof文件) Xlinx (.bit 文件),由于FPGA常常是作为整个系统一部分,因此还应该将FPGA放到整个系统中进行验证,整个系统工作正常,才算完成了开发过程。用用ModelSim仿真仿真内容内容vModelSim产品简介vModelSim的用途v用ModelSim进行功能仿真v用ModelSim进行时序仿真ModelSim产品品简介(介(1)v由Mentor Graphics公司 的子公司Model Tech公司开发v工业上最通用的仿真器之一v支持Verilog 和 VHDL仿真OEM版本允许Verilog仿真 或者或者 VHDL 仿真vModelSim/SE首要的版本,能混合仿真Verilog 和 VHDLvModelSim/XEOEM版,包含Xilinx公司的库文件vModelSim/AEOEM版,包含Altera公司的库文件ModelSim产品品简介(介(2)ModelSim 用户界面main主窗口:structure结构窗口process处理窗口:Signal&variable信号和变量窗口dataflow数据流窗口source源窗口Wave&list波形和列表窗口ModelSim的用途的用途1.RTL 仿真(功能仿真) v验证设计HDL的基本逻辑功能,属于最基本的验证v仿真速度最快2.门级仿真 v采用综合软件综合后生成的门级网表v不带有布局布线后产生的时序信息3.时序仿真(后仿真)v在门级仿真的基础上加入时延文件“.sdf”文件v速度很慢,需要很长时间用用ModelSim作功能仿真作功能仿真(1)ModelSim 的实现方法:v交互式的命令行 (Cmd)利用控制台的命令行v用户界面 (UI)能接受菜单输入和命令行输入v批处理模式从DOS或UNIX命令行运行批处理文件用用ModelSim作功能仿真作功能仿真(2)基本仿真步骤:1 1 建立库2 映射库到物理目录3 编译源代码- 所有的HDL代码必须被编译4 启动仿真器5 执行仿真用用ModelSim作功能仿真作功能仿真(3)1 建立库UI) 从主菜单里面: Design - Create a New LibraryCmd) 从main, 记录窗口:ModelSim vlib 用用ModelSim作功能仿真作功能仿真(4)2 映射库到物理目录UI) 从主菜单: Design - Browse Libraries Design - Create a New LibraryCmd) 从主体的记录窗口:ModelSim vmap 用用ModelSim作功能仿真作功能仿真(5)3 编译源代码(Verilog)UI) Design - CompilevCmd) vlog -work .v .v文件按出现的顺序被编译文件的顺序或者编辑的顺序不重要v支持增量式编译(只有被改动的设计单元被编译)v缺省编译到work库例如. vlog my_design.v用用ModelSim作功能仿真作功能仿真(6)3 编译源代码点亮一个或多个文点亮一个或多个文件并点击件并点击 Compile用用ModelSim作功能仿真作功能仿真(7)4 启动仿真器UI) Design - Load New DesignCmd) vsim -lib vVHDLvsim top_entity top_architecturevVerilogvsim top_level用用ModelSim作功能仿真作功能仿真(8)4 启动仿真器选择库选择库选择顶级选择顶级module 或或 entity/architecture用用ModelSim作功能仿真作功能仿真(9)5 执行仿真vUI) RunCMD) run v按timesteps指定的时间长度执行仿真用用ModelSim作功能仿真作功能仿真(10)5 执行仿真(UI)选择选择 timesteps数量就数量就可以执行仿真可以执行仿真Restart 重装任何已改动的重装任何已改动的设计元素并把仿真时间设为设计元素并把仿真时间设为零零COM) restart用用ModelSim作功能仿真作功能仿真(11)5 执行仿真-run 命令举例命令举例vrun 1000 从当前位置运行仿真 1000 timestepsvrun 2500 ns 从当前位置运行仿真2500 nsvrun 3000 运行仿真到 timestep 3000用用ModelSim作功能仿真作功能仿真(12)5 执行仿真-仿真器激励v测试台 Verilog 或 VHDL代码非常复杂的仿真(交互式仿真、数据量大的仿真)vforce命令简单的模块仿真直接从命令控制台输入.DO 文件 (宏文件)用用ModelSim作功能仿真(作功能仿真(13)5 执行仿真-仿真器激励.do文件v自动完成仿真步骤的宏文件库设置编译仿真强制仿真激励v能在所有的ModelSim 模式里被调用UI) Macro - ExecuteCOM) do .dov能调用其他的DO文件add 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 1000用用ModelSim作功能仿真(作功能仿真(14)5 执行仿真-仿真器激励.do文件举例vlib workvcom counter.vhdvsim counterview *add wave /*add list /*do run.docd c:mydirvlib workvcom counter.vhdvsim counterview *do stimulus.domy_sim.dostimulus.do用用ModelSim作功能仿真(作功能仿真(15)5 执行仿真-仿真器激励测试台文件(test bench)v针对复杂的仿真v在测试台文件中将设计模块实例化-将测试台文件置于TOP层,调用设计模块 -在测试台文件中加载时钟激励信号,以及给部分信号赋初值v测试台文件的写法与设计模块写法有区别- 一些符合语法但又无法被综合的语句(根据具体的综合工具而定),可以在测试台文件中使用用用ModelSim作功能仿真作功能仿真(总结)基本仿真步骤:1 1 建立库(Altera MegaFunction库)2 映射库到物理目录3 编译源代码- 所有的HDL代码必须被编译4 启动仿真器5 执行仿真# 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 workexec 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.dodo wave_tb_top.dorun 5 msrun 5 ms用用ModelSim作作时序仿真(序仿真(1)时序仿真的含义:v布局布线后进行的后仿真v包含有延时信息v仿真结果可能与功能仿真不相同v除功能仿真时需要的文件以外,还需要网表文件(如time_sim.vhd或time_sim.v)和包含延时信息的文件(time_sim.sdf文件)v在Quartus中是.vo 和.sdo文件用用ModelSim作作时序仿真(序仿真(2)指定SDF文件指定指定 SDF文件文件使用定时值的等级的使用定时值的等级的类型类型 (如果不是顶级如果不是顶级)用用ModelSim作作时序仿真(序仿真(3)vsim 命令的参数参数-t 指定仿真的时间分辨率单位可以是fs, ps, ns, ms, sec, min, hr如果用了 Verilog的 timescale指令, 将使用整个设计中的最小的时间精度可选项(缺省是 ns)-sdfmin | -sdftyp | -sdfmax =注释SDF文件可选项使用实例名也是可选项; 如果没有使用, SDF用于顶级用用ModelSim作作时序仿真序仿真(总结)基本仿真步骤:1 建立库2 编译Altera器件库3 映射库到物理目录4 编译综合后网表5 加入SDF文件4 启动仿真器5 执行仿真# script for Modelsim post timing # script for Modelsim post timing simulation of Altera cyclone devicesimulation of Altera cyclone device# by Wayne# by Wayne# set your PC environment# set your PC environmentset modelsim_home set modelsim_home d:/edatools/Modeltech_6.1dd:/edatools/Modeltech_6.1dset quartus_home d:/quartus51set quartus_home d:/quartus51#build work lib#build work libvlib workvlib work#add cyclone device lib and its sim #add cyclone device lib and its sim modelsmodelsvlog -reportprogress 300 -work vlog -reportprogress 300 -work cyclone cyclone $quartus_home/eda/sim_lib/cyclone_$quartus_home/eda/sim_lib/cyclone_atoms.vatoms.v程序接下页vmap cyclone workvmap cyclone work# post simulation in modelsim for Altera # post simulation in modelsim for Altera devicesdevicesset design_name chip_topset design_name chip_topset home ./impset home ./impvlog ./src/tb_top.vvlog ./src/tb_top.vvlog vlog ./imp/simulation/modelsim/$design_name.vo./imp/simulation/modelsim/$design_name.vovsim -sdftyp /tb_top/UUT=chip_top_v.sdo -t ps vsim -sdftyp /tb_top/UUT=chip_top_v.sdo -t ps work.tb_topwork.tb_topdo wave.dodo wave.dorun 500 usrun 500 us程序接上页用用Quartus II 进行行综合、合、时序分析和布局布序分析和布局布线设计流程设计流程Create a New Quartus II ProjectCompile a Design into an FPGALocate Resulting Compilation InformationAssign Design Constraints (Timing & Pin)Perform Timing Analysis & Obtain ResultsConfigure an FPGA创创建一个新的工程建一个新的工程添加文件添加文件器件选择器件选择Choose Device Family管脚分配管脚分配Assignments menu-Assignment Editor-PinsPin Planner 窗口窗口Unassigned Pins ListPackage View (Top or Bottom)Assigned Pins ListAltera的的IP工具工具IPIP的概念的概念: 用于用于ASICASIC、ASSPASSP、PLDPLD等芯片中预先设计好的常用但较复等芯片中预先设计好的常用但较复杂的电路功能模块,经过严格测试和优化,如杂的电路功能模块,经过严格测试和优化,如FIRFIR滤波器、滤波器、SDRAMSDRAM控制器、控制器、PCIPCI接口等。接口等。使用使用IPIP的优势的优势:提高设计性能提高设计性能降低开发成本降低开发成本缩短设计周期缩短设计周期设计灵活性强设计灵活性强仿真方便仿真方便IPIP的分的分类:软软IPIP、固、固IPIP和硬和硬IPIPMegafunctions/LPMMegafunctions/LPM(免费的宏功能模块):(免费的宏功能模块):如算术组件、门、如算术组件、门、I/OI/O组件、存储器、存储组件组件、存储器、存储组件MegaCoreMegaCore(需要授权的):(需要授权的):如数字信号处理类、通信类、接口和外设类、如数字信号处理类、通信类、接口和外设类、微处理器类微处理器类Altera的的IP工具工具IP使用的步使用的步骤下载所要的MegaCore通过MegaWizard的界面打开IP核的统一界面IP Toolbench定制要生成的IP的参数产生IP的封装和网表文件,以及功能模型对IP的RTL模型做功能仿真将IP的封装和网表文件放在工程中,并实现设计购买IP许可证MegaWizard Plug-In ManagerEases Implementation of Megafunctions & IPEases Implementation of Megafunctions & IPTools MegaWizard Plug-In ManagerMegaWizard 示例示例 Multiply-AddPLLLocate Documentation in Quartus II Help or the Web时序分析序分析Timing Assignments5 types of timing assignments exist: fmax, tsu, thold, tco, tpdThese timing assignments can be assigned globally or individuallyRegister的参数的参数DClkQDQClktc-qtholdTtsutsu:建立时间,在时钟有效沿到来之前寄存器数据输入应保持稳定的时间,它间接约束了组合逻辑的最大延时thold:保持时间,在寄存器数据输入的引脚的数据在系统有效时钟沿到来后需要保持稳定的时间,它间接约束了组合逻辑的最小延时tc-q:寄存器从有效时钟沿到来到输出有效的最大时间违反建立或保持时间,都会造成触发器工作异常,产生Metastability。为了可靠工作,在建立时间开始到保持时间为止的这段时间内,触发器的输入端信号不应发生变化。Clock Skewl在同一个时钟域或者两个时钟域之间时钟信号到达寄存器的最大时间差别l产生原因主要有:时钟源到达各端点的路径长度不同,各端点负载不同,时钟网络中插入的缓冲器不同等l在两个点之间,可以大体认为Skew是固定的值l注意:Clock Skew影响的是时钟的到达时间不同,也就是时钟发生相移,并不影响时钟的周期宽度Clock Skew(2)时钟参数满足的条件l时钟周期应大于寄存器延时、组合逻辑延时、和目标寄存器建立时间的和l本寄存器有效输出通过组合逻辑的延时应该大于目的寄存器的保持时间要求Fmax AssignmentFmax Assignment: Single/Multiple ClockClock Setup (fmax)Worst-Case Clock FrequencyWorst-Case Clock FrequencyClock Period = Clock-to-Out + Data Delay + Setup Time - Clock Skew = tco + B + tsu - (E - C)fmax = 1/Clock PeriodBCtcotsuE Clock PeriodClock Setup (fmax) TablesSelect Clock SetupWorst fmaxFmax Values Are Listed in Ascending Order; Worst Fmax Is Listed on the TopSource, Destination Registers & Associated Fmax Valuesfmax Analysis DetailsData Delay (B)Source Register Clock Delay (C)Setup Time (tsu)BCtcotsuE Clock PeriodDestination Register Clock Delay (E)Clock to Output (tco)10.384 ns + 7.445 ns + 0.180 ns - 0.000 ns= 124.86 MHzMessages Window (System Tab) in Quartus II I/O Assignments:Tsu, TcoTiming AssignmentsWhat can be tagged with a timing assignments?Registers (all)Clock Pins (all)Input Pins (tsu, th)Output Pins (tco)Bidirectional Pins (all)Timing SettingsEasy way to enter timing assignmentsConsolidates all timing assignments in one menu Individual clock settings OR overall circuit frequency Default system timing tsu th tco tpd Default external input/output delays Enable/Disable timing analysis during compilation Timing driven compilationReporting Timing ResultsTiming information is part of the Compilation Report Summary Timing Analyses fmax (not incl. delays to/from pins) or fmax (incl. delays to/from pins) Register-to-Register Table tsu (Input Setup Times) th (Input Hold Times) tco (Clock to Out Delays) tpd (Pin to Pin Delays) All timing results are reported hereI/O 建立时间和保持时间建立时间和保持时间Clock delaytsu thData delaytsu = data delay - clock delay + intrinsic tsuintrinsic tsu & holdth = clock delay - data delay + intrinsic thI/O Clock-to-Output Analysis (tco)Data delaytcoClock delayclock delay + intrinsic tco + data delay = tcointrinsic tcoTime Slackslack = 期望数据到达时间 数据实际到达时间Slack为正,表示数据提前到达,此时组合逻辑延迟满足条件,Register有足够的建立时间;Slack为负,表示数据比预期的时间晚到达,此时显然不满足Register的建立时间,不满足约束;Slack Equations (Setup)Slack = Largest Required Time - Longest Actual TimeRequired Time = Clock Setup - tco - tsu + (clk- clk)Actual Time = Data Delaylaunch edgeclkclksetup latch edgeClock Setup*clktcotsuCombinatorial LogicclkRegister 1Register 2data delaySlack Equations (Hold)launch edgeclkhold latch edgeClock Hold*clktcothCombinatorial LogicclkRegister 1Register 2data delaySlack = Shortest Actual Time - Smallest Required TimeActual Time = Data DelayRequired Time = Clock Hold - tco + th + (clk- clk)clkinoutclkreg1reg2clkclkclkslack = p2p required p2p delayp2pp2p required = setup relationship + clock skew tCO - tSUsetup relationship = latch edge launch edgeclock skew = clk clk launchlatchSimple Register to Register 示例示例inoutclkreg1reg2clkslack = p2p required p2p delayp2pp2p required = setup relationship + clock skew tCO tSUsetup relationship = latch edge launch edge= 5.0 0.0 = 5.0 clock skew = clk clk 2.2660.110.082tcotsu0.0820.11= 2.521 - 2.993= 5.0 + (-0.472) 0.11 0.082= 4.336 2.266= -0.472= 4.336tcotsu= 2.072.9932.5212.9932.521Simple Register to Register 示例(示例(con)Input Minimum DelayMinimum Delay from External Device to Altera I/OMinimum Delay from External Device to Altera I/ORepresents External Device tco + PCB Delay + PCB Clock SkewRepresents External Device tco + PCB Delay + PCB Clock SkewConstrains Registered Input Path (th)Constrains Registered Input Path (th)AtcothAltera DeviceExternal DevicePCB DelaythA Input Minimum DelayInput Minimum DelaythACLKCLKOutput Maximum DelayMaximum Delay from Altera I/O to External DeviceMaximum Delay from Altera I/O to External DeviceRepresents External Device tsu + PCB Delay + PCB Clock SkewRepresents External Device tsu + PCB Delay + PCB Clock SkewConstrains Registered Output Path (Max. tco)Constrains Registered Output Path (Max. tco)BtcotsuAltera DeviceExternal DevicePCB DelaytcoB tCLK - Output Maximum DelaytcoOutput Maximum DelayCLKCLKOutput Minimum DelayMinimum Delay from Altera I/O to External DeviceMinimum Delay from Altera I/O to External DeviceRepresents External Device th - PCB Board DelayRepresents External Device th - PCB Board DelayConstrains Registered Output Path (Min. tco)Constrains Registered Output Path (Min. tco)BtcothAltera DeviceExternal DeviceBoard DelaytcoB Output Minimum DelaytcoOutput Maximum DelayCLKCLKExample Input Maximum DelayNotice:1)Input Pin d(6) & d(3) Timing Information Is Included with Clock Setup (fmax) Analysis2)Input Delay Has Been Added to List Path CalculationInput Maximum Delay (d) = 4 ns Compiling in QuartusCompiling in Quartus (Start)Compiling in QuartusDone!Download Bit FileDownload Bit File into FPGAAltera FPGA配置列表配置列表配置模式典型应用被动串行模式(PS)运用增强配置芯片(EPC16,EPC8或EPC4 )EPC1,EPC2,EPC1441,串行同步微处理器,USB接口下载电缆,MasterBlasterTM通信电缆,ByteBlasterTM II并口下载电缆或ByteBlasterMVTM并口下载电缆。主动串行模式(AS)应用串行配置芯片EPCS1,EPCS4等被动并行同步模式(PPS)并行同步微处理器配置快速被动并行模式(FPP)增强型配置芯片或8位同步并行微处理器速度为PPS模式的8倍。被动并行异步模式(PPA)采用异步微处理器,这种模式下微处理器对于目标芯片如同一个存储器。被动串行异步模式(PSA)串行异步处理器JTAG模式根据 IEEE Std. 1149.1 (JTAG)引脚标准Debug with SignalTap IIQuartus II 嵌入式嵌入式逻辑逻辑分析分析仪仪特点特点特点优点可以灵活的改变缓冲器模式在循环模式或间隔模式采样时,使每次不同的触发均能采到更加精确的数据。每个器件最高支持1024个通道可以支持多个采用通道和很宽的总线模式采样。每个器件支持128K采样存储使每个通道得到更多的采样数据。采样时钟最高可达270MHz可以采集速率更高的数据。资源使用的评价者可以评估逻辑或存储器件的资源使用情况。不需要额外费用SignalTap II logic Analyzer 是Quartus II免费提供的。可对一个器件进行多重逻辑分析可以从一个复杂的时钟信号中分析出想要得到的数据通过一个JTAG接口可对多个器件进行多重的逻辑分析使设计者可以通过一个JTAG接口同步得到多个芯片的数据对每个信号均有10种触发模式可以捕捉到更加复杂的数据信号,更加景区的找到问题的所在。增加的编译可以在综合编译之前对逻辑分析仪进行修改。FIR滤波器波器设计实例例一个一个综合的例子合的例子FIR滤波器的设计Modelsim的使用Quartus II的使用宏功能模块的使用仿真、综合等过程及报告的查看设计设计要求要求设计一个14阶FIR滤波器,已给出滤波器系数,要求用Verilog/VHDL实现该滤波器,并且选用Altera的Stratix或Stratix II器件。要求充分利用Altera Stratix/Stratix II的器件的DSPBLOCK资源。要求每一级都一级流水线(pipeline)。能够利用Altera的megafunction。能够在Modelsim下进行仿真。选用EP2S60F484C3器件。Fmax达到270Mhz以上。 设计难设计难点点难点在于要达到270MHz以上的频率通过插入流水线可以达到要求为了不过分的增加流水线寄存器的数量,需要对FIR滤波器的结构进行精心设计 直接形式直接形式结结构构 关键路径是关键路径是1 1个乘法器和个乘法器和2 2个加法器个加法器 流水线割集插入流水线寄存器,这样得到的关键路径是流水线割集插入流水线寄存器,这样得到的关键路径是1 1个乘法和个乘法和1 1个加法个加法 数据广播数据广播结结构构关键路径是关键路径是1 1个乘法器和个乘法器和1 1个加法器个加法器 流水线割集插入流水线寄存器,关键路径是流水线割集插入流水线寄存器,关键路径是1 1个乘法个乘法 设计设计方案方案选择选择寄存器数目寄存器数目关键路径长度关键路径长度直接形式结构直接形式结构39 36个个1个乘法器和个乘法器和1个加法器个加法器数据广播结构数据广播结构13 36个个1个乘法器和个乘法器和1个加法器个加法器进一步流水的数进一步流水的数据广播结构据广播结构27 36个个1个乘法器个乘法器FIR滤滤波器的波器的结结构构模模块块划分划分乘法器模块乘法器模块:直接用:直接用AlteraAltera的的DSPBLOCK lpm_multDSPBLOCK lpm_mult进行例化进行例化信号名称I/O描述dataaI乘法器输入数据信号,16bit字长databI乘法器输入数据信号,16bit字长resultO滤波器输出数据信号,32bit字长信号名称I/O描述dataaI乘法器输入数据信号,36bit字长databI乘法器输入数据信号,36bit字长resultO滤波器输出数据信号,36bit字长 加法器模块加法器模块:直接用:直接用AlteraAltera的的DSPBLOCK lpm_add_subDSPBLOCK lpm_add_sub进行例化进行例化 顶层模块顶层模块:将乘法器和加法器连接成数据广播结构的:将乘法器和加法器连接成数据广播结构的FIRFIR滤波器滤波器DSP Blocks for ComplexDSP Blocks for ComplexArithmetic ApplicationsArithmetic ApplicationsWirelessWirelessFiltering & CompressionFiltering & CompressionEncryptionEncryptionSignal ProcessingSignal ProcessingConsumerConsumerImage ProcessingImage ProcessingAudio ProcessingAudio ProcessingCompressionCompressionDataComDataComBarrel ShiftingBarrel ShiftingQoS AlgorithmsQoS Algorithms+Optional PipeliningOutput RegistersOutput MUX+ - S+ - S SInput RegistersStratix II DSP BlocksUp 96 DSP BlocksUp 96 DSP BlocksEach Configured forEach Configured for(8) 9x9 Multipliers(8) 9x9 Multipliers(4) 18x18 Multipliers(4) 18x18 Multipliers(1) 36x36 Multiplier(1) 36x36 MultiplierCan Be Cascaded for Larger OperationsCan Be Cascaded for Larger OperationsDedicated Configurable Math CircuitryDedicated Configurable Math CircuitryMultiplier, Accumulate & Addition/SubtractionMultiplier, Accumulate & Addition/SubtractionRounding & SaturationRounding & SaturationBuilt-In Shift Register for Complete FIR Filter Built-In Shift Register for Complete FIR Filter ImplementationImplementationSelectable Input, Output & Pipeline Stage RegistersSelectable Input, Output & Pipeline Stage RegistersDSP Block ArchitectureAdd/Sub/AccSummationUnitOutput RegisterXXXX+ - + - Input Register Pipeline RegisterOutput Mux综综合合结结果果目标器件目标器件EP2S60F484C3Total ALUTs338 / 48,352 ( 1 % )DSP block 9-bit elements28 / 288 ( 9 % )最高时钟频率最高时钟频率(约束(约束300MHz情况下)情况下)312.89 MHz ( period = 3.196 ns )资源利用率源利用率速度速度总结总结(1)1、使用ModelSimModelSim进行功能仿真功能仿真3、使用Quartus IIQuartus II对对设计进行综合综合,时序分析和时序分析和布线布线4、使用ModelSimModelSim进行后仿真后仿真5、使用Quartus IIQuartus II下载文件到实际电路6、使用SignalTap IISignalTap II进行调试和数据观测总结(2)数字系统设计应该明确如下观点:无论是ASIC、FPGA还是DSP,都只是一种实现手段;无论采用哪种HDL或哪种开发工具,都不能单纯从语言或工具本身作出评价;关键是看应用环境,只有选择最适合于应用的实现方式和工具才是最好的设计方案;设计应该注重硬件设计本身,只有先有了良好的设计,才可能有高效的描述和实现。数字模拟电路、HDL语言等知识和实际经验比了解软件更重要。Altera公司的下公司的下载电缆载电缆针对FPGA器件不同的内部结构,Altera公司提供了不同的器件配置方式。Altera FPGA的配置可通过编程器、JATG接口在线编程及Altera在线配置等方式进行。 Altera器件编程下载电缆的有:ByteBlaster并行下载电缆,ByteBlasterMV并行下载电缆,MasterBlaster串行USB通信电缆,BitBlaster串口下载电缆。ByteBlaster并行下并行下载电缆载电缆ByteBlaster并行下载电缆是一种连接到 PC机 25针标准口(LPT口)的硬件接口产品。ByteBlaster并行下载电缆可以对FLEX10K、FLEX8000和 FLEX6000进行配置,也可以对 MAX9000(包括MAX9000A)、MAX7000S和MAX7000A进行编程。ByteBlaster为FPGA提供了一种快速而廉价的配置方法,设计人员的设计可以直接通过ByteBlaster下载电缆下载到芯片中去。ByteBlaster并行下并行下载电缆载电缆ByteBlaster并行下载电缆提供两种下载模式:Passive serial mode(PS,被动串行模式) 用于配置FLEX10K、FLEX8000和FLEX600O系列器件。JTAG模式 采用工业标准的JTAG边界扫描测试电路(符合IEEE 1149.1-1990标准)用于配置FLEX10K、MAX9000、MAX7000S和 MAX7000A系列器件进行编程。ByteBlaster并行下并行下载电缆载电缆 ByteBlaster与PC机并口相连的是2 5针插头,与FPGA应用电路PCB电路板相连的是10针插座。编程数据从PC机并口通过ByteBlaster电缆下载到电路板。注意:利用 ByteBlaster下载电缆配置编程 3.3 V器件(如 FLEX10KA、MAX7000A器件)时,要将电缆的VCC脚连到5.0V电源,而器件的VCC脚连到3.3V电源。FLEX10KA和 MAX7000A器件能够耐压到 5.0V,因此,ByteBlaster电缆的5.0V输出不会对 3.3V器件造成损害,但5.0V电源中应连接上拉电阻。ByteBlaster与PC机并口相连的是25针插头,在PS模式下和在JTAG模式下的引脚信号名称是不同的,如表6.2.1所示。ByteBlaster并行下并行下载电缆载电缆ByteBlaster并行下并行下载电缆载电缆ByteBlaster与FPGA应用电路PCB电路板相连的是10针插座,在PS模式下和在JTAG模式下的引脚信号名称如表6.2.2所示。注意:PCB板必须给下载电缆提供电源VCC和信号地GND。ByteBlaster的电缆线一般使用扁平电缆,长度不超过30cm,否则带来干扰、反射及信号过冲问题,引起数据传输错误,导致下载失败。如果PC机并行口与PCB电路板距离较远,需要加长电缆,则可在PC机并行口和ByteBlaster电缆之间加入一根并行口连接电缆。ByteBlaster并行下并行下载电缆载电缆ByteBlaster并行下并行下载电缆载电缆PCB板上的10针插头连接到FPGA器件的编程或配置引脚上,ByteBlaster下载电缆的10针插座连接到PCB板上的10针插头,ByteBlaster电缆通过10针插头获得电源并下载数据到FPGA器件上。 ByteBlasterMV并行下并行下载电缆载电缆ByteBlasterMV并行下载电缆具有与PC机2 5针标准并行口相连的接口,工作电压VCC支持3.3 V或5.0V,允许 PC机用户从MAXPLUS或 Quartus开发软件中下载数据,通过PC机标准并行口在线编程 MAX9000、MAX7000S、MAX7000A、MAX7000B和MAX3000A系列器件;可配置 APEX、APEX20K(包括APEX20K、APEX20KE和APEX20KC)、ACEX1K、Mercury、FLEX10K(包括 FLEX10KA 和FLEX10KE)、FLEX8000 和FLEX6000系列器件及Excalibur嵌入式微处理器。工作电压VCC支持3.3 V或5.0V。使用与ByteBlaster并行口和BitBlaster串口下载电缆相同10针电路板连接器与FPGA应用电路板(PCB)连接。ByteBlasterMV并行下并行下载电缆载电缆ByteBlasterMV下载电缆提供两种下载模式:被动串行模式(PS) 用于配置 APEX、APEX20K、ACEXIK、Mercury、Excalibur、FLEX10K、FLEX8000和 FLEX6000系列器件;JTAG模式 具有标准的 JTAG接口,用于编程或配置APEX、APEX20K、Mercury、ACEX1K、Excalibur、FLEX10K、MAX9000、MAX7000S、MAX7000A、MAX7000B和 MAX3000A系列器件。ByteBlasterMV并行下并行下载电缆载电缆ByteBlasterMV下载电缆与PC机并行口相连的是25针插头,与PCB电路板相连的是10针插座。数据从PC机并行口通过ByteBlasterMV电缆下载到电路板中。注意:为了利用 ByteBlasterMV下载电缆配置 1.5 V APEX、1.8 V APEX20KE、2.5 V APEX20K、Excalibur、Mercury、ACEXIK和FLEX10KE器件,3.3 V电源中应该连接上拉电阻,电缆的VCC脚连到 3.3 V电源,而器件的VCCINT引脚端连到相应的 2.5 V、1.8 V或1.5 V电源。对于PS配置,器件的VCCIO引脚端必须连到 2.5 V或 3.3 V电源。对于APEX 、Mercury、ACEX1K、APEX20K和 FLEX10KE系列器件的 JTAG在线配置,或MAX7000A和MAX3000A系列器件的JTAG在线编程,电缆的VCC引脚端则必须连接3.3 V电源。器件的VCCIO引脚端既可连到 2.5 V,也可连到 3.3 V电源上。 ByteBlasterMV并行下并行下载电缆载电缆ByteBlasterMV的25针插头,与ByteBlaster下载电缆的区别仅是第15脚不同,ByteBlaster连到GND,而ByteBlasterMV连到VCC。ByteBlasterMV的10针插座与ByteBlaster电缆的10针插座完全相同。PCB电路板上的10针连接插头与采用ByteBlaster下载电缆的方式完全相同。ByteBlasterMV并行下并行下载电缆载电缆使用 ByteBlasterMV电缆和 Quartus编程器,对一个或多个器件进行编程或配置的步骤如下:1. 对项目进行编译 Quartus编译器对 APEX 、APEX20K、Mercury和 Excalibur系列器件的配置自动产生 .sof文件,为了对EPC配置芯片进行编程,就要用到 .pof文件或JAM STAPL格式文件。连接 ByteBlasterMV电缆到 PC机的并行口,将10针插座插到包含目标器件的电路板中,电路板必须为 ByteBlasterMV电缆提供电源。对于Windows NT操作系统,在使用ByteBlasterMV电缆前必须安装驱动器。ByteBlasterMV并行下并行下载电缆载电缆打开Quartus编程器,在 Processins菜单中选择 Open Programmer,然后点击Setup命令,在编程器硬件部分指定ByteBlasterMV电缆和相应的LPT端口.根据用户电路板上的器件连接方式,在模式项中选择Passive Serial或JTAG模式,然后点击Add File或Add Device按钮,增加将要编程或配置的文件或器件,并建立一个器件链(chain)描述文件( .cdf)。编程器具有两种编程模式:被动串行(PS)与JTAG模式。在被动串行模式下,在器件链中选择 .sof文件。在JTAG模式下,在器件链中应增加特定的器件和配置器件,除了 .sof和 .pof文件外,在器件链中对每个配置器件都有几个可编程选项,包括对照编程文件的数据校验一个EPC配置器件的内容,检测器件是否空,检查已编程器件并将其中的数据保存到文件中,或者使用其数据编程或校验其它的配置器件。在Quartus软件的编程器中选择Start按钮开始编程或配置器件。ByteBlasterMV电缆从.sof 、.pof文件中下载数据到目标器件。. MasterBlaster串行串行USB通信通信电缆电缆MasterBlaster通信电缆具有标准的PC机串行接口或USB硬件接口。MasterBlaster电缆允许 PC机和 UNIX用户,配置数据到 APEX、APEX20K(包括APEX20KE 和APEX20KC)、FLEX10K(包括FLEX10K A和FLEX10KE)、FLEX8000和 FLEX6000系列器件,以及Excalibur嵌入式微处理器,也可编程 MAX9000、MAX7000S和MAX7000A(包括MAX7000AE)系列器件。设计项目可以直接下载到器件。在APEX和 APEX20K系列器件中,MasterBlaster电缆还可通过SignalTap嵌入式逻辑分析器进行在线调试。工作电压VCC支持5.0V、3.3V或2.5V。 MasterBlaster串行串行USB通信通信电缆电缆MasterBlaster电缆提供两种下载模式:被动串行模式(PS):用于配置APEX 、APEX20K和FLEX系列器件;JTAG模式:具有IEEE 1149.11业标准的JTAG接口,用于编程具有JTAG能力的 MAX系列器件和在线串行配置器件(如 EPC2)或配置APEX、APEX20K和 FLEX系列器件。MasterBlaster串行串行USB通信通信电缆电缆SignalTap宏功能是一种嵌入式逻辑分析器,能够在器件特定的触发点捕获数据,并保存数据到 APEX和 APEX20K的嵌入式系统块(ESB)中。然后,这些数据被送到 APEX或 APEX20K的 IEEE 1149.11 标准 JTAG接口,通过 MasterBlaster通信电缆上传到Quartus波形编辑器中进行显示。MasterBlaster电缆通过一个串行接口或USB接口与计算机相连,具有标准串行电缆的9针D型插头连接器连接到RS2 3 2端口, USB连接器则能在任何标准的USB电缆中使用。数据从串口或USB口,通过MasterBlaster电缆下载到电路板。与电路板相连的是标准10针插座,尺寸与Blaster及ByteBlasterMV下载电缆的10针插座完全一样,插座引脚端信号如表6.2.3所示。MasterBlaster串行串行USB通信通信电缆电缆表6.2.3 MasterBlaster下载电缆与电路板相连的10针插座引脚端信号MasterBlaster串行串行USB通信通信电缆电缆MasterBlaster下载电缆上的LED显示MasterBlaster电缆的工作状态,如表6.2.4所示。表6.2.4 MasterBlaster电缆的LED显示状态BitBlaster串行下串行下载电缆载电缆BitBlaster串行下载电缆具有标准的RS232串行接口(PC机的“COM”端口,UNIX工作站的“ttya”或“ttyb”端口) 。允许PC机和UNIX用户从PC机和 UNIX工作站的 MAXPLUS E开发软件中下载数据。BitBlaster电缆可配置数据到FLEX10K、FLEX8000和 FLEX6000系列器件,也可编程 MAX9000(包括 MAX9000A)、MAX7000S、MAX7000A和MAX3000A系列器件。BitBlaster串行下串行下载电缆载电缆BitBlaster串行下载电提供PS模式和JTAG模式两种数据下载模式。可编程配置一个器件或多个器件链。数字传输速率支持9600至 230 400波特率。数据从 PC机 RS232串口通过 BitBlaster电缆下载到电路板,与PC机RS232串口相连的是25针插座,与 PCB电路板相连的是10针插 座。BitBlaster下载电缆上的状态指示灯指示器件编程或配置的状态。BitBlaster串行下串行下载电缆载电缆注意:利用BitBlaster下载电缆配置编程3.3V器件(如 FLEX10KA、FLEX10KB、FLEX10KE、MAX7000A和MAX3000A系列器件),将电缆的 VCC脚连接到 5.0 V电源,而器件的 VCC脚连到 3.3 V电源。Altera的 3.3 V器件能够耐压到 5.0 V输入,因此Bit.Blaster电缆的 5.0V输出不会对 33 V器件造成损害,但 5.0 V电源中应连接上拉电阻。MasterBlaster下载电缆的供电方式有:由电路板提供的 5.0 V或 3.3 V电源;直流电源供电;从USB电缆来的 5.0 V电源。当电路板上的5.0 V或 3.3 V电源无效时,MasterBlaster下载电缆能够由直流电源或USB电缆供电。下下载电缆载电缆配置配置电电路路设计设计Altera器件编程下载电缆与FPGA应用电路PCB电路板相连的是10针插座,在PS模式下和在JTAG模式下,完成对器件的配置。不同型号的下载电缆和器件,与下载电缆连接的电路不同。下面以MasterBlaster串行USB通信下载电缆和ByteBlasterMV下载电缆为例,介绍下载电缆配置电路设计。1)PS模式模式单单个器件的配置个器件的配置电电路路设计设计PS模式可以完成对单个APEX、APEX20K、Mercury、ACEX1K、FLEX10K或 FLEX6000系列器件的配置,配置电路如图6.2.1所示。图中:除 APEX20KE、APEX20KC系列器件外,上拉电阻应该连接到 MasterBlaster(VIO脚)或ByteBlasterMV的电源。对于APEX20KE、APEX20KC器件使用 10 k电阻上拉 nCONFIG到 VCCINT。MasterBlaster和 ByteBlasterMV电缆的电源电压 VCC为 3.3V或 5.0V。插座上的引脚端6为MasterBlaster电缆提供的VIO基准电压,VIO应与器件的VCCIO匹配。ByteBlasterMV电缆插座上的引脚端6不连接。1. PS(被(被动动串行)模式串行)模式在PS(被动串行)模式下,MasterBlaster下载电缆和ByteBlasterMV下载电缆可以对单个与多个APEX、APEX20K、Mercury、ACEX1K、FLEX10K或 FLEX6000系列器件进行配置。在PS模式,配置数据从数据源通过MasterBlaster下载电缆和ByteBlasterMV下载电缆串行地传送到器件,配置数据由数据源提供的时钟同步。MasterBlaster和和ByteBlasterMV下下载电缆PS模式模式单个器件的配置个器件的配置电路路MasterBlaster和和ByteBlasterMV下下载电缆PS模式多个器件的配置模式多个器件的配置电路路在器件链中将每个器件的nCEO引脚端连接到下一个器件的nCE引脚端,所有其它配置引脚端应分别连接在一起,器件链中的第一个器件的nCE引脚端连接到地,最后一个器件的nCEO引脚端悬空。在PS模式中,由于所有的CONF-DONE引脚端连接在一起,器件链中的所有器件初始化时同时进入用户模式。另外,由于所有的nSTATUS引脚端连接在一起,如果任何一个器件检测到错误,则整个器件链中断配置。2. JTAG摸式摸式在JTAG模式下,MasterBlaster通信电缆和 ByteBlasterMV下载电缆可以完成单个和多个APEX、APEX20K、Mercury、ACEX1K、FLEX10K或 FLEX6000系列器件的编程或配置。JTAG模式模式单单个器件的配置个器件的配置电电路路设计设计JTAG模式模式单单个器件的配置个器件的配置电电路路设计设计器件的配置是通过JTAG引脚端TCK、TMS、TDI和TDO完成的。上拉电阻应该连接到电缆的电源,APEX20KE、APEX20KC系列器件所有的上拉电阻均为 10 k。采用144引脚TQFP封装的FLEX10K器件没有TRST信号脚,此时TRST信号可以忽略。nCONFIG、MSELO、MSELI引脚端应采用支持非JTAG配置模式的方式连接,如果仅仅使用JTAG配置模式,则nCONFIG引脚端应连接到VCC,MSELO和MSELI引脚端应连接到地。MasterBlaster电缆驱动器的参考电压VIO应与器件的VCCIO匹配。JTAG模式模式单单个器件的配置个器件的配置电电路路设计设计APEX、APEX20K、Mercury、ACEX1K、FLEX10K系列器件都有专用的 JTAG引脚端,具有JTAG引脚端的一般功能,在配置前后都可进行JTAG测试,并不仅仅限于配置过程中。器件的芯片复位及输出使能引脚端,不影响JTAG边界扫描测试或编程操作。触发这些引脚端也不会影响JTAG操作。设计JTAG配置电路板时,常规的配置引脚端应充分考虑并连接好。在在 JTAG配置配置时时需要需要连连接的引脚接的引脚JTAG模式多个器件的配置模式多个器件的配置电电路路设计设计当电路板包含多个器件时,或者电路板使用JTAG边界扫描测试(BST)时,采用JTAG器件链进行编程最为理想。在JTAG模式对多个器件(JTAG模式的器件链)进行编程时,一个JTAG模式的插座需要与多个器件相连接, JTAG器件链中器件的数目仅受电缆的驱动能力的限制。当器件数目超过5个时,Altera建议对TCK、TDI和TMS引脚端在电路板上加缓冲驱动。APEX、APEX20K、Mercury、ACEX1K、FLEX10K和 MAX系列器件能放在同一JTAG器件链中,进行编程或配置。所有的上拉下拉电阻是1k。而APEX20KE、APEX20KC系列器件的 nSTATUS与 CONF-DONE引脚端的上拉电阻为10 k。nCONFIG、MSELO、MSELI引脚端应采用支持非JTAG配置模式的方式连接,如果仅仅使用JTAG配置模式,则nCONFIG引脚端应连接到VCC,MSELO和MSELI引脚端应连接到地。MasterBlaster电缆驱动器的参考电压VIO应与器件的VCCIO匹配。TRST引脚端仅对APEX、APEX20K、Mercury、ACEX1K系列器件和除 144引脚 TQFP封装外的所有FLEX10K系列器件有效。在JTAG模式,对多个器件中的一个器件进行编程时,编程软件将多个器件中的其它器件处于Bypass(旁路)模式。在Bypass模式下,器件通过旁路(Bypass)寄存器,将编程数据从TDI引脚端传送到TDO引脚端。编程软件仅对目标器件进行编程与校验。 Quartus或 MAX PLUS软件在 JTAG配置结束时自动对成功的 JTAG配置进行校验。在JTAG配置结束时,通过JTAG接口软件检查CONF-DONE的状态。如果CONF-DONE的状态不正确,Quartus或 MAX PLUS软件指示配置失败;如果 CONF-DONE的状态正确,Quartus或 MAX PLUS软件软件指示配置成功。当使用 JTAG引脚配置时,如果 VCCIO被连到 3.3 V,则I/O引脚和 JTAG TDO接口将在 3.3 V驱动。JTAG配置模式和非JTAG配置模式不能同时进行。当利用JTAG模式进行配置时,允许首先完成任何非 JTAG模式配置,例如先利用一个微处理器对 APEX、APEX20K、Mercury、ACEX1K和FLEX10K系列器件进行非JTAG配置,然后再进行JTAG配置。AlteraAltera的配置芯片的配置芯片 Altera Altera公司为公司为APEXAPEX、APEX20KAPEX20K、MercuryMercury、ACEX1KACEX1K、FLEX10KFLEX10K和和FLEX6000FLEX6000系列器件提供的一些专用配置芯片如表系列器件提供的一些专用配置芯片如表6.46.4所示,使用这所示,使用这些专用配置芯片可以完成些专用配置芯片可以完成AlteraAltera公司的公司的FPGAFPGA芯片配置。芯片配置。EPC16EPC16、EPC8EPC8、EPC2EPC2配置芯片属于配置芯片属于Flash MemoryFlash Memory(闪存)器件,(闪存)器件,EPC1EPC1、EPC1441EPC1441、EPC1213EPC1213、EPC1064EPC1064和和EPC1064VEPC1064V配置芯片基于配置芯片基于EPROMEPROM结构。结构。设计中需要根据设计中需要根据FPGAFPGA器件的容量,决定配置芯片的数目。适用器件的容量,决定配置芯片的数目。适用ACEX, APEX, FLEX & MercuryACEX, APEX, FLEX & Mercury器件的专用配置芯片选择方案如表器件的专用配置芯片选择方案如表6.56.5所示。例如:配置一个所示。例如:配置一个EP20K600EEP20K600E器件,需要器件,需要4 4个个EPC2EPC2芯片。同芯片。同理,配置一个理,配置一个EP1M350EP1M350器件需要器件需要1 1个个EPC16EPC16或者或者3 3个个EPC2EPC2芯片。芯片。EPC1EPC1、EPC1441EPC1441、EPC1213EPC1213、EPC1064EPC1064、EPC1064V PDIP-8EPC1064V PDIP-8封装形式如图封装形式如图6.66.6所示。所示。EPC2 PLCC-20EPC2 PLCC-20封装形式如图封装形式如图6.76.7所示。所示。 Altera的配置芯片的配置芯片图6.6 EPC16.6 EPC1、EPC1441EPC1441、EPC1213EPC1213、EPC1064EPC1064、EPC1064V PDIP-8EPC1064V PDIP-8封装封装形式形式图6.7 EPC2 PLCC-206.7 EPC2 PLCC-20封装形式封装形式对单个对单个FPGAFPGA器件的配置器件的配置单个单个APEXAPEX、APEX20KAPEX20K、APEX20KCAPEX20KC、MercuryMercury、ACEX1KACEX1K、FLEX10KFLEX10K和和APEX20KEAPEX20KE及及 FLEX6000FLEX6000器件的配置电路如器件的配置电路如图图6.86.8所示。所示。PSPS模式配置与芯片配置组合的配置电路如模式配置与芯片配置组合的配置电路如图图6.96.9所示所示在图在图6.86.8中:中:(1 1)上拉电阻应该连接到配置器件的电源端。)上拉电阻应该连接到配置器件的电源端。(2 2)除)除APEX20KEAPEX20KE、APEX20KCAPEX20KC系列器件的上拉电阻为系列器件的上拉电阻为10k10k,其它系列器件的上拉电阻为,其它系列器件的上拉电阻为1k1k。EPC16EPC16、EPC8EPC8和和 EPC2EPC2芯片的芯片的OEOE和和nCSnCS引脚端具有内部用户可配引脚端具有内部用户可配置上拉电阻,如果使用了这些引脚端的内部上拉电阻,置上拉电阻,如果使用了这些引脚端的内部上拉电阻,则可以不使用外部上拉电阻。则可以不使用外部上拉电阻。(3 3)nINIT-CONFnINIT-CONF引脚端仅对引脚端仅对EPC16EPC16、EPC8EPC8和和 EPC2EPC2芯片芯片有效。如果有效。如果nINIT-CONFnINIT-CONF无效或未使用,无效或未使用, nCONFIGnCONFIG必须必须直接或通过电阻连接到直接或通过电阻连接到VCCVCC。(8 8)配置)配置APEX20KEAPEX20KE器件时,为了隔离器件时,为了隔离1.8V1.8V和和3.3V3.3V电源,电源,在在APEX20KEAPEX20KE器件的器件的nCONFIGnCONFIG引脚端与配置芯片的引脚端与配置芯片的nINIT-nINIT-CONFCONF引脚端之间加一个二极管。二极管门限电压应小引脚端之间加一个二极管。二极管门限电压应小于等于于等于0.7V0.7V,二极管使,二极管使nINIT-CONFnINIT-CONF引脚成为开漏引脚引脚成为开漏引脚状态,仅能驱动低电平及三态。状态,仅能驱动低电平及三态。(9 9)EPC16EPC16、EPC8EPC8和和EPC2EPC2芯片不能用来配置芯片不能用来配置FLEX6000FLEX6000系列器件。系列器件。图6.8 6.8 单个个FPGAFPGA器件的配置器件的配置电路路图6.8 6.8 单个个FPGAFPGA器件的配置器件的配置电路路图6.9 PS6.9 PS模式配置模式配置与与芯片配置芯片配置组合合电路路多个多个APEXAPEX、APEX20KAPEX20K、APEX20KCAPEX20KC、MercuryMercury、ACEX1KACEX1K、FLEX10KFLEX10K和和APEX20KEAPEX20KE及及 FLEX6000FLEX6000器件的配置电路如图器件的配置电路如图6.106.10所所示。示。图6.10 6.10 多多个个FPGAFPGA器件的配置器件的配置电路路在图在图6.106.10中:中: (1 1)在进行多器件主动配置时,设计人员必须从每个设计项)在进行多器件主动配置时,设计人员必须从每个设计项目的目的SRAMSRAM目标文件(目标文件(.sof.sof)中产生配置芯片的编程目标文件)中产生配置芯片的编程目标文件(.pof.pof),即在),即在MAXMAXPLUSPLUS软件的软件的 FileFile菜单中打开菜单中打开Combine Combine Programming FilesProgramming Files对话框,在该对话框中组合多个对话框,在该对话框中组合多个.sof.sof文件以形文件以形成一个成一个.pof.pof文件。对文件。对 APEX20KAPEX20K系列器件,系列器件,QuartusQuartus软件提供类似软件提供类似的选项,即在的选项,即在 QuartusQuartus软件的软件的 ProcessingProcessing菜单中选择菜单中选择Compiler Compiler SettingsSettings,并在,并在Compiler SettingsCompiler Settings对话框中点击对话框中点击ChipsChipsDevicesDevices条,然后在条,然后在DeviceDevicePin OptionPin Option对话框中组合多个对话框中组合多个.sof.sof文件以形文件以形成一个成一个.pof.pof文件。文件。(2 2)上拉电阻应该连接到配置器件的电源上。)上拉电阻应该连接到配置器件的电源上。(3 3)除)除APEX20KEAPEX20KE、APEX20KCAPEX20KC系列器件的上拉电阻为系列器件的上拉电阻为10k10k,其它,其它系列器件的上拉电阻为系列器件的上拉电阻为1k1k。EPC16EPC16、EPC8EPC8和和 EPC2EPC2芯片的芯片的OEOE和和nCSnCS引脚端具有内部用户可配置上拉电阻,如果使用了这些引脚的内引脚端具有内部用户可配置上拉电阻,如果使用了这些引脚的内部上拉电阻,则可以不使用外部上拉电阻。部上拉电阻,则可以不使用外部上拉电阻。(4 4)EPC16EPC16和和EPC8EPC8配置芯片不能级联。配置芯片不能级联。(5 5)器件链中最后一个器件的)器件链中最后一个器件的nCEOnCEO引脚端悬空。引脚端悬空。(6 6)nINIT-CONFnINIT-CONF引脚端仅对引脚端仅对EPC16EPC16、EPC8EPC8和和 EPC2EPC2芯片芯片有效。如果有效。如果nINIT-CONFnINIT-CONF无效或未使用,无效或未使用, nCONFIGnCONFIG必须必须直接或通过电阻连接到直接或通过电阻连接到VCCVCC。(7 7)EPC16EPC16、EPC8EPC8和和EPC2EPC2芯片不能用来配置芯片不能用来配置 FLEX FLEX 60006000器件。器件。(8 8)为了保证)为了保证APEX20KEAPEX20KE和其它配置器件在加电时成功和其它配置器件在加电时成功配置,配置,nCONFIGnCONFIG引脚端上拉到引脚端上拉到VCCINTVCCINT。 FPGA的的OTP配置器件使用方法配置器件使用方法EPC1编 译!开始编程 FPGA的的ispFLASH配置器件配置器件 EPC2/4/8/16使用方法使用方法利用利用FLASHFLASH结构的结构的EPC2EPC2为为FPGAFPGA作配置作配置 编 译!使用微处理器配置使用微处理器配置FPGAFPGAMCUMCU用用PPSPPS模式配置模式配置FPGAFPGA电路路用用89C52进行行PS配置配置
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号