《夏宇闻Verilog HDL数字系统设计教程》(第四版)第一部分 Verilog数字设计基础 知识点总结——第五章

博主最近刚开始学习FPGA设计,选用的开发语言是目前比较流行的Verilog,教材选用的是北京航空航天大学出版的《夏宇闻Verilog HDL数字系统设计教程》(第四版),这本书也是比较经典的一本教材,第四版是它的最新版本。在学习的过程中,博主对每一章的知识点进行了梳理,对其中重要的知识点(博主认为的)都做了归纳,当然也有些知识点被博主舍弃掉了。学习的过程中也存在一些没看太明白的地方,对于这些内容,有的没写在总结里,有的在总结里标注出了“存疑”二字,请各位读者阅读时留意。最后也欢迎各位读者指出文章中出现的错误!

目录

第五章  条件语句、循环语句、块语句与生成语句

5.1条件语句:

5.2case语句

5.3循环语句

5.3.1       forever语句格式如下:

5.3.2       repeat语句格式如下:

5.3.3       while语句格式如下:

5.3.4       for语句一般格式如下:

5.4块语句的特点:


第五章  条件语句、循环语句、块语句与生成语句

5.1条件语句:

三种形式:

   1.  if(表达式)语句;

   2.  if(表达式)

                语句1;

                 else

                 语句2;

   3.  if(表达式1)

             语句1

        else  if(表达式2)语句2;

        else  if(表达式3)语句3;

        else  if(表达式n)语句n;

        else   语句n+1;

条件语句必须在过程块中使用,所谓过程块是指initial和always语句所引导的执行语句集合。表达式为0或者x视为假。if语句支持嵌套。

 

5.2case语句

三种形式:

(1)case(表达式)  <case分支项>       endcase

(2)casex(表达式) <case分支项>       endcase

(3)casez(表达式) <case分支项>       endcase

分支项的一般格式如下:

分支表达式:        语句;

默认项:        语句;

注:

  1. default可有可无
  2. 每个分支项必须不同
  3. 所有表达式位宽必须相同,常犯错误:用’bx,’bz代替n’bx,n’bz
  4. casez用来处理不考虑高阻值z的比较过程
  5. casex用来处理将高阻值z和不定值x都视为不关心的过程
  6. 分支项可以为begin…end块
  7. case语句支持嵌套

为了避免Verilog代码综合后生成锁存器,如果用到if语句,最好写上else项;如果用到case语句最好写上default项。

 

5.3循环语句

共四类:

  1. forever语句:连续执行的语句;
  2. repeat语句:连续执行一条语句n次;
  3. while语句:执行一条语句直到某个条件不满足;
  4. for语句:通过以下三个步骤决定语句的循环执行:

1.  先给控制循环次数的变量赋初值

2.  判定控制循环的表达式的值,如为假,则跳出循环语句;如为真,则执行指定的语句后,转到第3步

3.  执行一条语句赋值语句来修正控制循环变量次数的变量值,然后返回第二步

5.3.1       forever语句格式如下:

forever 语句;

或forever       begin多条语句end

 

5.3.2       repeat语句格式如下:

                                                              repeat(表达式)语句;

                                                              或repeat(表达式)    begin       多条语句 end

 

5.3.3       while语句格式如下:

                                                              while(表达式)语句;

                                                              或while(表达式)     begin       多条语句 end

 

5.3.4       for语句一般格式如下:

                                                              for(表达式1;表达式2;表达式3)

在for语句中,循环变量增值表达式可以不必是一般的常规加法或者减法表达式,比如可以使用右移表达式。

 

5.4块语句的特点:

  1. 嵌套快

块可以嵌套使用,顺序快和嵌套块能够混合在一起使用

  1. 命名块

块可以有自己的名字,这成为命名块,其特点为:

  1.  命名块可以声明局部变量

  2.  命名块是设计层次的一部分,命名块中声明的变量可以通过层次名引用进行访问

  3.  命名块可以被禁用(用关键字disable)

猜你喜欢

转载自blog.csdn.net/qq_26379299/article/details/81409168