完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
按照界定不同分为两种: (1)begin……end,用来组合需要顺序执行的语句,被称为串行块。例如: parameter d = 50; reg[7:0] r; begin //由一系列延迟产生的波形 # d r = ' h35 ; //语句1 # d r = ' hE2 ; //语句2 # d r = ' h00 ; //语句3 # d r = ' hF7 ; //语句4 # d –> end_wave; //语句5,触发事件end_wave end 串行块的执行特点如下: 串行块内的各条语句是按它们在块内的语句逐次逐条顺序执行的,当前一条执行完之后,才能执行下一条。如上例中语句1至语句5是顺序执行的。 块内每一条语句中的延时控制都是相对于前一条语句结束时刻的延时控制。如上例中语句2的时延为2d。 在进行仿真时,整个语句块总的执行时间等于所有语句执行时间之和。如上例中语句块中总的执行时间为5d。 (2)fork……join,用来组合需要并行执行的语句,被称为并行块。例如: parameter d = 50; reg[7:0] r; fork //由一系列延迟产生的波形 # d r = ' h35 ; //语句1 # 2d r = ' hE2 ; //语句2 # 3d r = ' h00 ; //语句3 # 4d r = ' hF7 ; //语句4 # 5d –> end_wave; //语句5,触发事件end_wave join 并行块的执行特点为: 并行语句块内各条语句是各自独立地同时开始执行的,各条语句的起始执行时间都等于程序流程进入该语句块的时间。如上例中语句2并不需要等语句1执行完才开始执行,它与语句1是同时开始的。 块内每一条语句中的延时控制都是相对于程序流程进入该语句块的时间而言的。如上例中语句2的延时为2d。 在进行仿真时,整个语句块总的执行时间等于执行时间最长的那条语句所需要的执行时间,如上例中整个语句块的执行时间为5d。 (3)混合使用 在分别对串行块和并行块进行了介绍之后,还需要讨论一下二者的混合使用。混合使用可以分为下面两种情况。 串行块和并行块分别属于不同的过程块时,串行块和并行块是并行执行的。例如一个串行块和并行块分别存在于两个initial过程块中,由于这两个过程块是并行执行的,所以其中所包含的串行语句和并行语句也是同时并行执行的。在串行块内部,其语句是串行执行的;在并行块内部,其语句是并行执行的。 当串行块和并行块嵌套在同一过程块中时,内层语句可以看作是外层语句块中的一条普通语句,内层语句块什么时候得到执行是由外层语句块的规则决定的;而在内层语句块开始执行时,其内部语句怎么执行就要遵守内层语句块的规则。 |
|
相关推荐
|
|
382 浏览 0 评论
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
1647 浏览 0 评论
463 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1771 浏览 1 评论
512 浏览 0 评论
4534 浏览 100 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-27 06:15 , Processed in 0.563842 second(s), Total 64, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191