第一部分VHDL语言编程基础课件.ppt
《第一部分VHDL语言编程基础课件.ppt》由会员分享,可在线阅读,更多相关《第一部分VHDL语言编程基础课件.ppt(317页珍藏版)》请在三一办公上搜索。
1、第一部分 VHDL语言编程基础,通过电脑下载(编程文件)到器件(PLD),程序代码与电路,代码对应于逻辑逻辑与器件结合产生功能电路代码的重复代表电路的重复电路是并行的,所以代码一定是并行的逻辑的繁简对应代码的繁简,概 述,1.常用硬件描述语言简介 常用硬件描述语言有VHDL、Verilog和ABEL语言。三者的比较:(1)逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路
2、级的描述,最适于描述门级电路。,(2)设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。(3)综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级RTL级门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级门电路级的转化,易于控制电路资源。,(4)对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能
3、要求较高,Verilog和ABEL对综合器的性能要求较低。(5)支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。(6)国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。,2.VHDL的简介 VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE(The Institute of Electrical and Electronics Engineers)和美
4、国国防部确认为标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。,3.VHDL程序设计约定 为了便于程序的阅读和调试,本书对VHDL程序设计特作如下约定:(1)语句结构描述中方括号“”内的内容为可选内容。(2)对于VHDL的编译器和综合器来说,程序
5、文字的大小写是不加区分的。本书一般使用大写。(3)程序中的注释使用双横线“-”。在VHDL程序的任何一行中,双横线“-”后的文字都不参加编译和综合。,(4)为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。(5)源程序文件的名字与实体名必须一致。,第一章 VHDL的程序结构和软件操作,1-1 VHDL程序的基本结构,1-2 软件操作Max+plus的操作,1-1 VHDL程序的基本结构,实体描述(ENTITY),结构体(ARCHITECTURE),设计实体,实体描述(ENTITY),构造体1,设计实体,构造体2,构造体n,设计实体、实
6、体说明、构造体之间关系,库、包集合(LIBRARY),库、包集合(LIBRARY),结构体配置,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or ISPORT(a,b:IN STD_LOGIC;y:OUT STD_LOGIC);END ENTITY or;ARCHITECTURE beha OF or ISBEGINy=a or b;END beha;,例1:,库说明,实体描述,结构体,例2:,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS PORT(a,b:IN S
7、TD_LOGIC;s,co:OUT STD_LOGIC);END half_adder;ARCHITECTURE half1 OF half_adder ISSIGNAL c,d:STD_LOGIC;BEGIN c=a OR b;d=a NAND b;co=NOT d;s=c AND d;END half1;,一、库、程序包使用(LIBRARY):,LIBRARY和PACKAGE的声明部分,作用:库(Library)是用于存放预先编译好的程序包(Package),程序包中定义了数据集合体、逻 辑操作和元件等。主要是声明在设计或实体中 将用到的常数,数据类型,元件及子程序等。通常用到IEEE的库
8、中STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED,STD_LOGIC_SIGNED等程序包。,使用格式:LIBRARY 库名;,USE 库名.程序包名.All;,在Quartus系统中有4个库能支持VHDL语言,它们分别是Std库、IEEE库、WORK库和VITAL库。Std库和IEEE库提供基本的逻辑运算函数及数据类型转换函数等。IEEE库中的程序包std_logic_1164定义了std_logic和std_logic_vector等数据类型。,二、实体描述(ENTITY)作用:定义本设计的输入/出端口,即定义电路的外观,即I/O接口的类
9、型和数量使用格式:,端口名:端口模式 数据类型;);,ENTITY 实体名 IS,END ENTITY 实体名;,格式:,PORT(端口名:端口模式 数据类型;,GENERIC(类属表);,类属说明语句:类属(GENERIC)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。一般书写格式如下:GENERIC(常数名:数据类型:设定值;常数名:数据类型:=设定值);,端口名:即每个外部管脚名称,有多个 时可用逗号隔开。,PORT(端口名:端口模式 数据类型;端口名:端口模式 数据类型);,Entity,ARCHITECTURE定义 作用:定义实体的实现。即电路的具体描述,
10、说明电路执 行什么动作或实现功能。,ARCHITECTURE 结构体名 OF 实体名 IS,BEGIN 功能描述语句;END ARCHITECTURE 结构体名;,使用格式:,三、结构体(ARCHITECTURE):,说明语句,结构体说明语句:,结构体中的说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYPE)、常数(CONSTANT)、元件(COMPONANT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明;,功能描述语句:,功能描述语句主要由5种不同类型的以并行方式工作的语句结构:,1、块语句结构:由一系列并行语句构成;2、进程语句结构:由顺
11、序语句构成;3、信号赋值语句:将设计实体内处理结果向定义的信号或界面端口进 行赋值;4、子程序调用语句:用于调用过程或函数;5、元件例化语句:对其它的设计实体作元件调用;,举例:,设计一个与门电路,逻辑符号,真值表,Library IEEE;Use IEEE.STD_LOGIC_1164.all;Entity and2 isPort(A:in std_logic;B:in std_logic;Y:out std_logic);End and2;,-首先定义输入输出端口名字,模式(Mode),信号类型,-注意最后语句的分号在括号外,实体定义:,Architecture Na of and2 is
12、 Begin Y=A and B;End Na;,结构体定义:,端口模式有以下几种类型:IN;OUT;INOUT;BUFFER。,Architecture Nb of and2 is BeginY=1 when A=1 and B=1 else 0;End Nb;,以上结构体表达何种电路?,一个实体可以有几个结构体,即结构体的定义可以有不同的形式,结论:,小结:VHDL程序设计基本结构,1-2软件操作Max+plus的操作,1、建立和编写一个VHDL语言的工程文件,2、VHDL程序的编译,3、VHDL语言程序的仿真,4、芯片的时序分析,5、安排芯片脚位,一、软件操作Max+plus的操作,1.
13、Max+plus开发工具是美国Altera公司自行设计的一种软件工具,其全称为Multiple Array Matrix and Programmable Logic User System。它具有原理图输入和文本输入(采用硬件描述语言)两种输入手段,利用该工具所配备的编辑、编译、仿真、综合、芯片编程等功能,将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如PLD、FPGA芯片),作成ASIC芯片。它是EDA设计中不可缺少的一种工具。,2.软件安装,我们通过范例介绍:利用Max+plus系统,(1)如何编写VHDL程序(使用Text Editor);,(2)如何编译VHDL程
14、序(使用Compiler);,(3)如何仿真验证VHDL程序(使用Waveform Editor,Simulator);,(4)如何进行芯片的时序分析(使用Timing Analyzer);,(5)如何安排芯片脚位(使用Floorplan Editor);,(6)如何下载程序至芯片(使用Programmer)。,二、建立和编写一个VHDL语言的工程文件,首先启动Max+plus系统,启动后系统进入主菜单画面,在主菜单 上有5个选项,分别是:Max+plus、File、Assign、Options和Help。,(1)打开文本编辑器;用鼠标点击File选项,点击子菜单中的 New选项,接着屏幕会出
15、现New的对话框。在对话框内有4 种编辑方式:图形编辑、符号编辑、文本编辑和波形编辑。VHDL文件属于文本,那么应该选择文本编辑方式,点击 OK按钮,屏幕上将出现一个无名的编辑窗口,则系统进入 文本编辑状态。,(2)在编辑窗口中进行编辑输入,输入相应的描述语句。,(3)存盘。(a 我们编辑的VHDL文件扩展名为vhd;b 保存的文 件名必须和所定义的实体名相同。c 文件存盘的目录不应是 根目录或桌面,建议存放在Max2work或Maxplus2目录,或 其子目录。),以与门的设计为例讲述具体过程,三、VHDL程序的编译,(1)若文件没有打开,需首先打开要编译的VHDL文件;,(2)将目前的文件
16、设置成工程文件;点击File选项,光标移到子菜单的 Project项停留几秒钟,屏幕上会出现下一级菜单,点击Set Project to Current File,(3)打开编译器;点击主菜单MAX+plus/Compiler选项,屏幕上就出现编译 对话框。,(4)开始编译;完成了上述编译前的准备及必要的设置工作,点击编译对话框 中的Start按钮,编译即开始。,以与门的设计为例讲述具体过程,四、VHDL语言程序的仿真,仿真是为了验证我们所编写的VHDL程序的功能是否正确。,(1)首先生成仿真波形文件,(a)打开波形编辑器;点击主菜单的MAX+plus/Waveform Editor选项,就
17、可在屏幕上显示波形编辑器窗口。在未输入信号名以前,整个窗口是空 白的。,(b)确定仿真持续时间(File/End Time)。,(c)选则输入输出端口名;,(d)编辑输入信号波形;,(e)信号波形编辑完成后,需存盘为仿真使用,文件名采取默认方式即可。,(2)打开仿真器;点击主菜单MAX+plusSimulator项,此时弹出Simulator 对话框。点击对话框的Start按钮,仿真即开始。在仿真结束后打开仿真波 形文件(点击右下角的Open SCF按钮)即可以显示仿真结果。,(以与门的设计为例讲述具体过程),五、芯片的时序分析,仿真结果从波形上来看,很难给出定量的信号延迟关系,这一点时序分析
18、却能直观地用表来进行显示。,(1)选择要下载的器件型号;,(2)需要再编译一次。,(点击主菜单的Assign/Device项得到Device对话框),(3)打开时序仿真器;,(点击Timing Analyzer选项),(4)最后点击Start按钮后,时序分析器开始启动。,(以与门的设计为例讲述具体过程),六、安排芯片脚位,为了将程序下载到芯片,需安排芯片脚位。,(1)打开芯片脚位设置器;,(MAX+plus/Floorplan Editor),(2)将实体定义的端口名字和下载芯片的管脚进行具体对应;,(3)最后再进行一次编译。,EDA实验箱,第二章 VHDL语言要素,一、VHDL语言标识符的有
19、关命名规则:,1、标识符主要用于命名或标识VHDL设计中的一个项目(如实体、构造体、程序包、过程、函数、常量、变量、文件等。2、标识符不区分大小写。3、长度不超过32个有效字符序列。4、只能由英文字母、数字及下划线构成。5、首字母必须是字母,且不连续使用下划线“_”,不以下划线“_”结尾;6、任何VHDL语言的保留字不能用作标识符。,VHDL语言程序书写规定,二、VHDL语言书写规定:,1、VHDL语句间用分号隔开。2、VHDL注释语句用“-”开头。,2.1 VHDL文字规则 VHDL文字(Literal)主要包括数值和标识符。数值型文字主要有数字型、字符串型、位串型。1数字型文字(1)整数文
20、字:整数文字都是十进制的数,如:5,678,0,156E2(=15600),45_234_287(=45234287)数字间的下划线仅仅是为了提高文字的可读性,相当于一个空的间隔符,而没有其他的意义,因而不影响文字本身的数值。,(2)实数文字:实数文字也都是十进制的数,但必须带有小数点,如:188.993,88_670_551.453_909(=88670551.453909),1.0,44.99E-2(=0.4499),1.335,0.0(3)以数制基数表示的文字:用这种方式表示的数由五个部分组成。第一部分,用十进制数标明数制进位的基数;第二部分,数制隔离符号“#”;第三部分,表达的文字;第
21、四部分,指数隔离符号“#”;第五部分,用十进制表示的指数部分,这一部分的数如果是0可以省去不写。现举例如下:,10#170#-(十进制数表示,等于170)2#1111_1110#-(二进制数表示,等于254)16#E#E1-(十六进制数表示,等于2#11100000#,等于224),(4)物理量文字(VHDL综合器不接受此类文字)。如:60s(60秒),100m(100米),k(千欧姆),177A(177安培),2.字符串型文字(1)字符是用单引号引起来的ASCII字符,可以是数值,也可以是符号或字母,如:R,A,*,Z。(2)字符串则是一维的字符数组,须放在双引号中。如:“ERROR”,“B
22、OTH S AND Q EQUAL TO L”(3)数位字符串:数位字符串称位矢量,代表的是二进制、八进制或十六进制的数组。B:二进制基数符号(0,1);O:八进制基数符号(07);X:十六进制基数符号(09,AF)例:B“10110110”,X“A0”,X“456”,3下标名及下标段名 下标名用于指示数组型变量或信号的某一元素,而下标段名则用于指示数组型变量或信号的某一段元素,其语句格式如下:数组类型信号名或变量名(表达式1 TO/DOWNTO 表达式2);,【例】SIGNAL A,B,C:BIT_VECTOR(0 TO 7);SIGNAL Y,Z:BIT;Z=B(3);-3是可计算型下标表
23、示C(0 TO 3)=A(4 TO 7);-以段的方式进行赋值,2-2 数据类型,数据类型分类:主要有逻辑信号类型和数值信号类型。,2-2-1逻辑数据类型,(1)布尔代数(Boolean)型,定义位置:在STD库的standard程序包中进行定义。,信号形式:FALSE,TRUE,(2)位(Bit),定义位置:在STD库的standard程序包中进行定义。,信号形式:0,1,(低电位,高电位),编码器:,输入信号,输出信号,(3)位数组类型(Bit_Vector),定义位置:在STD库的standard程序包中进行定义。,例:,Signal A:bit_vector(0 to 7);,Sign
24、al Y:bit_vector(2 downto 0);,输入信号,输出信号,(4)标准逻辑型(Std_Logic),定义位置:在IEEE库的std_logic_1164程序包中进行定义,其中只有“0”、“1”、“Z”、“”四种值可以综合,可以看出,这个“标准逻辑”信号定义,比“位即bit”信号对于数字逻辑电路的逻辑特性描述更完整、更真实。所以在VHDL的程序里,对于逻辑信号的定义,通常都是采用这个“标准逻辑”信号形式。,使用这类数据信号,必须包含下面两条声明语句:,Library IEEE;Use IEEE.std_logic_1164.all;,(5)标准逻辑数组类型(Std_Logic_
25、vector),定义位置:在ieee库的std_logic_1164程序包中进行定义。,Bit_Vector与Std_Logic_vector的区别在于数组的每一位前者为BIT型(0,1)后者为Std_Logic型,2-2-2 数值数据类型,(1)整数(Integer)定义位置:在std库的standard程序包中进行定义。即数值范 围为-231+1231-1。与数学中的整数的定义相同,不能含有小数点的数。书写方式有:2-十进制数 10E4-十进制数 16#D2#-十六进制数 2#101101#-二进制数,(2)无符号(Unsigned)和有符号(Signed)类型,定义位置:有符号(Sign
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一 部分 VHDL 语言 编程 基础 课件
链接地址:https://www.31ppt.com/p-3946703.html