版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广州邦讯信息系统有限公司FPGA培训教程,2011-8,FPGA介绍,何为FPGA?,FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,FPGA工作原理,FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output
2、 Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决
3、定了FPGA所能实现的功能, FPGA允许无限次的编程,FPGA的用途,可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。 FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA/CPLD的在线修改能力,随时修改设计而不必改动硬件电路。 使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。 FPGA还可以做数字IC设计的前端验证,用这种方式可以很大程度上降低IC设计的
4、成本。 FPGA的这些优点使得FPGA技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。,FPGA主要生产厂商,1、 Xilinx 2、 Altera 3、Actel 4、Lattice 5、atmel,xilinx和altera的区别,从好用来说,肯定是Xilinx的好用,不过Altera的便宜他们的特点,Xilinx的短线资源非常丰富,这样在实现的时候,布线的成功率很高,尤其是逻辑做得比较满的时候 Altera的FPGA的短线资源经常不够用,经常要占用LE来充当布线资源(这也是为什么Altera的FPGA可以便宜的原因,资源少些当然便宜),但是如果
5、你是高手,也能把他的性能发挥得很好。 另外就是关于块RAM,Xilinx的双口RAM是真的,altera的没有双口RAM,如果你要实现真正的双口RAM,只能用两块RAM来背靠背地实现,这样你的RAM资源就少了一半,如果你的应用对片内双口RAM的需求很重要,用Altera的就划不来。,7,复杂数字系统与信号处理的关系,- 接口逻辑 + 专门设计的高速计算逻辑,数字信号处理、计算、程序 算法和硬线逻辑的基本概念,数字信号处理 计算(Computing) 算法和数据结构 编程语言和程序 体系结构 硬线逻辑,数字信号处理的基本概念,现代电子系统设备中广泛使用了数字信号处理 专用集成电路。 用于数字信号
6、传输中所必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩、解压缩等操作。 处理工作从本质上说都是数学运算。 完全可以用计算机或微处理器来完成处理工作。,计算(Computing)的基本概念,“Computing 这门学问研究怎样系统地有步骤地描述和转换信息,实质上它是一门覆盖了多个知识和技术范畴的学问,其中包括了计算的理论、分析、设计、效率和应用。它提出的最基本的问题是什么样的工作能自动完成,什么样的不能。”(摘自Denning et al., “Computing as a Discipline,” Communication of ACM, January,1989)。,算法和数据结
7、构的基本概念,算法就是解决特定问题的有序步骤。 数据结构就是解决特定问题的相应的模型。,编程语言和程序的基本概念,编程语言: 程序员利用一种由专家设计的既可以被人理解,也可以被计算机解释的语言来表示算法问题的求解过程。这种语言就是编程语言。 程序:由编程语言所表达的算法问题的求解过程就是。 常用的编程语言:C、Pascal、Fortran、Basic或汇编语言。,计算机体系结构和硬线逻辑的基本概念,计算机体系结构:是一门 讨论和研究通用的计算机中央处理器如何提高运算速度性能的学问。 硬线逻辑: 由与门、或门、非门、触发器、多路器等基本逻辑部件造成的逻辑系统。,数字信号处理系统的分类,非实时系统
8、: 信号处理的工作是可以事后进行。 实时系统: 信号处理的工作必须在规定的很短的时间内完成。,数字信号处理系统的实现,非实时系统: 通用的计算机和利用通用计算机改装的设备,主要工作量是编写 “C” 程序。输入/输出数据大多为文本 。 实时系统: 信号处理专用的微处理器为核心的设备,主要工作量是编写汇编程序。输入/输出数据大多为数据流,直接用于控制 。,实时数字信号处理系统实现中存在的技术难点,算法问题。 电路实现问题: 如果由最快的信号处理专用的微处理器为核心的设备也来不及处理如此大量的数据怎么办呢?,实时数字信号处理系统实现中存在的技术难点和解决办法,算法问题:研究并行快速算法。 电路实现问
9、题:设计并研制具有并行结构的数字和计算逻辑结构和相应的接口逻辑。,实时数字信号处理系统实现中存在的技术难点和解决办法,电路实现的两个方向: FPGA 专用集成电路,实时数字信号处理系统实现中存在的技术难点和解决办法,用于信号处理的 FPGA 和专用集成 电路(ASIC)设计的方法: Verilog HDL 建模、仿真、综合和 全面验证。,为什么要研究复杂的数字逻辑系统?,什么是复杂的数字逻辑系统?,嵌入式微处理机系统 数字信号处理系统 高速并行计算逻辑 高速通信协议电路 高速编码/解码、加密/解密电路 复杂的多功能智能接口 门逻辑总数超过几万门达到几百甚至达几千 万门的数字系统,为什么要设计复
10、杂的数字逻辑系统?,对嵌入式系统的性能要求越来越高 - 通用的微处理机不能满足要求 - 硬件结构是提高系统总体性能的关键 - 软件只能提高系统的灵活性能 - 军用系统的实时、高可靠、低功耗要求 - 系统的功能专一,但对其各种性能要求极高 - 降低系统的设计和制造成本,设计数字系统的基本方法,传统的:线路图 现代的:硬件描述语言,怎样设计如此复杂的系统?,传统的设计方法: - 查用器件手册; - 选用合适的微处理器和电路芯片; - 设计面包板和线路板; - 调试; - 定型; - 设计复杂的系统(几十万门以上)极其困难。,怎样设计如此复杂的系统?,现代的设计方法: - 选用合适的 EDA仿真工具
11、; - 选用合适电路图输入和HDL编辑工具; - 逐个编写可综合HDL模块; - 逐个编写HDL测试模块; - 逐个做Verilog HDL 电路逻辑访真; - 编写Verilog HDL总测试模块; - 做系统电路逻辑总仿真;,怎样设计如此复杂的系统?,现代的设计方法(续前): - 选用合适的基本逻辑元件库和宏库 - 租用或购买必要的IP核; - 选用合适的综合器; - 进行综合得到门级电路结构; - 布局布线,得到时延文件; - 后仿真; - 定型, FPGA编码或ASIC投片,Top-Down 设计思想,用EDA设计数字系统的流程,为什么要用硬件描述语言来设计?,电路的逻辑功能容易理解;
12、 便于计算机对逻辑进行分析处理; 把逻辑设计与具体电路的实现分成两个独立 的阶段来操作; 逻辑设计与实现的工艺无关; 逻辑设计的资源积累可以重复利用; 可以由多人共同更好更快地设计非常复杂 的逻辑电路(几十万门以上的逻辑系统)。,设计复杂数字系统的工具和手段,两种硬件描述语言 : Verilog VHDL,有哪几种硬件描述语言?各有什么特点?,Verilog HDL - 较多的第三方工具的支持 - 语法结构比VHDL简单 - 学习起来比VHDL容易 - 仿真工具比较好使 - 测试激励模块容易编写,Verilog HDL 的发展历史,有哪几种硬件描述语言?各有什么特点?,VHDL - 比Veri
13、logHDL早几年成为I EEE标准; - 语法/结构比较严格,因而编写出的 模块风格比较清晰; - 比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。,两者建模能力的比较,Verilog HDL有什么用处?,在各种抽象层次上描述数字电路 测试各种层次数字电路的行为 设计出正确有效的复杂电路结构,Verilog HDL 的应用方面,ASIC 和FPGA设计师可用它来编写可综合的代码。 描述系统的结构,做高层次的仿真。 验证工程师编写各种层次的测试模块对具体电路设计工程师所设计的模块进行全面细致的验证。 库模型的设计:可以用于描述ASIC 和FPGA的基本单元(Cell)部件,也可
14、以描述复杂的宏单元(Macro Cell)。,Verilog HDL 的抽象级别,语言本身提供了各种层次抽象的表述,可以用详细程度有很大差别的的多层次模块组合来描述一个电路系统。 行为级:技术指标和算法的Verilog描述 RTL级:逻辑功能的Verilog描述 门级 :逻辑结构的Verilog描述 开关级:具体的晶体管物理器件的描述,Verilog HDL 的抽象级别,行为级:有关行为和技术指标模块,容易理解; RTL级 :有关逻辑执行步骤的模块,较难理解; 门级 :有关逻辑部件互相连接的模块。很难理解; 开关级:有关物理形状和布局参数的模块,非常难理解。 注解:理解是指对模块整体功能的理解
15、,抽象级别和综合与仿真的关系,行为仿真:行为的验证和验证模块分割的合理性; 前仿真 :即 RTL级仿真,检查有关模块逻辑执行步骤是否正确。 逻辑综合:把RTL级模块或符合综合风格的行为模块转换成门级 。 后仿真:用门级模型做验证,检查由门的互连构成的逻辑其功能是否正确。 布局布线: 在门级模型的基础上加上了布线延时 布局布线后仿真:与真实的电路最接近的验证。,简单的Verilog模块的组成,行为级与门级的不同点 ? 综合与模块的关系是什么?,行为级和RTL级,module muxtwo (out, a, b, sl); input a,b,sl; output out; Reg out; al
16、ways (sl or a or b) if (!sl) out = a; else out = b; endmodule,a,b,sl,out,行为级和RTL级,这个行为的描述并没有说明如果输入 a 或 b是三态的(高阻时)输出应该是什么,但有具体结构的真实电路是有一定的输出的。 RTL模块的数据流动必须基于时钟。RTL模块在每个时钟到来的时刻,其变量的值必定是精确的。 RTL模块是可综合的,它是行为模块的一个子集合。,门结构级,module muxtwo (out, a, b, sl); input a,b,sl; output out; not u1(ns1,sl); and #1 u2
17、(sela,a,nsl); and #1 u3 (selb,b,sl); or #2 u4(out ,sela,selb); endmodule,out,综合器的作用,自动地把符合一定风格的 Verilog 行为模块转变为用门级结构描述的模块。 门级结构描述的模块也是得到Verilog仿真器支持的,模块行为正确与否可以通过仿真验证。,数字系统的构成,组合逻辑(无记忆) 时序逻辑(有记忆),组合逻辑电路,多路器 加法器 缓冲器 逻辑开关 总线 逻辑运算电路,47,时序逻辑电路,计数器 同步有限状态机 运算控制器 总线分配器 总结: 用寄存器和组合逻辑一起组成的有记忆逻辑电路,能与时钟配合产生精确
18、的控制信号。,48,数字系统的构成示意图,input_1,input_2,input_n,Quartus II 9.1 使用教程,设计一个点亮4位LED灯程序,要求: 1、FPGA器件型号:EP2C35F484C8N 2、存储FPGA代码芯片:EPCS16 3、系统输入时钟50MHZ 4、设计一个29位分频计数器 5、将分频器的26-29位用4个LED指示灯显示; 6、系统下载配表管脚: Sys_clk :L1 Rst_n : U12 模16四个LED1-4:D15、E14、C14、D14,VHDL代码,library IEEE; use IEEE.STD_LOGIC_1164.all; us
19、e IEEE.STD_LOGIC_UNSIGNED.ALL; entity led_test is PORT( sys_clk : IN STD_LOGIC;-50M系统时钟输入 rst_n : IN STD_LOGIC;-复位信号输入 LED : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-LED灯闪动信号输出 END led_test; ARCHITECTURE Behavioral OF led_test IS SIGNAL led_delay : STD_LOGIC_VECTOR(28 DOWNTO 0);-延时计数器,对50M时钟分频 BEGIN PROCES
20、S(sys_clk,rst_n) BEGIN IF rst_n = 0 THEN-复位,对led_delay请零 led_delay 0); ELSIF sys_clkEVENT AND sys_clk = 1 THEN-时钟上升沿,led_delay加一 led_delay = led_delay + 1; END IF; END PROCESS; LED = led_delay(28 DOWNTO 25);-分频器的高位作为LED灯闪动信号输出 end Behavioral;,TCL脚本文件,#指定系统时钟输入管脚从L1输入 set_location_assignment PIN_L1 -
21、to sys_clk #指定复位信号输入管脚从U12输入 set_location_assignment PIN_U12 -to rst_n #* #指定LED灯闪动信号从D15 E14 C14 D14输出 set_location_assignment PIN_D15 -to LED0 set_location_assignment PIN_E14 -to LED1 set_location_assignment PIN_C14 -to LED2 set_location_assignment PIN_D14 -to LED3 #*,点亮LED灯设计流程,打开quartus ii软件 新建工
22、程文件 编辑LED灯HDL文件 添加TCL脚本文件 编译程序 用JTAG直接下载到FPGA运行 用JTAG下载到EPCS运行,新建工程文件,输入工程名,选择目标板FPGA型号,选择FILE-NEW-vhdl file 新建HDL文件,编辑文本并作必要注释,跟工程文件保存同一文件夹,编译工程,代码有错,编译器提示错误,修改错误(图示:下一页),1 点击Messages栏中的“Error” 筛选错误 2 双击第一行错误(注意第一行) 3 双击第一行错误后,代码中的错误行会反色显示,将多余的”);”删掉 4 重新编译 5 如果还有错误,重复1-4,直到通过编译,编译后,FPGA资源使用分析,指定EPCS目标编程器件(图示:下一页),1 Assignments-Device 2 点击 Device and Pin Options 3 选择Configuration 4 选择Active Serial 5选择EPCS16,建立脚本文件:FILE-NEW-Tcl Script File编辑TCL脚本文件,指定FPGA管脚,添加脚本文件到工程,查看管脚是否指定成功(此过程可以忽略)路径:Assignments-Pins,重新编译,用JTAG模式,直接下载程序到FPGA运行掉电后程序不保存,掉电存储方式 将程序下载到EPCS存储芯片,见 “使用JTA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 6 Presenting ideas-Reflection《自主学习》课件
- 2026年学区购房合同(1篇)
- 2026年润滑油代理合同(1篇)
- 心脏瓣膜病的诊断和治疗
- 2026届河南高三五市一模质量监测政治+答案
- 2025 高中信息技术数据与计算之数据在社交媒体网络结构分析中的应用课件
- 2025年北京市学业水平测试高二英语试卷真题(精校打印)
- 主持人培训主持人应对突发情况培训
- 农业设施维护技术与管理实务
- 2026年快离子导体包覆改性提升高镍材料倍率性能研究
- 2026年湖北国土资源职业学院单招综合素质考试题库带答案详解
- 2026云南楚雄市司法局第一批司法协理员招聘10人考试参考题库及答案解析
- 2026年及未来5年中国铍行业市场全景监测及投资战略咨询报告
- (2026年)电除颤操作规范与急救流程培训课件
- 江苏省无锡市锡山区天一中学2026届高一下生物期末质量跟踪监视模拟试题含解析
- 2026年辽宁大连市高职单招职业适应性测试试题题库(答案+解析)
- 通信基础设施建设与维护规范
- 中小学戏剧表演剧本《茶馆》第一幕
- 2026年北京市公安局辅警招聘备考题库含答案详解
- 安全三类人员教育培训课件
- 湿巾工厂安全培训
评论
0/150
提交评论