- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
; 5.1 并 行 语 句 VHDL中既具有并行语句(如元件例化语句),也具有顺序语句(如IF语句)。不同的语句使用在不同的地方。对于VHDL设计者来说,重要的是要知道哪些语句结构中需要使用并行语句,哪些语句结构中需要使用顺序语句。可以简单地概括为:结构体中除进程(PROCESS)、函数(FUNCTION)和过程(PROCEDURE)结构内部以外的其他VHDL代码都是并行语句,如图5-1所示。需要注意的是,信号赋值语句既可以出现在进程中,也可以出现在结构体的并行语句部分,只是运行的含义不同(参考4.2.3节)。;;5.1.1 并行语句的特点 并行语句是硬件描述语言的一大特点,它与C语言等计算机高级程序设计语言最大的不同是:并行语句在结构体中的执行是并行的,不会因为书写顺序的前后而产生执行顺序的先后。例5-1和例5-2结构体内都含有3条相同的并行语句,它们体现了在不同的描述顺序下,仍然能够综合出一致的电路结构,如图5-2所示。;;;; 正如图5-2的硬件电路图所表明的,只有当信号a或者b的值改变后才能执行赋值语句“x = a AND b;”,即信号a或b的值改变之前信号x的值不会发生变化。同样,信号x的值改变之前,y的值也不会发生变化;信号c或y的值改变之前,z的值也不会发生变化。由此可以看出,VHDL代码的执行是由事件控制的,这就意味着并行VHDL语句可以按任意顺序书写,其设计的功能不变。; 例5-3再次显示了并行语句的特点,L13~L15这3条语句对应生成了3个加法器(见图5-3),即3个加法器同时在进行加法操作,没有顺序关系,而不是一个加法器顺序执行3条加法操作指令。VHDL代码最终实现的是具体的硬件电路,而不是在CPU中的逐条指令执行,这是VHDL语言相对于传统软件语言的不同。;;; 在一个结构体内部,可以有一种或是几种类型的并行语句。并行语句之间通过信号进行信息的传递。图5-4所示是结构体中并行语句的结构示意图,从图中可以看到,VHDL支持的并行语句主要有进程语句、元件例化语句(包括类属参数传递映射语句)、并行信号赋值语句、生成语句、并行过程(或函数)调用语句以及块语句。下面分别讲述每一种语句的结构和应用。;;5.1.2 进程语句 在一个结构体内可以有一个或多个进程,不同进程的地位是相同的。进程间的执行是并行的、独立的,由各自敏感信号的变化触发。一个进程有两个状态:等待状态和执行状态。在等待状态下,当任一敏感信号发生变化时,进程立即启动进入执行状态。当进程顺序执行到END PROCESS语句时,重新进入等待状态,等待下一次敏感信号的改变。进程语句内部结构由一系列顺序语句构成,能够很好地体现VHDL语言的行为描述能力。进程语句的语法格式已在3.5.3节中讲述,这里不再赘述。; VHDL中的进程有两种类型:组合进程和时序进程。组合进程用于设计组合逻辑电路,时序进程用于设计引入了触发器的时序逻辑电路。 在组合进程中,所有输入信号必须都包含到敏感信号参数表中,包括赋值符号“=”右边的所有信号以及IF语句、CASE语句的判断表达式中的所有信号。如果有一个信号没有包含在敏感信号参数表中,则当这个被忽略的信号变化时,该进程不会被激活,输出信号也不会得到新的赋值。; 时序进程又可分为同步和异步两类。同步进程只对时钟信号敏感,即仅在时钟的边沿启动;异步进程除了对时钟信号敏感外,还对影响异步行为的输入信号敏感,即该输入信号的变化也能启动进程。例5-4显示了一个带有异步复位信号reset的D触发器。当信号reset取值为“1”时,输出q立即被复位为“0”,而不管此时是否有时钟信号clk的上升沿到来,即信号reset的变化也能够启动进程。当信号reset取值为“0”时,如果有时钟信号的上升沿到来,则输出q被赋值为d,仿真结果如图5-5所示。;;; 例5-5是同步时序进程,只有时钟信号的上升沿到来时才能启动进程,即使信号reset发生改变(从“0”变化到“1”)也不能启动进程。例5-5的仿真结果见图5-6。可以看到,当复位信号reset从“0”变为“1”时,由于此时并无时钟信号clk的上升沿到来,所以进程仍处于等待状态,输出q维持原值。当clk上升沿到来后,进程被启动,此时再判断信号reset的取值,如果为“1”,则输入q被复位为“0”。;;; 电路系统有时既需要利用到时钟信号的上升沿又需要利用到下降沿,即在两个边沿时刻都需要处理数据;然而VHDL一般不允许对同一信号在时钟的两个边沿进行数据的赋值处理,且不论是在一个进程中(见例5-6)还是在不同的进程中(见例5-7)。例5-6的本意是想实现当时钟信号clk上升沿到来时,将数据d1赋值给q;当时钟下降沿到来时,将数据d2赋值给q。编译后出现图5-7
您可能关注的文档
- EDA技术及应用教程 教学课件 作者 赵全利 第3章 硬件描述语言VHDL.ppt
- EDA技术及应用教程 教学课件 作者 赵全利 第4章 用VHDL程序实现常用逻辑电路.ppt
- EDA技术及应用教程 教学课件 作者 赵全利 第5章 EDA开发软件及应用.ppt
- EDA技术及应用教程 教学课件 作者 赵全利 第7章 QuartusⅡ中的宏功能模块及应用.ppt
- EDA技术及应用教程 教学课件 作者 赵全利 第8章 常见EDA设计中的工程问题.ppt
- EDA技术教程教学课件 作者 梁勇 王留奎 第1章概述.ppt
- EDA技术教程教学课件 作者 梁勇 王留奎 第2章 硬件描述语言VHDL.ppt
- EDA技术教程教学课件 作者 梁勇 王留奎 第3章 Quartus II开发软件.ppt
- EDA技术教程教学课件 作者 梁勇 王留奎 第4章 VHDL设计提高.ppt
- EDA技术教程教学课件 作者 梁勇 王留奎 第5章 Quartus II使用提高.ppt
- EDA技术与VHDL设计 教学课件 作者 黄沛昱 第1 5章封面及目录.ppt
- EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第6章.ppt
- EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第7章.ppt
- EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第8章.ppt
- EDA技术与VHDL设计 教学课件 作者 黄沛昱 第6 9章第9章.ppt
- EDA技术与实验 教学课件 作者 李国洪 胡辉 第1章 EDA技术概述.ppt
- EDA技术与实验 教学课件 作者 李国洪 胡辉 第2章 可编程逻辑器件与数字系统的设计.ppt
- EDA技术与实验 教学课件 作者 李国洪 胡辉 第3章 MAX+plusⅡ软件的应用.ppt
- EDA技术与实验 教学课件 作者 李国洪 胡辉 第4章 QuartusⅡ软件的应用.ppt
- EDA技术与实验 教学课件 作者 李国洪 胡辉 第5章 VHDL设计基础.ppt
文档评论(0)