- 1、本文档共349页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术与VHDL实用教程
几点注意: 函数名需放在关键词FUNCTION之后,它可以是普通的标识符,也可以是运算符。 当是运算符时必须加上双引号,这是运算符的重载。 函数的参数表中的参数只能是IN模式,用来定义输入值。 输入值只能是信号或常数,若没有特别的说明,则参数被默认为常数。 信号或常数的数据类型只能使用类似STD_LOGIC_VECTOR和INTEGER的非限制的形式。 几个例子 FUNCTION FUNC1(A,B,C: REAL) RETURN REAL; ----参量前没注明CONSANT或SIGNAL,默认为常数。 FUNCTION “*” (CONSANT A,B: INTEGER) RETURN INTEGER; ----注意重载运算符函数名*要用引号括起来。 FUNCTION AS2 (SIGNAL IN1,IN2:REAL) RETURN REAL; ----注意信号参量前要注明SIGNAL。 下面是一个函数体声明的例子: FUNCTION SAM (x,y,z:BIT) RETURN BIT IS ----定义函数SAM,该函数无函数首 BEGIN RETURN (x OR z)AND y; END FUNCTION SAM; (2)函数声明的地方 可在结构体的声明部分、进程的声明部分或程序包中声明函数。 在结构体或进程中声明函数,只能在结构体或进程中调用函数,而在程序包中声明函数则可通过声明引用程序包,在不同的实体的各个结构体内的调用函数。 (3) 函数的调用 library ieee; use ieee.std_logic_1164.all; entity dec3_8 is port( a: in std_logic_vector(2 downto 0); y: out std_logic_vector(7 downto 0)); end dec3_8; architecture a of dec3_8 is function to_integer(arg:std_logic_vector) return integer is variable temp: natural:=0; variable j:natural:=arg’length-1;---arg’length是arg的位长 begin if arg’length=32 then return temp ; end if ;----不能超过整数范围 for i in arg’range loop if arg(i)=’1’ then temp:=temp+2**j;---某一位不为零,则贡献一部分和 end if ; if j0 then j:=j-1; end if ; end loop; return temp; end function to_integer; begin g1: for k in 7 downto 0 generate y(k)=’0’ when to_integer(a)=k else ‘1’; end generate g1; end a ; 这是使用数据转换函数to_integer描写的3-8译码器,转换函数to_integer将STD_LOGIC_VECTOR类型转换为INTEGER类型。 注意这里函数调用的方法是把实际参数代入形式参数的位置,这称位置连接映射。还可以使用指名连接映射,to_integer( arg = a)。 函数调用格式如下: 函数名 (实际函数参数表) 其中函数参数表可以是位置连接映射形式(a1,a2,…..an)或者指名连接映射形式(x1=a1,x2=a2,…..xn=an)。 3. 过程 (1) 过程及其声明 在VHDL源代码中,如果在多处出现重复的模块,可使用过程来描述。 过程声明分过程首声明和过程体声明两部分,同一个过程的过程首和过程体应具有相同的名字。 过程首的声明格式如下: PROCEDURE 过程名(参数表); 过程体的声明格式如下: PROCEDURE 过程名(参数表) IS [说明部分]; BEGIN 顺序语句; END [PROCEDURE] 过程名; 过程首由过程名和参数表组成 参数表用于对常数、变量和信号三类形式参量作出说明 用关键词IN、OUT和INOUT定义这些参数的信息
您可能关注的文档
- CDMA无线网络优化技能考评教材 第一部分:CDMA基础知识.doc
- CDZL承压热水锅炉安装使用说明书.doc
- CEA方法学验证.doc
- CAD制图心得及技巧-最终整理版.doc
- CEO任期与企业绩效关系模型探讨.doc
- CATIA装配模块.ppt
- cems管理制度.doc
- cela签证面试注意事项.doc
- CheckPoint防火墙网络安全解决方案.docx
- CIA题库 第二部分.doc
- 2024年中国节能推板隧道电阻炉市场调查研究报告.docx
- 2010-2023历年河北省衡水中学高一下学期三调考试物理试卷(带解析).docx
- 2024年中国大底鞋材市场调查研究报告.docx
- 2024年中国轴承振动测量仪市场调查研究报告.docx
- 2010-2023历年河北省涿鹿北晨学校高三高考预测语文试卷(带解析).docx
- 2024年中国肥仔轮市场调查研究报告.docx
- 2024年中国精编工作站市场调查研究报告.docx
- 2010-2023历年河北省冀州中学高三一模考试文综历史卷.docx
- 2024年中国水果夹心饼干市场调查研究报告.docx
- 2010-2023历年河北省唐山市高三第三次模拟考试语文卷(带解析).docx
文档评论(0)