Verilog HDL课件-改
- 格式:ppt
- 大小:1.93 MB
- 文档页数:285


Verilog HDL基本程序结构
用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型,也称为模块,是Verilog的基本描述单位。模块描述某个设计的功能或结构以及与其他模块通信的外部接口,一般来说一个文件就是一个模块,但并不绝对如此。模块是并行运行的,通常需要一个高层模块通过调用其他模块的实例来定义一个封闭的系统,包括测试数据和硬件描述。一个模块的基本架构如下:
module module_name (port_list)
//声明各种变量、信号
reg //寄存器
wire//线网
parameter//参数
input//输入信号
output/输出信号
inout//输入输出信号
function//函数
task//任务
……
//程序代码
initial assignment
always assignment
module assignment
gate assignment
UDP assignment
continous assignment
endmodule
说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句用于定义设计的功能和结构。说明部分可以分散于模块的任何地方,但是变量、寄存器、线网和参数等的说明必须在使用前出现。一般的模块结构如下:
module ()
endmodule
其中,用来指定数据对象为寄存器型、存储器型、线型以及过程块。可以是initial结构、always结构、连续赋值或模块实例。
下面给出一个简单的Verilog模块,实现了一个二选一选择器。
Verilog 讲义(二)
1)续Verilog 基础
2)Verilog 形为描述
3.4 运算符
九类运算符 分类 包含运算符
算术运算符 + - * / %
位运算符 ~ & | ^ ^~or~^
缩位运算符 & ~& | ~| ^ ^~or~^
逻辑运算符 ! && ||
关系运算符 > < <= >=
相等与全等运算符 == != === !==
逻辑移位运算符 << >>
连接运算符 {}
条件运算符 ? :
根据操作数的不同,又可分为三类:
1) 单目运算符 只有一个操作数,且运算符位于操作数的左边
如:~clk &a ~& 缩位运算符
wire [7:0] a
parity=^a (奇校验)
2) 双目运算符
a+b a%b {a,b,c}
3) 三目运算符
out=(sel)?a:b;
运算符的优先级
参:P44
3.4.1 算术运算符
1) 减法 亦可用作单目运算符,取补运算
2) 除法运算符:整型类数据小数部分被截去: integer a=7/2=3
3) % 取余运算 7%2=1
3.4.2 位运算符
1)~a 按位取反
2)a&b 按位相与 若a,b 位数不同,短的高位补0,(x者补x)
3)^ ^~ 双目
3.4.3 缩位运算符
单目运算符,按位进行逻辑运算,结果产生一位的逻辑值。 A=4’b1001
&a ~&a |a ~|a ^a ~^a
0 1 1 0 1 0
3.4.3 逻辑运算符
a&&b
结果为一位的逻辑值
若操作数为多位,只要有一位为1,整个操作数看作逻辑1;若有不定态,结果亦为不定态。
3.4.5关系运算符
结果为一位的逻辑值。
3.4.6 相等与全等运算符
结果为一位逻辑值
相等:比较每一位,所有相等,关系满足,若有不定态或高阻态,不定态结果。
全等:与相等比较过程相同,亦将不定态及高阻态作为逻辑状态比较。
3.4.7 逻辑移位运算符
<< >> 以0补位。常用作二进制乘除操作。
1EDAEDA应用技术应用技术
3.1 引言
3.2 Verilog HDL基本结构
3.3 数据类型及常量、变量
34运算符及表达式第3章硬件描述语言Verilog HDL
3.8 循环语句
3.9 结构说明语句
3.10 编译预处理语句
3.11 语句的顺序执行与并行执行
3.12 不同抽象级别的Verilog HDL模型
3.13 设计技巧3.4 运算符及表达式
3.5 语句
3.6 赋值语句和块语句
3.7 条件语句
3-2
3.1 引言
什么是VilHDL内容概要
一、什么是Verilog HDL
二、Verilog HDL的发展历史
三、不同层次的Verilog HDL抽象
四、Verilog HDL的特点
3-33.1 引言
一、什么是VerilogHDL
VerilogHDL是一种用于数字逻辑电路设计的硬件描述
语言(HradwareDescriptionLanguage),可以用来进
行数字电路的仿真验证、时序分析、逻辑综合。
¾用VerilogHDL描述的电路设计就是该电路的Verilog
HDL模型。
¾VerilogHDL既是一种行为描述语言也是一种结构描述
语言。
既可以用电路的功能描述,也可以用元器件及其之间的
连接来建立VerilogHDL模型。
3-4
3.1 引言
二、VerilogHDL的发展历史
1983年,由GDA(GateWayDesignAutomation)公
司的PhilMoorby首创;
1989年,Cadence公司收购了GDA公司;
1990年,Cadence公司公开发表VerilogHDL;
1995年,IEEE制定并公开发表VerilogHDL1364-
1995标准;
1999年,模拟和数字电路都适用的Verilog标准公开
发表
3-53.1 引言
三、不同层次的VerilogHDL抽象
VerilogHDL模型可以是实际电路的不同级别的抽象。
抽象级别可分为五级:
¾系统级(system level): 用高级语言结构(如case语句)
1.
a.门级建模
`timescale 1ns/1ns
module DEC2X4 (A, B, Enable , Z) ;
input A, B, Enable;
output [3:0] Z ;
wire Abar, Bbar;
not # (1,2)
V0 (Abar , A) ,
V1 (Bbar, B) ;
nand # (4,3)
N0 (Z[3], Enable, A,B) ,
N1 (Z[0], Enable, Abar, Bbar) ,
N2 (Z[1], Enable, Abar, B) ,
N3 (Z[2], Enable, A, Bbar) ;
endmodule
b.连续赋值语句
`timescale 1ns/1ns
module Decoder2x4(A,B,EN,Z);
input A,B,EN;
output [0:3] Z;
wire Abar,Bbar;
assign Abar=~A;
assign Bbar=~B;
assign Z[0]=~(Abar & Bbar & EN);
assign Z[1]=~(Abar & B & EN);
assign Z[2]=~(A & Bbar & EN);
assign Z[3]=~(A & B & EN);
endmodule
注意:在同一模块中,实例名不能与线网名相同。
not # (1 , 2) Abar(Abar , A) ×
2.
module Parity_9_Bit(D,Even, Odd);
input [8:0] D;
output Even, Odd;
xor
XE0(E0,D[0],D[1]),
XE1(E1,D[2],D[3]),
XE2(E2,D[4],D[5]),