第4讲基于HDL实现的基本门电路设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲基于HDL实现的基本门电路设计

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

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档