- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA第4章 VDL并行语句--(4.6)
4.6 VHDL并行语句(Concurrent Statements) 相对于传统的软件描述语言,并行语句结构是最具VHDL特色的。在VHDL中,并行语句具有多种语句格式,各种并行语句在结构体中的执行是同步进行的,或者说是并行运行的,其执行方式与书写的顺序无关。在执行中,并行语句之间可以有信息往来,也可以是互为独立、互不相关、异步运行的(如多时钟情况)。 每一并行语句内部的语句运行方式可以有两种不同的方式,即并行执行方式(如块语句)和顺序执行方式(如进程语句)。因此,VHDL并行语句勾画出了一幅充分表达硬件电路的真实的运行图景。 图4.6.1所示的是在一个结构体中各种并行语句运行的示意图。这些语句不必同时存在,在每一语句模块都可以独立异步运行,模块之间并行运行,并通过信号来交换信息。 请注意,VHDL中的并行运行有多层含义,即模块间的运行方式可以有同时运行、异步运行、同步运行等方式,从电路的工作方式上可以包括组合逻辑运行方式、同步逻辑运行方式和异步逻辑运行方式等。 如图4.6.1所示的结构体中的并行语句主要有七种: 并行信号赋值语句(CONCURRENT SIGNAL ASSIGNMENTS) 进程语句(PROCESS STATEMENTS) 块语句(BLOCK STATEMENTS) 条件信号赋值语句(SELECTED SIGNAL ASSIGNMENTS) 元件例化语句(COMPONENT INSTANTIATIONS) 生成语句(GENERATE STATEMENTS) 并行过程调用语句(CONCURRENT PROCEDURE CALLS) 并行语句在结构体中的使用格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 说明语句; BEGIN 并行语句; END ARCHITECTURE 结构体名; 块(BLOCK)语句是一种将结构体中的并行描述语句进行组合的方法,它的主要目的是改善并行语句及其结构的可读性,或是利用BLOCK的保护表达式关闭某些信号。 BLOCK语句的表达格式如下: 块标号:BLOCK [(块保护表达式)] [IS] 接口说明; 类属说明; BEGIN 并行语句; END BLOCK [块标号]; BLOCK的应用可使结构体层次鲜明,结构明确。利用BLOCK语句可以将结构体中的并行语句划分成多个并列方式的BLOCK,每一个BLOCK都像一个独立的设计实体,具有自己的类属参数说明和界面端口,以及与外部环境的衔接描述。 … ENTITY GAT IS GENERIC(L_TIME:TIME;S_TIME:TIME); --类属说明 PORT (B1,B2,B3:INOUT BIT); --结构体全局端口定义 END ENTITY GAT; ARCHITECTURE ART OF GAT IS SIGNAL A1:BIT; --结构体全局信号A1定义 BEGIN BLK1:BLOCK IS --块定义,块标号名是BLK1 GENERIC (GB1,GB2:TIME); --定义块中的局部类属参量 GENERIC MAP (GB1=L-TIME,GB2=S-TIME); --局部端口参量设定 PORT (PB1:IN BIT;PB2:INOUT BIT); --块结构中局部端口定义 POTR MAP(PB1=B1,PB2=A1); --块结构端口连接说明 CONSTANT DELAY:TIME:=1 ms; --局部
文档评论(0)