FPGA课件.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 课件
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,可编程逻辑器件设计,(,可编程逻辑器件及应用,),教材:,FPGA,设计基础,王传新 高等教育出版社,复杂可编程逻辑器件及数字系统应用,自编,课时:,32,学时,(,实验:,16,学时,),授课教师:王晓飞,第一章 概论,第一节 可编程逻辑器件的产生及优点,1,标准集成电路,(,非用户定制电路,),标准集成电路系列:主要完成一些基本的通用功能。如各种门电路、,触发器、译码器等。,软件组态标准电路:硬件本身不足以完成所需功能,要靠软件驱动。,如各类,CPU,等。,存在问题:,从厂家生产、用户使用角度来讲,厂家根据市场调研制定,出自己的生产计划,(,包括芯片的种类和数量,),并有产品手册,供用户选型;用户根据自己的需要购买芯片。往往出现这,样的问题:厂家常常出现“供过于求”,用户则发现“供,非我所求”。,结 果:,这种情况最终导致了专用集成电路,ASIC(Application,Specified Integrated Circuit),的产生和发展。,一、集成电路的分类,第一章 概论,第一节 可编程逻辑器件的产生及优点,一、集成电路的分类,2,专用集成电路,(,用户定制电路,),全定制电路:厂家根据用户要求,从晶体管级开始设计,做到各项,电气指标符合用户要求。显然它的设计试制周期短、成本高。,半定制电路:设计与生产过程的某些部分可以“预先设计”、“预,先加工”、“预先制作”并为用户选用,这是共享部分;另一方面,,版图的布局、布线和最终形成的版图是按照用户要求定制的,不,能共享。它缩短了生产周期,降低了成本。,存在问题:,有些用户要求,ASIC,的产品品种多而数量少,或要求芯片,生产周期极短,以便自己的产品尽快投放市场,这时用户,定制电路就显得力不从心,成本高且周期长,用户既用不,起也等不及。,结 果:,这种情况导致当前半导体器件和集成电路的生产增长量略,呈下降趋势,而此时用户再构造电路异军突起,新工艺、,新结构层出不穷。,第一章 概论,第一节 可编程逻辑器件的产生及优点,一、集成电路的分类,3.,可编程逻辑器件,PLDProgrammable Logic Device(,用户再构造电路,),一次可编程逻辑器件,OTPLD(One Time PLD),:,代表产品:可编程只读存储器,PROM(Programmable Read Only,Memory),;,可编程逻辑阵列,PAL(Programmable Array Logic),。,存在问题:,这种器件最大缺点是只能编程一次。而一个电路设计工,作者很难作到一次成功,总希望允许修改和调整自己设,计的电路。,结 果:,促成了,EPLD,的诞生。,第一章 概论,第一节 可编程逻辑器件的产生及优点,一、集成电路的分类,3.,可编程逻辑器件,PLDProgrammable Logic Device(,用户再构造电路,),可擦除可编程逻辑器件,EPLDErasable PLD,:,代表产品:属于紫外线擦除的,EPROM,;,属于电擦除的,EEPROM,;,通用逻辑阵列,GAL(Generic Array Logic),。,存在问题:,该类器件的主要特点是可多次编程、多次擦除。尽管在,编程特性上做了很大的改进,但在集成容量、功耗、速,度、逻辑器件设计的灵活性上均不能满足要求。,结 果:,为满足现代数字系统的大容量、高速度、现场灵活编程,设计的要求,产生了,CPLD,。,第一章 概论,第一节 可编程逻辑器件的产生及优点,一、集成电路的分类,3.,可编程逻辑器件,PLDProgrammable Logic Device(,用户再构造电路,),复杂可编程逻辑器件,CPLDComplex PLD,现场可编程门阵列,FPGAField Programmable Gate Array,在系统可编程,ISPIn System Programmability),该类器件出现于,80,年代中期,,90,年代初期开始逐渐为我国专业,人士认识和使用。它是一种由用户决定其电路结构的复杂可编程逻辑,器件,在计算机系统前可现场设计、现场编程、现场配置、现场修改、,现场验证、从而现场实现数字系统的单片化设计与应用。,第一章 概论,第一节 可编程逻辑器件的产生及优点,一、集成电路的分类,4,可编程模拟器件,PADProgrammable Analogical Device(,用户再构造电路,),现代数字系统组成:,CPU,(,DSP,),+RAM,(,FM,),+FPGA,第一章 概论,第一节 可编程逻辑器件的产生及优点,二、,复杂可编程逻辑器件,的优点,1.,成本低:因其具有标准集成电路生产和投放市场量大的特点。,2.,周期短:这种器件是具有一定连线结构的已封装好的全功能芯片,即内部电路只做了少量最基本连接,管脚也绝大多数没有定义,芯片内部为用户提供了大量的连线资源,用户可根据自己的需要编程设计,用户既是使用者,也参与设计和制造过程,而这种设计和制造时间多则几天、少则几小时。,3.,集成度高:属于大规模和超大规模集成电路,易于实现设备小型化。,数字系统采用,FPGA,前后的情况,4.,功耗低速度快:采用,CMOS,工艺,内核趋于,1.6V,,功耗低;翻转速率可达,上百,MHz,。,5.,保密性好:可加密。,6.,编程性能好:上万次改写原则上不影响其电气特性。,7.,通用性强:只做一定连线,是全功能的标准电路。,8.,灵活性大:可借助开发系统对电路进行再构造,将其设计成所需的,ASIC,,还可随时改变设计,实时实现和验证。,第一章 概论,第一节 可编程逻辑器件的产生及优点,二、复杂可编程逻辑器件的优点,第一章 概论,一、复杂可编程逻辑器件的内部结构,复杂可编程逻辑器件内部结构主要分为三个部分,三部分均为可构造单元,参见,P2,图,1.2.1,(自编)。,可构造逻辑模块,CLB(Configurable Logic Block),构成核心阵列结构的,CLB,用于实现用户指定的逻辑功能。,可构造,I/O,模块,IOB(Input/Output Block),可构造的外围模块,IOB,用来提供逻辑单元阵列和器件管脚之间的 可编程接口。,内连资源,IR(Interconnect Resource),用于模块间内部互连的,IR,用来形成模块间传递信号的网络。,构造程序存储器,CPM(Configurable Program Memory),上述三部分可构造单元功能的实现,完全由芯片内部分布式的,CPM,阵列单元中所存储的构造程序来控制和驱动。,第二节,复杂可编程逻辑器件,内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,1,从,CLB,上分类为:查找表型、多路开关型、乘积项型,查找表型,查找表型复杂可编程逻辑器件其,CLB,由功能为查找表的静态存储器构成函数发生器来控制执行复杂可编程逻辑器件的应用函数逻辑。为了提高性能,有些复杂可编程逻辑器件的,CLB,中附加了进位链电路和级连链电路,利用进位链电路易实现快速加法器、计数器、比较器;级连链电路连接邻近单元以实现多输入的逻辑单元。,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,例:以查找表型复杂可编程逻辑器件实现全加器,。,A,n,为加数、,B,n,为被加数、,C,n,为低位进位、,S,n,为和、,C,n+1,为高位进位,则,S,n,=A,n,B,n,C,n,;,C,n+1,=A,n,B,n,+A,n,C,n,+B,n,C,n,。,把对应函数的真值表存放在,SRAM,中即可实现相应的函数运算:,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,1,从,CLB,上分类为:查找表型、多路开关型、乘积项型,查找表型,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,1,从,CLB,上分类为:查找表型、多路开关型、乘积项型,多路开关型,多路开关型复杂可编程逻辑器件其,CLB,是可配置的多路开关:对多路开关输入选择信号进行配置,接到固定电平或输入信号上,实现不同的逻辑功能。,例:以多路开关型复杂可编程逻辑器件实现全加器。,多路开关的基本工作原理:,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,1,从,CLB,上分类为:查找表型、多路开关型、乘积项型,乘积项型复杂可编程逻辑器件其,CLB,由“与,或,异或”构成。,例:以乘积项型复杂可编程逻辑器件实现全加器。,乘积项型,乘积项型适合于多输入组合逻辑的实现;,查找表型和多路开关型更适用于实现触发器较多的时序电路。,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,2,从,IR,上分类为:分段式、连续式,分段式,分段式连线结构是利用不同长度的金属连线段,经过开关元件将各逻辑功能块,CLB,连接起来,形成,信号通路。,其主要优点是可用的功能块可以完全被利用起来,缺点是需要大量的连接线段和可编程开关,布线延时是累加的、可变的,并与通道有关,速度相对较慢。,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,2,从,IR,上分类为:分段式、连续式,连续式,连续式连线结构采用点到点的金属连线,这些连线经多路选择器或交叉矩阵选通构成信号通路。这种连线结构消除了分段式连线在定时上的差异,在各逻辑单元之间提供快速、固定、可预测的延时通路,易消除竞争险象,便于设计使用。,FPGA,采用细颗粒,(Fine-grained),逻辑单元,连线结构为分段式;,CPLD,采用了较大的逻辑单元,即粗颗粒,(Coarse-grained),,连线为连续式。,3.,从编程特性上分类为:,在系统可编程,ISP(In-system Programmablity),在线可重配置,ICR(In-circuit Reconfigurability),ISP,器件采用闪烁存储器,FM(Flash Memory),存储编程信息,器件内有产生编程电压的电压泵,所以无须在编程器上编程,可直接对线路板上的,ISP,进行编程。采用,FM,存储编程信息,断电时信息不丢失,而且擦除时间快。,ICR,ICR,器件采用静态随机存储器存储编程信息,亦不需要在编程器上编程,可直接对线路板上的,ICR,进行编程。断电时信息丢失,所以通常将编程信息存于外附的,EPROM,或,EEPROM,或系统的软、硬盘上,在系统工作之前或工作期间,将存于外部的编程信息输入到器件内的,SRAM,,具有工作中的快速编程性,允许同一器件在同一系统的不同时刻实现不同的功能。,复杂可编程逻辑器件的优点非常突出,但它毕竟还是一个尚待开发的芯片,只有芯片是不够的,还必须利用其开发系统对其进行再构造,使其完成所需的逻辑功能。,第一章 概论,第二节 复杂可编程逻辑器件的内部结构及分类,二、,复杂可编程逻辑器件的分类,复杂可编程逻辑器件可从,CLB,上、,IR,上、编程特性上进行分类。,第一章 概论,第三节 开发系统及开发步骤,Altera,、,Xilinx,、,AT&T,、,Atmel,、,Vantice,、,Motorala,等世界著名大公司,陆续推出自己的器件和相应的开发系统,而且支持第三方软件。为吸引用户,,产品各具特色,开发系统也尽显各公司技术特征。,开发系统由,硬件,:,PC,机、下载电缆、,CPLD,线路板 组成,软件,:设计开发软件包,其设计流程为:设计输入设计实现设计验证,第一章 概论,第三节,CPLD,开发系统及开发步骤,设计输入(,Design Entry,):由设计者对器件的逻辑功能进行描述。设计输入,可采用:原理图,利用元件库设计电路功能;,硬件描述语言,HDL,(,Hardware Description Language,),设计实现:,优化(,Optimization,),化简逻辑,并将逻辑描述变为最适合在器件中实现,的形式;,合并(,Merging,),模块化设计产生多个文件,将其合并为一个网表文件,,并使层次设计平面化。,映射(,Mapping,),将设计分成多个适合用器件内部逻辑资源实现的逻辑小,块的形式。,布局(,Placement,),将已分割的逻辑小块放到器件内部逻辑资源的具体位,置。,布线(,Routing,),利用器件布线资源完成各功能块之间和反馈信号的连,接。,生成位码流文件(,Bitstream Generation,),产生可供器件编程使用的数据,文件。,设计验证:,PC,机上仿真,电路功能仿真和时序仿真。,实验板上实时验证,将位码流文件通过下载电缆写入,CPLD,或通过编,程器写入外配的,EPROM(EEPROM),第一章 概论,第三节,CPLD,开发系统及开发步骤,第一章 概论,第三节,CPLD,开发系统及开发步骤,第一章 概论,第三节,CPLD,开发系统及开发步骤,第一章 概论,第三节,CPLD,开发系统及开发步骤,第二章,FPGA,器件设计,本章以,ALTERA,公司的,EPF10K10(1,万门,查找表,+,多路开关、连续式、,ICR),为设计对象,采用,Quartus,6.0,软件进行器件设计。一、安装,Quartus,6.0,假设光盘驱动器号为,e 1.,运行,e:QuartusII6.0 install.exe,,在提示下完成安装,2.,安装完,2,张盘之后,再安装补丁包,quartusii_60_sp1_pc.exe 3.,打开(启动)已安装好的,QUARTUSII,:初次进入,QuartusII,,而尚未设置,license,时,会出现图示窗口,清选择:,Specify valid license file,项,单击,OK,后进入,QuartusII,界面。,第二章,FPGA,器件设计,4.,在界面中选择菜单,ToolsLicense Setup,进入图示画面,拷贝,Network Interface Card ID:,中的字符,关闭该界面。用写字板打开,q6.0&dsp&mega,,替换其中的,HOSTID,。,5.,再次进入该界面,扫描找到,License file:,q6.0&dsp&mega,即完成授权工作。,第二章,FPGA,器件设计,二、,设计输入,1.,建立文件夹以存放工程项目文件,(,利用,Windows,资源管理器,),2.,输入源文件,双击,Quartus 6.0,图标,进入,Quartus,,,从下拉菜单中选择“,FileNew”,,打开对话框,选择输入方式。图示为,VHDL,输入方式,保存在文件夹中,文件名与实体名一致,.,第二章,FPGA,器件设计,二、,设计输入,3.,在提示下选择项目工程路径,输入项目工程名称,Project,名称与顶层文件名一致,对于,VHDL,输入方式,因为只有一个顶层文件,所以,Project,项目工程名称,=VHDL,文件名,=,实体名,第二章,FPGA,器件设计,二、,设计输入,4.,扫描找到设计的文件,第二章,FPGA,器件设计,二、,设计输入,5.,按照提示操作,如图示选择器件型号,第二章,FPGA,器件设计,二、,设计输入,4.,左图用于选择第,3,方软件,如果使用,Quartus,软件中自带的仿真器和综合器,可默认不做任何选择,单击右图“,finish”,完成设计输入,.,第二章,FPGA,器件设计,三、设计实现(编译、综合分析),1.,选择下拉菜单,ProcessingCompiler Tool,第二章,FPGA,器件设计,三、设计实现(编译、综合分析),2.,单击“,Compiler Tool”,对话框中的“,Start”,如有错误会出现在下面的对话,框中,改正直至通过编译。,第二章,FPGA,器件设计,四、设计验证(仿真),1.,建立仿真文件 选择下拉菜单,filenew,,在对话框中如图示选择,第二章,FPGA,器件设计,四、设计验证(仿真),1.,建立仿真文件 单击,OK,后:,第二章,FPGA,器件设计,四、设计验证(仿真),2.,设置仿真时间区域:下拉菜单,Edit/End Time,,例如如图示选择,第二章,FPGA,器件设计,四、设计验证(仿真),3.,添加仿真信号:下拉菜单,View/Utility Windows/Node Finder:,如果仿真管脚,在,Filter,中选择,Pins:all,如果还需仿真内部节点,则选择,Design Entryall names,单击,List,下方窗口出现引脚等名称,第二章,FPGA,器件设计,四、设计验证(仿真),3.,添加仿真信号:选中管脚,左键拖入仿真文件的,Name,窗口,第二章,FPGA,器件设计,四、设计验证(仿真),4.,使用快捷键选择仿真信号输入状态,下拉菜单,Edit/Grid Size,可确定最小状态转变时间,第二章,FPGA,器件设计,四、设计验证(仿真),5.,保存仿真文件:,File/Save as6.,功能仿真:,Assignments/Settings,如图选择,第二章,FPGA,器件设计,四、设计验证(仿真),6.,功能仿真:执行,Processing/Generate Functional Simulation Netlist,建立功能仿真网表;执行,Processing/Start Simulation,开始仿真,第二章,FPGA,器件设计,四、设计验证(仿真),7.,时序仿真:,Assignments/Settings,如图选择,其它同功能仿真。一般只做时序仿真,因为它含功能仿真。,第二章,FPGA,器件设计,五、形成模块,第二章,FPGA,器件设计,六、模块调用:可在原理图输入方式中通过扫描调入,双击模块可打开底层,VHDL,文件,第二章,FPGA,器件设计,七、锁定引脚,1.VHDL,方式:,第二章,FPGA,器件设计,七、锁定引脚,1.VHDL,方式:,2.,原理图方式,第二章,FPGA,器件设计,七、锁定引脚,1.VHDL,方式:编译后可查看管脚平面图,可拖动置换引脚。双击管脚可弹出信息还有更简单的方法:,Assignments/Pins,然后直接点击引脚,从对话框中的下拉菜单中选择名称,第二章,FPGA,器件设计,七、锁定引脚,1.VHDL,方式:编译后可查看管脚平面图,可拖动置换引脚。双击管脚可弹出信息,2.,原理图方式:调用库元件,第二章,FPGA,器件设计,八、下载全程编译快捷键 形成下载文件,.sofTools/Programmer:,编辑,Hardware,和下载,Mode(JTAG),单击 完成下载,第二章,FPGA,器件设计,原理图输入方式:调用库元件,第二章,FPGA,器件设计,层次化设计实例,第三章,FPGA,实验系统,第四章,VHDL,硬件描述语言,第一节,VHDL,的基本结构,FPGA,设计基础,P61,库和标准程序包,LIBRARY WORK;,LIBRARY STD;,LIBRARY ieee;,USE ieee.std_logic_1164.ALL;,USE ieee.std_logic_arith.ALL;,使用库和程序包的一般定义表式是:,LIBRARY ;,USE .ALL;,第四章,VHDL,硬件描述语言,第一节,VHDL,的基本结构,ENTITY e_name IS,PORT(p_name:port_m data_type;,.,p_namei:port_mi data_type);,END e_name;,1.,实体,2.,实体名,3.,端口语句和端口信号名,第四章,VHDL,硬件描述语言 第一节,VHDL,的基本结构,K,X,康芯科技,端口模式,IN,输入端口,定义的通道为单向只读模式,OUT,输出端口,定义的通道为单向输出模式,INOUT,定义的通道确定为输入输出双向端口,BUFFER,缓冲端口,其功能与,INOUT,类似,第四章,VHDL,硬件描述语言,第一节,VHDL,的基本结构,数据类型,常用:,std_logic,std_logic_vector,“0”,正常,0,“1”,正常,1,“Z”,高阻,“,_”,不可能情况,“,L”,弱信号,0,“H”,弱信号,1,“U”,未初始化值,“,X”,未知值,“,W”,弱未知信号值,STD_LOGIC,数据可包含如下,9,种不同取值:,结构体,ARCHITECTURE,结构体作为实体的一部分,用于描述设计实体的逻辑行为,使用时间结构等。基本语句结构如下:,ARCHITECTURE,结构体名,OF,实体名,IS,说明语句,;,BEGIN,功能描述语句,;,END ARCHITECTURE,结构体名,;,配置语句的格式如下:,Configuration,配置名,of,实体名,IS,for,选配结构体名,end for,;,end,配置名;,第二节,VHDL,语言要素及规则,数据对象,一、,常数,CONSTANT,定义一个常数主要是为了使设计实体中的某些量易于阅读和修改。常数说明就是对某一常数名赋予一个固定的值。通常在程序开始前进行赋值,该值的数据类型在说明语句中说明。说明格式如下:,CONSTANT,常数名:数据类型,:=,表达式;,CONSTANT a,:,integer:=11,;,CONSTANT a,:,std_logic_vector:=,“,1011,”,;,实体中说明(,port,后)、结构体中说明(,begin,前)、进程中说明(,begin,前),有效范围不同,二、信号,SIGNAL,信号是电子电路内部硬件连接的抽象。它可以作为设计实体中的并行语句模块间交流信息的通道。信号及其相关的延时语句明显地体现了硬件系统的特征。,信号定义语句的格式为:,SIGNAL,信号名:数据类型:,=,初值;,SIGNAL a,:,bit,:,=0,;,注意:,使用范围为实体、结构体,,同一信号只能一次赋值,赋值生效是在进程之后。赋值符号,=,三、变量,VARIABLE,变量,只能在进程和子程序中用,,是一个局部量,不能将信息带出对它做出定义的当前设计单元。与信号不同,变量的赋值是理想化数据传输,其,赋值是立即生效,的,不存在任何的延时行为。,赋值符号:,=,变量定义语句的格式为:,VARIABLE,变量,名:数据类型:,=,初值;,例子:,P66-3.2.1+P67-3.2.2,数据类型,一、预定义数据类型,1,、,std,库标准程序包,standard,中的数据类型,1,)布尔量(,boolean,),布尔量具有两种状态:,false,和,true,常用于逻辑函数,如相等(,=,)、比较(,),等中作逻辑比较。,如,,bit,值转化成,boolean,值:,boolean_var:=(bit_var=,1,);,2,)位(,bit,),bit,表示一位的信号值。,放在单引号中,如,0,或,1,。,3,)位矢量(,bit_vector,),bit_vector,是用双引号括起来的一组位数据。,如:,“,001100,”,X,“,00B10B,”,4,)字符(,character,),用单引号将字符括起来。,variable character_var:character;,.,Character_var:=,A,;,5,)整数(,integer,),integer,表示所有正的和负的整数。硬件实现时,,利用,32,位的位矢量来表示。可实现的整数范围为:,-,(,231-1,),to(231-1),VHDL,综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。,如:,signal s:integer range 0 to 15;,信号,s,的取值范围是,0-15,,可用,4,位二进制数表,示,因此,s,将被综合成由四条信号线构成的信号。,6,)字符串(,string,),string,是,character,类型的一个非限定,数组。用双引号将一串字符括起来。如:,variable string_var:string(1 to 7);,string_var:=,“,Rosebud,”,;,2,、,IEEE,预定义标准逻辑位与矢量,1,),std_logic,类型,由,ieee,库中的,std_logic_1164,程序,包定义,为九值逻辑系统,如下:,U,:未初始化的,,X,:强未知的,,0,:强,0,,,1,:强,1,,,Z,:高阻态,,W,:弱未知的,,L,:弱,0,,,H,:弱,1,,,-,:忽略,2,),std_logic_vector,类型,由,std_logic,构成的数组。定义如下:,type std_logic_vector is array(natural,range)of std_logic;,赋值的原则:相同位宽,相同数据类型。,二、数据类型转换,在,VHDL,中,不同类型的数据不能直接进行算术或逻辑运算。因此有必要进行数据类型转换操作。,在,ieee,库的包集,std_logic_arith,中提供了许多数据类型转换函数,如下所示:,conv_integer(p),:将数据类型为,INTEGER,,,UNSIGNED,,,SIGNED,,,STD_ULOGIC,或,STD_LOGIC,的操作数,p,转换成的,INTEGER,类型。注意,这里不包含,STD_LOGIC_VECTOR,。,conv_unsigned(p,,,b),:将数据类型为,INTEGER,,,UNSIGNED,,,SIGNED,或,STD_ULOGIC,的操作数转换成位宽为,b,的,UNSIGNED,类型的数据。,conv_signed(p,,,b),:将数据类型为,INTEGER,,,UNSIGNED,,,.SIGNED,或,STD_ULOGIC,的操作数,p,转换成位宽为,b,的,SIGNED,类型的操作数。,conv_std_logic_vector(p,,,b),:将数据类型为,INTEGER,,,UNSIGNED,,,SIGNED,或,SID_LOGIC,的操作数,p,转换成位宽为,b,的,STD_LOGIC_VECTOR,类型的操作数。,三、用户定义的数据类型,1,)枚举类型,语句格式如下:,TYPE,数据类型名,IS,数据类型定义;,3,)数组类型,语句格式如下:,TYPE,类型名称,IS ARRAY,整数范围,OF,数据类型;,基本运算符,P71,属性,一、信号类型属性,1,、信号,event:,函数的返回值为,true,或,false,气如果在当前的一个相当小的时间间隔内有信号事件发生,返回值为,true;,如果在当前的一个相当小的时间间隔内没有信号事件发生,则返回值为,false,。,2,、信号,last_value:,函数将返回一个值,即用来返回该信号在最近一个事件发生以前的值。,二、数值类、范围类和数组属性,数值类属性:,data,left:,返回值为,4,data,right:,返回值为,0,data,high:,返回值为,4,data,low:,返回值为,0,数组属性:,data,length:,返回值为,5,范围类属性:,data,range,:返回值为,4 DOWNTO 0,data,reverse_range:,返回值为,0 TO 4,第三节,VHDL,基本并行语句,信号赋值语句,一、一般信号赋值语句,一般形式为:,信号名,=,表达式;,一般信号赋值语句用在结构体中是并行语句,但用在进程、子程序等内部时属于顺序语句。,二、条件信号赋值语句,条件信号赋值语句按照不同的条件对信号赋予不同的值。该语句转入执行的条件是计算表达式中的信号值或条件发生了变化。,格式为:,信号,=,值,1 WHEN,条件,1 ELSE,值,2 WHEN,条件,2 ELSE,值,3 WHEN,条件,n;,三、选择信号赋值语句,选择信号赋值语句根据选择表达式对信号赋予不同的值。该语句转入执行的条件是计算表达式中的信号值或条件发生了变化。,格式为:,WITH,条件表达式,SELECT,信号,连接实体端口名,,),;,子程序调用语句,子程序是一个,VHDL,程序模块,由顺序语句构成,用于完成重复性的计算工作,子程序有两种类型,即过程(,Procedure,)和函数(,Function,)。子程序的使用方法只能通过子程序调用及与子程序的界面端口进行通信。每调用一次子程序都意味着增加了一个硬件电路模块,因此,在实际使用时,要密切关注和严格控制子程序的调用次数。,1.,过程的调用,语句书写格式如下:,过程名,(,形参名,=,实参表达式,,,形参名,=,实参表达式,),;,2.,函数的调用,函数调用与过程调用的方法相似:,函数名(参量表),块语句,Block,语句是结构体中积木化设计语言,适用于复杂项目设计。,书写格式如下:,块标号:,BLOCK(,保护表达式,),PORT(,端口表,),;,快说明语句;,BEGIN,并行语句;,END BLOCK,块标号,;,第四节,VHDL,基本顺序语句,赋值语句,一、变量赋值语句,格式为:,变量名:,=,表达式;,条件语句,一、完整的,IF,语句,格式如下:,IF,条件,1 THEN,顺序语句,1,;,ELSIF,条件,2 THEN,顺序语句,2,;,ELSIF,条件,n THEN,顺序语句,n;,ELSE,顺序语句,n+1;,END IF;,二、不完整的,IF,语句,格式如下:,IF,条件,1 THEN,顺序语句,1,;,ELSIF,条件,2 THEN,顺序语句,2,;,ELSIF,条件,n THEN,顺序语句,n,;,END IF;,CASE,语句,格式如下:,CASE,条件表达式,IS,WHEN,条件表达式的值,=,顺序语句,;,WHEN OTHERS =,顺序语句;,END CASE;,循环语句,一、简单的,LOOP,语句,语句格式如下:,循环标号:,LOOP,顺序语句;,EXIT,循环标号,WHEN,条件,;,END LOOP,循环标号,;,二、循环变量,LOOP,语句,语句格式如下:,循环标号,:,FOR,循环变量,IN,循环次数范,围,LOOP,顺序语句;,END LOOP,循环标号,;,三、循环条件,LOOP,语句,循环标号,:,WHILE,循环条件,LOOP,顺序语句;,END LOOP,循环标号,;,第五章 数字系统设计方法,第一节 组合逻辑电路的设计,一、各类门电路,(布尔方程),U,盘,/FPGA/gate,LIBRARY ieee;,USE ieee.std_logic_1164.ALL;,USE ieee.std_logic_arith.ALL;,ENTITY gate IS,PORT(a2,a1,a0:IN std_logic;,y:OUT std_logic);,END gate;,ARCHITECTURE g OF gate IS,BEGIN,y=(a1 AND a0)OR a2;,END g;,二、编码器和译码器,一般信号赋值语句,(,布尔方程,),U,盘,/FPGA/gate2_4,第五章 数字系统设计方法,第一节 组合逻辑电路的设计,LIBRARY ieee;,USE ieee.std_logic_1164.ALL;,USE ieee.std_logic_arith.ALL;,ENTITY gate2_4 IS,PORT(a1,a0:IN std_logic;,y0,y1,y2,y3:OUT std_logic);,END gate2_4;,ARCHITECTURE g OF gate2_4 IS,BEGIN,y0=NOT a1 AND NOT a0;,y1=NOT a1 AND a0;,y2=a1 AND NOT a0;,y3=a1 AND a0;,END g;,二、编码器和译码器,(,选择信号赋值语句,),U,盘,/FPGA/gate3_8b,第五章 数字系统设计,第一节 组合逻辑电路的设计,LIBRARY ieee;,USE ieee.std_logic_1164.ALL;,ENTITY gate3_8b IS,PORT(a:IN std_logic_vector(2 DOWNTO 0);,y:OUT std_logic_vector(7 DOWNTO 0);,END gate3_8b;,ARCHITECTURE m1 OF gate3_8b IS,BEGIN,WITH a SELECT,y=11111110WHEN000,11111101WHEN001,11111011WHEN010,11110111WHEN011,11101111WHEN100,11011111WHEN101,10111111WHEN110,01111111WHEN OTHERS;,END m1;,二、编码器和译码器,(IF,语句,),U,盘,/FPGA/coda4a3,(4-2,优先编码器,),第五章 数字系统设计,第一节 组合逻辑电路的设计,LIBRARY ieee;,USE ieee.std_logic_1164.ALL;,ENTITY coda4a IS,PORT(d:IN std_logic_vector(0 TO 3);,f:OUT std_logic_vector(0 TO 1);,END;,ARCHITECTURE w1 OF coda4a IS,BEGIN,PROCESS(d),BEGIN,IF d(3)=0 THEN f=11;,ELSIF d(2)=0 THEN f=10;,ELSIF d(1)=0 THEN f=01;,ELSE f=00;,END IF;,END PROCESS;,END;,三、多路选择器(多选,1,)和多路分配器,第五章 数字系统设计,第一节 组合逻辑电路的设计,三、多路选择器(多选,1,)和多路分配器一般信号赋值语句:选择信号赋值语句:,U,盘,/FPGA/mux42 IF,语句:,U,盘,/FPGA/mux43,条件信号赋值语句:,U,盘,/FPGA/mux41 CASE,语句:,U,盘,/FPGA/mux44,第五章 数字系统设计,第一节 组合逻辑电路的设计,四、比较器,(比较语句),U,盘,/FPGA/com_4,第五章 数字系统设计,第一节 组合逻辑电路的设计,五、加法器和减法器,全加器:,U,盘,/FPGA/add4,第五章 数字系统设计,第一节 组合逻辑电路的设计,第五章 数字系统设计,第一节 组合逻辑电路的设计,五、加法器和减法器,全减器:,第五章 数字系统设计,第二节 时序逻辑电路的设计,一、基本触发器和锁存器,D,(,U,盘,/FPGA/dff1,)、,T,、,JK,(,U,盘,/FPGA/jkff1,)、,锁存器(,U,盘,/FPGA/keep,),二、计数器,N,进制计数器(,U,盘,/FPGA/jsq,),双向(可逆)计数器(,U,盘,/FPGA/cross,),第五章 数字系统设计,第二节 时序逻辑电路的设计,三、分频器,2,分频,原理图输入,VHDL,输入(,U,盘,/FPGA/dff1,),2,n,分频,N,分频,原理图输入,VHDL,输入(,U,盘,FPGAdiv_z,、,分频数和占空比均可调),第五章 数字系统设计,第二节 时序逻辑电路的设计,第五章 数字系统设计,第二节 时序逻辑电路的设计,四、计时器,原理图输入(光盘,Ldesignch7timer.gdf,),AHDL,输入(可移动磁盘,time.tdf,),五、移位寄存器,串入串出:,U,盘,/FPGA/siso,串入并出:,并入串出:展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


FPGA课件.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14754725.html