1、FPGA培训第1页,共44页。第一讲内容n 可编程逻辑器件概述n ispXP2芯片介绍n FPGA与CPLD的比较n Vrilog HDL编程语言n 编程实例n ispLEVER7.0开发环境n 作业:数字时钟7/30/20222全国大学生电子设计竞赛-FPGA培训第2页,共44页。可编程逻辑器件概述PLD的发展历程:7/30/20223全国大学生电子设计竞赛-FPGA培训第3页,共44页。PLD的分类按集成度分类:7/30/20224全国大学生电子设计竞赛-FPGA培训第4页,共44页。按结构分类 乘积项结构:大部分简单PLD和CPLD 查找表结构:大多数FPGA按编程工艺分类 熔丝(Fus
2、e)型 反熔丝(Anti-fuse)型 EPROM型,紫外线擦除电可编程逻辑器件 EEPROM型 SRAM型:大部分FPGA器件采用此种编程工艺 Flash型7/30/20225全国大学生电子设计竞赛-FPGA培训第5页,共44页。简单PLD器件被取代的原因n阵列规模小,资源不够用于设计数字系统n片内寄存器资源不足,难以构成丰富的时序电路nI/O不够灵活n编程不便,需专用的编程工具7/30/20226全国大学生电子设计竞赛-FPGA培训第6页,共44页。FPGA/CPLD被广泛采用的原因n规模越来越大,单片逻辑门数已愈千万。n开发过程投资小。FPGA/CPLD芯片在出厂前都经过了严格的测试,而
3、且设计灵活,发现错误可直接更改设计,减少了投片风险。n用FPGA/CPLD试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计ASIC根不上技术更新速度,只能依靠FPGA/CPLD完成系统研制与开发。nFPGA/CPLD开发工具智能化,功能强大。n新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可作为SOPC硬件平台。7/30/20227全国大学生电子设计竞赛-FPGA培训第7页,共44页。7/30/20228全国大学生电子设计竞赛-FPGA培训第8页,共44页。XP2基本结构JTAG&SPI PortssysCLOCK PLLs Frequency Synthesis
4、-Up to 4 per deviceEnhanced Configuration Logicincludes Dual Boot,Decryption&TransFRPre-EngineeredSource SynchronousSupport:DDR2 400MbpsGeneric 750MbpsOn-Chip OscillatorFlashFlexible sysIO Buffers:LVCMOS,HSTL,SSTL,LVDS,+DSP BlocksMultiply and Accumulate Support ForUp to 32 18X18 MultiplierssysMEM Bl
5、ock RAM 18Kbit Dual PortUp to 885KbitsProgrammable Function Units(PFUs)Up to 40K LUTsFlexible Routing Optimized for Speed,Cost and Routability7/30/20229全国大学生电子设计竞赛-FPGA培训第9页,共44页。DeviceXP2-5XP2-8XP2-17XP2-30XP2-40LUTs(K)58172940EBR SRAM Blocks912152148EBR SRAM(Kbits)166221276387885Distributed RAM(Kb
6、its)1018355683#18x18 Multipliers1216202832PLLs22444Package&IO Combinations132-ball csBGA(8x8mm)8686144-pin TQFP(20 x20mm)100100208-pin PQFP(28x28mm)146146146256-ball ftBGA(17x17mm)172201201201484-ball fpBGA(23x23mm)358363363672-ball fpBGA(27x27mm)472540查找表(Look-Up-Table)简称为LUT,LUT本质上就是是一个RAM。它把数据事先写
7、入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。7/30/202210全国大学生电子设计竞赛-FPGA培训第10页,共44页。FPGA/CPLD比较7/30/202211全国大学生电子设计竞赛-FPGA培训第11页,共44页。什么是什么是Verilog HDLVerilog HDL?Verilog HDL Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统建
8、模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDLVerilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。拟的具体控制和运行。Verilog HDLVerilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语
9、义。因此,用这种语言编写的模型能够使用真语义。因此,用这种语言编写的模型能够使用Ve r i l o gVe r i l o g仿真器进行验证。语言从仿真器进行验证。语言从C C编程语言中继承编程语言中继承了多种操作符和结构。了多种操作符和结构。Verilog HDLVerilog HDL语言的核心子集非常易于学习和使用,完整的硬件描述语言足以对从语言的核心子集非常易于学习和使用,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。最复杂的芯片到完整的电子系统进行描述。Verilog“Tell me how your circuit should behave and I will
10、 give youthe hardware that does the job.”7/30/202212全国大学生电子设计竞赛-FPGA培训第12页,共44页。功能模块:7/30/202213全国大学生电子设计竞赛-FPGA培训第13页,共44页。结构模块:7/30/202214全国大学生电子设计竞赛-FPGA培训第14页,共44页。RTL综合:lRegister Transfer Level(RTL)-A type of behavioral modeling,for the purpose of synthesis.Hardware is implied or inferred Synth
11、esizablelSynthesis-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 implementation7/30/202215全国大学生电子设计竞赛-FPGA培训第15页,共44页。RTL综合:7/30/202216全国大学生电子设计竞赛-FPGA培训第16页,共
12、44页。典型综合流程:7/30/202217全国大学生电子设计竞赛-FPGA培训第17页,共44页。典型仿真流程:7/30/202218全国大学生电子设计竞赛-FPGA培训第18页,共44页。基本模块结构:7/30/202219全国大学生电子设计竞赛-FPGA培训第19页,共44页。PORTS声明:7/30/202220全国大学生电子设计竞赛-FPGA培训第20页,共44页。DATA类型声明:7/30/202221全国大学生电子设计竞赛-FPGA培训第21页,共44页。assign语句:7/30/202222全国大学生电子设计竞赛-FPGA培训第22页,共44页。assign语句:7/30/2
13、02223全国大学生电子设计竞赛-FPGA培训第23页,共44页。Always 语句:语句:nIf there are more than one behavioral statement inside an always block,the statements can be grouped using the keywords begin and end.n此语句总是循环执行。n只有寄存器类型数据能够在这种语句中被赋值。所有的a l w a y s语句在0时刻并发执行。7/30/202224全国大学生电子设计竞赛-FPGA培训第24页,共44页。阻塞性过程赋值:n赋值操作符是赋值操作符是“
14、=”=”。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示:执行前该赋值语句完成执行。如下所示: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 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
15、赋值首先发生,计算赋值首先发生,计算T 1T 1;接着执行第二条语句,;接着执行第二条语句,T 2T 2被赋值;然后执行第被赋值;然后执行第三条语句,三条语句,T 3T 3被赋值;依此类推。被赋值;依此类推。nexecuted in the order they are specified in a sequential block7/30/202225全国大学生电子设计竞赛-FPGA培训第25页,共44页。非阻塞性过程赋值: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
16、dnallow scheduling of assignments without blocking execution of the statements that follow in a sequential block.n Recommended:Use Nonblocking assignments for clocked processes when writing synthesizable code.7/30/202226全国大学生电子设计竞赛-FPGA培训第26页,共44页。Always 语句:语句:7/30/202227全国大学生电子设计竞赛-FPGA培训第27页,共44页。
17、Always 语句:语句:7/30/202228全国大学生电子设计竞赛-FPGA培训第28页,共44页。If-Else Statements7/30/202229全国大学生电子设计竞赛-FPGA培训第29页,共44页。Case Statement7/30/202230全国大学生电子设计竞赛-FPGA培训第30页,共44页。Clocked ProcessnNonblocking assignments(=)are used for clockedprocesses7/30/202231全国大学生电子设计竞赛-FPGA培训第31页,共44页。Function7/30/202232全国大学生电子设计
18、竞赛-FPGA培训第32页,共44页。Function-Multiplier7/30/202233全国大学生电子设计竞赛-FPGA培训第33页,共44页。ispLEVER设计流程图 7/30/202234全国大学生电子设计竞赛-FPGA培训第34页,共44页。System Stimulation7/30/202235全国大学生电子设计竞赛-FPGA培训第35页,共44页。实例:7/30/202236全国大学生电子设计竞赛-FPGA培训第36页,共44页。Design Blockmodule counter(clk,clr,f,d,q);input clk;input clr;input 1:0
19、f;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;endcaseendendmodule7/30/202237全国大学生电子设计竞赛-FPGA培训第37页,共44页。Stimulus Blocktimesca
20、le 100ps/1ps module tb;/inputreg clk;reg clr;reg 1:0f;reg 7:0d;/outputwire 7:0q;counter tb(.clk(clk),.clr(clr),.f(f),.d(d),.q(q);initial begin clk=0;forever#1 clk=clk;endinitial begin clr=1;d=8h00;f=2b00;#10 f=2b10;#10 f=2b01;#10 clr=0;#512 f=2b11;#10 f=2b10;#512 f=2b11;endendmodule7/30/202238全国大学生电
21、子设计竞赛-FPGA培训第38页,共44页。数字时钟n自制版上按钮按下、蜂鸣器鸣叫。n四个数码管初始数值显示“0、0、0、0”。n设定自制版从左至右,数码管名称4、3、2、1。n数码管1、2显示分钟,数值显示“0”“60”;n数码管3、4显示小时,数值显示“0”“24”;n数码管3上的点表示秒闪;n设定其中一个按钮为k1,按下分钟当前显示值加一。n设定另外一个按钮为k2,按下小时当前显示值加一。7/30/202239全国大学生电子设计竞赛-FPGA培训第39页,共44页。Top图:详见参考程序7/30/202240全国大学生电子设计竞赛-FPGA培训第40页,共44页。7/30/202241全
22、国大学生电子设计竞赛-FPGA培训第41页,共44页。参考资料目录:VerilogVerilog编程规范编程规范.pdf.pdfVerilog HDLVerilog HDL硬件描述语言硬件描述语言.pdf.pdfispLEVERispLEVER使用指南使用指南(FPGA(FPGA部分部分).pdf).pdfISPMACRO.PDFISPMACRO.PDFXP2XP2管脚定义管脚定义.doc.docVerilog HDLVerilog HDL语言编程模板语言编程模板.doc.docFPGAFPGA电路板图电路板图7/30/202242全国大学生电子设计竞赛-FPGA培训第42页,共44页。参考资料目录:n时钟程序部分参考.docnLatticeXP2 Family Handbook.pdfnXP2-5-144-TQFP.pdf7/30/202243全国大学生电子设计竞赛-FPGA培训第43页,共44页。演讲完毕,谢谢观看!第44页,共44页。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。