资源描述:
《第04讲 verilog-hdl语法——第2部分 语法要点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第04讲Verilog-HDL语法Verilog-HDL语法要点学习目标:1、理解Verilog-HDL语言的一些重要规定2、学会认识一些有关的重要语言符号3、掌握Verilog-HDL中如何规定时间单位Verilog-HDL与C的主要不同点Verilog-HDL有许多语法规则与C语言一致。但与C语言有根本的区别:-并行性-块的含义:initial块和always块(行为级描述方式)-两种赋值语句:阻塞赋值“=”非阻塞赋值“<=”空格和注释Verilog-HDL是一种格式很自由的语言。空格在文本中起一个分离符的作用,别的没有其他用处。单行注释符用//*********与C语言一致多行
2、注释符用/*-------------------------*/与C语言一致空格和注释moduleMUX2_1(out,a,b,sel);//Portdeclarations单行注释,到行末结束outputout;inputsel,//controlinputb,a;//datainputs/*Thenetlistlogicselectsinput”a”when多行注释,在/**/内sel=0anditselects”b”whensel=1.*/not(sel_,sel);and(a1,a,sel_),(b1,b,sel);//Whatdoesthislinedo?or(out,a1,b1
3、);endmodule整数常量和实数常量Verilog-HDL中,常量(literals)可是整数也可以是实数。整数的大小可以定义,也可以不定义。整数表示为:[size]’[base]valuesize:大小,由十进制数表示的位数(bit)表示。缺省为32位base:基数,可为2(b)、8(o)、10(d)、16(h)进制。缺省为10进制value:是所选数基内任意有效数字,包括不定值X和高阻态Z。实数常量可以用十进制表示法或科学表示法表示。12unsizeddecimal(zero-extendedto32bits)'H83aunsizedhexadecimal(zero-extend
4、edto32bits)8'b1100_00018-bitbinary64'hff0164-bithexadecimal(zero-extendedto64bits)9'O179-bitoctal32'bz01xZ-extendedto32bits3’b1010_11013-bitnumber,truncatedto3’b1016.3decimalnotation32e-4scientificnotationfor0.00324.1E3scientificnotationfor4100整数常量和实数常量整数常量–数字中(_)忽略,便于查看。–没有定义大小(size)整数缺省为32位。–缺省基
5、数为十进制。–基数(base)和数字(16进制)中的字母无大小写之分。–当数值value大于指定的大小时,截去高位。如2’b1101表示的是2’b01。实数常量–实数可用科学表示法或十进制表示。–科学表示法表示方式:<尾数><指数>,表示:尾数×10指数。字符串(string)Verilog-HDL中,字符串大多用于表示命令内需要显示的信息。用“”括起来的一行字符串,与C语言一致。字符串中可以使用一些C语言转义(escape)符,如:换新一行用“”字符。可以使用一些C语言格式符(如%b)在仿真时产生格式化输出。如:“Thisisanormalstring”“Thisst
6、ringhasattabandendswithanewline”“Thisstringformatsavalue:val=%b”字符串(string)格式符%h%o%d%b%c%s%t%v%mhexoctdecbinACSIIstringtimestrengthmodule转义符t\”%%<1-3digitoctalnumber>tab换行反斜杠双引号%ASCIIrepresentationofabove“206”——表示“八进制数206作为ASCII码值,所对应的字符”标识符(identifiers)标识符是用户在描述时给Verilog-HDL对象起的名字。标识符必
7、须以字母(a-z,A-Z)或(_)开头,后面可以是字母、数字、($)或(_)。最长可以是1023个字符。标识符区分大小写,sel和SEL是不同的标识符。模块、端口和实例的名字都是标识符。moduleMUX2_1(out,a,b,sel);outputout;inputa,b,sel;Verilog-HDL标识符notnot1(sel_,sel);andand1(a1,a,sel_);andand2(b1