b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

结构体 [转]System Verilog的概念以及与verilog(5)

电脑杂谈  发布时间:2018-02-21 13:38:50  来源:网络整理

17. 唯一性和优先级决定语句

在Verilog中,如果没有遵循严格的编码风格,它的if-else和case语句会在RTL仿真和RTL综合间具有不一致的结果。如果没有正确使用full_case和parallel_case综合指令还会引起一些其它的错误。

SystemVerilog能够显式地指明什么时候一条决定语句的分支是唯一的,或者什么时候需要计算优先级。我们可以在if或case关键字之前使用unique或requires关键字。这些关键字可以向、综合编译器、以及其它工具指示我们期望的硬件类型。工具使用这些信息来检查if或case语句是否正确建模了期望的逻辑。例如,如果使用unique限定了一个决定语句,那么在不希望的case值出现的时候就能够发布一个警告信息。

bit[2:0]a;

unique if((a==0) || (a==1))y=in1;

else if (a==2)y=in2;

else if (a==4)y=in3;//值3、5、6、7会引起一个警告

priorityif(a[2:1]==0) y=in1;// a是0或1

else if(a[2]==0) y=in2;// a是2或3

elsey=in3;//如果a为其他的值

uniquecase(a)

0,1: y=in1;

2: y=in2;

4: y=in3;

endcase//值3、5、6、7会引起一个警告

prioritycasez(a)

2’b00?: y=in1;// a是0或1

2’b0??: y=in2;// a是2或3

default: y=in3;//如果a为其他的值

endcase

18. 底部检测的循环

Verilog包含for、while和repeat循环,这几个循环都是在循环的起始处检测循环条件。SystemVerilog加入了一个do-while循环,这种循环在执行语句的结尾处检测循环条件。

结构体_结构体初始化_结构体指针

19. 跳转语句

在语句的执行过程中,C语言提供了几种方式来跳转到新的语句,包括:return、break、continue和goto。在Verilog中除了通过使用disable语句跳转到语句组的尾部外,没有提供任何其它跳转语句。使用disable语句执行中止和继续功能要求加入块的名字,并且会产生不直观的代码。SystemVerilog加入了C语言的break和continue关键字,这两个关键字不要求使用块名字。另外,SystemVerilog还加入了一个return关键字,它可以用来在任何执行点上退出一个任务或函数。

lbreak:退出一个循环,与C语言相同;

lcontinue:跳转到一个循环的尾部,与C语言相同;

lreturn表达式:退出一个函数;

lreturn:退出一个任务或void类型的函数。

SystemVerilog没有包含C语言中的goto语句。

20. 块名字和语句标签

在Verilog中,我们可以通过在begin或fork关键字之后指定名字来为begin-end或fork-jion语句指定名字。结构体这个指定的名字代表整个语句块。SystemVerilog还允许在end或jion关键字之后指定一个匹配的块名字。这种机制很容易将end或jion与对应的begin或fork联系起来,尤其是在一个长的块或嵌套的块中。块结尾处的名字是可选的,但如果使用的话,它必须与块起始处的名字相同。例如:

SystemVerilog还允许像C语言一样为单个语句设置标签。语句标签放置在语句的前面,用来标识这条语句。例如:

21. 对事件控制的增强


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-87180-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...