当前位置: 首页 > news >正文

网站设计线框图网站文章怎么更新时间

网站设计线框图,网站文章怎么更新时间,长沙哪里有网站推广优化,大型门户网站设计公司书接上回#xff1a; sv标准研读第一章-综述 sv标准研读第二章-标准引用 sv标准研读第三章-设计和验证的building block sv标准研读第四章-时间调度机制 sv标准研读第五章-词法 sv标准研读第六章-数据类型 sv标准研读第七章-聚合数据类型 sv标准研读第八章-class sv标…书接上回 sv标准研读第一章-综述 sv标准研读第二章-标准引用 sv标准研读第三章-设计和验证的building block sv标准研读第四章-时间调度机制 sv标准研读第五章-词法 sv标准研读第六章-数据类型 sv标准研读第七章-聚合数据类型 sv标准研读第八章-class sv标准解读第九章-进程 sv标准研读第十章-赋值语句 sv标准研读第十一章-操作符和表达式 第12章 过程性编程语句 12.1 总览 -条件语句if-else/case/casez/casex/unique/unique0/priority -循环语句for/repeat/foreach/while/do while/forever -跳转语句break/continue/return 12.2 概述 过程性编程语句可以出现在下面这些结构中 -initial -always -always_comb -always_latch -always_ff -final -task -function 12.3 语法 12.4 条件语句if-else 语法 执行过程如果cond_predicatetrue那么执行该语句如果cond_predicatefalse不执行该语句如果结果为false且有else语句则执行else语句。Else是与在它前面最近的if匹配的。 如果不想要else与它前面最近的if匹配可以加上begin end来解决这个问题 12.4.1 if-else-if结构 结构如下 可以用来做多路决策。 12.4.2 unique-if/unique0-if/priority-if结构 Unique/unique0/priority可以放在if前面用来做一些违规检查。 unique-if/priority-if的作用是如果不符合后面的条件且没有else分支语句那么会报violation。举例 unique0-if的作用是即时一个条件也不满足也不会报violation举例 所以unique-if/unique0-if是互斥的。 另外需要注意的是unique-if/unique0-if的每个条件必须是唯一的如果发现满足一个以上的条件也会报violation最终执行的是最早出现的条件语句。 priority-if表示条件是按照优先级依次2列出来的。 12.4.2.1 unique-if/unique0-if/priority-if结构产生的violation unique-if/unique0-if/priority-if条件的判断是在active域但是生成的violation报告是在observed域且violation报告可以被断言系统task控制。举例 上面这个例子中u1在active域评估a/not_a这两个条件如果一开始a0当a变成1且not_a的值还没有刷新时u1的唯一性检查会发现两个条件都满足所以会安排一个violation报告在observed域但是在active域not_a会被刷新此时又不满足violation条件因此之前的violation会被撤销最后在observed域不会报出任何violation。 12.4.2.2 if语句违例报告和多进程 多进程的参与可能使得违例报告会出现多次。举例 假设 在time step1c1,d1,e1,f1,那么b1/b2两个进程都会报violation在time step2c1,d0,e1,f1,只有b2进程会报violation在time step3c1,d1,e1,f0只有b1进程会报violation。 12.5 case语句 语法 Default语句可写可不写但是最多只能写一次。 按照顺序依次查看case里的条件一旦匹配就执行该语句如果没有匹配且有default语句则执行default语句如果没有default语句则不执行任何case语句。 Case语句和if-else-if语句的不同 case语句是将条件与所有case分支条件进行比较而if语句是只比较当前这一个分支因此if语句更通用当条件中有x/z时case语句的结果是确定的 也就是说case语句会认真比较0/1/x/z只有完全匹配才会成功。且case语句要注意bit位的长度如果条件和分支条件长度不匹配那么最终长度会扩充到条件的最长bit位。且如果条件中有一个是无符号数那么所有的条件都会被看做是无符号数只有所有的都是有符号数最终才是有符号数。举例 上面这个例子中只要select[1]0且flaga0无论select[2]是什么result都是0. 12.5.1 casex/casez语句 Casex不care x和z Casez不case z 表达式中允许用?来代替z 举例 只要ir的最高位为1无论其他位是什么都会走第一个分支 12.5.2 case语句中的常量表达式 举例 上面这个例子的作用是只要encode的任何一个bit位为1就会进入对应的分支。 12.5.3 unique-case/unique0-case/priority-case 可以在case/casex/casez关键字前面加上unique/unique0/priority关键字。 unique-case/unique0-case的作用如果出现多个分支匹配那么会报violation最后执行的分支是按照顺序第一个匹配的分支 如果unique-case /priority-case没有分支匹配也会报出violation如果unique0-case没有分支匹配不会报出violation。 举例 12.5.3.1 unique-case/unique0-case/priority-case结构产生的违例报告 unique-case/unique0-case/priority-case的判断是在active域但是生成的violation报告是在observed域且violation报告可以被断言系统task控制。 其处理过程和unique-if/unique0-if/priority-if一样。 12.5.3.2 case语句违例报告和多进程 多个进程违例报告的处理和unique-if/unique0-if/priority-if一样。 12.5.4 case语句设置成员关系 在case(***)后面可以加上inside关键字来设置成员关系作用是使得括号里的表达式和每一个分支条件里的所有集合成员进行比较。举例 12.6 pattern匹配条件语句 作用将值与某种结构体、tagged union和常量进行比较。 Pattern指的是带有标识符、常量表达式和通配符“.*”的tagged union和结构体的嵌套。 语法 12.6.1 case语句中的模式匹配 Matches关键字要跟在case(***)后面 举例 上面这个例子中如果v有invalid tag那么它和第一个分支匹配否则必须包含valid tag和第二个分支匹配。当与第二个分支匹配时n和valid这个成员的值绑定可以打印该值但是当tag为invalid时是没办法访问n的值的。 Casez/casex语句另外加上priority/unique关键字也可以使用pattern 匹配。 12.6.2 if语句中的pattern匹配 Matches关键字要放在if()括号里面。 举例 上面这个例子中只要e和tag jmp里的tag jumpc匹配那么就会进入第一个分支。 12.6.3 条件表达式里的pattern匹配 这里说的条件表达式指的是三目运算符的条件表达式即c1?c2:c3结构。其中c1这个条件语句里就可以使用pattern匹配。 12.7循环语句 Sv有六种循环结构forever/repeat/while/for/do while/foreach 12.7.1 for循环 For循环结构里的初始化部分可以用逗号实现多个变量的初始化如下 在初始化部分变量既可以在for结构里声明也可以放在for结构之外声明但是如果存在多个变量只能要么全部在for结构里声明要么全部在for结构之外声明而不能一部分变量放在for结构里声明一部分放在for结构外声明这样会报错如下 另外声明的变量可以使用前面已经声明过的变量组成的表达式如下 12.7.2 repeat循环 Repeat会执行指定次数的语句如果语句计算结果是x/z那么会当做0处理也就不会执行该语句。 举例 12.7.3 foreach循环 Foreach循环针对的是数组会对数组里的每一个元素进行遍历。数组标识符后面用逗号分隔开循环变量列表并且这些循环变量要用中括号包起来每个循环变量是一个维度。举例 Foreach里变量和维度的映射关系如下 注意不要在遍历foreach循环时去改变数组的维度否则这可能造成不可预期的后果。 12.7.4 while循环 只要while 里的表达式为真那么就会重复执行里面的语句。 下面的例子利用while循环去统计data里1的个数 12.7.5 do while循环 Do while循环和while循环的区别是前者是先执行语句再进行条件判断后者是先进行条件判断再执行语句。举例 12.7.6 forever循环 Forever循环没有条件判断语句会一直重复执行一条语句且要配合delay语句使用否则可能会产生零延迟无限死循环。 12.8 跳转语句 Sv有三种跳转语句break/continue/return break/continue只能用在循环语句中break用于结束整个循环continue用于跳出当前循环 break/continue fork-join里不能使用break/continue来跳出fork join外的循环。 Return语句只能用在子例程中。
http://www.w-s-a.com/news/282975/

相关文章:

  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1
  • 爱网站查询怎么做网站的图片跳转
  • 阿里云建站百度收录吗北京的设计公司排名
  • 网站制作方案包含哪些内容布吉网站建设方案
  • 吉林省建设安全信息网站宜宾市建设工程质量监督站网站
  • 镇江网站建设远航网络帝国cms 网站地图 自定义