verilog学习日志(一)

verilog的基本语法(一)

一个模块包括两部分:一个是接口,另一部分是描述逻辑单元(定义输入如何影响输出)
每个verilog程序包括4个部分:端口定义,I/O说明,内部信号声明,功能定义

端口定义:模块的端口声明了模块的输入输出口 格式 module 模块名(口1,口2,口3,口4, ………);

模块内容:包括I/O说明,内部信号说明,功能定义

I/O说明格式

输入口: input 端口名1,端口名2,………,端口名i; //(共有i个输入口)
输出口: output 端口名1,端口名2,………,端口名j; //(共有j个输出口)
module module name(input part1,input part2…)

内部信号说明

在模块内用到的和与端口有关的wire和reg变量的声明
reg [width-1 : 0] R变量1,R变量2 。。。。;
wire [width-1 : 0] W变量1,W变量2 。。。。;

功能定义

模块中最重要的是逻辑功能定义部分
1)用“assign”声明语句
2)用实例元件
3)用“always”块
“always”块既可用于描述组合逻辑也可 描述时序逻辑。两个或更多的“always”模块也是同时执行的,
但是模块内部的语句是顺序执行的

基本数据类型:reg型、wire型、integer型、parameter型 其他的类型还有(large型、medium型、scalared型、time型、small型、tri型、trio型、tri1型、triand型、trior 型、trireg型、vectored型、wand型、wor型)

常量

一、数字(整数、x和z值、负数、下划线)

整数:1) 二进制整数(b或B)
2) 十进制整数(d或D)
3) 十六进制整数(h或H)
4) 八进制整数(o或O)
描述方式:1) <位宽><进制><数字>这是一种全面的描述方式
2) <进制><数字>在这种描述方式中,数字的位宽采用缺省位宽(这由具体的机器系统 决定,但至少32位)
3) <数字>在这种描述方式中,采用缺省进制十进制

x和z值:x代表不定值,z代表高阻值(一个x可以用来定义十六进制数的四位二进制数的状态, 八进制数的三位,二进制数的一位。z的表示方式同x类似)

负数

下划线:下划线可以用来分隔开数的表达以提高程序可读性 (负数和下划线都不能用在位宽和进制位之间)

二、参数型(经常用于定义延迟时间和变量位宽)

用Parameter来定义一个标识符代表常量,称为符号常量(标识符形式的常量)
说明格式:parameter 参数名1=表达式,参数名2=表达式, …, 参数名n=表达式;

变量

网络类型 (网络类型的变量不能存储值,而且它必须受到驱动器的驱动,如果没有驱动器链接到网络上,该变量就是高阻的即z)

一、wire型(表示单个门驱动或连续赋值语句驱动的网络型数据)

verilog程序模块输入输出信号类型缺失时自动定义为wire型
定义格式:wire [n-1:0] 数据名1,数据名2,…数据名i; //共有i条总线,每条总线内有n条线路 或 wire [n:1] 数据名1,数据名2,…数据名i;

二、tri型(表示多驱动驱动的网络型数据)------------wire和tri型都是连接器件单元的

三、reg型(寄存器数据类型)

reg型数据常用来表示用于“always”模块内的指定信号,常代表触发器。在always模块内被赋值的每个信号都必须定义称reg型
reg型数据的格式如下:
reg [n-1:0] 数据名1,数据名2,… 数据名i; (定义i个n位的reg型数据)或
reg [n:1] 数据名1,数据名2,… 数据名i;(定义i个n位的reg型数据)
注意:reg型只表示被定义的信号将用在“always”模块内

四、memory型------通过扩展reg型数据的地址范围生成

格式:reg [n-1:0] 存储器名[m-1:0];
reg [n-1:0] 存储器名[m:1];

运算符及其表达式

1)	算术运算符(+,-,×,/,%)
2)	赋值运算符(=,<=)
3)	关系运算符(>,<,>=,<=)
4)	逻辑运算符(&&,||,!)
5)	条件运算符(?:)
6)	位运算符(~,|,^,&,^~)
7)	移位运算符(<<,>>)
8)	拼接运算符({ })
9)	其它
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值