FPGA培训课件.ppt
1,FPGA培训课件,2,第一讲内容,可编程逻辑器件概述 ispXP2芯片介绍 FPGA与CPLD的比较 Vrilog HDL编程语言 编程实例 ispLEVER7.0开发环境 作业:数字时钟,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,3,可编程逻辑器件概述,PLD的发展历程:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,4,PLD的分类,按集成度分类:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,5,按结构分类 乘积项结构:大部分简单PLD和CPLD 查找表结构:大多数FPGA按编程工艺分类 熔丝(Fuse)型 反熔丝(Anti-fuse)型 EPROM型,紫外线擦除电可编程逻辑器件 EEPROM型 SRAM型:大部分FPGA器件采用此种编程工艺 Flash型,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,6,简单PLD器件被取代的原因,阵列规模小,资源不够用于设计数字系统片内寄存器资源不足,难以构成丰富的时序电路I/O不够灵活编程不便,需专用的编程工具,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,7,FPGA/CPLD被广泛采用的原因,规模越来越大,单片逻辑门数已愈千万。开发过程投资小。FPGA/CPLD芯片在出厂前都经过了严格的测试,而且设计灵活,发现错误可直接更改设计,减少了投片风险。用FPGA/CPLD试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计ASIC根不上技术更新速度,只能依靠FPGA/CPLD完成系统研制与开发。FPGA/CPLD开发工具智能化,功能强大。新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可作为SOPC硬件平台。,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,8,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,9,XP2基本结构,JTAG&SPI Ports,sysCLOCK PLLs Frequency Synthesis-Up to 4 per device,Enhanced Configuration Logicincludes Dual Boot,Decryption&TransFR,Pre-EngineeredSource SynchronousSupport:DDR2 400MbpsGeneric 750Mbps,On-Chip Oscillator,Flash,Flexible sysIO Buffers:LVCMOS,HSTL,SSTL,LVDS,+,DSP BlocksMultiply and Accumulate Support ForUp to 32 18X18 Multipliers,sysMEM Block RAM 18Kbit Dual PortUp to 885Kbits,Programmable Function Units(PFUs)Up to 40K LUTs,Flexible Routing Optimized for Speed,Cost and Routability,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,10,查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,11,FPGA/CPLD比较,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,12,什么是Verilog HDL?,Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Ve r i l o g仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL语言的核心子集非常易于学习和使用,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog“Tell me how your circuit should behave and I will give youthe hardware that does the job.”,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,13,功能模块:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,14,结构模块:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,15,RTL综合:,Register Transfer Level(RTL)-A type of behavioral modeling,for the purpose of synthesis.Hardware is implied or inferred SynthesizableSynthesis-Translating HDL to a circuit and then optimizing the represented circuitRTL Synthesis-The process of translating a RTL model of hardware into an optimized technology specific gate level implementation,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,16,RTL综合:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,17,典型综合流程:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,18,典型仿真流程:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,19,基本模块结构:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,20,PORTS声明:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,21,DATA类型声明:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,22,assign语句:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,23,assign语句:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,24,Always 语句:,If there are more than one behavioral statement inside an always block,the statements can be grouped using the keywords begin and end.此语句总是循环执行。只有寄存器类型数据能够在这种语句中被赋值。所有的a l w a y s语句在0时刻并发执行。,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,25,阻塞性过程赋值:,赋值操作符是“=”。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示:a l w a y s(A o r B o r C i n)b e g i n T 1=A e n dT 1赋值首先发生,计算T 1;接着执行第二条语句,T 2被赋值;然后执行第三条语句,T 3被赋值;依此类推。executed in the order they are specified in a sequential block,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,26,非阻塞性过程赋值:,非阻塞性过程赋值使用赋值符号“=”。例如:b e g i nL o a d=32;R e g A=L o a d;R e g B=S t o r e;e n dallow scheduling of assignments without blocking execution of the statements that follow in a sequential block.Recommended:Use Nonblocking assignments for clocked processes when writing synthesizable code.,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,27,Always 语句:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,28,Always 语句:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,29,If-Else Statements,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,30,Case Statement,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,31,Clocked Process,Nonblocking assignments(=)are used for clockedprocesses,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,32,Function,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,33,Function-Multiplier,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,34,ispLEVER设计流程图,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,35,System Stimulation,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,36,实例:,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,37,Design Block,module 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;endcaseendendmodule,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,38,Stimulus Block,timescale 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;endendmodule,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,39,数字时钟,自制版上按钮按下、蜂鸣器鸣叫。四个数码管初始数值显示“0、0、0、0”。设定自制版从左至右,数码管名称4、3、2、1。数码管1、2显示分钟,数值显示“0”“60”;数码管3、4显示小时,数值显示“0”“24”;数码管3上的点表示秒闪;设定其中一个按钮为k1,按下分钟当前显示值加一。设定另外一个按钮为k2,按下小时当前显示值加一。,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,40,Top图:,详见参考程序,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,41,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,42,参考资料目录:,Verilog编程规范.pdfVerilog HDL硬件描述语言.pdfispLEVER使用指南(FPGA部分).pdfISPMACRO.PDFXP2管脚定义.docVerilog HDL语言编程模板.docFPGA电路板图,2023年2月27日星期一,全国大学生电子设计竞赛-FPGA培训,43,参考资料目录:,时钟程序部分参考.docLatticeXP2 Family Handbook.pdfXP2-5-144-TQFP.pdf,