电子科大课件vhdl-13

电子科大课件vhdl-13

ID:24259162

大小:130.00 KB

页数:19页

时间:2018-11-13

电子科大课件vhdl-13_第1页
电子科大课件vhdl-13_第2页
电子科大课件vhdl-13_第3页
电子科大课件vhdl-13_第4页
电子科大课件vhdl-13_第5页
资源描述:

《电子科大课件vhdl-13》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、VHDL中的子结构为了使设计简化,避免重复的工作,VHDL中通常使用子结构来规范一些常用的运算或简单的功能模块;function函数:用于表达常用的运算;procedure过程:用于表达简单的元件;子结构中的执行语句都应为顺序语句。VHDL中的函数:function在赋值类语句中,经常引用函数来表达常用的运算组合或类型转换,以达到代码重用和共享的目的;函数主要由参量表、说明部分和顺序执行部分构成。函数的编写格式function函数名(信号列表)returnreturn-typeisdeclarationsanddefinitions;--说明部分begins

2、equential-statement;--功能部分……sequential-statement;endfunction-name;函数的编写实例采用函数表达,设计inhibit门P.277(表4-36)architecturedatofinhibitisfunctionbutnot(a,b:bit)returnbitisbeginifb='0'thenreturna;elsereturn‘0’;endif;endbutnot;beginz<=butnot(x,y);enddat;函数的编写特点1函数可以看作是一种多输入/单输出的电路模块;2函数信号表中带有

3、若干形式参量,在调用时由实际信号取代,实现主程序向函数的输入;在函数内部,信号被作为常量对待;函数的编写特点3函数内部可以定义局部使用的类型、常量、变量、函数、过程;但不能定义信号;函数的输入只能是常数或信号,在函数中被作为in模式,不能改变;函数中不能有out模式的数据对象,运算结果通过return语句赋值给函数名输出。函数的编写特点4函数应用时,为了进行运算,可在函数体中设置变量,在函数执行过程中为该变量赋值;用return语句可以将该变量值返回(赋值给函数名);该变量应与规定的返回类型一致;函数定义中可以设置多个返回语句,但在一次调用中,只有一个返回语

4、句带回函数值;数据类型转换函数的实例从std_logic_vector到integer:p.279(表4-38)functionconv_integer(x:std_logic_vector)returnintegerisvariableresult:integer;beginresult:=0;forIinx'rangeloopresult:=result*2;casex(i)iswhen'0'

5、'L'=>null;when'1'

6、'H'=>result:=result+1;whenothers=>null;endcase;endloop;returnre

7、sult;endconv_integer;数据类型转换函数的实例程序中的一些语法解释:x'range属性描述:返回由x的位数所指定的数据范围;a

8、b:将两个(或多个)信号(变量)并列的表达形式;=>:case语句的表达形式,当出现左边值时,执行右边的语句;注意与“大于等于”区分;null:关键词语句,表示不执行任何操作;用单引号所括的字母'H'、'L'等必须大写;数据运算函数的实例整数与逻辑位的加法;function"+"(a:integer,b:bit)returnintegerisbeginif(b='1')thenreturna+1;elseretur

9、na;endif;end"+";数据运算函数的实例在VHDL程序中,当遇上相关情况时,程序就可以自动调用该函数:signala,b:integerrange0to15;signalc:bit;…………b<=3+a+c;第1个+进行预定义的算术操作,第2个+进行函数操作;数据类型运算函数的实例在VHDL程序中,当遇上相关情况时,程序就可以自动调用该函数:signala,b:integerrange0to15;signalc:bit;…………b<=3+a+c;第1个+进行预定义的算术操作,第2个+进行自定义函数操作;这称为运算重载overload。VHDL中的结

10、构设计:procedure语句过程是VHDL的一种子结构,可以看作简单的元件。过程可以对应于一个多输入多输出的电路模块。过程可以在结构体中调用(并行调用),也可以在子结构中调用。VHDL中的过程:procedure过程的定义:procedure过程名(参量:模式类型)is各种说明定义;begin执行语句(顺序语句);End过程名;过程的调用:过程名(信号列表);procedure语句的应用实例architecturestrofbutnot1isprocedurekinv1(a:instd_logic;f:outstd_logic)isbeginf:=nota

11、;endkinv1;procedurekand21(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。