以下为《Verilog HDL 语言基础语法发送》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
Verilog HDL 语言基础语法
模块的结构
(1)Verilog的基本设计单元是“模块”(block)。
(2)一个模块由两部分组成,一部分描述接口,另一部分描述逻辑功能。
(3)每个Verilog程序包括4个主要的部分:
①端口描述 ② IO说明 ③内部信号定义 ④功能描述
结构语句
initial语句和always语句
initial语句
在模块中只执行一次。
常用于测试文件的编写,用来产生仿真测试信号,或用于对存储量变量赋初值。
always语句
① always语句一直不断重复活动。
② 但是只有和一定的时间控制结合在一起才有作用。
③ always的时间控制可以是边沿触发,也可以是电平触发。
④ 多个信号用or连接
⑤ always后连接的多个事件名或信号名组成的列表称为“敏感列表”
边沿触发的always块常用于描述时序逻辑。
电平触发的always块常用于描述组合逻辑。
always@( * )表示( * )对后面语句块中所以输入变量都是敏感的。
1.标识符
1.1 标识符的定义:用于定义常数、变量、信号、端口、子模块或参数名称。(Verilog 语言区分大小写)
1.2标识符的使用:标识符使用大写和小写都可以,标识符可以是字母、数字、$(美元符号)和下划线的任意组合(标识符的第一个字符必须是字母或者下划线)。
2.逻辑值
在二进制计数中,单比特逻辑值只有“0”和“1”两种状态,在 Verilog 语言中,为了对电路了进行精确的建模又增加了两种逻辑状态(“X”和“Z”)。
逻辑0:表示低电平,表示GND(接地)。
逻辑1:表示高某某,表示VCC(接电源)。
逻辑X:表示未知,有可能是高某某,也有可能是低电平。
逻辑Z:表示高某某,没有激励信号,悬空状态。
3.常量
3.1. 常量是 Verilog 中不变的数值,Verilog 中的常量有三种类型
(1) 整数型;
(2) 实数型;
(3) 字符串型。
3.2. 用户可以使用简单的十进制表示一个整数型常量例如:
(1) 直接写 16 表示位某某 32bit 的十进制数 16;
3.3整数型常量也可以采用基数表示法表示(推荐),例如:
(1) 8’hab 表示 8bit 的十六进制数,换算成二进制是 1010_1011;
(2) 8’d171 表示 8bit 的十进制数,换算成二进制是 1010_1011;
(3) 8’o253 表示 8bit 的八进制数,换算成二进制是 1010_1011;
(4) 8’b1010_1011 表示 8bit 的二进制数,二进制就是 1010_1011。
上述的四种表示方式不同,但都表示的都是相同的值,数值经过运算后的结果也都是相同的。
3.4基数表示法的基本格式
(1)标准格式为: [换算为二进制后位宽的总长度][’][数值进制符号][与数值进制符号对应的数值]。例如:1‘b1;
(2)数值进制符号分别有:
h:表示十六进制。
o:表示八进制。
b:表示二进制。
d:表示十进制。
(3) 值得注意的是:
① [换算为二进制后位宽的总长度] > [与数值进制符号对应的数值]的实际位数时,则自动在[与数值进制符号对应的数值]的左边补足 0 (低位补0)。
② [换算为二进制后位宽的总长度] < [与数值进制符号对应的数值]的实际位数时,自动截断[与数值进制符号对应的数值]左边超出的位数 (只取高位)。
(4) 如果将数字写成“’haa”,那么这个十六进制数的[换算为二进制后位宽的总长度]就取决于[与数值进制符号对应的数值]的长度。
(5) 在基数 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 、以关键词 default 开头的那个分支项称为“default”分支项,它是可以缺省的。
case 语句的执行过程:
(1) 当“控制表达式”的取值等于“分支项表达式 1”时,执行第一个分支项所包含的语句块 1;
(2) 当“控制表达式”的取值等于“分支项表达式 2”时,执行第二个分支项所包含的语句块 2. …………;
(3) 当“控制表达式”的取值等于“分支项表达式 n”时,执行第 N 个分支项所包含的语句块 n;
(4) 在执行了某一分支项内的语句后,跳出 case 语句结构,终止 case 语句的执行。case 语句中各个“分支项表达式”的取值必须是互不相同的,否则就会出现矛盾现象。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《Verilog HDL 语言基础语法发送》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。