Verilog的基本语法

1.标识符

标识符:模块名、变量名、常量名

Verilog是大小写敏感的(a和A是不同的)
标识符:任意一组字母、数字、$、_的组合
标识符的第一个字母必须是字母或下划线
书写标识符时应该简洁明了清晰,最好能够体现含义,如
clk_50M:表示50兆赫兹时钟

cpu_addr:表示CPU的地址线

2.变量

变量:使用前进行声明

线网变量net
寄存器变量register
3种数据类型:

reg型:寄存器数据类型。(在过程块中赋值使用)

寄存器表示一个抽象的数据存储单元,通过赋值语句可以改变寄存器储存的值,寄存器数据 类型的关键字是 reg,reg 类型数据的默认初始值为不定值x

reg [7:0] data //表示定义了一个8位的寄存器类型的数据data.

reg cnt_reg //表示定义了一个一位的寄存器类型的数据cnt_reg

reg [7:0] data [255:0] //定义了256个8位的寄存器data

reg类型的数据只能在 always 语句和 initial 语句中被赋值。

wire型:线网型数据类型。(默认的数据类型)

线网类型的变量不能储存值,它的值是由驱动它的元件所决定的。

wire型只能在assign语句中被赋值。

tri型:线网型数据类型。

3.常量

Verilog中常量和变量采用四值逻辑

逻辑0:表示低电平
逻辑1:表示高电平
逻辑X:表示当前值是不确定的,可能是0,1
逻辑Z:表示未被驱动的高阻值,常见于信号(input, reg)没有驱动时的逻辑结果。例如一个 pad 的 input 呈现高阻状态时,其逻辑值和上下拉的状态有关系。上拉则逻辑值为 1,下拉则为 0 。
常量的表示方式:

采用定长数表示:长度’+数值格式+数字

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

二进制表示如下:4’b0101 表示4位二进制数字0101、8位:8’b1110_0001(下划线可放在数字的任意位置,增加可读性)
十进制表示如下:4’d2 表示4位十进制数字2(二进制0010)、8位:8’d158
十六进制表示如下:4’ha 表示4位十六进制数字a(二进制1010)
负数表示

通常在表示位宽的数字前面加一个减号来表示负数。例如:-6’d15 、-15

-15 在 5 位二进制中的形式为 5’b10001, 在 6 位二进制中的形式为 6’b11_0001。

4.运算符

算术运算符:+ (加) 、 – (减) 、 * (乘) 、 / (除) 、 %(模)
关系运算符:>(大于) 、

{110,data[7:0]}:将110和data[7:0]拼接成一个新的数据,最终是一个11位数据
————————————————
版权声明:本文为CSDN博主「lzl_0408」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a45667/article/details/121663065

Original: https://www.cnblogs.com/wanghuaijun/p/16380255.html
Author: 专注it
Title: Verilog的基本语法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/553816/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球