资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,06 十一月 2024,1,FPGA,培训课件,06 十一月 2024,2,第一讲内容,可编程逻辑器件概述,ispXP2,芯片介绍,FPGA,与,CPLD,的比较,Vrilog HDL,编程语言,编程实例,ispLEVER7.0,开发环境,作业:数字时钟,06 十一月 2024,3,可编程逻辑器件概述,PLD,的发展历程:,06 十一月 2024,4,PLD,的分类,按集成度分类,:,06 十一月 2024,5,按结构分类,乘积项结构:大部分简单,PLD,和,CPLD,查找表结构:大多数,FPGA,按编程工艺分类,熔丝,(Fuse),型,反熔丝,(Anti-fuse),型,EPROM,型,紫外线擦除电可编程逻辑器件,EEPROM,型,SRAM,型:大部分,FPGA,器件采用此种编程工艺,Flash,型,06 十一月 2024,6,简单,PLD,器件被取代的原因,阵列规模小,资源不够用于设计数字系统,片内寄存器资源不足,难以构成丰富的时序电路,I/O,不够灵活,编程不便,需专用的编程工具,06 十一月 2024,7,FPGA/CPLD,被广泛采用的原因,规模越来越大,单片逻辑门数已愈千万。,开发过程投资小。,FPGA/CPLD,芯片在出厂前都经过了严格的测试,而且设计灵活,发现错误可直接更改设计,减少了投片风险。,用,FPGA/CPLD,试制功能样机,能以最快速度占领市场。有些领域,标准协议发展太快,设计,ASIC,根不上技术更新速度,只能依靠,FPGA/CPLD,完成系统研制与开发。,FPGA/CPLD,开发工具智能化,功能强大。,新型,FPGA,内嵌,CPU,或,DSP,内核,支持软硬件协同设计,可作为,SOPC,硬件平台。,06 十一月 2024,8,06 十一月 2024,9,XP2,基本结构,JTAG&SPI Ports,sysCLOCK PLLs,Frequency Synthesis,-Up to 4 per device,Enhanced Configuration Logic,includes Dual Boot,Decryption&TransFR,Pre-Engineered,Source Synchronous,Support:,DDR2 400Mbps,Generic 750Mbps,On-Chip Oscillator,Flash,Flexible sysIO Buffers:,LVCMOS,HSTL,SSTL,LVDS,+,DSP Blocks,Multiply and Accumulate Support For,Up to 32 18X18 Multipliers,sysMEM,Block RAM 18Kbit,Dual Port,Up to 885Kbits,Programmable Function Units(PFUs),Up to 40K LUTs,Flexible Routing,Optimized for Speed,Cost and Routability,06 十一月 2024,10,Device,XP2-5,XP2-8,XP2-17,XP2-30,XP2-40,LUTs,(K),5,8,17,29,40,EBR SRAM Blocks,9,12,15,21,48,EBR SRAM,(Kbits),166,221,276,387,885,Distributed RAM,(Kbits),10,18,35,56,83,#18x18 Multipliers,12,16,20,28,32,PLLs,2,2,4,4,4,Package&IO Combinations,132-ball csBGA(8x8mm),86,86,144-pin TQFP(20 x20mm),100,100,208-pin PQFP(28x28mm),146,146,146,256-ball ftBGA(17x17mm),172,201,201,201,484-ball fpBGA(23x23mm),358,363,363,672-ball fpBGA(27x27mm),472,540,查找表(,Look-Up-Table),简称为,LUT,,,LUT,本质上就,是,一个,RAM,。它把数据事先,写入,RAM,后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,,然后输出。,06 十一月 2024,11,FPGA/CPLD,比较,06 十一月 2024,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 you,the hardware that does the job.,”,06 十一月 2024,13,功能模块,:,06 十一月 2024,14,结构模块,:,06 十一月 2024,15,RTL,综合,:,Register Transfer Level(RTL)-A type of behavioral modeling,for the purpose of synthesis.,Hardware is implied or inferred,Synthesizable,Synthesis-Translating HDL to a circuit and then optimizing the represented circuit,RTL Synthesis-The process of translating a RTL model of hardware into an optimized technology specific gate level implementation,06 十一月 2024,16,RTL,综合,:,06 十一月 2024,17,典型综合流程,:,06 十一月 2024,18,典型仿真流程:,06 十一月 2024,19,基本模块结构:,06 十一月 2024,20,PORTS,声明:,06 十一月 2024,21,DATA,类型声明:,06 十一月 2024,22,assign,语句:,06 十一月 2024,23,assign,语句:,06 十一月 2024,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,时刻并发执行。,06 十一月 2024,25,阻塞性过程赋值:,赋值操作符是,“,=,”,。阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。如下所示:,a l w a y s(,A,o r,B,o r,C i n,),b e g i n,T 1,=,A,&,B,;,T 2,=,B,&,C i n,;,T 3,=,A,&,C i n,;,C o u t,=,T 1,|,T 2,|,T 3,;,e n d,T 1,赋值首先发生,计算,T 1,;接着执行第二条语句,,T 2,被赋值;然后执行第三条语句,,T 3,被赋值;依此类推。,executed in the order they are specified in a sequential block,06 十一月 2024,26,非阻塞性过程赋值:,非阻塞性过程赋值使用赋值符号,“,=,”,。例如:,b e g i n,L o a d,=32;,R e g A,=,L o a d,;,R e g B,=,S t o r e,;,e n d,allow 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.,06 十一月 2024,27,Always,语句:,06 十一月 2024,28,Always,语句:,06 十一月 2024,29,If-Else Statements,06 十一月 2024,30,Case Statement,06 十一月 2024,31,Clocked Process,Nonblocking assignments(,=,)are used for clocked,processes,06 十一月 2024,32,Function,06 十一月 2024,33,Function-Multiplier,06 十一月 2024,34,ispLEVER,设计流程图,06 十一月 2024,35,System Stimulation,06 十一月 2024,36,实例:,06 十一月 2024,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;,endcase,end,endmodule,06 十一月 2024,38,Stimulus Block,timescale 100ps/1ps,module tb;,/input,reg clk;,reg clr;,reg 1:0f;,reg 7:0d;,/output,wire 7:0q;,counter tb(,.clk(clk),.clr(clr),.f(f),.d(d),.q(q),);,initial begin,clk=0;,forever,#1 clk=clk;,end,initial 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;,end,endmodule,06 十一月 2024,39,数字时钟,自制版上按钮按下、蜂鸣器鸣叫。,四个数码管初始数值显示,“,0,、,0,、,0,
展开阅读全文