




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL语言的基本知识点罗列1 VHDL语言的标识符VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如 下法则:?a ) ?标识符由字母(AZ; aZ)、数字和下划线字符组成。? ? 任何标识符必须以英文字母开头。 ? ? 末字符不能为下划线。 ?b ) ?不允许出现两个连续下划线。? ? 标识符中不区分大小写字母。 ? ?VHDL 定义的保留子或称关键字,不能用作标识符。?c ) ?VHDL中的注释由两个连续的短线(-)开始,直到行尾。 以下是非法标识符:-Decoder ? ? 起始不能为非英文字母3DOP ? ? ? 起始不能为数字Large#numb
2、er ?“#”不能成为标识符的构成符号Data_bus ? ? 不能有双下划线Copper_ ? ? ? 最后字符不能为下划线On ? ? ? ? 关键字不能用作标识符。 ? ? ?注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。标识符表示的几种数据对象的详细说明如下:常数一被赋值就不能1) ? ? 常数( Constant ) 常数是一个固定的值, 主要是为了使设计实体中的常数更容易阅读和修改。 在改变。一般格式:CONSTAN常数名:数据类型:=表达式; 例: CONSTANT Vc
3、c: REAL: =;? ? ? ? ? ? 设计实体的电源电压指定 常数所赋得值应与定义的数据类型一致。可以用在结构常量的使用范围取决于它被定义的位置。 程序包中定义的常量具有最大的全局化特性, 调用此程序包的所有设计实体中; 设计实体中某一结构体中定义的常量只能用于此结构体; 体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。2) ? ? 变量( Variable ) 变量是一个局部变量, 它只能在进程语句、 函数语句和进程语句结构中使用。 用作局部数据存储。 在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。 变量常用在实现某种算法的赋值
4、语句中。一般格式:VARIABLE 变量名 数据类型 ? 约束条件: =表达式;例: VARIABLE x,y:INTEGER; 定义 x,y 为整数变量VARIABLE count: INTEGER RANGE0 TO255:=10; 定义计数变量范围 变量的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外, 必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。变量赋值语句的语法格式如下:? ? ? ? ? ? ? 目标变量: =表达式;变量赋值符号是“: =”。赋值语句右方的表达式必须是一个与目标变量有相同数据类型的数值。 变量不能用于硬件连线和存储元件。3) ?
5、? 信号( Signal )信号是描述硬件系统的基本数据对象, 它类似于连接线, 它除了没有数据流动方向说明以外, 其 它性质与实体的端口 ( Port )概念一致。变量的值可以传递给信号,而信号的值不能传递给变量。信号通常在构造体、包集合和实体中说明。信号说明格式为:vhdL勺行为仿真中有效。SIGNAL 信号名: 数据类型; 信号初始值的设置不是必需的,而且初始值仅在1 ? ? 变量 变量只能在进程、函数和过程中使用,一旦赋值立即生效。例: VARIABLE x, y: INTEGER;? VARIABLE count: INTEGER RANGE 0 TO 255:=10;2 ? ? 信
6、号 信号除了没有方向的概念以外几乎和端口概念一致。例:SIGNAL sys_clk: BIT:= O; ? SIGNAL ground: BIT:= 0在程序中,信号值输入信号时采用代入符” =”,而不是赋值符“: =”,同时信号可以附加延 时。信号传送语句:? s1=s2 AFTER 10ns 信号是一个全局量,可以用来进行进程之间的通信 3 ? ? 信号与变量的区别: 信号赋值可以有延迟时间,变量赋值无时间延迟; 信号除当前值外还有许多相关值,如历史信息等,变量只有当前值; 进程对信号敏感,对变量不敏感; 信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见; ? 信号可以看作硬
7、件的一根连线,但变量无此对应关系。2 VHDL语言的数据类型VHDL语言提供了许多标准的数据类型,用户也可自定义数据类型,这样使VHDL语言的描述能力和自由度进一步提高。但VHDL语言的数据类型的定义相当严格,不同类型之间的数据不能直接代入。而且相同数据类型, 但位长不同的也不能直接代入,否则EDA工具在编译综合时会报告类型错。因此,为了熟练地使用VHDL 语言编写程序,必须很好的理解各种数据意义。. ? ?VHDL 标准的数据类型1) ? ? 整数( Integer )?整数类型的数代表正整数、负整数和零,表示的范围-(231-1 )(231-1 ),它与算术整数相似,可进行“ +”,“ -
8、 ” , “ * ” , “ / ”等算术运算,不能用于逻辑运算。2) ? ? 实数( Real ) 实数类型也类似于数学上的实数,或称浮点数,表示范围为3) ? ? 位( Bit ) 在数字系统中信号通常采用一个位来表示,取值值能是4) ? ? 位矢量( Bit_Vector )位矢量是用双引号括起来的一组位数据,使用位矢量必须注明位宽。,最右位为a(0)例如:SIGNAL a:BIT_VEVCTOR(7toO) 信号a被定义为一个具有8位位宽的矢量,最左位为a(7)5) ? ? 布尔量( Boolean )一个布尔量具有两个状态:“真”或“假”。 布尔量不属于数值, 因此不能用于运算, 它
9、只能通 过关系运算符获得。一般这一类型的数据初始值总为FALSE.6) ? ? 字符( Character )字符也是一种数据类型,字符类型通常用单引号引起来,如A。字符类型区分大小写, 如B不同于 b。也称字符矢量或字符串数组。 常用于程序的提示和说7) ? ? 字符串( String ) 字符串是由双引号括起来的一个字符序列, 明,如“ STRING等。8) ? ? 时间( Time)时间是一个物理数据。 完整的时间类型包括整数和单位两部分; 整数与单位之间至少留一个空格, 如55 ms,2 ns。在包集合 STANDAR中给除了时间的预定义,其单位为fs,ps,ns,us,ms,sec,
10、 min, hr 。在系统仿真时, 时间数据很有用, 可用它表示信号延时, 从而使模型系统能更逼近实际系统的运 行环境。NOTE(注意)、WARNING失败)。在仿真过程中,可输出这四种状态以提示系统当9) ? ? 错误等级( Severity Level ) 在VHDL仿真器中,错误等级用来指示设计系统的工作状态,它有四种:Positive ) 即为零和正整数。而(警告)、ERROR(岀错)、FAILURE 前的工作状态。10) ? ? 自然数( Natural )和正整数(Positive 只能为正整数。自然数是整数的一个子类型,非负的整数, . ? ?IEEE 预定义标准逻辑位与矢量 在
11、IEEE库的程序包STD_LOGIC1164中,定义了两个重要的数据类型,即标准逻辑位STD_LOGIC初始值0高阻 弱信号 0和标准逻辑矢量 STD_LOGIC_VECTOR使得 STD_LOGIC数据可以具有如下的 9种不同的值:U”0”Z”L”X ”不定1弱信号不定弱信号 11”W”H”不可能情况注意在使用该类型数据时,在程序中必须写出库说明语句和使用包集合的说明语句。3 VHDL语言的运算操作符在VHDL语言中共用4类操作符,可以分别进行逻辑运算( Logic )、关系运算(Relational )、算术运算( Arithmetic )和并置运算( Concatenation )。被操
12、作符所操作的对象是操作数,且操作 数的类型应该和操作符所要求的类型相一致。需要注意的是,各家EDA综合软件对运算操作符支持程序各不相同,使用时应参考综合工具说明。1) ? ? 逻辑运算符运算符在VHDL语言中逻辑运算符有6种,他们分别为:NOT(非)OR(或)AND(与)NOR(或非)NAND(与 非)XOR(异或) 2) ? ? 关系运算符 关系运算符它们分别是:=(等于)/= (不等于)(小于)(大于)=(大于等于)3) ? ? 算术运算符+( 加 )/ (除)SLL (逻辑左移)ROR(逻辑循环右移)- (减)MOD(求模)SRL (逻辑右移)ABS (取绝对值)* (乘)REM(取余)
13、SLA (算术左移)4) ? ? 其他运算符(并联运算符,在元件例化时可用于形参倒实参的映射)4 VHDL语言的结构VHDL 语言主要组成构件有设计实体(Entity )、结构体( Architecture )、子程序( FunctionProcedure )、集合包( Package )和库( Library ),前四种称为可编译的设计单元。一个 VHDL 设计就是有这四种构件的组成, 编译之后将它们放在制定的库中共享。 其中, 实体用于描述设计 的接口界面信号,它规定端口数目,端口方向和端口类型。它与硬件电路设计中 的符号相对应。 而结构体指定设计的真实行为, 性能和结构, 与硬件电路设计
14、中的原理图相对应。 子程序是可被调用的执行某一特定功能算法的集合。 集合包则是为了使常用的数据类型、 常数和 子程序对于其他设计块可用而集中充放的一批设计单元和约定。设计实体实体的定义语法为:ENTITY ? 实体名 ? IS 端口说明 ;END 实体名;端口说明书写格式如下:PORT(端口名,端口名:方向 数据类型名;? ? ? ? 端口名 ,端口名 :方向 数据类型名) ;例如,一个二选一路数据选择器的设计实体可描述如下:ENTITY selection ISPORT(a, b, sel: IN BIT; C ? ? : OUT BIT );END selection;构造体用于描述系统内
15、部的结构和行为。构造体部分定义了设计单元的具体功能(行为) 1. ? ? 构造体句法如下:architecture勾造体名 OF ? 实体名? IS 定义语句 内部信号,常数,数据类型,函数等的定义; BEGIN 并行处理语句 ;END 构造体名;例如: ARcHITEcTuRE dataflow OF ? selection ? IS BEGIN q=b)THEN c= a;ELSE c 顺序处理语句;END CASE;条件句中的“=”不是操作符,只相当于“ THEN作用。6 VHDL中的一些重要信号. ? ? 时钟信号和复位信号1) 时钟信号的描述*若进程的敏感信号是时钟信号,这时时钟信号
16、岀现在 PROCES后的括号中. 例: process (clock_signal)beginif (clock_edge_condition) then? ? signal_out=signal_in ? ? ? 其它语句? ? end if;? end process;* 在进程中用 WAIT ON 语句等待时钟? 这样的电路没有敏感信号 , 进程通常停留在 WAIT ON 语句上 , 只有时钟信号到来且满足一定条 件时 , 其余语句才能执行 .例:? processbeginwait on (clock_signal) until (clock_edge_condition) signa
17、l_out=signal_in;其它语句? end process;* 敏感表中只能有一个时钟信号* wait on语句只能放在进程的最前面或者最后面* 时钟的边沿描述? 描述时钟一定要指明是上升沿还是下降沿 上升沿到来的条件 :? IF clk= 1 AND clk LAST_VALUE=0 AND clk EVENT 下降沿到来的条件 : ? IF clk= 0 AND clk LAST_VALUE=1 AND clk EVENT关于时钟信号的总结IF clock_signal=current_value AND clock_signal LAST AND clock_ siganl EV
18、ENT 可以简单写为 :IF clock_signal=clock_siganlEVENT AND current_value. ? ? 复位信号, 触发器才被复位 .* 同步复位 当复位信号有效且在给定的时钟边沿到来时 例 1: process (clock)beginif (clock_edge_condition) then ? if (reset_condition) then? ? signal_out=reset_value;? else ? ? signal_out=signal_in;? 其它语句? end if; end if;? end process; 例 2: ? process(clock)? if (clock event and clock= 1 ) then ? ? ? if reset= 1 then ? ? ? ? count= 0;? ? ? else ? ? ? ? count=count+1;? ? ? end if; ? ? end if;? end process;此例中 ,敏感表中只有时钟信号 , 因为只有时钟到来时才能复位 .* 异步复位只要复位信号有效 ,触发器就被复位 , 所以敏感表中除时钟信号外 ,还需要复位信号 例 1:process(reset_signal,clock_signa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025实践中如何启动法律程序确认合同终止工程
- 年度工作回顾与展望-4
- 2025标准版汽车抵押借款合同
- 铲车维修临时合同范本
- 高一语文新学案:第二单元孔雀东南飞
- 2025智能办公软件销售合同
- 2025建筑施工合同范本(试行)
- 2024年徐州市教育局直属学校招聘真题
- 2024年宁波大学招聘真题
- 2024年陇南市国控资本投资管理集团有限公司招聘笔试真题
- 辽宁省沈阳市铁西区2024届英语三年级第二学期期中调研试题含答案
- 第13课《警惕可怕的狂犬病》 课件
- 健康饮茶知识讲座
- 《照明线路安装与维护》课程标准
- 中医春季情志养生知识讲座
- 小儿隐匿性阴茎诊疗规范
- MSOP(测量标准作业规范)测量SOP
- 免检物料管理规范(含表格)
- 频谱仪N9020A常用功能使用指南
- 方证歌诀【执业中医师中医内科】
- CBL教学法应用介绍
评论
0/150
提交评论