sv 中循环的实现
sv 中循环的实现
sv 中循环和C C++ 中的类似,常用的for while…do
C 中的for
int i;
for (i=0;i<10;i++)
{
.....
}
可以使用continue 跳过本次循环中的剩余部分,直接进入下次循环。
int i;
for (i=0;i<10;i++)
{
....
if(i==1)
continue;
.....
}
可以使用break 跳出循环,放弃剩余的循环执行。
int i;
for (i=0;i<10;i++)
{
....
if(i==1)
break;
.....
}
可以使用return 跳出函数,放弃剩余的循环执行。
int i;
for (i=0;i<10;i++)
{
....
if(i==1)
break;
.....
}
SV 中的for 循环
int i;
for (i=0;i<10;i++)
begin
.....
end
可以使用continue 跳过本次循环中的剩余部分,直接进入下次循环。
int i;
for (i=0;i<10;i++)
begin
....
if(i==1)
continue;
.....
end
可以使用break 跳出循环,放弃剩余的循环执行。
int i;
for (i=0;i<10;i++)
begin
....
if(i==1)
break;
.....
end
SV 对for 循环进行了扩展,可以使用两个参数
for(int a=0,b=0;a+b<10;a++)
begin
…
end
对于在同一initial 中操作同一变量的循环可以通过加标号规定作用域,解决对同一数据操作的风险。
for (int i=0;i<10;i++)
{
.....
}
loop2: for (int i=0;i<10;i++)
{
.....
}
C 中while-do 循环
对比 for 和 while-do 循环可以互相替代,仅仅while-do的变化更多一些,某些情景更适合。 while-do :先判
断条件,后执行do{},这时可以省略do
while(1)
do{
...
}
do-while: do中内容先执行,while()中判断是否继续执行do{}
do{
...
}
while(1)
SV 中的while-do
while-do :先判断条件,后执行do{},这时可以省略do
while(1)
begin
...
end
do-while: do中内容先执行,后中判断while()是否继续执行do{}
do
begin
...
end
while(1)
SV 特有的foreach()
int a[3] = {1,1,1};
foreach(a[j])
$display(j,a[j]);
j 是定义出来的循环的变量,变量最大值就是数据成员数量