- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行语句 元件例化语句 COMPONENT 元件名IS GENERIC (类属表); -- 元件定义语句 PORT (端口名表); END COMPONENT 文件名; -- 元件例化语句 例化名:元件名GENERIC MAP(参数名=n,) PORT MAP([端口名=] 连接端口名,...) ; 并行语句 生成语句 [标号:] FOR 循环变量 IN 取值范围GENERATE 说明 BEGIN 并行语句 END GENERATE [标号] ; 或 [标号:] IF 条件GENERATE 说明 Begin 并行语句 END GENERATE [标号] ; REPORT语句 REPORT “字符串”; 报告有关信息 并行语句 REPORT语句 REPORT “字符串”; 报告有关信息 断言语句 ASSERT条件表达式 REPORT“出错信息” SEVERITY错误级别 ; 主要用于程序调试,仿真是人机对话 顺序断言语句 并行断言语句 当条件表达式不成立时,报告错误 默认错误消息:”Assertion Violation“ 属性描述与定义语句 信号类属性 (NOT clock’STABLE AND clock =1) 等价于 (clock’EVENT AND clock =1) 2. 数据区间类属性 ... SIGNAL range1 : IN STD_LOGIC_VECTOR (0 TO 7) ; ... FOR i IN range1RANGE LOOP ... VHDL的属性有LEFT,RIGHT,LOW,RANGE,REVERS,RANGE,LENGTH,EVENT,STABLE等 STABLE是信号保持稳定为真 EVENT是信号有变化为真 ‘RANGE是在区间里 ‘REVERSE RANGE是不在区间里 属性描述与定义语句 3. 数值类属性 ... PROCESS (clock, a, b); TYPE obj IS ARRAY (0 TO 15) OF BIT ; SIGNAL ele1, ele2, ele3, ele4 : INTEGER ; BEGIN ele1 = obj’RIGNT ; ele1等于15 ele2 = obj’LEFT ; ele1等于0 ele3 = obj’HIGH ; ele1等于15 ele4 = obj’LOW ; ele1等于0 ... 主要有 ’LEFT, ’RIGHT, ’HIGH, ’LOW, 属性描述与定义语句 4. 数组属性LENGTH TYPE arry1 ARRAY (0 TO 7) OF BIT ; VARIABLE wth: INTEGER; ... wth1: =arry1’LENGTH; -- wth1 = 8 ... 测定数组的宽度或元素个数 属性描述与定义语句 5. 用户定义属性 ATTRIBUTE 属性名: 数据类型; ATTRIBUTE 属性名OF 对象名: 对象类型IS 值; 特殊属性都在synplicity.attributes,使用前加入: LIBRARY synplify; USE synplicity.attributes.all; VHDL子程序 VHDL函数 FUNCTION 函数名(参数表) RETURN 数据类型--函数首 FUNCTION 函数名(参数表)RETURN 数据类型IS -- 函数体 [ 说明部分] BEGIN 顺序语句; END FUNCTION 函数名; 函数首不是必需的,函数体在进程和结构体中可独立存在和使用; 在程序包中必须定义函数首 VHDL过程 VHDL子程序 PROCEDURE 过程名(参数表) -- 过程首 PROCEDURE 过程名(参数表) IS [说明部分] BIGIN -- 过程体 顺序语句; END PROCEDURE 过程名 过程,子程序的另外一种形式,其特点和函数一样 【例】 PROCEDURE prg1(VARIABLE value:INOUT BIT_VECTOR(0 TO 7)) IS BEGIN CASE value IS WHEN 0000 = value: 0101 ; WHEN 0101 = value: 0000 ; WHEN OTHERS = value: 1111 ; END CASE ; END PROCEDURE prg1 ; 子程序调用语句 VHDL子程序 1. 过程调用 过程名[([形参名= ]实参表达式 { ,[形参名= ]实参表达式}) ]; (1) 将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应
文档评论(0)