- Verilog来源于C语言,后面会发现它的语法集和C语言几乎完全一样,但是设计方法和C语言完全不一样
1. 语言要素
1.1 空白符
空白符包括空格符(\b)、制表符(\t)、换行符和换页符。空白符使代码看起来结构清晰阅读起来更方便。在编译和综合时,空白符被忽略。
1.2 注释符
- 和C语言完全一样
(1)单行注释:单行注释以“//”开始,Verilog HDL 忽略从此处到行尾的内容。
(2)多行注释:多行注释以“/*”开始,到“*/”结束,Verilog HDL忽略其中的注释内容
- 多行注释不允许嵌套,但是单行注释可以嵌套在多行注释中
1.3 标识符
- 它可以是任意一组字母、数字、$符号和_(下划线)符号的组合。应该注意的是,标识符的字母区分大小写,并且第一个字符必须是字母或者下划线。
1.3.1 转义标识符
- Verilog HDL 规定了转义标识符(Escaped Identifier)。采用转义标识符可以在一条标识符中包含任何可打印的字符。转义标识符以“\”(反斜线)符号开头,以空白结尾(空白可以是一个空格、一个制表字符或换行符)。
1.4 关键字
- Verilog HDL语言内部已经使用的词称为关键字或保留字,它是 Verilog HDL语言内部的专用词,是事先定义好的确认符,用来组织语言结构。
- 用户不能随便使用这些关键字。需注意的是,所有关键字都是小写的
- 例如,ALWAYS 不是关键字,它只是标识符,与always(关键字)是不同的
1.5 数值
- Verilog有四种基本的逻辑数值状态
1.5.1 整数及其表示方式
-
整数的表示形式为如下:
+/-<size><baseformat><number>
(1)“+/-”是正数和负数标示
(2)size 指换算过后的二进制数的宽度
(3)“ ’ ”为基数格式表示的固有字符
(4)base_format 是其基数符号
(5)number是可以使用的数字字符集,形式上是相应进制格式下的一串数值 -
需要注意
(1)在位宽和字符之间以及进制和数值之间可以有空格,但数字之间不能有空格,下面的情况是允许的
(2)下面的情况是不允许的
1.5.2 实数及其表示方式
- 在硬件描述语言中,没有实数。想要表示一个带小数点的数字只能用定点(小数点位置固定)或者浮点的表示方法,把小数变成整数
- 电路设计中,没有传统意义的实数概念。**但是HDL为什么规定这个方式,是用在测试和仿真中间。**不能用在设计。
- 实数有两种表示方法:
(1)十进制表示法。采用十进制格式,小数点两边必须都有数字,否则为非法的表示形式。例如:3.0、4.54、0.2 等都是正确的,而5.是错误的。
(2)科学计数法。例如:564.2e2 的值为 56420.0,8.7E2 的值为870.0(e 不分大小写)3E-3的值为0.003。
1.5.3 字符串及其表示方式
- 字符串是指用双引号括起来的字符序列,它必须包含在同一行中,不能分行书写。若字符串用作 Verilog HDL表达式或赋值语句中的操作数则字符串被看做8位的ASCII值序列,即一个字符对应8