1 / 34
文档名称:

硬件描述语言.ppt

格式:ppt   大小:3,232KB   页数:34页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

硬件描述语言.ppt

上传人:文库新人 2021/11/23 文件大小:3.16 MB

下载得到文件列表

硬件描述语言.ppt

相关文档

文档介绍

文档介绍:硬件描述语言
*
GUET School of Information & Communications
*
第一页,课件共34页
第二讲 Verilog语法
Verilog模块module
Verilog语法要素
Verilog数据类型及逻辑系统
第二页,课件共34页
模块module
:是verilog设计中的基本程序结构,定义设计的输入/出端口,I/O接口的类型和数量.
module 模块名 ( 端口列 表 );
端口声明,参数声明
wire,reg和其它类型
的变量声明
数据流语句
(assign)
低层模块实例
always和initial块,所有
行为语句都在块内
任务和函数
endmodule
必须出现
可选
第三页,课件共34页
module能够表示:
物理块,如IC或ASIC单元
逻辑块,如一个CPU设计的ALU部分
整个系统
每一个模块的描述从关键词module开始,有一个名称(如SN74LS74,DFF,ALU等等),由关键词endmodule结束。
module内部的5个部分:
变量声明 数据流语句 低层模块实例 行为描述块 任务和函数
每一部分在module内部出现的顺序是任意的。
一个verilog源文件中可以有多个模块,且对排列顺序不做要求。
第四页,课件共34页
(Terminal)
端口是模块与外界环境交互的接口.例如IC芯片的输入、输出引脚就是它的端口。对于外部环境来讲,模块内部是不可见的,对模块的调用(实例引用)只能通过其端口进行。这种特点为设计者提供了很大的灵活性:只要接口保持不变,模块内部的修改并不会影响到外部环境.我们也常常将端口称为终端(Terminal)。
模块端口等价于芯片的管脚(pin)
模块通过端口与外部通信
第五页,课件共34页
端口列表和端口声明
端口在模块名字后的括号中列出
端口可以说明为input, output及inout
端口等价于硬件的引脚(pin)
input  输入端口
output 输出端口
inout 双向端口
端口声明
第六页,课件共34页
module adder ( cout,sum,a,b,cin );
input [2:0] a,b;
input cin;
output cout;
output [2:0] sum;
assign {cout,sum}=a+b+cin;
endmodule
例设计三位全加器
这个例子描述了一个三位的加法器。从例子中可以看出整个Verilog HDL程序是嵌套在module和endmodule声明语句里的,只出现了一个assign语句。
adder
sum[2:0]
a[2:0]
b[2:0]
cin
cout
模块名
端口列表
端口声明
数据流语句
第七页,课件共34页
例SR触发器模块
//SR 触发器
module SR_FF (Q, Q_n,S,R);
output Q, Q_n; //端口声明
input S,R;
nand n1(Q, S,Q_n);
nand n2(Q_n,R,Q);
endmodule
模块中的5个部分并没全部出现,只出现在低层次模块实例化
nand为verilog中的与非门门级原语部件
第八页,课件共34页
D触发器模块
//D 触发器
module D_FF (d, clk,clr,q,qb);
output q, qb;
input d,clk,clr;
reg q, qb;//输出端口q, qb值保存
always @(posedge clk)
begin
if (clr)
q=1’b0;
else
q=d;
end
not (qb,q);
endmodule
该模块内包括always行为块语句
always块行为描述语句
第九页,课件共34页
高层次模块对低层次模块的调用称为模块实例化。
可以将模块的实例通过端口连接起来构成一个大的系统或元件。
实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。
实例中端口的次序与模块定义的次序相同。
模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。
(module instances)
第十页,课件共34页