slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第一节 硬件描述语言简介 PowerPoint Presentation
Download Presentation
第一节 硬件描述语言简介

Loading in 2 Seconds...

play fullscreen
1 / 14

第一节 硬件描述语言简介 - PowerPoint PPT Presentation


  • 318 Views
  • Uploaded on

第一节 硬件描述语言简介. 概述. Verilog HDL 简介. 用 Verilog HDL 描述逻辑电路的实例. 总目录. 推出. 下页. 一、概述. 随着半导体技术的发展,数字电路已经由 中小规模的集成电路 向 可编程逻辑器件 ( PLD ) 及 专用集成电路 ( ASIC )转变。 数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以 EDA 工具作为设计平台的方式。 硬件描述语言 ( HDL )就是设计人员和 EDA 工具之间的一种界面。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第一节 硬件描述语言简介' - clarence


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
第一节 硬件描述语言简介
  • 概述
  • Verilog HDL简介
  • 用Verilog HDL描述逻辑电路的实例

总目录

推出

下页

slide2
一、概述

随着半导体技术的发展,数字电路已经由中小规模的集成电路向可编程逻辑器件(PLD)及专用集成电路(ASIC)转变。

数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以EDA工具作为设计平台的方式。

硬件描述语言(HDL)就是设计人员和EDA工具之间的一种界面。

利用硬件描述语言并借助EDA工具,可以完成从系统、算法、协议的抽象层次对电路进行建模、仿真、性能分析直到IC版图或PCB版图生成的全部设计工作。

上页

下页

返回

slide3

硬件描述语言主要用于编写设计文件,在EDA工具中建立电路模型。硬件描述语言主要用于编写设计文件,在EDA工具中建立电路模型。

硬件描述语言发展至今已有30年的历史,已经成功地应用于电子电路设计的各个阶段:建模、仿真、验证和综合等 。

VHDL和Verilog HDL是目前两种最常用的硬件描述语言。

除了这两种最流行的硬件描述语言外,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越趋向于与系统设计和软件设计相结合。

上页

下页

返回

verilog hdl
二、Verilog HDL 简介

1983年Gateway Design Automation 公司在C语言的基础上,为其仿真器产品Verilog-XL开发了一种专用硬件描述语言——Verilog HDL。

随着Verilog-XL成功和广泛的使用, Verilog HDL被众多数字电路设计者所接受。

Verilog HDL从C语言中继承了多种操作符和结构,源文本文件由空白符号分割的词法符号流组成。

词法符号的类型有空白符、注释、操作符、数字、字符串、标识符和关键字等,从形式上看和C语言有许多相似之处。

上页

下页

返回

slide5

1. 基本程序结构

Verilog HDL 语言采用模块化的结构,以模块集合的形式来描述数字电路系统。模块对应硬件上的逻辑实体,描述这个实体的功能或结构,以及它与其他模块的接口。

模块的基本语法结构如下:

module <模块名> (<端口列表>)

<定义>

<模块条目>

endmodule

上页

下页

返回

slide6

根据<定义><模块条目>的描述方法不同,可将模块分成行为描述模块、结构描述模块,或者是二者的组合。根据<定义><模块条目>的描述方法不同,可将模块分成行为描述模块、结构描述模块,或者是二者的组合。

行为描述模块通过编程语言定义模块的状态和功能。

结构描述模块将电路表达为具有层次概念的互相连接的子模块,其最底层的元件必须是Veriolg HDL 支持的基元或已定义过的模块。

上页

下页

返回

slide7

2. 词法构成

Verilog HDL 的词法标识符包括:间隔符与注释符,操作符、数值常量、字符串、标识符和关键字。

(1)间隔符与注释符

间隔符又称空白符,包括空格符、制表符、换行符以及换页符等。它们的作用是分隔其他词法标识符。

Verilog HDL有单行注释和多行段注释两种注释形式。单行注释以字符“//”起始,到本行结束;段注释以“/*”起始以“*/”结束,在段注释中不允许嵌套,段注释中“//”没有任何特殊意义。

上页

下页

返回

slide8

(2)操作符

Verilog HDL中定义了操作符,又称运算符,按照操作数的个数,可以分为一元、二元和三元操作符;按功能可以大致分为算术操作符、逻辑操作符、比较操作符等几大类。

(3)数值常量

Verilog HDL中的数值常量有整型和实型两大类,分为十进制、十六进制、八进制或二进制。

Verilog HDL数值集合有四个基本值:

0:逻辑0或假状态;

X:逻辑不定态;

1:逻辑1或假状态;

Z:高阻态。

上页

下页

返回

slide9

(4)字符串

字符串是双引号“”括起来的字符序列,必须包含在一行中,不能多行书写。

(5)标识符

标识符是模块、寄存器、端口、连线和begin-end快等元素的名称,是赋给对象的唯一的名称。

标识符可以是字母、数字、$符和下划线“-”字符的任意组合序列,必须以字母或下划线“-”开头。

在Verilog HDL中,标识符区分大小写,且字符数不能多于1024。

(6)关键词

关键词是Verilog HDL语言内部的专用词。

上页

下页

返回

slide10

3. 模块的两种描述方式

(1)行为描述方式

行为描述方式通过行为语句来描述电路要实现的功能,表示输入与输出间转换的行为,不涉及具体结构。

(2)结构描述方式

结构描述方式是将硬件电路描述成一个分级子模块相互连接的结构。通过对组成电路的各个子模块间相互连接关系的描述,来说明电路的组成。

各个模块还可以对其他模块进行调用,也就是模块的实例化。其中调用模块成为层次结构中的上级模块,被调用模块成为下级模块。

上页

下页

返回

verilog hdl1

例8.3.1的4位加法器

三、用Verilog HDL 描述逻辑电路的实例

[例8.3.1]用Verilog HDL对图示4位加法器做逻辑功能描述。

上页

下页

返回

slide12

//对4位串行进位加法器的顶层结构的描述

module Four_bit_fulladd(A,B,CI,S,CO);

//4位全加器模块名称和端口名

parameter size=4; //定义参数

input [size:1]A,B;

output [size:1]S;

input CI;

output CO;

wire [1:size-1]Ctemp //定义模块内部的连接线

Onebit_fulladd //调用1位全加器

add1(A[1],B[1],CI, S[1], Ctemp[1]), //实例化,调用1位全加器

上页

下页

返回

slide13

add1(A[1],B[1],CI, S[1], Ctemp[1]),

//实例化,调用1位全加器

add1(A[2],B[2], Ctemp[1], S[2], Ctemp[2]),

//实例化,调用1位全加器

add1(A[3],B[3], Ctemp[2], S[3], Ctemp[3]),

//实例化,调用1位全加器

add1(A[4],B[4],,Ctemp[3], S[4], CO), //实例化4

endmodule //结束

//对1位全加器内部结构的描述

Module one_bitfulladd (A,B,CI, Sum, Cout);

//1位全加器模块名称和端口名

input A,B,CI;

output Sum,Cout;

wire SUM_temp,C_1,C_2,C_3;

//定义模块内部的连接线

上页

下页

返回

slide14

XOR2

CI

Sum

A

B

XOR1

AND3

OR1

Cout

AND2

AND1

xor

XOR1(Sum_temp,A,B),

XOR2(Sum,Sum_temp,CI);

//两次调用异或门实现Sum=A⊕ B⊕ CI

and //调用3个与门AND1,AND2,AND3

AND1(C_1,A,B),

AND2(C_2,A, CI),

AND3(C_3,B, CI);

or

OR1(Cout,C_1,C_2,C_3);

//调用或门实现Cout=AB+A(CI)+B(CI)

endmodule //结束

上页

返回