《FPGA培训课件.ppt》由会员分享,可在线阅读,更多相关《FPGA培训课件.ppt(43页珍藏版)》请在优知文库上搜索。
1、2023年4月17日星期一1FPGA培训课件2023年4月17日星期一2第一讲内容n 可编程逻辑器件概述n ispXP2芯片介绍n FPGA与CPLD的比较n Vrilog HDL编程语言n 编程实例n ispLEVER7.0开发环境n 作业:数字时钟2023年4月17日星期一3可编程逻辑器件概述PLD的发展历程:2023年4月17日星期一4PLD的分类按集成度分类:2023年4月17日星期一5按结构分类 乘积项结构:大部分简单PLD和CPLD 查找表结构:大多数FPGA按编程工艺分类 熔丝(Fuse)型 反熔丝(Anti-fuse)型 EPROM型,紫外线擦除电可编程逻辑器件 EEPROM型
2、 SRAM型:大部分FPGA器件采用此种编程工艺 Flash型2023年4月17日星期一6简单PLD器件被取代的原因n阵列规模小,资源不够用于设计数字系统n片内寄存器资源不足,难以构成丰富的时序电路nI/O不够灵活n编程不便,需专用的编程工具2023年4月17日星期一7FPGA/CPLD被广泛采用的原因n规模越来越大,单片逻辑门数已愈千万。n开发过程投资小。FPGA/CPLD芯片在出厂前都经过了严格的测试,而且设计灵活,发现错误可直接更改设计,减少了投片风险。n用FPGA/CPLD试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计ASIC根不上技术更新速度,只能依靠FPGA/
3、CPLD完成系统研制与开发。nFPGA/CPLD开发工具智能化,功能强大。n新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可作为SOPC硬件平台。2023年4月17日星期一82023年4月17日星期一9XP2基本结构JTAG & SPI PortssysCLOCK PLLs Frequency Synthesis-Up to 4 per deviceEnhanced Configuration Logicincludes Dual Boot, Decryption & TransFRPre-EngineeredSource SynchronousSupport:DDR2 400Mbp
4、sGeneric 750MbpsOn-Chip OscillatorFlashFlexible sysIO Buffers: LVCMOS, HSTL,SSTL, LVDS, + DSP BlocksMultiply and Accumulate Support ForUp to 32 18X18 MultiplierssysMEM Block RAM 18Kbit Dual PortUp to 885KbitsProgrammable Function Units (PFUs) Up to 40K LUTsFlexible Routing Optimized for Speed, Cost
5、and Routability2023年4月17日星期一10 DeviceXP2-5XP2-8XP2-17XP2-30XP2-40LUTs (K)58172940EBR SRAM Blocks912152148EBR SRAM (Kbits)166221276387885Distributed RAM (Kbits)1018355683# 18x18 Multipliers1216202832PLLs22444Package & IO Combinations132-ball csBGA (8x8mm)8686144-pin TQFP (20 x20mm)100100208-pin PQFP
6、(28x28mm)146146146256-ball ftBGA (17x17mm)172201201201484-ball fpBGA (23x23mm)358363363672-ball fpBGA (27x27mm)472540查找表(Look-Up-Table)简称为LUT,LUT本质上就是是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。 2023年4月17日星期一11FPGA/CPLD比较2023年4月17日星期一12什么是什么是Verilog HDLVerilog HDL? Verilog HDL Verilog H
7、DL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。式地进行时序建模。Verilog HDLVerilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,
8、包括模拟的具体控制和运行。计外部访问设计,包括模拟的具体控制和运行。Verilog HDLVerilog HDL语言不仅定义了语语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用编写的模型能够使用Ve r i l o gVe r i l o g仿真器进行验证。语言从仿真器进行验证。语言从C C编程语言中继承了编程语言中继承了多种操作符和结构。多种操作符和结构。Verilog HDLVerilog HDL语言的核心子集非常易于学习和使用,完整的语言的核心子集非常易于学习和使用,
9、完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog “Tell me how your circuit should behave and I will give youthe hardware that does the job.”2023年4月17日星期一13功能模块:2023年4月17日星期一14结构模块:2023年4月17日星期一15RTL综合:lRegister Transfer Level (RTL) - A type of behavioral modeling, for the purpose
10、 of synthesis. Hardware is implied or inferred SynthesizablelSynthesis - Translating HDL to a circuit and then optimizing the represented circuitlRTL Synthesis - The process of translating a RTL model of hardware into an optimized technology specific gate level implementation2023年4月17日星期一16RTL综合:202
11、3年4月17日星期一17典型综合流程:2023年4月17日星期一18典型仿真流程:2023年4月17日星期一19基本模块结构:2023年4月17日星期一20PORTS声明:2023年4月17日星期一21DATA类型声明:2023年4月17日星期一22assign语句:2023年4月17日星期一23assign语句:2023年4月17日星期一24Always 语句:语句:nIf there are more than one behavioral statement inside an always block, the statements can be grouped using the k
12、eywords begin and end.n此语句总是循环执行。n只有寄存器类型数据能够在这种语句中被赋值。所有的a l w a y s语句在0时刻并发执行。2023年4月17日星期一25阻塞性过程赋值:n赋值操作符是赋值操作符是“=” =” 。阻塞性过程赋值在其后所有语句执行前执。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示:行,即在下一语句执行前该赋值语句完成执行。如下所示:na l w a y s (a l w a y s (A A o r o r B B o r o r C i nC i n) )nb e g i nb e g i nn T
13、1 T 1 = = A A & & B B; ;n T 2 T 2 = = B B & & C i nC i n; ;n T 3 T 3 = = A A & & C i nC i n; ;n C o u t C o u t = = T 1 T 1 | | T 2 T 2 | | T 3T 3; ;ne n de n dnT 1T 1赋值首先发生,计算赋值首先发生,计算T 1T 1;接着执行第二条语句,;接着执行第二条语句,T 2T 2被赋值;被赋值;然后执行第三条语句,然后执行第三条语句,T 3T 3被赋值;依此类推。被赋值;依此类推。nexecuted in the order they a
14、re specified in a sequential block2023年4月17日星期一26非阻塞性过程赋值:n非阻塞性过程赋值使用赋值符号“ =”。例如:nb e g i nnL o a d = 32;nR e g A = L o a d;nR e g B = S t o r e;ne n dnallow scheduling of assignments without blocking execution of the statements that follow in a sequential block .n Recommended: Use Nonblocking assig
15、nments for clocked processes when writing synthesizable code.2023年4月17日星期一27Always 语句:语句:2023年4月17日星期一28Always 语句:语句:2023年4月17日星期一29If-Else Statements2023年4月17日星期一30Case Statement2023年4月17日星期一31Clocked ProcessnNonblocking assignments (=) are used for clockedprocesses2023年4月17日星期一32Function2023年4月17日
16、星期一33Function- Multiplier2023年4月17日星期一34ispLEVER设计流程图 2023年4月17日星期一35System Stimulation2023年4月17日星期一36实例:2023年4月17日星期一37Design Blockmodule counter( clk,clr,f,d,q );input clk;input clr;input 1:0f;input 7:0d;output 7:0q;wire clk;wire clr;wire 1:0f;wire 7:0d;reg 7:0q;always(posedge clk or posedge clr)begin if(clr) q=8h00; else case(f) 2b00: q=d; /loads the counter 2b01: q=q+1; /counts up 2b10: q=q-1; /counts down 2b11: q=q; endcaseendendmodule2023年4月17日星期一38Stimulus Blocktimescale 100ps/1ps module