- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章内容 initial结构和always结构 顺序块和并行块 if语句和case语句 循环语句 阻塞性赋值与非阻塞性赋值 行为级模型范例 无需电路图,更注重功能 另一形式 initial结构 initial结构的主要功能就是进行初始化,是设计者进行信号和变量初始化的时候常用的形式。 initial结构仅在仿真开始的时候被激活一次,然后该结构中的所有语句被执行一次,执行结束后就不再执行。 仅含一条语句时 initial a=1; 包含多条语句时 initial begin a=1; b=0; end 用initial生成信号 initial begin a=0;b=0; #15 a=0;b=1; #15 a=1;b=0; #15 a=1;b=1; #15 a=0;b=0; end always结构 always结构在仿真过程中是时刻活动的,它的语句结构如下: always 时序控制方式 执行语句 如果没有控制方式的参与,此结构中的语句可能会一直执行并发生死锁,或者变成类似数据流级的语句 时序控制方式 基于延迟的控制 always #5 a=~a; initial clock=0; always #10 clock=~clock; 基于电平敏感的控制 使用wait语句 基于事件的控制 使用最多 基于事件的控制 “@”引导的事件列表 always @ (敏感事件列表) 可以使用or或者“,”来隔开 多个事件 always @ (a or b) sum =a+b; 只要事件发生就执行always中的语句 always @( A or B or C or D or S1 or S0 or En_) 事件过多可用*号 always @(*) 以某一个信号的名称作为敏感事件,表示的是对信号的电平值敏感,即信号只要发生了变化,就要执行always结构,所有的组合逻辑电路采用的都是这种控制方式 时序电路采用的敏感列表一般是边沿敏感的,信号的边沿用posedge(上升沿)和negedge(下降沿)来表示 always @ (posedge clock ) always @ (posedge clock or negedge reset) 顺序块 以关键字begin…end将多条语句封装成块 按顺序执行 并行块 以关键字fork … join将多条语句封装成块 所有语句并行执行 注意 并行块容易引起竞争 适用于绝对时间的控制 实际建模中并行块不可综合 仅适用顺序块即可 块的嵌套 块内所有语句都结束时,跳出块 块的命名 ①命名块中可以声明局部变量; ②块被命名后就变成了设计层次的一个组成部分,可以对块内的变量进行层次访问; ③命名块可以被禁用。 命名块示例 块的禁用 使用关键字disable if语句 第一类,仅有if,没有else语句 if(condition) statement; 第二类,有一对if…else语句 if(condition) statement_1; else statement_2; 第三类,有嵌套的if…else if…else结构 if(condition1) statement_1; else if(condition2) statement_2; else if(condition3) statement_3; //可以出现多个 else statement_4; 示例 if(clock= =1) q=d; //clock为1时执行此句 if(sel= =1) out=A; //sel为1时执行此句 else out=B; //sel非1时执行此句 if(Sum 60) Total_C = Total _c + 1; else if (Sum 75) Total_B = Total_B + 1; else Total_A = Total_A + 1; 注意事项 第一,if所接的条件判断中必须返回一个逻辑值。 第二,如果待执行的语句有多条时,可以使用begin…end来进行封装。 第三,if语句可以嵌套使用,一定要注意if和else的对应关系 第四,if语句是有优先级的,这点对于后期的门级网表有
文档评论(0)