fpga设计基础及veriloghdl语言介绍

上传人:今*** 文档编号:105899790 上传时间:2019-10-14 格式:PPT 页数:187 大小:3.16MB
返回 下载 相关 举报
fpga设计基础及veriloghdl语言介绍_第1页
第1页 / 共187页
fpga设计基础及veriloghdl语言介绍_第2页
第2页 / 共187页
fpga设计基础及veriloghdl语言介绍_第3页
第3页 / 共187页
fpga设计基础及veriloghdl语言介绍_第4页
第4页 / 共187页
fpga设计基础及veriloghdl语言介绍_第5页
第5页 / 共187页
点击查看更多>>
资源描述

《fpga设计基础及veriloghdl语言介绍》由会员分享,可在线阅读,更多相关《fpga设计基础及veriloghdl语言介绍(187页珍藏版)》请在金锄头文库上搜索。

1、FPGA实验板,课程安排,第1章:A/D与D/A 第2章:FPGA设计基础(Quartus II软件介绍) 第3章:Verilog HDL语言介绍 第4章:基于FPGA的数码管显示 第5章:基于FPGA的液晶显示 第6章:基于FPGA的大LED点阵 第7章:基于FPGA的VGA显示,本次实验内容,1.分频器的代码实现和仿真; 加分题:十分之一分频器代码实现和仿真; 2.与,或,非逻辑的代码实现和仿真; 加分题:数字逻辑器件的代码实现和仿真,例如三八译码器;,下次实验内容,1. 任意偶次分频器的实现和仿真; 加分题:递增,递减计数器的实现和仿真; 2.学会LED源代码程序编译,下载,管脚分配;

2、加分题:实现各种不同效果的流水灯;,FPGA设计基础,提 要,1.可编程逻辑器件概述 2.可编程逻辑器件的结构及原理 3. FPGA特点 4. FPGA设计语言 5. FPGA设计流程 6. FPGA厂商及开发环境 7. Quartus II开发软件使用,1 可编程逻辑器件概述,可编程逻辑器件(Programmable Logic Device简称 PLD)是20世纪70年代发展起来的一种新型逻辑器件,是目前数字系统设计的主要硬件基础。 现场可编程逻辑阵列 FPLA(Field Programmable Logic Array) 可编程阵列逻辑 PAL(Programmable Array L

3、ogic) 通用阵列逻辑 GAL(Generic Array Logic) 可擦除的可编程逻辑器件EPLD(Erasable Programmable Logic Device) 复杂可编程逻辑器件CPLD(Complex Programmable Logic Device) 现场可编程门阵列 FPGA(Field Programmable Gate Array),1 可编程逻辑器件概述 分类(1),熔丝或反熔丝编程器件Actel的FPGA器件 体积小,集成度高,速度高,易加密,抗干扰,耐高温 只能一次编程,在设计初期阶段不灵活 SRAM大多数公司的FPGA器件 可反复编程,实现系统功能的动态

4、重构 每次上电需重新下载,实际应用时需外挂EEPROM用于保存程序 EEPROM大多数CPLD器件 可反复编程 不用每次上电重新下载,但相对速度慢,功耗较大,1 可编程逻辑器件概述 分类(2),低密度 PROM,EPROM,EEPROM,PAL,PLA,GAL 只能完成较小规模的逻辑电路 高密度,已经有超过400万门的器件 EPLD ,CPLD,FPGA 可用于设计大规模的数字系统集成度高,甚至可以做到SOC(System On a Chip),CPLD与FPGA的区别,2 可编程逻辑器件结构原理,2 可编程逻辑器件结构原理,2 可编程逻辑器件结构原理,乘积项,与门,2 可编程逻辑器件结构原理

5、,2 可编程逻辑器件结构原理,PROM结构,与阵列固定,或阵列可编程; 实现以“积之和”形式表示的各种组合逻辑,编程 连接点,固定 连接点,2 可编程逻辑器件结构原理,PLA结构,与阵列或阵列均可编程; PLA的内部结构在简单PLD中有最高的灵活性,2 可编程逻辑器件结构原理,PAL结构,与阵列可编程,或阵列固定; 与阵列可编程使输入项增多,或阵列固定使器件简化。 或阵列固定明显影响了器件编程的灵活性,2 可编程逻辑器件结构原理,GAL结构,用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列,可以实现时序电路;,OLMC,2 可编程逻辑器件结构原理,GAL结构(OLMC),输出使能选择,输出

6、选择,或门控制选择,组成: 异或门:控制输出信号的极性 D触发器:适合设计时序电路 4个多路选择器,2 可编程逻辑器件结构原理,CPLDFPGA的结构,基于乘积项: Altera的MAX7000,MAX3000系列, Xilinx的XC9500系列 Lattice,Cypress的大部分产品 基于查找表: Altera的FLEX, ACEX, APEX 系列, Xilinx的Spartan,Virtex系列。,可编程逻辑阵列模块LAB,包含多个宏单元,可编程I/O单元,可编程连线PIA,基于乘积项的CPLD内部结构,LAB中的宏单元结构,乘积项逻辑阵列,乘积项选择矩阵,可编程 触发器,基于查找

7、表的FPGA内部结构,C,可编程逻辑模块(CLB),含多个逻辑单元 可编程输入输出模块(IOB) 可编程内部连线(PIC),基于查找表(LUT)的FPGA的结构 xilinx Spartan-II的内部结构,CLB中逻辑单元内部结构,查找表LUT原理,3 FPGA特点,逻辑器件:用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门(74LS00,74LS04等),在此基础上可实现复杂的时序和组合逻辑功能。 可编程逻辑器件:器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。 配置数据可以存放在片外的EPROM或其它存储体上,可现场修改器件

8、的逻辑功能。 电路集成度高 用硬件描述语言(Hardware Description Language)代替传统的数字电路设计方法来设计数字系统。,3 FPGA特点,EP1C12Q240,4 FPGA设计语言,HDL语言是一种硬件描述语言,最终目的是生成实际数字逻辑电路,完成一个从抽象化的代码到形象化的电路的转变。 电路设计大规模和高复杂度发展的趋势,传统的用原理图设计电路的方法无法胜任,如何使如此复杂的芯片变得易于人脑的理解呢?用一种高级语言来表达其功能性而隐藏具体实现的细节是很必要的,工程人员将不得不使用HDL语言进行设计,而把具体实现留给逻辑综合工具去完成。 Verilog HDL VH

9、DL,硬件描述语言HDL(Hardware Description Language),4 FPGA设计语言HDL语言特点,HDL语言既包含一些高层程序设计语言的结构形式同时也兼顾描述硬件线路连接的具体结构; 通过使用结构级或行为级描述可以在不同的抽象层次描述设计。 语言采用自顶向下的数字电路设计方法,主要包括三个领域五个抽象层次如表所示,4 FPGA设计语言HDL语言特点,HDL语言是并发的,即具有在同一时刻执行多任务的能力。一般编程语言是非并行的但在实际硬件中许多操作都是在同一时刻发生的,所以HDL语言具有并发的特征; HDL语言有时序的概念,一般编程语言是没有时序概念的,但在硬件电路中从

10、输入到输出总是有延迟存在的,为描述这些特征,HDL语言需要建立时序的概念。因此,使用HDL除了可以描述硬件电路的功能外还可以描述其时序要求;,4 FPGA设计语言,由于Verilog HDL早在1983年就已推出至今已有十三年的历史,因而拥有广泛的设计群体,成熟的资源比VHDL丰富。 目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同,一般认为VHDL在系统抽象方面比Verilog HDL强一些,Verilog HDL较为适合算法级、寄存器传输级、逻辑级、门级等的设计,而VHDL更为适合大型的系统级设计。,Verilog HDL与VHDL比较,用两种语言设计同一

11、个计数器,4 FPGA设计语言VHDL,library ieee; use ieee.std_logic_1164.all use ieee.std_logic_unsigned.all entity counter is port ( clk,clr: in std_logic; qout: in std_logic_vector(3 downto 0); architecture a of counter is signal qout_temp:std_logic_vector(3 downto 0);,begin qout=qout_temp; process(clk) begin if

12、 clr=1 then qout_temp=“0000”; else qout_temp= qout_temp+“0001”; end if end process; end a;,4 FPGA设计语言Verilog HDL,module counter (clk,clr,qout); input clk, clr; output 3:0qout; reg3:0qout; always (posedgeclk) if (clr) qout=0; else qout=qout+1; endmodule,4 FPGA设计语言,模块化的逻辑电路,I/O,/状态图,5 FPGA设计的一般流程,实现,5

13、.1 设计准备,方案论证,器件选择 根据系统的功能和复杂度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。,5.2 设计输入,原理图输入 HDL(硬件描述语言)输入 状态图输入 波形输入,5.2.1 原理图输入方式,原理图输入方式是一种最直接的设计描述方式,要设计什么,就从软件系统提供的元件库中调出来,画出原理图。 优点是容易实现仿真,便于信号的观察和电路的调整; 缺点是效率低,特别是产品有所改动,需要选用另外一个公司的PLD器件时,就需要重新输入原理图,5.2.2 HDL输入方式,硬件描述语言是用文本方式描述设计(普通硬件描述语言和行为描述

14、语言)。 普通硬件描述语言有ABEL、CUR和LFM等,它们支持逻辑方程、真值表、状态机等逻辑表达方式,主要用于简单PLD的设计输入。 行为描述语言是目前常用的高层硬件描述语言,主要有VHDL和 Verilog HDL两个IEEE标准。 语言与工艺的无关性,可以使设计人员在系统设计、逻辑验证阶段便确立方案的可行性; 语言的公开可利用性,便于实现大规模系统的设计; 具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。,5.2.3 波形输入方式,波形输入方式主要是用来建立和编辑波形设计文件,用于输入仿真向量和功能测试向量。 波形

15、设计输入适用于时序逻辑和有重复性的逻辑函数。,5.3 功能仿真,验证逻辑功能的正确性,不加入任何硬延时信息。 仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量 仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。如果发现错误,则返回设计输入中修改逻辑设计。,功能仿真:验证逻辑功能的正确性,不加入任何硬件延时等信息。,输入信号,输出波形,5.4 设计实现,设计处理是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行规则检查、逻辑优化综合、适配和分割(映射)、布局布线等,最后产生编程用的编程文件。,5.4.1 逻辑优化和综合,化简所有的逻辑

16、方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化。,综合:将抽象的HDL代码转换成具体的逻辑电路原理图。,With sel select Din =A when 1, B when others; process (clk ,rst) begin if rst=0 then D_out = 0; else D_out = D_in; end if; end process;,5.4.2 适配和分割(映射),确立优化以后的逻辑能否与器件中的宏单元和I/O用单元适配,然后将设计分割为多个便于识别的逻辑小块形式映射到器件相应的宏单元中。,映射:将电路逻辑图转换成用切片表示的FPGA内部的实际电路图。,布局布线:以最优的方式对逻辑元件布局,并准确地实现元件间的互连。布线以后软件自动生成报告,提供有关设计中各部分资源的使用情况等信息。,5.4.3 布局布线,布局布线后仿真(时序):所验证的是在原来逻辑电路基础上加入硬件实际信息后,电路功能上的正确性。这是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号