- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲vhdl编程基础-电气与信息工程学院-湖南文理学院
《 E D A 技 术》 课 程 教 学 讲授:伍宗富 第 三 讲 VHDL编程基础(1) 教学目的:使学生掌握VHDL顺序语句与并行语句结构及使用方法。 教学重点:VHDL顺序语句与并行语句。 教学难点:进程语句、元件例化语句。 教学方法:讲授法、计算机辅助法。 课时计划:2学时 使用教材:EDA技术及应用.谭会生等.西安:西安电子科技大学出版社 主要参考文献: [1] 徐光辉等.CPLD/FPGA的开发和应用[M].北京:电子工业出版社 [2] 侯伯亨等.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社 [3] [4] 周立功等.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社 一、 VHDL顺序语句 1.赋值语句 2.转向控制语句 3. WAIT语句 4. 子程序调用语句 5、return 语句 6、 null 语句 7、其它语句和说明 (2)数据区间类属性 数据区间类属性有‘RANGE[(N)]和’REVERSR_RANGE[(N)],这类属性函数主要是对属性项目取值区间进行测试,返还的内容不是一个具体值,而是一个区间,它们的含义如表3.4所示。对于同一属性项目,‘RANGE和’REVERSR_RANGE返回的区间次序相反,前者与原项目次序相同,后者相反,如: … SIGNAL RANGE1:IN STD_LOGIC_VECTOR(0 TO 7); … FOR I IN RANGE1RANGE LOOP … 注:本例中的FOR—LOOP语句与语句“FOR I IN 0 TO 7 LOOP”的功能是一样的,这说明RANGE1RANGE返回的区间即为位矢RANGE1定义的元素范围。如果用’REVERSR_RANGE ,则返回的区间正好相反,是(7 DOWNTO 0)。 课堂小结 课外作业: 教材P209 3.11 、3.13、3.15 b.属性 ’stable 属性 ’stable 的测试功能与 ’event刚好相反, 信号在Δ时间段内无事件发生,则返回 true,否则返回 false。 以下两语句的功能相同: clock’event and clock = ‘1’ not ( clock’stable ) and clock = ‘1’ 注意:语句“NOT(CLOCKSTABLE AND CLOCK=‘1’)”表达方式是不可综合的。因为,对于VHDL综合器来说,括号中的语句已等效于一条时钟信号边沿测试专用语句,它已不是操作数,所以不能用操作数方式来对待。 c.属性 RISING_EDGE(CLOCK) 另外还应注意,对于普通BIT数据类型的CLOCK,它只是有1和0两种取值,因而CLOCK‘EVENT AND CLOCK=‘1’的表述作为对信号上升沿到来与否的测试是正确的。但如果CLOCK的数据类型已定义为STD_LOGIC,则其可能的值有9种。这样一来,就不能从CLOCK’EVENT AND CLOCK=‘1’中的“(CLOCK=‘1’)=TURE”来判断△时刻前CLOCCK一定是0。因此,对于这种数据类型的时钟信号边沿检测,可用: RISING_EDGE(CLOCK) 这条语句只能用于标准位数据类型的信号,其用法如下: IF RISING_EDGE(CLOCK) THEN 或 WAIT UNTIL RISING_EDGE(CLOCK) 在实际使用中,EVENT比STABLE更常用。对于目前常用的VHDL综合器来说,EVENT只能用于IF和WAIT语句中。 (1)信号类属性 7、其它语句和说明 1)属性(attribute)描述 (3)数值类属性 在VHDL中的数值类属性测试函数主要有‘LEFT,’RIGHT,‘HIGH,’LOW,它们的功能如前表所示。这些属性函数主要用于对属性目标的一些数值特性进行测试。例如: … PROCESS(CLOCK,A,B); TYPE OBJ IS ARRAY(0 TO 15)OF BIT; SIGNAL S1,S2,S3,S4:INTEGER; BEGIN S1=OBJRIGHT; S2=OBJLEFT; S3=OBJHIGH; S4=OBJLOW; … 信号S1、S2、S3、和S4获得的赋值分别为15、0、0和15。 7、其它语句和说明 1)属
文档评论(0)