《数字集成电路设计》PPT课件.ppt
《《数字集成电路设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数字集成电路设计》PPT课件.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数字集成电路设计FPGA结构与设计流程结构与设计流程 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interco
2、nnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采
3、用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为
4、微处理器的外设,由微处理器对其编程。FPGA基本结构与原理基本结构与原理 采用查找表(Look-Up-Table)结构的PLD芯片我们也可以称之为FPGA:如Altera的ACEX,APEX系列,Xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的161的RAM。实际逻辑电路LUT的实现方式a,b,c,d 输入逻辑输出地址RAM中存储的内容00000000000001000010.001111111111我们还是以这个电路的为例 FPGA的设
5、计流程的设计流程一个完整的FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板后调试等主要步骤,如图所示。EDA软件工具软件工具 软件简介MAX-PLUS II是Altera的集成开发软件,使用广泛,支持Verilog HDL、VHDL和AHDL多种语言。Quartus II是Altera继MAX-PLUS II后的新一代开发工具,能够支持百万门级的设计,适合大规模FPGA的开发。Quartus II提供了更优化的综合和适配功能,改善了对第三方仿真和时域分析工具的支持。软件包括SOPC Builder,可自动添加、参数化和链接IP核,包括嵌入处理器、协处理器、
6、外设和用户定义逻辑等。ISE是xilinx公司最新的FPGA集成开发软件,它提供给用户一个设计输入到综合、布局、仿真、下载的全套解决方案,并能很方便的同其他EDA工具接口。其中,原理图输入用的是第三方软件ECS,HDL综合可以使用Xilinx公司开发的XST、Synopsys的FPGA Express 和Synplicity的Synplicity/Synplicity Pro,测试输入是图形化的HDL Bencher,状态图输入用的是StatCAD,前、后仿真可以使用Modelsim XE或Modelsim SE。ispLEVER是Lattice公司继ispDesignerEXPRET后的新一
7、代集成工具,该软件同时集成了许多第三方工具,如Synplicity/Synplicity Pro和Leonardo Spectrum,仿真软件Modelsim等。逻辑综合工具逻辑综合工具软件简介Synplicity/Synplicity Pro是Spnlicity公司推出的HDL综合工具,使用广泛。Synplicity Pro除了具有原理图生成器、延时分析器外,还带有一个FSM Complier(有限状态级编译器),能从HDL设计文本中提出存在的FSM设计模块,并用状态图的方法显示出来,用表格的方式来说明状态的转移条件及输出。FPGA Compiler II是Synopsis公司的HDL综合工
8、具。Synopsis是最早推出HDL综合工具的公司。它改变了早先HDL语言只能用于电路的模拟仿真的情况。Synopsis的综合器包括FPGA Express、FPGA Compiler,目前其最新的综合工具软件为FPGA Compiler II。Leonardo Spectrum是Mentor的子公司Exemplar Logic出品的HDL综合工具软件,并作为FPGA Advantage软件的一个组成部分。Leonardo Spectrum可同时用于CPLD/FPGA和ASIC设计两类目标,性能稳定。仿真工具仿真工具软件简介Modelsim是Mentor的子公司model Technology
9、 一个出色的HDL混合仿真工具,它属于编译型仿真器,仿真速度快,功能强。NC-Verilog/NC-VHDL/NC-Sim 都是Cadence公司的仿真工具,其中NC-Verilog的前身是Verilog仿真软件Verilog-XL,用于Verilog程序仿真;NC-VHDL用于VHDL仿真;而NC-Sim则能够进行混合仿真。VCS是Synopsis公司的Verilog HDL仿真工具,Scirocco是Synopsis的VHDL仿真功能工具。Active HDLActive HDL是Aldec的verilog/VHDL仿真软件,界面友好,简单易用。Verilog HDL硬件描述语言硬件描述语
10、言 Verilog HDL程序结构程序结构 nVerilog HDL程序有模块构成,模块的内容都是嵌在module和endmodule两个关键字之间,每个模块式实现特定的功能,模块之间可以进行层次的嵌套。nVerilog HDL程序模块包括模块名、输入输出端口说明、内部信号说明、逻辑功能定义等几部分。程序模板如下:module();/*端口描述*/input;output;/*内部信号说明*/wire /nets型变量reg /register变量 integer /常数/*逻辑功能定义*/*任务或函数*/task或function/*使用assign语句定义组合逻辑*/assign=;/*使
11、用always块描述逻辑功能*/always()begin/*行为语句*/*task或function调用*/end/*元件例化*/endmodule1、端口定义、端口定义模块的端口声明了模块的I/O口,其格式如下:Module 模块名(端口1,端口2,端口3,);例如:module and(a,b,c);表示模块名为and,该模块有三个端口a、b和c。2、输入输出端口说明、输入输出端口说明输入输出端口说明格式如下:输入端口:input端口1,端口2,端口3,端口n;输出端口:output 端口1,端口2,端口3,端口n;双向端口:inout端口1,端口2,端口3,端口n;端口说明也可直接写在
12、端口声明语句中:例如:module ex1(input indata,an,clock,output outdata);3、内部信号说明、内部信号说明定义各变量及常量的类型,其格式为:wire 数据名1,数据名2,数据名3,;reg 数据名1,数据名2,数据名3,;wire是定义网络数据类型变量(nets)的关键词,信号变量类型缺省时默认为wire型。reg是定义寄存器型变量(register)的关键词。4、逻辑功能定义、逻辑功能定义模块中最重要的部分是逻辑功能定义,它描述输入输出变量及中间变量的逻辑功能。在模块中描述逻辑功能有三种方法:(1)用“assign”语句 assign语句一般用于适
13、用于对组合逻辑进行描述,称为连续赋值方式。(2)用元件例化(instantiate)元件例化是指将具有一点功能的模块作为独立的元件在顶层文件中调用。采用元件礼花的方法同在电路图输入方式下调用库元件一样,键入元件的名字和引脚的名字即可。(3)用“always”语句 always语句可以用于描述组合逻辑也可用于描述时序逻辑。Verilog HDL数据类型数据类型数据类型是用来表示数字电路中的数字存储和数字传送的。Verilog HDL中的19种数据类型:memory型、large型、medium型、scalared型、time型、small型、tri型、trio型、tril型、triand型、tr
14、ireg型、vectored型、wand型、wor型。介绍4种基本的数据类型:parameter型、reg型、wire型和memory型。在Verilog中也有常量和变量之分,它们分属于以上两种类型。1、常量、常量.数字数字 整数 在Verilog中,整数(即整常数)有4种进制表示方法:二进制整数(b或B)、十进制整数(d或D)、八进制整数(o或O)、十六进制整数(h或H)。例如:8b11000101 /位宽为8位的二进制数110001018hD5 /位宽为8位的十六进制数D5十进制可缺省表示对位宽和进制的说明,例如:128 x和z值 在数字电路中,x代表不定值,z代表高阻值。例如:8b100
15、1xxxx 表示位宽8的二进制数第四位为不定值。.Parameter常数常数在Verilog中,用parameter定义一个标识符代表一个常量,称为符号常量。采用标识符代表一个常量可提高程序的可读性和可维护性。其定义结构如下:parameter 参数名1=表达式,参数名2=表达式,参数名n=表达式。例如:parameter size=4d8;2、变量、变量 变量是指在程序运行过程中其值可以改变的量。网络数据类型(nets型)和寄存器类型(reg型)。在Verilog中,变量分为两种:.nets型变量型变量 Verilog中提供多种nets型变量:wire、wor、wand等等,这里主要介绍wi
16、re型变量。wire型数据类型用来表示以assign语句赋值的组合逻辑信号。在Verilog模型中,输入输出信号类型缺省时自动定义为wire型。wire型变量的格式定义如下:wiren:1 变量名1,变量名2,变量名n;.register型变量型变量register型变量对应于具有状态保持作用的电路元件,如触发器,锁存器等。它只有明确地赋值后才能对其他变量赋值,重新赋值前一直保持原值。在设计中,此类变量必须放在块语句(always语句)中,通过过程语句赋值。同一个register型变量只能在一个块语句中重复赋值,而不能同时在多个块语句中重复赋值使用。register型变量包括reg型和inte
17、ger型。integer型变量的最大位宽是32位,定义一个integer型变量时可以不指定位宽,综合时编译器自动调整其位宽。.memory型变量型变量memory型变量实际是由若干个相同宽度的向量组成的数组。它的定义如下:regn-1:0 memorym-1:0;例如:reg7:0 memory23:0;该语句定义一个有24个字节、每个字节宽度为8bit的存储器,存储器名是mymemeory。在数组中,不能直接对存储器中的某一位进行寻址,只能间接寻址。例如在上例中,对第8个存储单元中的第4位赋值,方法如下:myreg=mymemory7;myreg3=1b1;运算符运算符Verilog HDL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字集成电路设计 数字 集成电路设计 PPT 课件
限制150内