首页 > 技术文章 > Verilog HDL语法基础

zhtook 2020-06-17 10:54 原文

1          Verilog是大小写相关的,其中的关键字全部为小写。

2          空白符由空格、制表符、和换行符组成。

3          单行注释以“//”开始,verilog将忽略此处到行尾的内容。多行注释以“”结束。多行注释不允许嵌套

4          操作符有三种:单目操作符、双目操作符和三目操作符。

5          数字声明      Verilog中有两种数字声明:指明位数的数字和不指明位数的数字

    指明位数的数字表示形式:’

      Size用来指明数字位宽度,只能用十进制整数表示

      Base format包括十进制(’d或’D),二进制(’b或’B),八进制(‘o或’O),十六进制(‘h或’H)

      例如

        4’b1111  //4位2进制数

        12’h3ac   //12位16进制数

    不指明位数的数字:如果数字说明中没有指定基数,那么默认表示为十进制数。如果没有指定位宽,则默认的位宽度与仿真器和使用的计算机有关(最小为32位)。

      ‘o21         //32位八进制数

      X值和Z值:不确定值用X表示,高阻用Z值表示。在八进制数中代表3位,十六进制中代表4位。

      12’h12X  //这是一个12位16进制数,其中低四位不确定

      负数:   在表示位宽的数字前面增加一个减号来表示它是一个负数。

        -6’d3        //一个6位的用二进制补码形式存储的十进制数3,表示负数

        -6’sd3      //一个6位的带符号算数运算的负数

      下划线符号和问号:除了第一个字符,下划线“_”可以出现在数字中的任何位置,它的作用只是提高可读性,在编译阶段会被忽略掉

               问号“?”是z的另一种表示,使用问号的目的在于增强casex和casez语句的可读性。在这两条语句中,“?”表示不必关心的情况。

                12’B1111_0011_1110    //     增强可读性

                4’b10??                   //相当于4’b10zz

6          字符串是双引号括起来的一个字符队列。对于字符串的限制是,它必须在一行中书写完,不可书写在多行中,也不能包含回车符。Verilog将字符串当作一个单字节的ASCII字符队列。

      “Hello Verilog world”      //是一个字符串

7          标识符和关键字

    关键字是语言中预留的用于定义语言结构的特殊标识符。Verilog中关键字全部小写。

    标识符是程序代码中对象的名字,程序员使用标识符来访问对象。Verilog中标识符由字母数字字符、下划线和美元符号组成,区分大小写。其第一个字符必须是数字字符或下划线。

      reg value;                  //reg是关键字;value是标识符

8          转义标识符

    转义标识符以“/”开始,以空白符结束。Verilog将反斜线和空白符之间的字符逐个进行处理。所有的可打印字符均可包含在转义字符中,而反斜线和表示结束的空白符不作为标识符的一部分。

 

推荐阅读