- 8
- 0
- 约8.06千字
- 约 31页
- 2017-11-29 发布于湖北
- 举报
第二讲_Verilog_HDL语言基础
* 第二讲 Verilog HDL语言基础 西安邮电学院通信工程系 第 二讲 Verilog HDL语言基础 内容: 语言基本词法 主要数据类型 参数 常用系统任务和函数 常用编译指令 语言基本词法 Verilog中的基本词法约定与C语言类似。包含注释、分隔符、数字、字符串、标识符和关键字。 Verilog是自由格式,即语句可以在一行内编写,也可跨行编写,用分号分隔。由空格(\b)、制表符(\t)和换行符(\n)组成空白符,在文本中起一个分隔符的作用,在编译时被忽略。例: initial begin Top = 3b001; #2 Top = 3b011; end 和下面的程序一样: initial //结构说明语句 begin // 单行注释,与C 语言一致 Top = 3b001; #2 Top = 3b011 /* 多行注释, 与C 语言一致 */ end 标识符 标识符必须以英语字母(a-z, A-Z)起头,或者用下横线符( _ )起头。其中可以包含数字、$符和下横线符。 标识符最长可以达到1023个字符。 模块名、端口名和实例名都是标识符。 Verilog语言是大小写敏感的,因此sel 和 SEL 是两个不同的标识符。 合法和非法标识符 合法的: shift_reg_a _index bus263 非法的: 34net //不能用数字开头 a*b_net //不能含有非字母符号* n@263 //不能含有非字母符号@ 例:C o u n t、COUNT 、_ R 1 _ D 2、R 5 6 _ 6 8、 F I V E $ 特别的标识符 特别标识符是用 “\” 符开始,以空格符结束的标识符。它可以包含任何可打印的ASCII字符。 “\”符和空格并不算是标识符的一部分。 特别标识符往往是在综合工具自动综合生成的网表中使用。 例: \~#@sel , \bus+index , \{A,B} , Top.\3inst .net1 , //在层次模块中的标识名 四种基本逻辑值 0、低、伪、逻辑低、地、VSS、负插入 0 1: X Z 0 buf buf buf bufif1 1、高、真、逻辑高、电源、VDD、正插入 X、不确定:逻辑冲突无法确定其逻辑值 HiZ、高阻抗、三态、无驱动源 常量 Verilog HDL中有三类常量: 1) 整型 2) 实数型 3) 字符串型 下划线符号(_)可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性。 如 8’b0010_1101 整数和实常数 Verilog 语言中常数可以是整数或实数: 整数简单十进制格式表示为有符号数,如 20、-10。 整数基数表示方法: 《位数》’《基数》《值》 其中、《位数》: 表明该数用二进制的几位来表示 《基数》: 可以是2(b、B),8(o、O),10(d、D)或 16(h、H)进制。 《数值》: 可以是所选基数的任何合法的值,包括 不定值( x 、X)和高阻值( z、Z)。 例:64’hff01 ,8’b1101_0001 ,’h83a , 4’b1xxX,4’d20 ,123等 在数字说明中如果没有指定基数,则默认为十进制数;若没有指定位数,则默认的位数与仿真器和使用的计算机有关(最小为32位)。 数值超过位数,左边超出位截掉;数值不足位数,左边补0、x或z。 实常数可以用十进制表示也可以用科学浮点数表示,例:32e-4 (表示0.0032), 4.1E3( 表示 4100),10.567, -100.00 等 字符串 字符串常常用于表示需要显示的信息。与 C语言相似,用8位ASCII值表示的字符可看作是无符号整数。因此字符串是8位ASCII值的序列。 字符串是双引号内的字符序列。字符串不能分成多行书写。例:“a/b” “hello verilog” 在字符串中可以用各种格式控制符,例: \n 换行符 \t
原创力文档

文档评论(0)