基于HDL实现的基本门电路设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog HDL模块的一般结构
模块声明 module 模块名(port1,port2,port3…portn); 端口声明语句块 逻辑功能描述语句块 endmodule
1、模块声明
模块声明包括模块名字和模块输入\输出列表, 格式如下:
module 模块(port1,port2,poቤተ መጻሕፍቲ ባይዱt3…portn); 如: module nand2_ex1(a,b,f); module mux2_1ex1(s,a,b,f);
标识符可以是任意一组字母、数字以及符号“$”和 下画线“_”的组合,但必须是字母和下画线开头。
标识符是区分大小写的。 如:reg_out,count,p0,f,F,ABC$,
哪些标识符 是合法的?
_M1_D1,8_data,*out,
input,
课堂练习
用三种方法描述2输入的或非门电路的 Verilog代码
2、端口声明语句
input 端口名1,端口名2……;//声明输入端口
如:input a,b;
//a、b为输入端口
output 端口名1,端口名2……;//声明输出端口
如:ouput f;
//f为输出端口
inout 端口名1,端口名2……;//声明双向端口
如:inout w_r;
//w_r为双向端口
三、Verilog电路模块的一般结构
用Verilog HDL描述的电路设计称为模块,也就是该 电路的Verilog HDL模型。
模块描述某个电路的功能或结构以及与其他模块通 信的外部接口,是Verilog 的基本描述单位。
用Verilog语言编写代码来设计一个电路的过程也就 称为对电路建模的过程。
File →OK b、输入程序代码 c、 File→ Save As→ nand2_ex1.v
程序代码
//2输入与非门电路 //nand2_ex1 module nand2_ex1( a, b, f): input a,b; ouput f; nand instl(f,a,b); endmodle
//定义2输入与非门电路模nand2_ex1 //模块的外部输入/输出端口列表
//a、b为输入端口 //f为输出端口 //调用Verilog内部预定义的门级原语nand
3、工程编译
Processing →Start Compilation 4、功能测试(波形仿真)
新建波形文件→添加输入输出端口→设 置输入信号波形→功能仿真→检验功能
3、逻辑功能描述语句
方法一:结构描述方式 通过调用原语元件的方式来描述电路结构 nand instl(f,a,b);
方法二:数据流描述方式 assign f=~(a&b);
assign 连续赋值语句的赋值操作符是普通的赋值操 作符“=”,通过定义数据信号的“流程”来描述模 块,一旦其输入端发生变化,输出端随之而改变, 因此用连续赋值语句描述模块逻辑功能的方式也称 为数据流描述方式,一般用于组合逻辑功能描述。
方法一:调用库元件的结构描述方式; 方法二:使用连续赋值语句“assign”的数据
流描述方式; 方法三:使用always过程块行为描述方式。
assign连续赋值语句的赋值操作符是普通的赋值操作符通过定义数据信号的流程来描述模块一旦其输入端发生变化输出端随之而改变因此用连续赋值语句描述模块逻辑功能的方式也称为数据流描述方式一般用于组合逻辑功能描述
第四讲 基于HDL实现的基本门电路
主讲人:雷求胜
一、基于HDL实现的基本门电路的设计
1、新建工程 File→New Project →nand2_ex1 2、设计输入 a、File→ New →Design Files →Verilog HDL
二、HDL语言以及特点
HDL----Hardware Description Language (硬件描述语言)
常用的HDL:VHDL和Verilog VHDL------对电路行为描述能力很强,但语法繁琐、
关键字比较长,初学者学习较困难。 Verilog-----语法简单,入门容易,类似于C语言。
3、逻辑功能描述语句
方法三:行为描述方式
reg f;//关键字reg表示一种暂存的数据类型,说明输出信号F,需要在
always语句块中得到赋值。
敏感信号表达式
always @(a or b) //always过程语句
f<=~(a&b);
四、标识符
标识符用于表示电路系统中模块、寄存器、输入/输 出端口、连线等物理对象名字。