您好,欢迎访问三七文档
2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训1FPGA培训2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训2第一讲内容可编程逻辑器件概述ispXP2芯片介绍FPGA与CPLD的比较VrilogHDL编程语言编程实例ispLEVER7.0开发环境作业:数字时钟2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训3可编程逻辑器件概述PLD的发展历程:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训4PLD的分类按集成度分类:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训5按结构分类乘积项结构:大部分简单PLD和CPLD查找表结构:大多数FPGA按编程工艺分类熔丝(Fuse)型反熔丝(Anti-fuse)型EPROM型,紫外线擦除电可编程逻辑器件EEPROM型SRAM型:大部分FPGA器件采用此种编程工艺Flash型2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训6简单PLD器件被取代的原因阵列规模小,资源不够用于设计数字系统片内寄存器资源不足,难以构成丰富的时序电路I/O不够灵活编程不便,需专用的编程工具2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训7FPGA/CPLD被广泛采用的原因规模越来越大,单片逻辑门数已愈千万。开发过程投资小。FPGA/CPLD芯片在出厂前都经过了严格的测试,而且设计灵活,发现错误可直接更改设计,减少了投片风险。用FPGA/CPLD试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计ASIC根不上技术更新速度,只能依靠FPGA/CPLD完成系统研制与开发。FPGA/CPLD开发工具智能化,功能强大。新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可作为SOPC硬件平台。2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训82019年9月15日星期日全国大学生电子设计竞赛----FPGA培训9XP2基本结构JTAG&SPIPortssysCLOCKPLLsFrequencySynthesis-Upto4perdeviceEnhancedConfigurationLogicincludesDualBoot,Decryption&TransFRPre-EngineeredSourceSynchronousSupport:DDR2–400MbpsGeneric–750MbpsOn-ChipOscillatorFlashFlexiblesysIOBuffers:LVCMOS,HSTL,SSTL,LVDS,++DSPBlocksMultiplyandAccumulateSupportForUpto3218X18MultiplierssysMEMBlockRAM18KbitDualPortUpto885KbitsProgrammableFunctionUnits(PFUs)Upto40KLUTsFlexibleRoutingOptimizedforSpeed,CostandRoutability2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训10DeviceXP2-5XP2-8XP2-17XP2-30XP2-40LUTs(K)58172940EBRSRAMBlocks912152148EBRSRAM(Kbits)166221276387885DistributedRAM(Kbits)1018355683#18x18Multipliers1216202832PLLs22444Package&IOCombinations132-ballcsBGA(8x8mm)8686144-pinTQFP(20x20mm)100100208-pinPQFP(28x28mm)146146146256-ballftBGA(17x17mm)172201201201484-ballfpBGA(23x23mm)358363363672-ballfpBGA(27x27mm)472540查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训11FPGA/CPLD比较2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训12什么是VerilogHDL?VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。VerilogHDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。VerilogHDL语言的核心子集非常易于学习和使用,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog–“TellmehowyourcircuitshouldbehaveandIwillgiveyouthehardwarethatdoesthejob.”2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训13功能模块:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训14结构模块:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训15RTL综合:RegisterTransferLevel(RTL)-Atypeofbehavioralmodeling,forthepurposeofsynthesis.–Hardwareisimpliedorinferred–SynthesizableSynthesis-TranslatingHDLtoacircuitandthenoptimizingtherepresentedcircuitRTLSynthesis-TheprocessoftranslatingaRTLmodelofhardwareintoanoptimizedtechnologyspecificgatelevelimplementation2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训16RTL综合:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训17典型综合流程:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训18典型仿真流程:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训19基本模块结构:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训20PORTS声明:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训21DATA类型声明:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训22assign语句:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训23assign语句:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训24Always语句:Iftherearemorethanonebehavioralstatementinsideanalwaysblock,thestatementscanbegroupedusingthekeywordsbeginandend.此语句总是循环执行。只有寄存器类型数据能够在这种语句中被赋值。所有的always语句在0时刻并发执行。2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训25阻塞性过程赋值:赋值操作符是“=”。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示:always@(AorBorCin)beginT1=A&B;T2=B&Cin;T3=A&Cin;Cout=T1|T2|T3;endT1赋值首先发生,计算T1;接着执行第二条语句,T2被赋值;然后执行第三条语句,T3被赋值;依此类推。executedintheordertheyarespecifiedinasequentialblock2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训26非阻塞性过程赋值:非阻塞性过程赋值使用赋值符号“=”。例如:beginLoad=32;RegA=Load;RegB=Store;endallowschedulingofassignmentswithoutblockingexecutionofthestatementsthatfollowinasequentialblock.–Recommended:UseNonblockingassignmentsforclockedprocesseswhenwritingsynthesizablecode.2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训27Always语句:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训28Always语句:2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训29If-ElseStatements2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训30CaseStatement2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训31ClockedProcessNonblockingassignments(=)areusedforclockedprocesses2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训32Function2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训33Function-Multiplier2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训34ispLEVER设计流程图2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训35SystemStimulation2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训36实例:D0D1D2D3D4D5D6D7CLKCLRF0F1Q0Q1Q2Q3Q4Q5Q6Q7CLRCLKF1F0Q0↑00D0↑01Q+10↑10Q-10↑11Q1XXX0COUNTER2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训37DesignBlockmodulecounter(clk,clr,f,d,q);inputclk;inputclr;input[1:0]f;input[7:0]d;output[7:0]q;wireclk;wireclr;wire[1:0]f;wire[7:0]d;reg[7:0]q;always@(posedgeclkorposedgeclr)beginif(clr)q=8'h00;elsecase(f)2'b00:q=d;//loadsthecounter2'b01:q=q+1;//countsup2'b10:q=q-1;//countsdown2'b11:q=q;endcaseendendmodule2019年9月15日星期日全国大学生电子设计竞赛----FPGA培训38StimulusBlock`timescale100ps/1psmoduletb;//inputregclk;regclr;reg[1:0]f;re
本文标题:FPGA培训
链接地址:https://www.777doc.com/doc-958156 .html