FPGA基础知识培训ppt课件_第1页
FPGA基础知识培训ppt课件_第2页
FPGA基础知识培训ppt课件_第3页
FPGA基础知识培训ppt课件_第4页
FPGA基础知识培训ppt课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、产品研发中心 运用产品组 蒋伟2021年2月FPGA内部技术培训目 录2什么是FPGA?1Verilog HDL言语根底3如何运用ISE开发环境4FPGA开发实际1、什么是FPGA? 1.1可编程逻辑器件根底1、什么是FPGA? 1.1可编程逻辑器件根底18x18 bit Embedded Pipelined Multipliers for efficient DSPConfigurable 18K Block RAMs + Distributed RAM 4 I/O Banks, Support forall I/O Standards including PCI, DDR333,RSDS,

2、 mini-LVDSGuaranteed Density Migration Numerous parts in the same packageUp to eight on-chip Digital Clock Managers to support multiple system clocks Bank 0Bank 1Bank 2Bank 31.1 可编程逻辑器件根底可编程逻辑器件Programmable Logic Device , PLD 顾名思义,完全由用户经过软件进展配置和编程,从而完成某种特定的功能,而且可以反复擦写的器件。 PLD产品 PROM 编程只读存储器 FPLA 现场可

3、编程逻辑阵列 PAL 可编程阵列逻辑 GAL 通用阵列逻辑 EPLA 可擦除的可编程逻辑阵列 CPLD 复杂可编程逻辑器件 FPGA (Field Programmable Array)现场可编程门阵列,属于可编程逻辑器件的一种。经过可编程互连衔接的可配置逻辑块 (CLB) 矩阵构成的可编程半导体器件 。1、什么是FPGA? 1.1可编程逻辑器件根底 准确地将用户设计转换为电路模块 可以高效地利用器件资源 可以快速地完成编译和综合 提供丰富的IP核资源 用户界面友好,操作简单 PLD开发软件 优秀的PLD开发软件 Xilinx公司的 ISE Altera公司的 Quartus II、Maxpl

4、us II1、什么是FPGA? 1.1可编程逻辑器件根底1. 2 FPGA 任务原理四输入一输出的电路模块?ABZCD1、什么是FPGA? 1.2 FPGA任务原理 查找表Look-Up-TableLUTLUT本质就是一个RAM。FPGA多运用4输入一输出的LUT,一个LUT等效于为一个有4位地址线的161的RAM。将真值表写入RAM后,每输入一个信号进展逻辑运算,就等于输入一个地址进展查表,找出地址对应的内容后输出即可。4-input logic functionLUT=CDZABTruth Table图1-1 LUT原理表示图1、什么是FPGA? 1.2 FPGA任务原理FPGA任务原理的

5、本质FPGA的任务形状本质是由片内RAMLUT决议的,所以经过对片内RAM进展编程配置LUT ,更新真值表,就能完成某种特定功能。1、什么是FPGA? 1.2 FPGA任务原理 FPGA芯片构造 FPGA主要由6个部分组成:IOB可配置输入输块CLB可配置逻辑块DCM时钟管理单元BRAM嵌入式块RAMWIRE布线资源IP核内嵌底层功能单元和公用硬件模块1.3 FPGA芯片构造1、什么是FPGA? 1.2 FPGA任务原理CLBCLBCLBCLBBRAMBRAMCLBCLBIOBIOBDCMIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOB图1-2

6、FPGA芯片的内部构造1、什么是FPGA? 1.2 FPGA任务原理定义:芯片与外界电路的接口部分。功能: 匹配不同的电气特性、I/O规范、I/O物理特性。比如调整驱动电流的大小、上下拉电阻、频率、TTL、LVDS。 IOB可编程输入输出块 WIRE布线资源布线资源用于连通FPGA内部的一切单元。第一类:全局布线资源,用于芯片内部全局时钟和全局复位布线。第二类:长线资源,用于BANK间的高速信号。第三类:短线资源,用于根本逻辑单元间的互连和布线。第四类:分布式资源,用于公用时钟、复位等控制信号。1、什么是FPGA? 1.2 FPGA任务原理 BRAM嵌入式块RAM4096 x 4 Dual-P

7、ortDOA3:0DOB3:0WEAENARSTAADDRA11:0CLKADIA3:0WEBENBRSTBADDRB11:0CLKBDIB3:01、什么是FPGA? 1.2 FPGA任务原理 BRAM嵌入式块RAM1、什么是FPGA? 1.2 FPGA任务原理DCM时钟管理单元1、什么是FPGA? 1.2 FPGA任务原理DCM时钟管理单元DCMDCMDCMDCM1、什么是FPGA? 1.2 FPGA任务原理 CLB是FPGA内部根本的逻辑单元。 CLB包含:一个可配置的开关矩阵、一些选型电路多路复用器和触发器组成。 CLB可配置逻辑块 XILINX 的CLB C L B = Switch

8、Matrix + 4 Slice + 附加逻辑。 开关矩阵 2 SLICEM + 2 SLICEL Slice是XILINX定义的根本逻辑单位。由2个4/6输入的查找表、进位逻辑、算数逻辑、存储逻辑、复用器组成。1、什么是FPGA? 1.2 FPGA任务原理CINSwitchMatrixCOUTCOUTSLICEM S0X0Y0SLICEM S1X0Y1SLICEL S2X1Y0SLICEL S3X1Y1CINSHIFTCLB表示图 CLB可配置逻辑块1、什么是FPGA? 1.2 FPGA任务原理IP核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。 IP核内嵌底层功能单元和公用硬件模

9、块软核:对电路的硬件言语描画,包括逻辑描画、网表和协助文档等,以用HDL文本方式提交给用户。 固核:IP固核的设计程度那么是介于软核和硬核之间,除了完成软核一切的设计外,还完成了门级电路综合和时序仿真等设计环节。普通以门级电路网表的方式提供应用户。硬核:基于半导体工艺的物理设计,规划和工艺固定、经过前端和后端验证的设计,设计人员不能对其修正。其提供应用户的方式是电路物理构造掩模幅员和全套工艺文件,是可以拿来就用的全套技术。1、什么是FPGA? 1.2 FPGA任务原理1、什么是FPGA? 1.3 FPGA开发流程1.3 FPGA开发流程 FPGA设计方法硬件设计包括:FPGA芯片电路、存储器、

10、输入输出接口电路以及其他设备。软件设计思想:自顶向下顶层系统2级模块A2级模块B2级模块C3级模块A33级模块A23级模块A13级模块C23级模块C11、什么是FPGA? 1.3 FPGA开发流程 软件设计流程1、什么是FPGA? 1.4 XILINX公司FPGA简介1.4 XILINX公司FPGA简介XILINX公司目前有两大类FPGA产品:Spartan类 和 Virtex类。前者面向低本钱的中低端运用。后者面向高端运用。两者的差别仅限于芯片的规模和公用模块上。1、什么是FPGA? 1.4 XILINX公司FPGA简介1.4 XILINX公司FPGA简介2、Verilog HDL言语根底

11、2.1 Verilog HDL简介 HDL:具有特殊构造可以对硬件逻辑电路的功能进展描画的一种高级编程言语。 这种特殊构造可以: 描画电路的衔接 描画电路的功能 在不同笼统级上描画电路 描画电路的时序 表达具有并行性HDL主要有两种:Verilog和VHDL。Verilog来源于C言语,因此非常类似于C言语,容易掌握什么是硬件描画言语HDL2、Verilog HDL言语根底 2.1 Verilog HDL简介 Verilog HDL是在1983年由GDA(GateWay Design Automation)公司的Phil Moorby所创。Phi Moorby后来成为Verilog-XL的主要

12、设计者和Cadence公司的第一个合伙人。 在19841985年间,Moorby设计出了第一个Verilog-XL的仿真器。 1986年,Moorby提出了用于快速门级仿真的XL算法。 1990年,Cadence公司收买了GDA公司 1991年,Cadence公司公开发表Verilog言语,成立了OVI(Open VerilogInternational)组织来担任Verilog HDL言语的开展。 1995年制定了Verilog HDL的IEEE规范,即IEEE4。Verilog HDL的历史2、Verilog HDL言语根底 2.1 Verilog HDL简介二选一选择器的实现:modul

13、e muxtwo (out, a, b,sel);input a, b, sel;output out; reg out;always ( sel or a or b)if (! sel) out = a;else out = b;endmoduleVerilog HDL的根本程序构造2、Verilog HDL言语根底 2.2 根本概念词法商定空白符:空格、换行、制表TAB。除了字符串中的空白符,空白符仅仅用于分辨标识符,编译的时候忽略。注释:单行注释/, 多行注释 /* */操作符:单目、双目、三目操作符数字声明:声明位数和不声明位数(默许十进制),建议声明位数。不确定值X,高阻值Z 。8b

14、 0 x11_00z1 ,12habc , 16d255 ,25, o25,-6d3字符串:hello标识符:字母、数字、_、 组成,区分大小写,第一个字符必需是字母或者下划线。关键字:特殊标识符,全小写。2、Verilog HDL言语根底 2.2 根本概念数据类型表示数字电路硬件中的数据存储和传送元素四值逻辑:0、1、X、Z主要包含:wire型、reg型、memory型和parameter型,共19种wire型 硬件单元之间的衔接,连线。 wire a, b, c = 1b1 , d; wire e7 : 0; /位宽为8的wire信号, 向量2、Verilog HDL言语根底 2.2 根本

15、概念reg型存储元件,坚持原有数字,直到被改写。数据存储单元的笼统。reg a, b, c = 1b1 , d; /位宽为1的存放器reg e7 : 0; /位宽为8的存放器 memory型对reg变量建立数组来对存储器建模,描画RAM、ROMreg a0,1024; /1K的1位存放器reg 7:0 e0 : 1024; / 1K的8位存放器,宽度和深度2、Verilog HDL言语根底 2.2 根本概念parameter型定义常量,提高可读性和可维护性parameter = 3.1415926; parameter 3:0 S0 =4h0, S1 = 4h1, S2 = 4h2, S3 =

16、 4h3; 2、Verilog HDL言语根底 2.2 根本概念integer 、real、time、字符串型通用的存放器数据类型,用于对数量进展操作。integer counter; integer counter0:7; real delay;time delaytime;real 8*3-1, 0 string;string = “boy;2、Verilog HDL言语根底 2.2 根本概念编译指令define : 定义文本宏 define WordSize 16 include:将一个Verilog文件包含在另一个Verilog文件中include “moled.v2、Verilog

17、HDL言语根底 2.3操作符和表达式算术操作符2、Verilog HDL言语根底 2.3操作符和表达式关系操作符2、Verilog HDL言语根底 2.3操作符和表达式逻辑操作符2、Verilog HDL言语根底 2.3操作符和表达式按位操作符2、Verilog HDL言语根底 2.3操作符和表达式等价操作符2、Verilog HDL言语根底 2.3操作符和表达式条件操作符、移位操作符、拼接操作符、缩减操作符、2、Verilog HDL言语根底 2.3操作符和表达式缩减操作符A = 4b0110;&A ; /相当于0&1&1&02、Verilog HDL言语根底 2.3 操作符和表达式条件操作

18、符、拼接操作符、缩减操作符条件运算符: ? : A? B : C拼接运算符: , A = 4b0100; B = 4b1100; C = 4b1001;Y= A , B , C , 4b0010 = 0100_1100_1001_0010;2、Verilog HDL言语根底 2.3 操作符符和表达式操作符优先级2、Verilog HDL言语根底 2.3 运算符和表达式赋值运算符 = ,= A = b; c = 1b1; /阻塞赋值? C = d; d= 2b01; /非阻塞赋值?2、Verilog HDL言语根底 2.4 模块和端口模 块 module可以表示: 物理块,如IC或ASIC单元

19、逻辑块,如一个CPU设计的ALU部分 整个系统 每一个模块的描画从关键词module开场,有一个称号如SN74LS74,DFF,ALU等等,由关键词endmodule终了。2、Verilog HDL言语根底 2.4 模块和端口端口 留意模块的称号DFF,端口列表及阐明 模块经过端口与外部通讯2、Verilog HDL言语根底 2.4 模块和端口端口列表和声明module ( sum,clk,a,b,c_in ); input clk, a, c_in; / wire output sum; inout b; /wire reg sum;endmodule2、Verilog HDL言语根底 2.

20、4 模块和端口模块例化2、Verilog HDL言语根底 2.5 门级建模构造化描画门类型and, or, xor, buf, not, nand, nor, xnor举例:module adder (A, B, Cin, Sum, Count); xor x1 (S1, A, B);xor x2 (Sum, S1, Cin);and A1 (T3, A, B );and A2 (T2, B, Cin);and A3 (T1, A, Cin);or O1 (Cout, T1, T2, T3 );endmodule定义:对电路构造的描画2、Verilog HDL言语根底 2.6 数据流建模语法格

21、式:assign L_S = R_S; 采用assign延续赋值来实现,只能实现组合逻辑。左值必需是线网标量或者向量,右值可以是线网、存放器、函数调用。赋值语句总是处于激活形状,只需右边操作数发生变化,立刻将结果赋给左边的线网。module ( out,sum, a, b, c, d,e,f) ;input a, b, e , f; input 15:0 c, d; output out , sum;assign out = a & b;assign out 15 : 0 = c15 : 0 & d15 : 0;assign #10 out = e & f;endmodule定义:对数据流的详

22、细行为的描画2、Verilog HDL言语根底 2.7 行为级建模定义:对电路外部行为的角度进展描画。行为级建模主要包括:过程构造、语句块、时序控制、流控制过程构造过程构造采用4种过程语句来实现: initial语句、always语句、task语句、function语句initial语句、always语句又是最根本的两种语句,其他一切行为语句都只能出如今这个两个语句中。initial语句只用于仿真,不可综合。 always语句可被综合。initial语句、always语句都是同时并行执行,但initial语句只执行一次, always语句那么是反复执行。只需存放器类型信号才可以在initial

23、语句、 always语句被赋值2、Verilog HDL言语根底 2.7 行为级建模initial语句语法格式: initial begin/fork /块能变量阐明、行为语句end/join运用举例: module stimulus ;reg a,b,c;initial a = 1b1;initial begin #5 b = 1b1; #10 c = 1b1;endendmodule2、Verilog HDL言语根底 2.7 行为级建模always语句语法格式: always ( 敏感事件列表 ) begin/fork /块能变量阐明、行为语句 end/join /实现组合逻辑和时序逻辑运

24、用举例: module stimulus ; reg a,b,c,d; always (posedge clk) begininitial begin a = 0; b=0; c= 0; endendalways begin always ( a or b or c) begin #2 a = a; d = a ? b : c ;always begin end #5 b = b; #10 c = c;endendmodule组合逻辑中,敏感变量等式右边一切的标识符必需全写。组合逻辑中,运用阻塞赋值“=时序逻辑中采用非阻塞赋值“=2、Verilog HDL言语根底 2.7 行为级建模过程赋值语

25、句更新存放器、整数、实数或者时间变量。只需在执行到的时候才起作用。分为:阻塞赋值=“与非阻塞赋值语句=“module initial begin a = 1b1; #5 b = 1b1; #10 c = 1b1; endendmodulemodule initial begin a = 1b1; #5 b = 1b1; #10 c = 1b1; endendmodule允许赋值调度!2、Verilog HDL言语根底 2.7 行为级建模语句块在initial语句或always语句中,位于begin .end/fork join块语句之间的一组行为语句。两者可混合运用包括嵌套运用。begin e

26、nd:用来组合需求顺序执行的语句,称为顺序块。initialbegin a = 1b0; b = 1b1; c = a , b; d = b , c; end fork join:用来组合并行执行的语句,称为并行块。initialfork a = 1b0; b = 1b1; c = a , b; /竞争!(同一时辰对同一变量产生影响) d = b, c; /竞争! join2、Verilog HDL言语根底 2.7 行为级建模时序控制分为:延时控制 和 事件控制延时控制: #5 a = b; 事件控制:( a or b or c) 等价 ( a , b , c) (posedge clk )

27、2、Verilog HDL言语根底 2.7 行为级建模流控制流控制语句包括:跳转、分支和循环语句if语句 if ( ) else if( ) elsecase语句 case ( ) casex( ) casez( ) 表达式:声明; default: 声明; endcase endcase endcase循环语句 for () 、 while()、 forever、repeat2、Verilog HDL言语根底 2.7 行为级建模task义务声明:taskendtaskmodule fpga_train(); always ( posedge clk1 ) begin and_operatio

28、n( ab_and , a , b); /变量的指定必需按照定义的顺序! end always ( posedge clk2 ) begin and_operation( cd_and , c , d); endtask automatic and_operation; /自动义务 output ab_and_inst;input a_inst, b_inst; begin ab_and_inst = a_inst & b_inst; endendtask;endmodule2、Verilog HDL言语根底 2.7 行为级建模function义务module fpga_train(); al

29、ways ( posedge clk1 ) begin c = and_operation( a , b); endfunction automatic 7 : 0 and_operation; /自动函数,生成一个名为函数标识符的存放器变量 input a_inst, b_inst; begin and_operation = a_inst & b_inst; endendfunction;endmodule2、Verilog HDL言语根底 2.7 行为级建模task和function的区别1、函数至少有一个输入变量,义务不定。2、函数必需有一个前往值。义务不前往值,可经过OUT变量传送值

30、。3、函数不能包含延迟、事件、时序控制,义务可包含。4、函数可调用函数,不能调用义务。义务可调用义务和函数。IMPLEMENTING A DESIGN INTO A XILINX DEVICETranslateMapPlace & RoutePlan & BudgetHDL RTLSimulationSynthesizeto Create NetlistFunctionalSimulationCreateBIT FileAttain Timing ClosureTimingSimulationImplementCreate Code/Schematic3、如何运用ISE开发环境 3.1 ISE

31、开发流程PROJECT NAVIGATOR IS THE GRAPHICAL INTERFACE TO THE ISE TOOL SUITEProject Navigator windowsSourcesProcessesSummaryWorkingMessage3、如何运用ISE开发环境 3.2 ISE交互窗口CREATING A PROJECTSelect File New ProjectNew Project Wizard guides you through the processProject name and locationTarget deviceSoftware flowCr

32、eate or add source files3、如何运用ISE开发环境 3.2 ISE交互窗口CREATING AND ADDING SOURCE FILESClick Create New Source and choose the type of file to create a new source fileHDL IPConstraintsClick Add Existing Source to include an existing source fileNote the Remove Source and Edit Design Properties buttons3、如何运用ISE开发环境 3.2 ISE交互窗口IMPLEMENTING A DESIGNImplement a designSelect the top-level sourc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论