版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、产品研发中心应用产品组蒋伟2012年2月FPGA内部技术培训第1页,共69页。目 录2什么是FPGA?1Verilog HDL语言基础3如何使用ISE开发环境4FPGA开发实践第2页,共69页。1、什么是FPGA? 1.1可编程逻辑器件基础第3页,共69页。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 in
2、cluding PCI, DDR333,RSDS, 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 3第4页,共69页。1.1 可编程逻辑器件基础可编程逻辑器件(Programmable Logic Device , PLD) 顾名思义,完全由用户通过软件进行配置和编程,从而完成某种特定的功能,而且可以
3、反复擦写的器件。 PLD产品 PROM 编程只读存储器 FPLA 现场可编程逻辑阵列 PAL 可编程阵列逻辑 GAL 通用阵列逻辑 EPLA 可擦除的可编程逻辑阵列 CPLD 复杂可编程逻辑器件 FPGA (Field Programmable Array)现场可编程门阵列,属于可编程逻辑器件的一种。通过可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的可编程半导体器件 。1、什么是FPGA? 1.1可编程逻辑器件基础第5页,共69页。 准确地将用户设计转换为电路模块 能够高效地利用器件资源 能够快速地完成编译和综合 提供丰富的IP核资源 用户界面友好,操作简单 PLD开发软件 优秀的PLD
4、开发软件 Xilinx公司的 ISE Altera公司的 Quartus II、Maxplus II1、什么是FPGA? 1.1可编程逻辑器件基础第6页,共69页。1. 2 FPGA 工作原理四输入一输出的电路模块?ABZCD1、什么是FPGA? 1.2 FPGA工作原理第7页,共69页。 查找表(Look-Up-Table)LUTLUT本质就是一个RAM。FPGA多使用4输入一输出的LUT,一个LUT等效于为一个有4位地址线的161的RAM。将真值表写入RAM后,每输入一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容后输出即可。4-input logic function
5、LUT=CDZABTruth Table图1-1 LUT原理示意图1、什么是FPGA? 1.2 FPGA工作原理第8页,共69页。FPGA工作原理的实质FPGA的工作状态实质是由片内RAM(LUT)决定的,所以通过对片内RAM进行编程(配置LUT ,更新真值表),就能完成某种特定功能。1、什么是FPGA? 1.2 FPGA工作原理第9页,共69页。 FPGA芯片结构 FPGA主要由6个部分组成:IOB(可配置输入输块)CLB(可配置逻辑块)DCM(时钟管理单元)BRAM(嵌入式块RAM)WIRE(布线资源)IP核(内嵌底层功能单元和专用硬件模块)1.3 FPGA芯片结构1、什么是FPGA? 1
6、.2 FPGA工作原理第10页,共69页。CLBCLBCLBCLBBRAMBRAMCLBCLBIOBIOBDCMIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOBIOB图1-2 FPGA芯片的内部结构1、什么是FPGA? 1.2 FPGA工作原理第11页,共69页。定义:芯片与外界电路的接口部分。功能: 匹配不同的电气特性、I/O标准、I/O物理特性。比如调整驱动电流的大小、上下拉电阻、频率、TTL、LVDS。 IOB(可编程输入输出块) WIRE(布线资源)布线资源用于连通FPGA内部的所有单元。第一类:全局布线资源,用于芯片内部全局时钟和全局复位布线
7、。第二类:长线资源,用于BANK间的高速信号。第三类:短线资源,用于基本逻辑单元间的互连和布线。第四类:分布式资源,用于专用时钟、复位等控制信号。1、什么是FPGA? 1.2 FPGA工作原理第12页,共69页。 BRAM(嵌入式块RAM)4096 x 4 Dual-PortDOA3:0DOB3:0WEAENARSTAADDRA11:0CLKADIA3:0WEBENBRSTBADDRB11:0CLKBDIB3:01、什么是FPGA? 1.2 FPGA工作原理第13页,共69页。 BRAM(嵌入式块RAM)1、什么是FPGA? 1.2 FPGA工作原理第14页,共69页。DCM(时钟管理单元)1
8、、什么是FPGA? 1.2 FPGA工作原理第15页,共69页。DCM(时钟管理单元)DCMDCMDCMDCM1、什么是FPGA? 1.2 FPGA工作原理第16页,共69页。 CLB是FPGA内部基本的逻辑单元。 CLB包含:一个可配置的开关矩阵、一些选型电路(多路复用器)和触发器组成。 CLB(可配置逻辑块) XILINX 的CLB C L B = Switch Matrix + 4 Slice + 附加逻辑。 (开关矩阵) (2 SLICEM + 2 SLICEL ) Slice是XILINX定义的基本逻辑单位。由2个4/6输入的查找表、进位逻辑、算数逻辑、存储逻辑、复用器组成。1、什么
9、是FPGA? 1.2 FPGA工作原理第17页,共69页。CINSwitchMatrixCOUTCOUTSLICEM S0X0Y0SLICEM S1X0Y1SLICEL S2X1Y0SLICEL S3X1Y1CINSHIFTCLB示意图 CLB(可配置逻辑块)1、什么是FPGA? 1.2 FPGA工作原理第18页,共69页。IP核:具有知识产权的集成电路芯核总称。分为软核、固核、硬核。 IP核(内嵌底层功能单元和专用硬件模块)软核:对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等,以用HDL文本形式提交给用户。 固核:IP固核的设计程度则是介于软核和硬核之间,除了完成软核所有的设计外,还完
10、成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。硬核:基于半导体工艺的物理设计,布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。1、什么是FPGA? 1.2 FPGA工作原理第19页,共69页。1、什么是FPGA? 1.3 FPGA开发流程1.3 FPGA开发流程 FPGA设计方法硬件设计包括:FPGA芯片电路、存储器、输入输出接口电路以及其他设备。软件设计思想:自顶向下顶层系统2级模块A2级模块B2级模块C3级模块A33级模块A23级模块A13级模块C23级模块C1第2
11、0页,共69页。1、什么是FPGA? 1.3 FPGA开发流程 软件设计流程第21页,共69页。1、什么是FPGA? 1.4 XILINX公司FPGA简介1.4 XILINX公司FPGA简介XILINX公司目前有两大类FPGA产品:Spartan类 和 Virtex类。前者面向低成本的中低端应用。后者面向高端应用。两者的差异仅限于芯片的规模和专用模块上。第22页,共69页。1、什么是FPGA? 1.4 XILINX公司FPGA简介1.4 XILINX公司FPGA简介第23页,共69页。2、Verilog HDL语言基础 2.1 Verilog HDL简介 HDL:具有特殊结构能够对硬件逻辑电路
12、的功能进行描述的一种高级编程语言。 这种特殊结构能够: 描述电路的连接 描述电路的功能 在不同抽象级上描述电路 描述电路的时序 表达具有并行性HDL主要有两种:Verilog和VHDL。Verilog起源于C语言,因此非常类似于C语言,容易掌握什么是硬件描述语言HDL第24页,共69页。2、Verilog HDL语言基础 2.1 Verilog HDL简介 Verilog HDL是在1983年由GDA(GateWay Design Automation)公司的Phil Moorby所创。Phi Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一个合伙人。 在1984
13、1985年间,Moorby设计出了第一个Verilog-XL的仿真器。 1986年,Moorby提出了用于快速门级仿真的XL算法。 1990年,Cadence公司收购了GDA公司 1991年,Cadence公司公开发表Verilog语言,成立了OVI(Open VerilogInternational)组织来负责Verilog HDL语言的发展。 1995年制定了Verilog HDL的IEEE标准,即IEEE1364。Verilog HDL的历史第25页,共69页。2、Verilog HDL语言基础 2.1 Verilog HDL简介二选一选择器的实现:module muxtwo (out,
14、 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的基本程序结构第26页,共69页。2、Verilog HDL语言基础 2.2 基本概念词法约定空白符:空格、换行、制表TAB。除了字符串中的空白符,空白符仅仅用于分辨标识符,编译的时候忽略。注释:单行注释/, 多行注释 /* */操作符:单目、双目、三目操作符数字声明:声明位数和不声明位数(默认十进制),建议声明位数。不确定值X,高阻值Z 。8b 0 x
15、11_00z1 ,12habc , 16d255 ,25, o25,-6d3字符串:”hello”标识符:字母、数字、_、 组成,区分大小写,第一个字符必须是字母或者下划线。关键字:特殊标识符,全小写。第27页,共69页。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信号, 向量第28页,共69页。2、Ve
16、rilog HDL语言基础 2.2 基本概念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位寄存器,宽度和深度第29页,共69页。2、Verilog HDL语言基础 2.2 基本概念parameter型定义常量,提高可读性和可维护性parameter = 3.1415926; parameter 3:0 S0
17、=4h0, S1 = 4h1, S2 = 4h2, S3 = 4h3; 第30页,共69页。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”;第31页,共69页。2、Verilog HDL语言基础 2.2 基本概念编译指令define : 定义文本宏 define WordSize 16 include:将一个
18、Verilog文件包含在另一个Verilog文件中include “moled.v”第32页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式算术操作符第33页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式关系操作符第34页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式逻辑操作符第35页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式按位操作符第36页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式等价操作符第37页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式条件操作符
19、、移位操作符、拼接操作符、缩减操作符、第38页,共69页。2、Verilog HDL语言基础 2.3操作符和表达式缩减操作符A = 4b0110;&A ; /相当于0&1&1&0第39页,共69页。2、Verilog HDL语言基础 2.3 操作符和表达式条件操作符、拼接操作符、缩减操作符条件运算符: ? : A? B : C拼接运算符: , A = 4b0100; B = 4b1100; C = 4b1001;Y= A , B , C , 4b0010 = 0100_1100_1001_0010;第40页,共69页。2、Verilog HDL语言基础 2.3 操作符符和表达式操作符优先级第4
20、1页,共69页。2、Verilog HDL语言基础 2.3 运算符和表达式赋值运算符 = ,= A = b; c = 1b1; /阻塞赋值? C = d; d= 2b01; /非阻塞赋值?第42页,共69页。2、Verilog HDL语言基础 2.4 模块和端口模 块 module能够表示: 物理块,如IC或ASIC单元 逻辑块,如一个CPU设计的ALU部分 整个系统 每一个模块的描述从关键词module开始,有一个名称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。第43页,共69页。2、Verilog HDL语言基础 2.4 模块和端口端口 注意模块的名称DFF
21、,端口列表及说明 模块通过端口与外部通信第44页,共69页。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;endmodule第45页,共69页。2、Verilog HDL语言基础 2.4 模块和端口模块例化第46页,共69页。2、Verilog HDL语言基础 2.5 门级建模(结构化描述)门类型and, or, xor, buf, not, nand, nor, xnor举例:module
22、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定义:对电路结构的描述第47页,共69页。2、Verilog HDL语言基础 2.6 数据流建模语法格式:assign L_S = R_S; 采用assign连续赋值来实现,只能实现组合逻辑。左值必须是线网(标量或者向量),右值可以是线网、寄存器、函数调用。赋值语句总是
23、处于激活状态,只要右边操作数发生变化,立即将结果赋给左边的线网。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定义:对数据流的具体行为的描述第48页,共69页。2、Verilog HDL语言基础 2.7 行为级建模定义:对电路外部行为的角度进行描述。行为级建模主要包括:过程结构、语句块、时序
24、控制、流控制过程结构过程结构采用4种过程语句来实现: initial语句、always语句、task语句、function语句initial语句、always语句又是最基本的两种语句,其他所有行为语句都只能出现在这个两个语句中。initial语句只用于仿真,不可综合。 always语句可被综合。initial语句、always语句都是同时并行执行,但initial语句只执行一次, always语句则是重复执行。只有寄存器类型信号才可以在initial语句、 always语句被赋值第49页,共69页。2、Verilog HDL语言基础 2.7 行为级建模initial语句语法格式: initia
25、l begin/fork /块能变量说明、行为语句end/join应用举例: module stimulus ;reg a,b,c;initial a = 1b1;initial begin #5 b = 1b1; #10 c = 1b1;endendmodule第50页,共69页。2、Verilog HDL语言基础 2.7 行为级建模always语句语法格式: always ( 敏感事件列表 ) begin/fork /块能变量说明、行为语句 end/join /实现组合逻辑和时序逻辑应用举例: module stimulus ; reg a,b,c,d; always (posedge c
26、lk) 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组合逻辑中,敏感变量(等式右边所有的标识符)必须全写。组合逻辑中,使用阻塞赋值“=”时序逻辑中采用非阻塞赋值“=”第51页,共69页。2、Verilog HDL语言基础 2.7 行为级建模过程赋值语句更新寄存器、整数、实数或者时间变量。只有在执行到的时候才起作用。分为:阻塞赋
27、值”=“与非阻塞赋值语句”=“module initial begin a = 1b1; #5 b = 1b1; #10 c = 1b1; endendmodulemodule initial begin a = 1b1; #5 b = 1b1; #10 c = 1b1; endendmodule允许赋值调度!第52页,共69页。2、Verilog HDL语言基础 2.7 行为级建模语句块在initial语句或always语句中,位于begin .end/fork join块语句之间的一组行为语句。两者可混合使用(包括嵌套使用)。begin end:用来组合需要顺序执行的语句,称为顺序块。in
28、itialbegin a = 1b0; b = 1b1; c = a , b; d = b , c; end fork join:用来组合并行执行的语句,称为并行块。initialfork a = 1b0; b = 1b1; c = a , b; /竞争!(同一时刻对同一变量产生影响) d = b, c; /竞争! join第53页,共69页。2、Verilog HDL语言基础 2.7 行为级建模时序控制分为:延时控制 和 事件控制延时控制: #5 a = b; 事件控制:( a or b or c) 等价 ( a , b , c) (posedge clk ) 第54页,共69页。2、Ver
29、ilog HDL语言基础 2.7 行为级建模流控制流控制语句包括:跳转、分支和循环语句if语句 if ( ) else if( ) elsecase语句 case ( ) casex( ) casez( ) 表达式:声明; default: 声明; endcase endcase endcase循环语句 for () 、 while()、 forever、repeat第55页,共69页。2、Verilog HDL语言基础 2.7 行为级建模task任务声明:taskendtaskmodule fpga_train(); always ( posedge clk1 ) begin and_ope
30、ration( 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;endmodule第56页,共69页。2、Verilog HDL语言基础 2.7 行为级建模function任务module f
31、pga_train(); always ( 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;endmodule第57页,共69页。2、Verilog HDL语言基础 2.7 行为级建模task和function的区别1、函数至少有一个输入变量,任务不定。2、函数必须
32、有一个返回值。任务不返回值,可通过OUT变量传递值。3、函数不能包含延迟、事件、时序控制,任务可包含。4、函数可调用函数,不能调用任务。任务可调用任务和函数。第58页,共69页。Implementing a Design into a Xilinx DeviceTranslateMapPlace & RoutePlan & BudgetHDL RTLSimulationSynthesizeto Create NetlistFunctionalSimulationCreateBIT FileAttain Timing ClosureTimingSimulationImplementCreate
33、Code/Schematic3、如何使用ISE开发环境 3.1 ISE开发流程第59页,共69页。Project Navigator is the Graphical Interface to the ISE Tool SuiteProject Navigator windowsSourcesProcessesSummaryWorkingMessage3、如何使用ISE开发环境 3.2 ISE交互窗口第60页,共69页。Creating a ProjectSelect File New ProjectNew Project Wizard guides you through the proce
34、ssProject name and locationTarget deviceSoftware flowCreate or add source files3、如何使用ISE开发环境 3.2 ISE交互窗口第61页,共69页。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 fi
35、leNote the Remove Source and Edit Design Properties buttons3、如何使用ISE开发环境 3.2 ISE交互窗口第62页,共69页。Implementing a DesignImplement a designSelect the top-level source file in the Sources windowHDL or EDIF,depending on your design flowDouble-click Implement Design in the Processes window 3、如何使用ISE开发环境 3.2
36、ISE交互窗口第63页,共69页。Checking the Implementation StatusThe ISE software will run all of the necessary steps to implement the designSynthesize HDL codeTranslateMapPlace & Route = process was completed successfully! = warnings? = a file that is out of dateX = errors3、如何使用ISE开发环境 3.2 ISE交互窗口第64页,共69页。Simul
37、ating a DesignSimulate a designSelect Sources for: SimulationExpand ISim Simulator in the Processes windowDouble-click Simulate Behavioral ModelYou can also simulate after Place & Route3、如何使用ISE开发环境 3.2 ISE交互窗口第65页,共69页。Viewing SubprocessesExpand each process to view subtools and subprocessesUser Co
38、nstraintsSynthesisView SchematicsCreate behavioral simulation modelMapAnalyze timingPlace & RouteAnalyze timingFloorplan (PlanAhead tool)FPGA EditorAnalyze powerCreate timing simulation model3、如何使用ISE开发环境 3.2 ISE交互窗口第66页,共69页。4、FPGA开发实践 基于SPARTAN-3A 开发板,完成霓虹灯功能,实现50MHZ频率降频到10MHZ,霓虹灯显示周期200ms。1、建立工程2
39、、添加verilog 模块3、添加时钟管理IP核4、添加 UCF文件5、霓虹灯功能实现6、逻辑功能仿真7、在线逻辑分析(创建chipscope文件)第67页,共69页。谢谢!第68页,共69页。1、想要体面生活,又觉得打拼辛苦;想要健康身体,又无法坚持运动。人最失败的,莫过于对自己不负责任,连答应自己的事都办不到,又何必抱怨这个世界都和你作对?人生的道理很简单,你想要什么,就去付出足够的努力。2、时间是最公平的,活一天就拥有24小时,差别只是珍惜。你若不相信努力和时光,时光一定第一个辜负你。有梦想就立刻行动,因为现在过的每一天,都是余生中最年轻的一天。3、无论正在经历什么,都请不要轻言放弃,因为从来没有一种坚持会被辜负。谁的人生不是荆棘前行,生活从来不会一蹴而就,也不会永远安稳,只要努力,就能做独一无二平凡可贵的自己。4、努力本就是年轻人应有的状态,是件充实且美好的事,可一旦有了表演的成分,就会显得廉价,努力,不该是为了朋友圈多获得几个赞,不该是每次长篇赘述后的自我感动,它是一件平凡而自然而然
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Photoshop一级考试试题(含详细答案解析)
- 体育馆室内装饰装修施工方案
- PDP性格测试完整版(试题+详细解析答案)
- 2026年演出经纪人考试题库附参考答案(典型题)
- 2026年河北省机关事业单位工人技能等级考试(木材检验工)历年参考题库及答案
- 草酸钙尿路结石长期饮水预防方案共识
- Oracle 基础知识笔试试题及详细答案
- 2026年普法知识竞赛题库及答案
- 2026年注册安全工程师专业技术能力评估试题(附答案)
- 室外游乐设施防冻运维规程
- 《大学生创新创业法律实务》课件-单元六创新创业中的劳动法律制度
- 2026家长开学第一课主题班会课件
- 中考英语专练:短文语法填空(模拟10篇)
- 2026年机动车外检模拟试卷(含答案)
- 老年人疼痛管理与舒适护理技术
- 2026年幼儿园教师安全常规培训
- 瑞幸咖啡门店工作制度
- 2026浙江宁波市余姚市阳明街道办事处招聘编外工作人员1人笔试参考题库及答案解析
- T∕TCMCA 0035-2025 十字轴式万向联轴器 验收规范
- 制药配液系统培训
- 光缆开剥与固定课件
评论
0/150
提交评论