VerilogHDL期末复习

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文件扩展名为v,大小写敏感;所有关键字必须小写;

标识符(区分大小写)

合法字符:26个大小写英文字母;数字0-9;下划线;$等;

命名规则:以英文字母或下划线开头;不能出现两条(或以上)连续的下划线;不能和关键字重复。

数据对象:

1、常数:整数、实数和字符串。整数可综合,实数和字符串不可综合。

(1)整数:<位宽>’<进制符号><数字>

位宽:数字对应的二进制数的位数;

进制符号包括:b或B(二进制),d或D(十进制),o或O(八进制),h或H(十六进制)。

数字中间可用下划线分隔,提高可读性。

十进制数的位宽和进制符号可省略。

若只标进制,未注明位宽,则位宽为(单个位的该进制数对应二进制位宽*该进制数的位数)。

若指明的位宽比数字需要的位宽小,则从左边(高位)截去多余位。

除十进制外,数字中可用x或X(未知),z或Z(高

阻)。位数由所在数字格式决定。如'hfx等价于'b1111xxxx

整数可在其前面加负号,负数的实际值为其对应的二进制补码。

(2)实数

(3)字符串

2、变量

(1)网络型(net type)

net型变量的输出值始终根据输入变化而变化,一般用来定义硬件电路中的各种连线。

wire型变量是net型变量中最常用的一种,其取值可以是0、1、x或z。

wire、tri:连线类型,功能完全相同;tri名称仅为增加程序可读性,表示综合后电路有三态功能。

wor、trior:具有线或特性的连线,功能相同。

wand、triand:具有线与特性的连线,功能相同。

tri1、tri0:分别为上拉电阻和下拉电阻。

supply1、supply0:分别为电源(逻辑1)和地(逻辑0)。

(2)寄存器型(register type)

reg:常用的寄存器型变量。(可综合)

integer:32位带符号整数型变量。(不同资料中可

综合性表述不同)

real:64位带符号实数型变量。(不可综合,表示实数寄存器)

time:无符号时间型变量。(不可综合,模拟时间的存储与处理)

wire与reg区别:reg需要被明确赋值,且被重新赋值前一直保持原值。wire在assign语句和元件例化语句中赋值;reg放在always和initial等语句中,通过过程中的赋值语句进行赋值。

操作符:

(1)、算术操作符:+(加),-(减),*(乘),/(除),%(求余),**(乘方)。

(2)、逻辑操作符:&&(逻辑与),||(逻辑或),!(逻辑非)。

操作数是位矢量时,无论有多少个位,逻辑操作符运算结果只有1位,为0或1。逻辑操作符先分别对两个操作数中位进行“按位或”操作,再对两操作数的“按位或”结果进行指定的逻辑操作

(3)、位运算操作符:~(按位取反),&(按位与),|(按位或),^(按位异或),^~或~^(按位同或)。

进行位运算时,两个操作数位宽不同时,自动按右端对齐,位数少的在高位用0补齐。

数据均只有一个位时,位运算与逻辑操作符运算结果相同,逻辑操作运算可用位运算替代。

(4)、缩减操作符:&(与),~&(与非),|(或),~|(或非),^(异或),^~或~^(同或)

缩减运算操作数只有一个,运算法则与逻辑运算相同,无论操作数有多少个位,运算结果只有一位,为0或1,相当于一个多输入端的逻辑门。

(5)、关系操作符:<(小于),<=(小于等于),>(大于),>=(大于等于)。

关系操作运算结果是1位逻辑值。关系是真,结果为1;关系是假,结果为0;如果某个操作数的值不确定,则结果不确定,为未知x或X。

(6)、等值操作符:= =(等于),!=(不等于),= = =(全等于),!= =(不全等于)。

等值操作运算结果是1位逻辑值。关系是真,结果为1;关系是假,结果为0。用等于(= =)操作符时,两个操作数的二进制位必须逐位相等,比较结果才为1,否则为0;当两操作数中某些位是未知或高阻时,对应位比较结果为不确定值,最终比较结果为0。用

全等于(= = =)操作符时,将未知和高阻都当成确定的值进行比较,对应位比较结果为确定值。

(7)、转移操作符:>>(右移)、<<(左移)。

操作数>>n //右移n位,左边用0填补;

操作数<

(8)、条件操作符:?

操作数=条件表达式?表达式1:表达式2;

条件操作符有3个操作数,当条件表达式为真时,操作数=表达式1;当条件表达式为假时,操作数=表达式2。

(9)、并接操作符:{}

并接操作符可以将多个操作数按二进制位拼接起来,构成一个新的操作数,多个操作数间用逗号分隔。

模块语句:

module 模块名(模块端口列表);

模块端口和模块功能描述

end module

模块端口列表须列出所有端口,用逗号分隔。

端口定义:(三种模式)

input 输入端口名表(逗号分隔);

output 输出端口名表(逗号分隔);

inout 双向端口名表(逗号分隔);

总线型端口:如input [msb:lsb] 端口名;

基本逻辑门赋值语句

格式为:基本逻辑门关键字(门输出,门输入1,门输入2,……,门输入n);

基本逻辑门关键字是Verilog HDL预定义的逻辑门,包括and、or、not、xor、nand、nor等。

例:and (y,a,b,c,d);与assign y=a&b&c&d;等效。

连续赋值语句

连续赋值语句用assign引导,赋值符为“=”,“=”两边的变量都是wire型变量,输出跟随输入变化,反映了信号传送的连续性。

格式为:assign 目标变量=表达式;

过程赋值语句(包括阻塞式赋值和非阻塞式赋值)

过程赋值语句出现在initial和always语句中,赋值符为“=”或“<=”

阻塞式赋值:目标变量=表达式;按从上到下的顺序一

相关文档
最新文档