资源描述:
《verilog hdl语言基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二讲VerilogHDL语言基础内容:语言基本词法主要数据类型参数常用系统任务和函数常用编译指令表达式与运算符模块与端口语言基本词法Verilog中的基本词法约定与C语言类似。包含注释、分隔符、数字、字符串、标识符和关键字。Verilog是自由格式,即语句可以在一行内编写,也可跨行编写,用分号分隔。由空格(b)、制表符(t)和换行符组成空白符,在文本中起一个分隔符的作用,在编译时被忽略。例:initialbeginTop=3'b001;#2Top=3'b011;end和下面的程序一样:initialbegin//
2、单行注释,与C语言一致Top=3'b001;#2Top=3'b011/*多行注释,与C语言一致*/end标识符标识符必须以英语字母(a-z,A-Z)起头,或者用下横线符(_)起头。其中可以包含数字、$符和下横线符。标识符最长可以达到1023个字符。模块名、端口名和实例名都是标识符。Verilog语言是大小写敏感的,因此sel和SEL是两个不同的标识符。合法和非法标识符合法的:shift_reg_a_indexbus263非法的:34net//不能用数字开头a*b_net//不能含有非字母符号*n@263//不能含有非字
3、母符号@例:Count、COUNT、_R1_D2、R56_68、FIVE$特别的标识符特别标识符是用“”符开始,以空格符结束的标识符。它可以包含任何可打印的ASCII字符。“”符和空格并不算是标识符的一部分。特别标识符往往是在综合工具自动综合生成的网表中使用。例:~#@sel,bus+index,{A,B},Top.3inst.net1,//在层次模块中的标识名四种基本逻辑值0、低、伪、逻辑低、地、VSS、负插入01:XZ0bufbufbufbufif11、高、真、逻辑高、电源、VDD、正插入X、不确定:逻
4、辑冲突无法确定其逻辑值HiZ、高阻抗、三态、无驱动源常量VerilogHDL中有三类常量:1)整型2)实数型3)字符串型下划线符号(_)可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性。整数和实常数Verilog语言中常数可以是整数或实数:整数简单十进制格式表示为有符号数,如20、-10。整数基数表示方法:《位数》’《基数》《值》其中、《位数》:表明该数用二进制的几位来表示《基数》:可以是2(b、B),8(o、O),10(d、D)或16(h、H)进制。《数值》:可以是所选基数的任何合法的值,包括不
5、定值(x、X)和高阻值(z、Z)。例:64’hff01,8’b1101_0001,’h83a,4’b1xxX,4’d20等基数表示中未定义位数,长度由数值决定。数值超过位数,左边超出位截掉;数值不足位数,左边补0、x或Z。实常数可以用十进制表示也可以用科学浮点数表示,例:32e-4(表示0.0032),4.1E3(表示4100),10.567,-100.00等字符串字符串常常用于表示需要显示的信息。与C语言相似,用8位ASCII值表示的字符可看作是无符号整数。因此字符串是8位ASCII值的序列。字符串是双引号内的字符序
6、列。字符串不能分成多行书写。例:“INTERNALERROR”,”REACHED->HERE”。在字符串中可以用各种格式控制符,例:换行符t制表符\字符本身"字符"206八进制数206对应的字符主要数据类型Verilog有二种主要的数据类型:线网(Net)类型表示器件之间的物理连接,称为线网类型信号。寄存器(Register)类型表示抽象的数据存储单元,称为寄存器类型信号或变量。注意寄存器类型并不一定是逻辑电路中的寄存器。线网(Net)类型由模块或门驱动的连线。驱动端信号的改变会立刻传递到输出的连线上。例
7、:右图上,selb的改变,会自动地立刻影响或门的输出。如果没有驱动元件连接到线网,线网的缺省值为zabslselbselansloutnet线网类型信号的主要种类在为不同工艺的基本元件建立库模型的时候,常常需要用不同的连接类型来与之对应,使其行为与实际器件一致。常见的有以下几种。类型功能wire,tri对应于标准的互连线(缺省)supply1,supply2对应于电源线或接地线wor,trior对应于有多个驱动源的线或逻辑连接wand,triand对应于有多个驱动源的线与逻辑连接trireg对应于有电容存在能暂时存储电
8、平的连接tri1,tri0对应于需要上拉或下拉的连接线网类型说明语法为:net_kind[msb:lsb]net1,net2,...,netN;例:wirestart,do;//2个1位的连线信号wand[2:0]addr;//一个3位的线与信号标量和向量线网1位线网称标量线网,多位线网称向量线网。缺省说明为标量线网。如果多个驱动