内容发布更新时间 : 2024/12/22 18:28:17星期一 下面是文章的全部内容请认真阅读。
EDA工具应用丛书
数字系统设计与Verilog HDL
(第4版)
王金明 编著
课 堂 笔 记
前 言
目前,EDA技术已经成为电子信息类学生一门重要的专业基础课程,并在教学、科研,以及大学生电子设计竞赛等活动中,起着越来越重要的作用,成为电子信息类本科生以及研究生必须掌握的基础知识与基础技能。随着EDA技术的应用日益广泛,对EDA课程的教学的要求也不断提高,必须对教学内容进行优化与更新,以与EDA技术的发展相适应。
对于大多数学生而言,通过一学期的学习已经对EDA技术有了一定的了解,为了帮助同学们系统的掌握所学内容,我整理了《数字系统设计与Verilog HDL 课堂笔记》一书。
在本书中,共有五个章节,主要列举了数字系统设计概论、可编程逻辑器件、Verilog HDL语言、Quartus II的安装与使用的相关知识点,简明扼要直击考试要点。在本书的第五章节,通过六个例子阐述了Verilog HDL语言与Quartus II
1 / 16
软件的配合使用。
由于受编者水平和编写时间所限,书中难免有不足之处,恳请读者批评指正。
编 者 2014.5.17
目 录
1.数字系统设计概论 ........................................................................................................................ 3
1.1数字系统的概念 ................................................................................................................. 3 1.2数字系统的发展 ................................................................................................................. 4
1.2.1 EDA技术: EDA(Electronic Design Automation) .............................................. 4 1.2.2数字系统的两种设计思路: .................................................................................. 4 1.2.3 构建数字系统的方法途径 ..................................................................................... 4 1.2.4 基于IP模块的设计 ............................................................................................... 5 1.3 数字系统的设计流程 ........................................................................................................ 5 1.4 用于开发FPGA和CPLD的EDA工具 ......................................................................... 6 2.可编程逻辑器件PLD ................................................................................................................... 6
2.1 PLD概述 ............................................................................................................................ 6
2.1.1 PLD的基本概念 ..................................................................................................... 6 2.1.2 PLD的作用 ............................................................................................................. 6 2.1.3 PLD的分类 ............................................................................................................. 6 2.1.4 PLD的基本构成原理与表示方法 ......................................................................... 7 2.2 SPLD介绍 .......................................................................................................................... 8
2.2.1 可编程只读存储器(PROM) .............................................................................. 8 2.2.2可编程逻辑阵列PLA(Programmable Logic Array) .......................................... 8 2.2.3可编程阵列逻辑PAL(Programmable Array Logic) .......................................... 8 2.2.4通用阵列逻辑(GAL) ............................................................................................... 9 2.3 HPLD介绍 ....................................................................................................................... 10
2.3.1 CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件) ................ 10 2.3.2 FPGA(Field Programmable Gate Array,现场可编程门阵列) ......................... 10 2.3.3 CPLD与FPGA的异同 ........................................................................................ 11 2.3.4 Altera 公司生产的PLD器件 ............................................................................... 11 2.3.5 PLD器件的发展趋势 ........................................................................................... 11
3. Verilog HDL 语言 ...................................................................................................................... 12
3.1 Verilog HDL 基础 ............................................................................................................ 12
3.1.1 词法 ..................................................................................................................... 12 3.1.2 数据类型 ............................................................................................................... 13 3.1.3运算符 .................................................................................................................... 13 3.2 Verilog HDL中的模块 .................................................................................................. 13
3.2.1 模块 ....................................................................................................................... 13 3.2.2 Verilog HDL 数字设计中模块中功能的基本描述方式 ..................................... 14 3.3 Verilog HDl 行为语句 ..................................................................................................... 14
3.3.1 过程语句 ............................................................................................................... 14 3.3.2 块语句 ................................................................................................................... 14 3.3.3 赋值语句 ............................................................................................................... 15 3.3.4 条件语句 ............................................................................................................... 15 3.3.5 循环语句 ............................................................................................................... 16 3.3.6 编译向导语句 ....................................................................................................... 16 3.4 Verilog HDL 数字设计的层次设计风格 .......................................... 错误!未定义书签。
2 / 16
3.5常见组合与时序逻辑电路Verilog HDL描述 .................................. 错误!未定义书签。
3.5.1 常用组合电路模块的设计 ..................................................... 错误!未定义书签。 3.5.2 常用时序电路模块设计 ......................................................... 错误!未定义书签。
4. Quartus II 介绍 ......................................................................................... 错误!未定义书签。
4.1 Quartus II 概述 ............................................................................... 错误!未定义书签。 4.2 原理图输入法 .................................................................................... 错误!未定义书签。 4.3 文本输入方式 .................................................................................... 错误!未定义书签。 4.4 设计流程 ............................................................................................ 错误!未定义书签。 5. 数字系统设计实验 ...................................................................................... 错误!未定义书签。
5.1 基础实验 ............................................................................................ 错误!未定义书签。
5.1.1 加法器 ..................................................................................... 错误!未定义书签。 5.1.2 译码器 ..................................................................................... 错误!未定义书签。 5.1.3 触发器 ..................................................................................... 错误!未定义书签。 5.1.4 计数器 ..................................................................................... 错误!未定义书签。 5.2 综合设计实验 .................................................................................... 错误!未定义书签。
5.2.1 累加器 ..................................................................................... 错误!未定义书签。 5.2.2 数码管动态扫描 ..................................................................... 错误!未定义书签。
1.数字系统设计概论
1.1数字系统的概念
是指对数字信息进行存储、传输、处理的电子系统。它的输入和输出都是数字量。 通常把门电路、触发器等称为逻辑器件;将由逻辑器件构成,能执行某单一功能的电路,如计数器、译码器、加法器等,称为逻辑功能部件;把由逻辑功能部件组成的能实现复杂功能
3 / 16
的数字电路称数字系统。
数字系统和功能部件之间的区别之一在于功能是否单一。区别之二在于是否包含控制电路。
1.2数字系统的发展
1.2.1 EDA技术: EDA(Electronic Design Automation)
立足于计算机工作平台而开发出来的一整套先进的设计电子系统的软件工具。 三个发展阶段: (1)电子CAD阶段;(2)电子CAE阶段;(3)EDA阶段。 EDA技术的特点:(1)高层综合和优化(2)采用硬件描述语言进行设计
(3)开放性和标准化(4)库的引入(5)支持“自顶向下”设计方法 系统设计层次: (1)板图级(物理级)(2)逻辑门级(3)寄存器传输级 (4)行为级(5) 系统级
1.2.2数字系统的两种设计思路:
(1)自底向上法(Bottom-up设计) 设计过程从最底层设计开始。
设计系统硬件时,首先选择具体的元器件,用这些元器件通过逻辑电路设计,完成系统中各独立功能模块的设计,再把这些功能模块连接起来,搭建成完整的硬件系统。 在进行底层设计时,缺乏对整
个电子系统总体性能的把握,在整个系统设计完成后,如果发现性能尚待改进,修改起来比较困难,因而设计周期长。
(2)自顶向下法(Top_down设计)
按一定原则将系统分成若干子系统,再将每个子系统分成若干个功能模块,再将每个模块分成若干小的模块……直至分成许多可以实现的基本模块。
1.2.3 构建数字系统的方法途径
4 / 16
※ 专用集成电路—— 把所设计的数字系统做成一整片规模集成电路,不仅减小了电路的体
积、重量、功耗、而且使电路的可靠性大为提高。
※ PLD——完全由用户自行定义芯片逻辑功能的“通用型”数字器件。
用户可以借助特定的EDA软件设计一个数字电路或数字系统,通过该软件进行一系列的操作(仿真综合适配)后形成特定的二进制文件,然后通过专门的编程器或ISP(In System Program)的方式下载到芯片中,使其具备预期的功能。
可以反复修改,反复编程,直到完全满足要求。降低了开发的风险。
管脚定义的灵活,增加了设计的自由度,提高了效率。同时这种设计减少了所需芯片的种类和数量,缩小了体积,降低了功耗,提高了系统的可靠性。
1.2.4 基于IP模块的设计
IP(Intellectual Property)原来的含义是指知识产权、著作权等,在IC设计领域则可以理解为完成某种功能的设计模块,也可称为IP核。 IP核分为软核、硬核和固核:
软核指的是在寄存器级或门级对电路功能用HDL进行描述,表现为VHDL或Verilog HDL代码。用户在使用软核的时候可以修改,以满足自己所需要的功能。实现后电路的总门数在5000门以上。
硬核指的是以版图形式描述的设计模块,它基于一定的设计工艺,用户不能改动,用户得到的硬核仅是产品的功能,而不是产品的设计。一般在专用集成电路ASIC器件上实现,总门数在某些方面5000门以上。
固核介于硬核和软核之间,允许用户重新定义关键的性能参数,内部连线也可以重新优化。一般在FPGA器件上实现的、经验证是正确的、总门数在某些方面5000门以上电路结构编码文件称为“固核”。
1.3 数字系统的设计流程
1、设计输入
目前,已成为IEEE标准的是VHDL语言和Verilog HDL语言。
? VHDL (Very High Speed Integration Circuit HDL,超高速集成电路硬件描
述语言):是于1985年由美国国防部的支持下正式推出的。1987年被采纳为IEEE标准。
? Verilog HDL语言是美国Gateway Design Automation公司 于1983年推出
的, 1995年被采纳为IEEE标准。
2、综合: 指的是将较高层次的设计描述自动转化为较低层次描述的过程。
综合器就是能够自动实现上述转换的工具。或者说,综合器是能够将原
理图或HDL语言表达和描述的电路功能转化为具体的电路结构网表的工具。
综合有下面几种形式:1)行为综合;2)逻辑综合;3)版图综合。 3、适配:是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件。
适配过程包括: 映射、 布局、 布线。 4、仿真: 是对所设计电路的功能的验证。
①功能仿真:在做完理论设计,没有选择具体器件时所做的仿真。不考虑信号时延等因素的仿真,也叫前仿真。
②时序仿真:是在选择了具体器件并完成了布局布线后 进行的包含定时关系的仿真。也叫后仿真。它主要用于验证由于不同的布线方式、分区规划而产生的各种延时对系统功能的影响。 5、编程下载和配置:把适配后生成的编程文件装入到PLD器件中的过程称为下载。通常对CPLD器件的下载称为编程(Program),对于FPGA器件的下载称为配置(Configure)。下载后的FPGA/CPLD器件就是所设计的电子系统。
5 / 16