【Verilog】Verilog基础语法

Verilog基础语法

逻辑值

​  逻辑0: 表示低电平,对应电路GND

​  逻辑1:表示高电平,对应电路VCC

​  逻辑X:表示未知,输入端存在多种输入情况,可能是高电平,也可能是低电平

​  逻辑Z: 表示高组态,外部没有激励信号,是一个悬空状态

数字进制格式

 一般常用二进制(b)、八进制(o)、十进制(d)和十六进制(h)

 二进制:4’b0101->4位宽的二进制数值 0101

 十进制:4’d2 ->4位宽十进制数值2(表示二进制0101)

 十六进制:4’ha ->表示4位宽十六进制数值a(二进制1010)

 注:数据实际存储用二进制,位宽表示储存时二进制占用宽度。若不指定位宽,则默认32位位宽。若不指定进制,则默认位d。

默认 32’d 32位十进制数值

 16’b1001_1010_1010_1001 = 16’hh9AA9

标识符

 用于定义模块名、端口名、信号名等。

 标识符可以是字母、数字、$符号和_符号组成;

 但标识符第一个字符必须时字母或者下划线;

 标识符区分大小写;

数据类型

 三大数据类型:寄存器、线网、参数数据类型

寄存器类型(reg):

​  表示抽象数据存储单元。reg默认初始值为X(不确定值)

	reg[31:0] delay_cnt; //定义32位寄存器
	reg			key_reg;

​  reg类型只能在always和inital语句中被赋值。

​  若描述语句是时序逻辑,即always语句中带有时钟信号,则该寄存器变量对应为触发器

​  若描述语句是组合逻辑,即always语句不带有时钟信号,则该寄存器变量对应为硬件连线

线网类型

​  表示结构实体(例如门)之间的物理连线。

​  不能存储值,值是由驱动他的元件所决定的。

​  驱动线网类型变量的元件有门、连续赋值语句、assign等

​  若没有驱动元件连接到线网上,这线网默认为高阻态Z

​  线网数据类型包括wire和tri,常用wire

	wire key_flag;
参数类型

 参数实际就是一个常量,类似与c语言的define,在Verilog中用parameter定义常量。

 常用于定义状态机状态,数据位宽和延迟大小等。

	parameter H_SYNC = 11'd41;
运算符
算术运算符 + - * / % (除法只能实现整除)
关系运算符 > < <= >= == !=
逻辑运算符 ! && ||
条件运算符 ?: a?b:c (a为真输出b,反之为c)
位运算符 ~ & | ^
移位运算符 << >> (用0填补空位,左移增加位宽,右移位宽不变)
	4'b1001 << 2 = 6'b100100;
	4'b1001 >> 1 = 4'b0100;
拼接运算符 {} {a,b}
	c = {a, b[3,0]};
	//假设a为8位。
	//则c位12位

注释 // /* */
  • 9
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值