王巍王巍1382077961313820779613wangweibit@163.comwangweibit@163.com中际赛威FPGA技术培训系列课程FPGASystemDesignPrimerFPGASystemDesignPrimer版权归作者所有,禁止未经授权的商业使用行为V10.1.3.201005.ShanghaiFPGASystemDesignPrimer,2010年5月22日2致谢•本课程主要内容来自Xilinx全球大学计划ProfessorWorkshops英文版和Xilinx其它相关技术材料。Xilinx公司是世界可编程逻辑器件设计、生产和开发技术的领导者,拥有昀先进的可编程逻辑器件产品和完整的技术解决方案。•一些内容来自各种FPGA技术书籍和技术论坛,它们的作者拥有丰富的理论知识和设计经验,使我受益匪浅。•Xilinx公司中国区大学计划经理谢凯年博士对课程建设提供了大力帮助。•对谢凯年博士和以上材料的作者们表示衷心的感谢!FPGASystemDesignPrimer,2010年5月22日3学习目标掌握FPGA基本结构以及Xilinx工具设计流程理解掌握FPGA基本设计方法与技巧理解并使用8-bit微控制器PicoBlaze掌握FPGA基本配置方法掌握基本时钟系统结构,使用ArchitectureWizard配置DCM掌握使用COREGenerator在设计中填加IPCores理解掌握全局时序约束和管脚约束,使用约束编辑器理解静态时序分析报告,查找设计瓶颈理解掌握不同的“综合”参数对性能改善的作用理解掌握不同的“实现”参数对性能的影响理解掌握FPGA设计时序收敛流程使用Chipscope-Pro进行片上验证FPGASystemDesignPrimer,2010年5月22日4学习内容•FPGA技术概述•FPGA基本结构•Xilinx工具流程•XilinxPicoBlaze微控制器–实验1:XilinxToolFlow•FPGA基本配置方法•ArchitectureWizard和PACE–实验2:ArchitectureWizardandPACE•全局时序约束•查看设计报告–实验3:GlobalTimingConstraintsFPGASystemDesignPrimer,2010年5月22日5•FPGA设计方法与技巧•同步设计技术•设计综合–实验4:SynthesisTechniques•设计实现•COREGenerator™系统–实验5:COREGeneratorSystem•Chipscope-Pro–实验6:Chipscope-Pro•FPGA系统设计环境概述•课程总结:时序收敛流程学习内容FPGASystemDesignPrimer,2010年5月22日6学习基础HDL语言基础知识(VHDL或者Verilog)数字系统设计基本知识和经验8-bit微控制器基本结构和使用经验王巍王巍1382077961313820779613wangweibit@163.comwangweibit@163.com引言FPGASystemDesignPrimer,2010年5月22日8几个小问题?几个小问题?模拟电路模拟电路Vs.Vs.数字电路数字电路??异步电路异步电路Vs.Vs.同步电路同步电路??软件软件Vs.Vs.硬件硬件??系统带宽系统带宽Vs.Vs.系统速度系统速度??FPGASystemDesignPrimer,2010年5月22日9模拟电路模拟电路Vs.Vs.数字电路数字电路??FPGASystemDesignPrimer,2010年5月22日10处理单元:构成各种数字系统的核心处理单元通常可分为三类–ISA处理单元–硬连线结构处理单元–可重构处理单元处理单元处理处理单元单元MPUMPUMPUDSPDSPDSPASICASICASICFPGAFPGAFPGA模拟电路模拟电路Vs.Vs.数字电路数字电路??FPGASystemDesignPrimer,2010年5月22日11异步电路异步电路Vs.Vs.同步电路同步电路??FPGASystemDesignPrimer,2010年5月22日12软件软件Vs.Vs.硬件硬件??FPGASystemDesignPrimer,2010年5月22日13软件无线电FPGASystemDesignPrimer,2010年5月22日14•目前的ADC与DAC不能在保证低硬件开销的情况下采样RF信号。•使用传统的模拟混频技术来产生IF信号:IF软件无线电FPGASystemDesignPrimer,2010年5月22日15FPGA和DSP处理器配合使用-DSP作主处理器,FPGA作协处理器对于性能要求极高的应用,可将复杂算法划分成底层部分和高层部分,结合DSP和FPGA各自的结构和功能特点,将算法的各个部分映射到不同的硬件模块上,在系统功能上实现互补。底层部分用于数据处理量大,速度要求高,但是运算结构相对比较简单的算法,适于用FPGA硬件的高度并行性实现,可同时兼顾速度及灵活性。例如,一定长度的FFT/IFFT、脉冲压缩、脉冲积累、FIR滤波以及矩阵转置等算法,都可以用FPGA实现。高层部分处理的特点是所处理的数据量较低层部分少,但算法的控制结构复杂,适于用运算速度高、寻址方式灵活、通信机制强大的DSP芯片来实现。“FPGA+DSP”结构是目前高性能处理系统的主流方式。这种结构非常灵活,有较强的通用性,适于模块化设计,有利于提高算法效率,缩短开发周期,并易于维护和扩展。FPGASystemDesignPrimer,2010年5月22日16FPGA+DSP高性能处理系统的一个例子FPGASystemDesignPrimer,2010年5月22日17FPGA+DSP高性能处理系统的一个例子FPGASystemDesignPrimer,2010年5月22日18FPGA+DSP高性能处理系统的一个例子王巍王巍1382077961313820779613wangweibit@163.comwangweibit@163.comFPGA基本结构FPGASystemDesignPrimer,2010年5月22日20本节学习目标完成这个模块的学习后,你将能够:•描述Virtex™-IIFPGA的结构和资源•明确Virtex-II,Virtex-IIPro,Spartan™-3,以及Spartan-3E器件的区别•描述Virtex-4系列器件的新特点和功能FPGASystemDesignPrimer,2010年5月22日21提纲•Overview•SliceResources•I/OResources•MemoryandClocking•Spartan-3,Spartan-3E,andVirtex-IIProFeatures•Virtex-4/5Features•SummaryFPGASystemDesignPrimer,2010年5月22日22概述•所有的XilinxFPGA包含以下基本资源–Slices(每4个组合成1个CLB)•包含组合逻辑和flip-flop资源–IOBs•连接FPGA与外围电路–PI(Programmableinterconnect)–其它资源•Memory•Multipliers•Globalclockbuffers•BoundaryscanlogicFPGASystemDesignPrimer,2010年5月22日24•••••MGTMGTMGTMGTFabricPowerPC405Core300+MHz/450+DMIPSPerformanceUpto4perdevice3.125GbpsMulti-GigabitTransceivers(MGTs)Supports10GbpsstandardsUpto24perdevice•IP-Immersion™Fabric•ActiveInterconnect™•18KbDual-PortRAM•Xtreme™Multipliers•16GlobalClockDomainsVirtex-IIProPlatformFPGAFPGASystemDesignPrimer,2010年5月22日25提纲•Overview•SliceResources•I/OResources•MemoryandClocking•Spartan-3,Spartan-3E,andVirtex-IIProFeatures•Virtex-4Features•SummaryFPGASystemDesignPrimer,2010年5月22日26Slices和CLBs•每个Virtex-IICLB包含4个slices–本地布线资源(Localrouting)提供在同一个CLB内Slices之间的连接,以及与相邻CLBs的连接–Switchmatrix提供Slices与通用布线资源的连接CINSwitchMatrixBUFTBUFTCOUTCOUTSliceS0SliceS1LocalRoutingSliceS2SliceS3CINSHIFTFPGASystemDesignPrimer,2010年5月22日27Slice0LUTLUTCarryCarryLUTLUTCarryCarryDQCEPRECLRDQCEPRECLR简化的Slice结构•每个slice有4个输出–2个registeredoutputs,2个non-registeredoutputs–每个CLB有2个BUFTs,可以被全部16个输出访问•进位逻辑(Carrylogic)仅仅垂直向上布线–每个CLB有2个独立的进位链FPGASystemDesignPrimer,2010年5月22日28详细的Slice结构•以下几张slides讨论Slice的详细特性–LUTs–MUXF5,MUXF6,MUXF7,MUXF8(图中只画出F5和F6MUX)–CarryLogic–MULT_ANDs–时序元件(SequentialElements)FPGASystemDesignPrimer,2010年5月22日29CombinatorialLogicABCDZ查找表(Look-UpTables)•组合逻辑可以存储在Look-UpTables中–也称查找表为函数发生器(FunctionGenerators,FGs)–查找表的能力取决于输入数,而不是复杂程度•查找表的延迟为常数(tilo)ABCDZ000000001000100001110100101011...11000110101110011111FPGASystemDesignPrimer,2010年5月22日30Look-UpTables的互连F5F8F5F6CLBSliceS3SliceS2SliceS0SliceS1F5F7F5F6MUXF8连接两个MUXF7的输出(分别来自上、下两个CLB)MUXF6连接slicesS2和S3MUXF7连接两个MUXF6的输出MUXF6连接slicesS0和S1的输出MUXF5连接每个Slice中的2个LUTs的输出FPGASystemDesignPrimer,2010年5月22日31快速进位逻辑(FastCarryLogic)•简单、快速和完整的算术逻辑–用于单级求和运算的专用XOR门–使用专用的布线资源–所有综合工具均支持快速进位逻辑的推译(infer)COUTCOUTSLICES0SLICES1SecondCarryChainToS0ofthenextCLBToCINofS2ofthenextCLBFirstCarryChainSLICES3SLICES2COUTCOUTCINCINCINCINCLBFPGASystemDesignPrimer,2010年5月22日32DCEPRECLRQFDCPEDCESRQFDRSEDCEPRECLRQLDCPEG_1灵活的时序单元(SequentialElements)•可以配置成flip-fl