[理学]9 硬件描述语言简介.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]9 硬件描述语言简介

第九章 硬件描述语言简介 9.1 概述 9.2 Verilog HDL简介 9.3 用Verilog HDL描述逻辑电路的实例 9.1 概述 硬件描述语言HDL(Hardware Description Language )是一种用形式化方法来描述数字电路和数字逻辑系统的语言。数字逻辑电路设计者可利用这种语言来描述自己的设计思想,然后利用EDA工具进行仿真,再自动综合到门级电路,最后用ASIC或FPGA实现其功能。 9.2 Verilog HDL 简介 在数字电路设计中,数字电路可简单归纳为两种要素:线和器件。线是器件管脚之间的物理连线;器件也可简单归纳为组合逻辑器件(如与或非门等)和时序逻辑器件(如寄存器、锁存器、RAM等)。一个数字系统(硬件)就是多个器件通过一定的连线关系组合在一块的。因此,Verilog HDL的建模实际上就是如何使用HDL语言对数字电路的两种基本要素的特性及相互之间的关系进行描述的过程。 模 块 (module) 模块(module)是Verilog 的基本描述单位,用于描述某个设计的功能或结构及与其他模块通信的外部端口。 模块在概念上可等同一个器件就如我们调用通用器件(与门、三态门等)或通用宏单元(计数器、ALU、CPU)等,因此,一个模块可在另一个模块中调用。 一个电路设计可由多个模块组合而成,因此一个模块的设计只是一个系统设计中的某个层次设计,模块设计可采用多种建模方式。 三个描述层次 开关级描述:描述电阻、晶体管以及它们之间的相互连线关系。 门级描述:描述基本逻辑门、触发器以及相互连线关系。 寄存器传输级(RTL)描述:描述寄存器以及它们之间的数据传递关系。 3、对每个模块都要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述,当然,对测试模块,可以没有输入输出口。 4、Verilog HDL 的书写格式自由,一行可以写几个语句,也可以一个语句分几行写。 5、除endmodule 语句外,每个语句后面需有分号表示该语句结束。 * 举个例子,在传统的设计方法中,对2输入的与门,我们可能需到标准器件库中调个74系列的器件出来,但在硬件描述语言中,“ ”就是一个与门的形式描述,“C = A B”就是一个2输入与门的描述。而“and”就是一个与门器件。 硬件描述语言发展至今已有二十多年历史,当今业界的标准中(IEEE标准)主要有VHDL和Verilog HDL 这两种硬件描述语言。 Verilog HDL 允许一个设计中每个模块均在不同设计层次上建模。 9.2.1 基本程序结构 module module name (port list); declarations module items endmodule 几个简单事例: 例[1] 加法器 module addr (a, b, cin, cout, sum); input [2:0] a; input [2:0] b; input cin; output cout; output [2:0] sum; assign {cout,sum} = a +b + cin; endmodule 例[2] 比较器 module compare (equal,a,b); input [1:0] a,b; // declare the input signal ; output equare ; // declare the output signal; assign equare = (a == b) ? 1:0 ; / * if a = b , output 1, otherwise 0;*/ endmodule 几个简单事例: module mytri (din, d_en, d_out); input din; input d_en; output d_out; assign d_out = d_en ? din :bz; endmodule module trist (din, d_en, d_out); input din; input d_en; output d_out; mytri u_mytri(din,d_en,d_out); Endmodule 例[3] 三态驱动器 几个简单事例: 通过上面的实例可看出,一个设计是由一个个模块(module)构成的。一个模块的设计如下: 1、模块内容是嵌在module 和endmodule两个语句之间。每个模块实现特定的功能,模块可进行层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最后通过由顶层模块调用子模块来实现整体功能,这就是Top-Down的设计思想,如例

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档