




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VHDL程序设计基機构学问点:VHDL文字规章1. 数字型文字一一由数字、小数点和下划线组成(1)整数文字 5, 67& 156E2, 45.234.287 (=)(2)实数文字,(3)以数制基数表示的文字格式:数制 #数值 # (指数)例如: 10#170# 16#FE# 2#1101_0001# 8#376# 16#E#E1 4)物理量文字例如: 60 s, 100 m 2. 字符串文字字符一一以单引号括起来的数字、字母和符号 (ASCII 码) 例如 :0 , 1 , A , B , a , b 字符串一一一维的字符数组,用双引号括起来;(1)文字字符串例如: “ ABC” , A BO
2、Y. ” ,“A” , “ 1011”(2)数值字符串一一位矢量格式:数制基数符号“ 数值字符串”其中: B二进制基数符号;0八进制基数符号:X16 进制基数符号;例如: B :矢量数组,长度为 90 “ 15” : 等效 B “ 001101” , 长度为 6 X “ ADO” : 等效 B “ J 长度为 12 数值字符串中可添加下划线,不影响其长度3.标识符一一是用户给常量、变虽: 、信号、端口、子程序或参数泄义的名字规章 87 标准,又称短标识符 :标识符由字母 A-Z ; a .z 、数字和下划线字符组成任何标识符必需以英文字母开头末字符不能为下划线不答应显现两个连续下划线标识符中不
3、区分大小写字母VHDL定义的保留字或称关键字,不能用作标识符VHDf 93 标准支持扩展标识符,以反斜杠来龙界,答应以数字开头,答应使用空格以及两个以上的下划号;扩标用反斜杠界泄;如:multi_screenso答应包含图形符号、空格符;如:等;反斜杠之间的字符可用保留字;如:等;扩标的界泄符两个斜杠之间可以用数字打头;如:等;100$, 2chip, 扩标中答应多个卜 - 划线相连;如: Four_screens, TWO_Computer_ 等;扩展标识符中的一个反斜杠,要用两个反斜杠来代替扩标区分大小写;如:与不同;扩标与短标不同;如:4. 下标名一一数组与 Computer 不同;用途
4、:用于指示数组型变量或信号的某一个元素格式:标识符 表达式 例如: b 3:表示数组型变量或信号b 的第 3 个元素5. 段名一一多个下标名的组合用途:用于指示数组型变量或信号的某一段元素格式:标识符 表达式方向表达式 方向: TO下标序号由低到高 DOWNTO下标序号由高到低例如: D 7 DOWNTO 0:表示数据总线 D7. D0 D 5 TO 7 ;表示数据总线 D5. D7 6. 注释VHDL中的注释由两个连续的短线 一 开头,直到行尾;VHDL数据对象 一一 存放各种类型数据的容器,包括变量、常量、 信号和文件1. 变量 VARIABLE 规章:只能在进程 PROCESS. 函数
5、FUNCTION和过程 PROCEDURE 中说 明和使用的局域量 定义格式:VARIABLE变量名:数据类型 范畴 :二初始值 如: VARIABLE a: INTEGER;VARIABLE b: INTEGER :=2 ;VARIABLE c: INTEGER RANGE 0 TO 7 : 二 2:变量赋值语句:目标变量划:二表达式 例如: VARIABLE x, y : REAL VARIABLE a, b : BIT VECTOR 0 TO 7: x:=: y:二+x;a:a 3 TO 6 : = T , T , O , T ;a 0 TO 5:二 b 2 TO 7: 变量使用要点:变
6、量是一个局部量,只能在进程和子程序中使用,不能将信息带出对它作出 泄义的当前设计单元;变量赋值立刻发生,无延时行为;VHDL不支持变量附加延时语句;变量的初值不是必需的,综合器将略去全部 初值;变量常用在实现某种算法的赋值语句中;2. 信号 SIGNAL 规章:信号是在结构体 ARCHITECTURE、程序包 PACKAGE和实体中声明的全 局量;信号定义格式:SIGNAL信号斜:数据类型 范囤 : 二初值 例如: SIGNAL temp: STD LOGIC:二O :SIGNAL flags, flagb: BIT SIGNAL data : STD LOGIC VECTOR 15 DOWN
7、TO 0: 信号赋值语句:目标信号名 V 二表达式 例如: x=9;y=x;z=x AFTER 5 ns ;留意信号和变量赋值方法的区分:变量用“ :二” 号赋值,而信号用 二” 赋值;在声明中对信号和变量赋初值,两者都用“: 二” 号;信号使用要点 信号类似于连接线;信号可以作为设计实体中并行语句模块间的信息沟通通 道;信号不但可以容纳当前值,也可以保持历史值;这一属性与触发器的记忆功 能有很好的对应关系;信号的初值不是必需的,而且仅在仿真中有效;信号的赋值答应答应设圧延时,如:T1=T2 AFTER 20 ns, 但仅用于仿真;当信号用在次序描述语句中时,其值在相应的进程,函数或过程完成之
8、后才 更新;实体中定义的端口默认为信号;3. 常量 CONSTANT 规章:常量在程序前部宦义,且一旦被赋值就不能再转变;常量進义格式:CONSTANT 常量名:数据类型:二初值:例如:CONSTANT fbus: BIT VECTOR:二 “ 010111” : CONSTANT Vcc: REAL:二;CONSTANT dely: TIME: =25 ns :常量使用要点:常量设置使得设汁实体中的常数易阅读和修改;如将位矢的宽度定义为一个常量,只要修改这个常戢就能转变宽度,从而转变硬件结构;常量是一个恒左不变的值,一目作了数据类型的赋值左义后,在程序中不能 再转变,有全局意义;常量与表达式
9、类型必需一样,只能是标量类型或复合类型;常量的可视性 其使用范畴取决于定义的位置 :泄义在程序包中的常量,具有最大全局化特点,可以用在调用此程序包 的全部设计实体中;左义在设计实体中的常量,其有效范畴为这个实体定义的全部的结构 体:左义在设计实体的某一结构体中的常疑,就只能用于此结构体:左义在结构体的某一单元的常呈 在这一进程中;: ,如一个进程中,就这个常量只能用4.文件 FILE VHDL 1076-1993 标准 在仿文件是传输大量数据的客体,包含一些特地数据类型的数值;真测试时,测试的输入鼓励数据和仿 文件的声明方式为:真结果的输出都可用文件来进行;FILE identifier :
10、file_type OPEN mode IS file_name” ;VHDL数据类型VHDL是一种强类型语言,要求设计实体中的每一个常数、信号、变量、函数以及设立的各种参量都必需具有确 疑才能相互传递和作用;定的数据类型, 并且只有数据类型相同的1.标量型 Scalar Type单元素的最基本数据类型1实数类型2整数类型3 枚举类型4 时间类型2. 复合类型 Composite Type 1 数组型 Array 2 记录型 Record 3. 存取类型 Access Type 为数据对象供应存取方式4. 文件类型 Files Type 一一供应多值存取类型VHDL的预立义数据类型一一在 ST
11、D库中的标准程序包 STANDARD中预先左义的数据类型;1. 位BIT 数据类型BIT 是一个二值枚举类型, 包括 0 和 T ;可用于表示变虽、 信号等数据对象的状态;進义语句: TYPE BIT IS O , 1 2. 位矢量 BIT VECTOR数据类型位矢虽是由多个 BIT 组成的数组, BIT 是其元素, 形式为用双引号把多个 BIT位括在一起,如“0011” ;可用于 表示总线的状态;定义语句:TYPE BIT VECTOR IS ARRAY NATURAL RANGE OF BIT; RANGE表示宽度未左, NATURAL 表示其宽度的范围和自然数的范畴相同规章:使用位矢量必
12、需注明位宽,例如:SIGNAL a: BIT VECTOR 7 DOWNTO 0:定义 a 是一个宽为 8 位的位矢量,左为 a7 右为 a0 ;例: SIGNAL a: BIT_VECTOR 7 DOWNTO 0: SIGNAL b: BIT_VECTOR 3 DOWNTO 0: SIGNAL c: BIT :b= “ 1110”:b 3 = T : bUa 7 DOWNTO 4: a 7 DOWNTO 4 =a 3 DOWNTO 0: a 3 DOWNTO 0 = b ;a 7 =C :3. 布尔 BOOLEAN数据类型 BOOLEAN也是一个二值枚举类型,一个布尔量具有两种状态:规律“
13、假”FALSE和规律“ 真”TRUE;布 尔量没有详细数值的含义,也不能进行算术运算,但是可以进行规律运算,并作为关系运算的结果;定义语句:TYPE BOOLEAN IS FALSE, TRUE;以枚举类型定义4.字符 (CHARACTER)数据类型O 9 ;字字符是用单引号括起来的ASCII 码字符,如 a 符有大小写区分,如逹 不同于 b 定义语句:TYPE CHARACTER IS (ASCII 码字符表中的全部字符)5. 字符串 (STRING)数据类型字符串是用双引号括起来的字符序列,也称字符矢量或字符串数组;例如,“ A BOY. ”,“”6. 整数 (INTEGER)数据类型整数
14、包括:正整数、负整数和零 范畴 : 32 位带符号整数 , 即- (231-1 ). +(231-1 )即(-47 . +47)整数常量的书写方式示例如下:2 二进制整数一十进制整数10E4 一十进制整数16#D2# 十六进制整数2# 硬件实现时, 整数由不超过32 位的二进制数来表示; 当端口类型设为整数型时一般应对其范用赐予限左,这时 端口的宽度为可以表示该整数的最小宽度;如没有限左范畴,就综合后的位宽为 32 位;如: SIGNAL s : INTEGER RANGE 0 TO 15; 表示信号 s 的取值范用是0-15, 可用 4 位二进制数表示,因此s 将被综合成由四条信号线构成的信
15、号;7. 自然数 (NATURAL)和正整数 (POSITIVE)数据类型自然数和正整数都是整数的子集自然数一一包括 0 和正整数正整数一不包括 0 的正整数其定义如下:定义如下:SUBTYPE NATURAL IS INTEGER RANGE 0 TO INTEGER* HIGH; SUBTYPE POSITIVE IS INTEGER RANGE 1 TO INTEGER* HIGH; 8. 实数 (REAL)数据类型VHDL的实数类型类似于数学上的实数,或称浮点数;由正负号、小数点和数字组成;范畴: +38 TO +38 实数常量的书写方式举例如下:一十进制浮点数8#E+4 八进制浮点数
16、- 十进制浮点数实数类型仅能在EDA仿頁.器中使用,由于苴实现相当复杂,EDA综合器目前尚不支持;9. 时间 (TIME数据类型时间是物理量数据,由整数数据和单位两部分组成,整数和单位之间至少留一个空格,如55 ms, 20 nso时间及其他物理量数据可以用于仿真,但不行综合;定义如下:TYPE TIME IS RANGE - 47 TO 47 UNITS fs : - 飞秒 (10-15S) VHDL中的最小时间单位ps=1000fs ;皮秒ns=1000ps;纳秒us=1000ns;微秒ms=1000us;毫秒sec 二 1000ms;秒min 二 60sec;分hr=60min ;时EN
17、D UNITS;10.错误等级(Severity Level)错误等级属于枚举数据类型,用于表征系统的状态,包括:NOTE (留意)WARNING (警告) , ERROR (出错),FAILURE (失败);在仿真过程中,可输出这 4 种值来提示被仿真系统当前的工作状态;其定义如下:TYPE SEVERITY_LEVEL IS (NOTE, WARNING, ERROR, FAILURE): IEEE预定义的标准规律位和矢量在 IEEE 库的程序包 STD_LOGIC_U64中,泄义了两个特别重要的数据类型,即标准规律位 STD_LOGIC和标准逻 辑矢量 STD_LOGIC_VECTORc
18、 1. 标准规律位 (STD LOGIC)数据类型TYPE STD LOGIC IS (,一未初始化的X ,强未知的 . , 强 0 T , 强 1 Z,-高阻态 平 ,弱未知的 L , 一弱 0 1 H ,弱 忽视);两个或以上数字规律电路的输出端连接到同一个巧点时,巧点的电平该如何 取值 节点的电平取值取决于:两者或多方当前的输岀电平值:两者的驱动才能强弱;驱动才能强的电路可以将节点电平强行拉髙或拉低,因此需建立多值规律系 统加以细分;多个输出连接到同一个节点上时,节点的电平取值:数值关系归纳:X或- 与其它数值连接时,最终电平取值均为 X:Z 与其它数值连接时,最终电平取值均为英它数值:
19、强规律和弱规律连接时,取强规律的数值;W;W与 L/H 数值连接时,最终电平取值均为 0 与 1、L 与 H连接时,最终电平取值分别为 X、肌 2. 标准规律矢量 (STD LOGIC VECTOR)数据类型 标准规律矢量在电路中用来表示总线;其定义如下:TYPE STD LOGIC VECTOR IS ARRAY (NATURAL RANGE ) OF STD LOGIC ;RANGE表示宽度未泄, NATURAL表示英宽度的范用和自然数的范畴 相同留意:在程序中使用上述两种数据类型前,需加入下面语句:LIBRARY IEEE:USE : 对标准规律位及标准规律位矢量赋值时,HL Z 等不能
20、用小写在 9 种规律值中,只有 1 0 和Z 可综合,其他仅用于仿真STD_LOGIC_VECTOR 类型数据不能直接进行算术运算SIGNAL a: BIT; SIGNAL b: BIT_VECT0R7 DOWNTO 0; SIGNAL c: STD.LOGIC; SIGNAL d: STD.LOGIC.VECTOR7 DOWNTO 0; SIGNAL e: INTEGER RANGE 0 TO 255; 例: a=b3 合法 b2=a; c=d5; d0=c; a=c; 非法 d=b; e=b; e thu. fri. sat : TYPE my.logic IS T , . , 2 ; 枚
21、举类型的编码:综合器自动实现枚举类型元素的编码,一 般将第一个枚举量 最左边 编码为 0, 以后的 依次加 1;编码用位矢量表示,位矢量的长度 将取所需表达的全部枚举元素的最小值;如: TYPE color IS blue, green, yellow, red: 编码为: blue= “ 00” ;yellow= “ 10” ; red 二 “ 11” ; 2. 整数类型和实数类型左义格式: TYPE数据类型需 IS RANGE范国:例如:TYPE numl IS RANGE 0 TO 100 :晉二数组类型数组是将相同数据类型的数据集合在一起形成的一种新的数据类型;可以是 ID、2D或 1
22、D*1D,更高维数的数 数组的结构小组往往是不行综合的;VHDL中预徒义的数据类型仅包括标量类型 单个位 和矢量类型 一维数组 两类,并没有预左义 2D和 1D*1D 数组,用户可以自泄义;上义格式: TYPE数组名 IS ARRAY 数据范用 OF数据类型:例如:TYPE data.bus IS ARRAY 7 DOWNTO 0 OF STD.LOGIC:定义数据总线 ,下标由高到低,即 D7位权值最高 , D0位权值最低;TYPE data.bus IS ARRAY 0 TO 7 OF STD.LOGIC:立义数据总线, F 标由低到髙,即 DO位权值最髙, D7位 权值最低; I 一种左
23、义 1D*1D数组的方法:TYPE matrix2D IS ARRAY 0 TO 3,7 DOWNTO 0 OF STD.LOGIC; 数组的赋值方法:x= “ 0001” ;一对一维数组赋值x= . , . , 0, , T ,; 一对一维数组赋值y= . , . , 0, , T , . , . , . , T ,; 一对 1X1 维或二维数组赋值 4. 记录类型 Record| 记录一一是一组不同数据类型的元素的组合;IS RECORD元素名:元素数据类型:元素名:元素数据类型:左义格式: TYPE记录类型需END RECORD 记录类型名 : 拜访记录体元素的方式:记录体名 . 元素名
24、a : STD_L0GIC_VECT0R7 DOWNTO 0; b : INTEGER RANGE 0 to 3; END RECORD ; SIGNAL x, y, z : a_and_b ; SIGNAL data : STD_L0GIC_VECT0R7 DOWNTO 0; SIGNAL num : INTEGER ; num =; z = x ; 数据类型转换由于 VHDL是一种强类型语言,不同类型的数据对象必需经过类型转换,才能相互操作;常见的实现数据类型转换的方法有以下两种:写一段专用于数据类型转换的 VHDL代码调用程序包中预泄义的数拯类型转换函数,如程序包 STD_L0GIC_1
25、164oIEEE 库中供应了如干数据类型转换函数: STD_L0GIC_U64程序包泄义的转换函数:函数 TO_STDLOGICVECTORA 由位矢量 BIT_VECTOR 转换为标准逻借矢量 STD_LOGIC_VECTOR 函数 TO_BITVECTOR A 由标准规律矢量STD_LOGIC_VECTOR 转换为位矢量 BIT_VECTOR 函数 TO_STDLOGIC A 由 BIT 转换为STD_LOGIC 函数 TO_BIT A 由标准规律STD_LOGIC转换 BIT STD_LOGIC_ARITH程序包定义的转换函数:函数 CONV_STD_LOGIC_VECTORA, B 由
26、 INTEGER, SINGED, UNSIGNED 或STD_LOGIC 转换成位宽为 B 的STD_LOGIC_VECTOR 函数 CONV_INTEGER ; 一由 SIGNED, UNSIGNED 和 STD_LOGIC 转换成INTEGER 函数 TO_STDLOGIC A 由 BIT 转换为 例:数据类型转换 LIBRARY IEEE; USE USE . STD_LOGIC SIGNAL a: IN INTEGER RANGE 0 TO 15; SIGNAL b: IN INTEGER RANGE 0 TO 15; SIGNAL y: OUT STD_LOGIC_VECTOR7
27、DOWNTO 0; y tuesday. Wednesday.thursday friday Saturday Sunday: 那么根拯上面的属性函数立义,不难得出如下的结果 : week* POStuesday=1 week* VAL3=thursday week* SUCCthursday=friday week* PREDthursdayWednesday week LEFTOFfriday=thursday week RIGHTOFfriday=Saturday 信号类属性: VHDL预定义的,对于信号s:true, 否就为 false ,常用于于EVENT: 假如值发生了变化,就返回
28、值为时钟信号的判泄;STABLE:假如 s 值保持不变 , 就返回值为 true, 否就为 false ;ACTIVE:假如 s 值被处理 , 就返回值为 true, 否就为 false ;QUIET:假如在指定的 false ;time 内 s 值保持不变 , 就返回值为 true, 否就为LAST_EVENT:返回从上一次大事发生的时间到当前时间的时间差;LAST.ACTIVE:最终一次被处理到当前所经受的时间长度值;LAST.VALUE:最终一次变化前 s 的值:除 EVENT和 STABLE属性是可以综合的之外. 苴它的属性都不行综合,仅用于仿貞.;其中以EVENT最为常用;属性 EV
29、ENT通常用于确定时钟信号的边沿;例如:clock EVENT 一检测以 clock 为属性测试项目的大事clock EVENT AND clock= T ; 检测 clock 的上升沿clock “ EVENT AND clock= . ;检测 clock 的下降沿EVENT和 ACTIVE有何区分大事发生:信号值的发生变化, 如由 0 变到 1 是一个大事, 而0, 变到 0就不是一个大事,缘由是信 号值没有变;信号活跃:信号值的任何变化,如由0 变到 1 是一个信号活跃,而信号从0 变到 0 也是一个信号活跃;怎么懂得这句话啊全部的大事都是活跃,但并非全部的活跃都是大事改错:例:“ 广计
30、数器一一错误 LIBRARY IEEE:USE EXTITY countone IS PORT din :IN STDLOGIC.VECTOR7 DOEO 0: ones:OUT INTEGER RANGE 0 TO S: END count_one: ARCHITECTURE test OF count.one IS SIGNAL temp: INTEGER RANGE 0 TO S :BEGIN PROCESS din BEGIN *eap=0: FOR i IX 0 TO 7 LOOP IFdini=* f THEN temp=temp*l: END IF: END LOOP; ones
31、=temp :END PROCESS END test; 例:“ 厂计数器一一正确 LIBRARY IEEE; USE EXTITY count.one IS PORT din :IN STD.LOGIC.VECTOR7 DOXTO 0: ones:OUT INTEGER RANGE 0 TO S: END count_one: ARCHITECTURE test OF count.one IS BEGIN PROCESS din VARIABLE tecp: INTEGER RANGE 0 TO S: BEGIN t.zp:=0: FOR i IX 0 TO 7 LOOP IFdini= f THEN temp:=tesp*l: END IF: END LOOP: ones=temp; END PROCESSEND test; 例:合法与非法的数组赋值 : TYPE row IS ARRAY 7 DOWNTO 0 OF STD.LOGIC; TYPE arrayl IS ARRAY0 TO 3 OF row; TYPE array2 IS ARRAY0 TO 3 OF STD.LOGIC.VECTOR7 DOWNTO 0; TYPE array3 IS ARRAY0 TO 3,7 DOWNTO 0 OF STD.LOGIC; SIGNAL x: row; SIGNAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 争做阳光少年演讲稿11篇
- 公路隧道养护检查与核心技术状况评定土建结构继续教育试题及答案
- 2025年画具画材项目发展计划
- 2025年住院医师规范培训(各省)-广东住院医师公共科目历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 山西省2025年公卫助理:亚硝酸盐中毒试题
- 2025年住院医师规范培训(各省)-北京住院医师全科医学历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 人力资源服务委托协议2025年
- 2025年住院医师考试-医学影像住院医师历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 民房建设合同范本(2025版)
- 两人合作协议书范本2025年
- 2025年《中华人民共和国公务员法》应知应会知识竞赛试卷题库及答案
- 二零二五年度二手车抵押借款合同范本(含担保范围)
- 在职工活动管理办法
- 2024年广州市越秀区招聘社区专职工作人员真题
- 中国中药材资源研究项目投资可行性研究报告
- DB41-T 2845-2025 基层防汛应急预案编制指南
- 2024年09月苏州银行社会招考笔试历年参考题库附带答案详解
- 商务邮件写作培训
- 格滨石笼施工方案
- (高清版)DB31∕T 1274-2021 医疗机构投诉处理规范
- 直肠癌的中医护理查房
评论
0/150
提交评论