欢迎来到天天文库
浏览记录
ID:1497532
大小:60.50 KB
页数:7页
时间:2017-11-12
《verilog_hdl语法基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Verilog HDL语法基础(1)Verilog的词法约定1 Verilog是大小写相关的,其中的关键字全部为小写。2 空白符由空格、制表符、和换行符组成。3 单行注释以“//”开始,verilog将忽略此处到行尾的内容。多行注释以“/*”开始,以“*/”结束。多行注释不允许嵌套4 操作符有三种:单目操作符、双目操作符和三目操作符。5 数字声明Verilog中有两种数字生命:指明位数的数字和不指明位数的数字指明位数的数字表示形式:’Size用来指明数字
2、位宽度,只能用十进制整数表示Baseformat包括十进制(’d或’D),二进制(’b或’B),八进制(‘o或’O),十六进制(‘h或’H)例如4’b1111//4位2进制数12’h3ac//12位16进制数不指明位数的数字:如果数字说明中没有指定基数,那么默认表示为十进制数。如果没有指定位宽,则默认的位宽度与仿真器和使用的计算机有关(最小为32位)。‘o21//32位八进制数X值和Z值:不确定值用X表示,高阻用Z值表示。在八进制数中代表3位,十六进制中代表4位。12’h12X//这是一个12位16进制数,其中低四位不确定负数:在表示位宽的数字前面增加一个减号来表示它是一个负数。-6’d3//
3、一个6位的用二进制补码形式存储的十进制数3,表示负数-6’sd3//一个6位的带符号算数运算的负数下划线符号和问号:除了第一个字符,下划线“_”可以出现在数字中的任何位置,它的作用只是提高可读性,在编译阶段会被忽略掉问号“?”是z的另一种表示,使用问号的目的在于增强casex和casez语句的可读性。在这两条语句中,“?”表示不必关心的情况。12’B1111_0011_1110//增强可读性4’b10??//相当于4’b10zz6 字符串是双引号括起来的一个字符队列。对于字符串的限制是,它必须在一行中书写完,不可书写在多行中,也不能包含回车符。Verilog将字符串当作一个单
4、字节的ASCII字符队列。“HelloVerilogworld”//是一个字符串7 标识符和关键字关键字是语言中预留的用于定义语言结构的特殊标识符。Verilog中关键字全部小写。标识符是程序代码中对象的名字,程序员使用标识符来访问对象。Verilog中标识符由字母数字字符、下划线和美元符号组成,区分大小写。其第一个字符必须是数字字符或下划线。regvalue;//reg是关键字;value是标识符8 转义标识符转义标识符以“”开始,以空白符结束。Verilog将反斜线和空白符之间的字符逐个进行处理。所有的可打印字符均可包含在转义字符中,而反斜线和表示结束
5、的空白符不作为标识符的一部分。Verilog语法基础(2)——系统函数系统任务Verilog为某些常用操作提供了标准的系统任务(也叫系统函数)这些操作包括屏幕显示、线网值动态监视、暂停和结束仿真等。所有的系统任务都具有$的形式。显示信息$display(p1,p2,p3,…,pn);$display会自动在字符串的结尾处插入一个换行符,因此如果参数列表为空,则display的效果是现实光标移动到下一行监视信息$monitor(p1,p2,p3,…,pm);系统函数$monitor对其参数列表中的变量值或者信号值进行不间断的监视,当其中任何一个发生变化的时候,显示所有参数的数值
6、。$monitor只需调用一次即可在整个仿真过程中生效。编译指令Verilog提供了一些编译指令供用户使用,其使用方式为’‘define用于定义verilog中的文本宏。类似于c中的#define.‘defineWORD_SIZE32‘include在编译期间将一个verilog源文件包含在另一个verilog文件中,类似于c中的#include结构。‘includeheader.vVerilog语法基础(2)——数据结构21 整数、实数和时间寄存器类型整数是一种通用的寄存器数据类型,用于对数量进行操作,使用integer进行声明。integercounte
7、r;//一般用途的变量用作计数器initialcounter=-1;//把-1存储到寄存器中实数:实常量和实数寄存器数据类型使用关键字real来声明,可以用十进制或科学计数法来表示。实数声明不能带有范围,其默认值为0.如果将一个实数赋予一个整数,那么实数将会被取为最接近的整数。realdelta;//定义一个名为delta的实型变量时间寄存器:仿真是按照仿真时间进行的,verilog使用一个特殊的
此文档下载收益归作者所有