第 0章 概 论
EDA技术 与应用 课程讲义
合肥工业大学 彭良清
本章内容
1,EDA技术的发展历史
2,EDA技术实现目标
3,硬件描述语言 VHDL概述
4,EDA技术与传统电子设计方法的比较
5,EDA技术的发展趋势
培根说:- Histories make men wise
让我们先看看 EDA的历史
数字集成电路的发展
?晶体管( 1955 William Shockley)
?小中规模集成电路( 1960年代)
?超大规模集成电路 VLSIC(1970年代 )
?专用集成电路 ASIC ( 1980年代 )
?PLD( 1970年代 )
?FPGA( Xilinx公司,1984年)
?好了,我们知道了,米,由来
? 现在我们来学习,煮饭,的方

什么是 EDA
?电子设计自动化( Electronic Design
Automation)指设计者利用计算机及相关应
用软件完成电子系统设计任务。
EDA的三个阶段
1,CAD Computer Assist Design 70年代
2,CAE Computer Assist Engineering Design
80年代
3,ESDA Electronic System Design
Automation 90年代
CAD阶段
?1:选用 SSI,MSI如各种逻辑门.触发
器.寄存器.编码译码器。
?2:用 Tango (Protel)等软件布线,焊接在
PCB( Printed Circuit Board)上调试。
? 现在还存在吗?
CAE阶段( 1980~ 1990)
?集成电路设计 各个阶段 的集成工具的产生
(原理图输入、编译和连接、逻辑模拟、测试码生成、版图自动布局、
单元库的建立)
?实现从设计输入到版图输出的全程自动化
?ASIC芯片应用日益广泛
CAE阶段的 2大特点
1,ASIC 大行其道
2,实现了 设计的自动化
? 但
设计 仍 采用 图形方式
ESDA阶段
?使用 HDL语言进行设计
?高层综合(行为级)取得进展
?物理设计和逻辑设计的融合,在设计初期就
考虑芯片物理结构的影响
?可测试性设计广泛使用( JTAG)
?IP核大量使用
EDA阶段的结果
?FPGA/CPLD器件取代部分 ASIC器件应用
?系统设计者或者线路板设计者成为芯片设计

本课程的就是:?
? 学习 如何使用
可编程逻辑器件
进行 电子系统设计
的方法
?一切都是命运
?一切都是烟云
?一切都是没有结局的开始
·······
- 北岛
EDA技术已经开始,那么
她的结局是?
EDA技术的终极目标是:?
? 完成 ASIC (专用集成电路)
的设计和实现
? 板级或者系统级的 应用系统设计者
也能
设计 IC (芯片 )
^_^,你、我 …… 了不起吧?! !
如何实现?
?3个途径
FPGA
/CPLD
可编程
ASIC
半定制
全定制
ASIC
EDA技术
ASIC技术
数字 ASIC
混合
ASIC
PCB设计
途径一:使用可编程逻辑器件
?使用 FPGA/CPLD
?特点:
? 灵活性
? 通用性好
? 上市周期块
? 对于小批量产品成本低
途径二:半定制或者全定制 ASIC
? 分类
? 门阵列 ASIC
? 标准单元 ASIC
? 全定制 ASIC
? 特点
? 价格低
? 性能好
? 具有知识产权,保密性好
途径三:混合 ASIC设计
? 是前 2种方法的混合体
- > 不是 模拟和数字的混合体
? 既具有 FPGA可编程逻辑资源,
? 也含有可调用的硬件标准单元模块
( CPU,RAM,ROM,硬件加法器,乘法器 锁相环)
? 例如,ALTERA公司的 Virtex-4系列,
StratixII系列
硬件描述语言:起源
? 是电子电路的文本描述。
? 最早的发明者,美国国防部,VHDL,1983
? 大浪淘沙,为大者二:
VHDL 和 Verilog HDL
? 其他的小兄弟:
ABEL,AHDL,System Verilog,System C。
一个 D触发器的 VHDL代码例子
1,-- VHDL code position,p83_ex4_11_DFF1
2,-------------------------------------------------------------------------------
3,-- LIBARY IEEE;
4,-- USE IEEE.STD_LOGIC_1164.ALL;
5,ENTITY DFF1 IS
6,PORT ( CLK, IN BIT;
7,D, IN BIT;
8,Q, OUT BIT
9,);
10,END ENTITY DFF1;
11,ARCHITECTURE bhv OF DFF1 IS
12,BEGIN
13,PROCESS(CLK)
14,BEGIN
15,IF CLK'EVENT AND (CLK='1') AND ( CLK'LAST_VALUE = '0') THEN
16,--严格的 CLK信号上升沿定义
17,Q <= D;
18,END IF;
19,END PROCESS;
20,END ARCHITECTURE bhv;
代码实体( 5- 10)
代码结构体( 11- 20)
VHDL
(Very High Speed Integrated Circuit Hardware Description Labguage)
? 以 Ada语言为基础,由美国国防高级研究计划局
(DARPA)开发。
? 历史和发展:
? 1985年完成第一版
? 1987年成为 IEEE标准 (IEEE1076),
? 1993年增修为 IEEE1164标准并使用至今。
? 1996年又加入电路合成标准程序和规格,成为
IEEE1076.3标准。
? 美国国防部规定其为官方 ASIC设计语言。
? 1995年成为中国国家标准(见, CAD通用技术规范, )
Verilog HDL
? 以 C语言为基础,由 GDA(Gateway Design
Automation)公司的 Phil Moorby创建于 1983年。
? 历史和发展:
? 1989年 CADENCE公司收购了 GDA公司,拥有了 Verilog
HDL的独家专利。
? 于 1990年正式发表了 Verilog HDL,并成立 OVI(Open
Verilog International)组织推进其发展。
? 1995年 CADENCE公司放弃了 Verilog HDL专利,使之成
为 IEEE标准 (IEEE1364)。
VHDL与 Verilog HDL的比较
? 不存在优劣之分。
? 相同电路,2种语言的编码长度大体相同。
? 常用的各种仿真 /综合工具均为二者通用。
? 一个公司通常习惯于使用其中一种,和习惯有关。
? 在日本,VHDL用户略多于 Verilog HDL,例如:
NEC,日立,福田电子,丸文等公司通常习惯使用
VHDL;而松下,CASIO等公司习惯使用 Verilog
HDL。
HDL和 C的比较
?不能使用单步、断点等软件语言调试方法。
?具有并行性,而软件语言完全顺序执行的。
?编写时不能随心所欲,按照“规矩”编写代
码。
?看似可实现的代码,仿真往往有很大问题。
优点?
和传统的电子系统设计相比
使用 HDL的优点?
硬件描述语言 (VHDL)的优点:
1),打破了 IC设计者与使用者的界线。
2),迅速掌握。
3),缩短了专用芯片的开发周期。
4),缩小电路板面积,性价比高。
5),设计可重用。
6),自主知识产权。这一点对目前我国尤为
重要。
如何使用 VHDL来设计电路?
? VHDL设计电路的的 5步曲
1,语言编码
2,逻辑综合
3,功能和时序仿真
4,器件适配
5.
使用 MAX+PLUS II软件的设计过程
MAX+PLUS II设计过程说明
1,Compiler Netlist Extractor(编译器网表提取器),
? 通过该过程生成设计项目的网表文件,
2,Database Builder(数据库构建器 ):
? 用于将所有的设计文件集成到项目数据库中
? 如果指定端口的实体已被抽取, 则从盘中读取, cnf文件信息就可以了,因而节省了时间,
3,Logic Synthesizer (逻辑综合器 ):
? 选择合适的逻辑化简算法,
? 去除冗余和无用逻辑,
? 有效使用器件的逻辑资源,
4,Fitter(适配器 )
? 将电路适配到某个 PLD器件中。
5,Timing SNF Extractor(时序 SNF文件提取器 )
? 产生用于时序仿真的网表文件
6,Assembler(汇编器)
? 产生用于器件编程的目标代码
其他的 HDL综合工具
? Altera公司
1,MAX+PLUS II 10.2(已经停止发行,新器件不支持)
2,QUARTUS II 5.0(推荐使用)
? Xilinx 公司
1,ISE 7.0,Xilinx公司集成开发的工具
2,Foundation,Xilinx公司早期开发工具,逐步被 ISE取代
3,ISE Webpack,Webpack是 xilinx提供的免费开发软件,
功能比 ISE少一些,可以从 xilinx网站下载
有了 HDL语言后?
硬件设计人员 的工作过程
已经 类似与
软件设计人员,那么
这种模式的好处是?
让 我们先看看原来是如何做的- >
与传统电子设计方法的比较
? 传统的设计过程:
1,模块划分
2,画出逻辑的真值表
3,用卡诺图简化逻辑
4,写出布尔表达式
5,画出逻辑线路图







传统设计是一种“搭积木”设计
? 由标准器件(如 74/54
系列)构建电路板
? 由电路板搭成电子系统
? 主要的工作量在于
? 系统设计(板互连)
? PCB板设计
传统设计方法的问题
?复杂电路的设计、调试很困难
?修改不变
?可移值性差
?模块重用困难
?设计文档很多,不易管理
?只能在成品制造后测试
?对设计者的经验要求很高
EDA设计是
一种基于“芯片”的设计
? 利用 EDA工具,采用可编程逻辑器件 来设计电子
系统
? 减小了 PCB板设计和系统设计的工作量。
? 还有 ······
FPGA
U1
U3
U2
U4
EDA技术的优势
?可随时验证设计
?模块可重用
?设计文档易于管理( VHDL代码文本)
?具有知识产权
?适合高速电路
?具有高可靠性
?对设计者的要求降低。
EDA的结局?
一切的开始 都已经有了结局
EDA的结局是?
EDA技术的发展趋势
?SoC(System on Chip)片上系统 方兴未艾
?FPGA/CPLD和 ASIC二大阵营的技术和市场
融合加强
? FPGA/CPLD进入传统 ASIC的应用场合,而 ASIC
期间预留 FPGA空间,使得产品的修改和升级更
加容易。
?CPU,DSP开始集成到 FPGA中。
?更多 ······
更多的 EDA技术的发展趋势?
?请回去
自己
查阅资料
The end.
FPGA 与 CPLD
可编程逻辑器件(芯片)的发展阶段
1,PAL,Programmable Array Logic
2,GAL,Generic Array Logic
3,CPLD,Complex Programmable Logic
Device
4,FPGA,Field Programmable Gate Array
? 返回
如何提高
? 方法有 2个
? 理论学习
?基本数字单元电路的实现
?PLD器件的工作原理的深入理解
? 比如 全局时钟,I/O接口 PLL
?复杂时序电路的设计
? 状态机编程
?VHDL代码和物理电路的对应
?如何提高性能:
? 同步电路设计,高速电路设计,时间和面积优化
?器件的选择
? 项目训练
?完成一个实际的应用项目
本质?工具
?EDA实际上是一种
? 计算机软件
如何掌握 EDA技术?
?甲:学习一种计算机软件的使用
?已:学习某个专门领域的设计知识,
比如机械设计理论,电路基础,建筑设计理论
那一个正确?
电子工程领域的 EDA
? EDA:电子设计自动化
1,Electronic Design Automation
2,EDA技术就是:
依赖 功能强大的 计算机,
在 EDA工具软件 平台上,
用 硬件描述语言( HDL) 作为 系统逻辑描述手段
来完成 电子线路设计文件
最终 实现 - >
特定电子线路的硬件(芯片或者电路板)
EDA技术的历史
? 70年代
? 计算机辅助设计 (CAD)阶段,人们开始用计算机取代手工
操作进行 IC版图编辑,PCB布局布线
? 80年代
? 计算机辅助工程 (CAE)阶段。与 CAD相比,CAE除了有纯
粹的图形绘制功能外,又增加了电路功能分析和结构设
计,并且通过电气连接网络表将两者结合在一起,实现
了工程设计
? 90年代
? 电子系统设计自动化 (EDA)阶段,同时又出现了计算机辅
助工艺( CAPP)、计算机辅助制造( CAM)等
相关名词
? 器件:
? PAL,GAL,CPLD,FPGA
? GAL16V8,MAX7128,EP1C3,
? 硬件语言:
? VHDL,verilog HDL
? 公司:
? ALTERA,XILINX,LATTICE
? 设计软件平台:
? MAX+PLUS II,QUARTUS II; ISE,
详细含义后面具体介绍
让我们来增加一点感观认识
?这是一片 ALTERA公司的 PLD芯片,共有 400
个引脚,BGA封装。
我们设计的一款产品
?3D显示器的视频信号处理电路
PLD器件到底能干什么?
?通信领域
?视频信号处理
?ASIC的替代
?CPU设计的前期仿真
教材与参考书:基础篇
1,EDA技术实用教程 (第二版)(教材)
潘松 黄继业 科学出版社 2005-2
2,VHDL硬件描述语言与数字逻设计
侯伯亨 西安电子科技大学出版社 2001-04
3,FPGA设计及应用
褚振勇 翁木云 西安电子科技大学出版社 2002-7
教材与参考书:提高和应用篇
1,FPGA数字电子系统设计与开发实例导航:
求是科技 人民邮电出版社 2005-6
2,基于 CPLD/FPGA数字通信系统建模与设计
段吉海 黄智伟 电子工业出版社 2004-8
3,挑战 SOC— 基于 NIOS的 SOPC设计与实践
彭澄廉 周博等 清华大学出版社 2004-7
EDA学习网站和论坛(一)
? EDA 门户网站 二巨头
? www.PLD.com.cn 一个国内最好的 EDA门户网
站,包括 ALTERA公司,XILINX公司等分类论坛,
也有大量技术文章,人气极旺的论坛。
? http://www.edacn.net 人气可和前者比肩,该网
站还有一个,先锋工作室,,出版了很多 EDA专
业书籍
EDA学习网站和论坛(二)
? ALTERA和 XILINX公司的官方网站
? http://www.altera.com.cn
? http://www.xilinx-china.com
有关软件使用,芯片手册,应用笔记,
设计实例等应有尽有。
我如何教你?
?假如学生要得到 一瓢水
? 教师必须有 一桶水
?假如教师只有 一桶水
? 我们要指引给学生了 一条河,教会你游泳的技
巧,而不是喝水的本领
CAD
?CAD在早期是英文
Computer Aided Drafting
(计算机辅助绘图 )
的缩写,随着计算机软、硬件技术的发展,
演变为
Computer Aided Design
(计算机辅助设计)
CAPP
? 计算机辅助工艺设计( Computer Aided Process Planning)
的简称
? 概念:利用计算机技术,辅助工艺人员设计零件 从毛坯
到成品 的制造方法。
? 是将
企业产品设计数据
转换为
产品制造数据
的一种技术。
? 是计算机集成制造系统( CIMS)的重要组成部分。
SSI & MSI
?SSI,small-scale integration
?MSI,medium-scale integration
?返回
ABEL, CUPL, PALASM2, FM
? ABEL 一种硬件描述语言,Lattice 公司的软件 isp
Expert System 7.0支持该语言
? CUPL
? PALASM2
? FM
Ada语言
? 来源:
Ada语言是 美国国防部指定的 唯一
种可用于 军用系统开发的语言
? 特点:
一种面向对象的计算机语言。
? 取名:
英国著名诗人拜伦的女儿 Ada
Lovelace曾设计了巴贝奇分析机上解
伯努利方程的一个程序。她甚至还建
立了循环和子程序的概念。由于她在
程序设计上的开创性工作,Ada
Lovelace被称为世界上第一位程序员,
故名 Ada。
? 返回 Jean Ichbiah,Ada之父,1979 开发完成 Ada计算机语言。
Compiler Netlist Extractor
(编译器网表提取器)
? The Compiler module that converts each design file in a project (or each cell of
an EDIF Input File) into a separate binary CNF,The filename(s) of the CNF(s)
are based on the project name,Example
? The Compiler Netlist Extractor also creates a single HIF that documents the
hierarchical connections between design files.
? This module contains a built-in EDIF Netlist Reader,Verilog Netlist Reader,
VHDL Netlist Reader,and converters that translate ADFs and SMFs for use
with MAX+PLUS II,
? During netlist extraction,this module checks each design file for problems such
as duplicate node names,missing inputs and outputs,and outputs that are tied
together.
? 返回
Database Builder(数据库构建器 ):
? The Compiler module that builds a single,fully flattened project database that integrates all the design files in a project hierarchy,
? The Database Builder uses the HIF to link the CNFs that describe the project,Based on the HIF data,the
Database Builder copies each CNF into the project database,Each CNF is inserted into the database as many
times as it is used within the original hierarchical project,The database thus preserves the electrical connectivity
of the project.
? The Compiler uses this database for the remainder of project processing,Each subsequent Compiler module
updates the database until it contains the fully optimized project,In the beginning,the database contains only
the original netlists; at the end,it contains a fully minimized,fitted project,which the Assembler uses to create
one or more files for device programming,
? As it creates the database,the Database Builder examines the logical completeness and consistency of the
project,and checks for boundary connectivity and syntactical errors (e.g.,a node without a source or
destination),Most errors are detected and can be easily corrected at this stage of project processing.
? 返回
Logic Synthesizer
? The Compiler module that synthesizes the logic in a project's design files,
? Using the database created by the Database Builder,the Logic Synthesizer calculates
Boolean equations for each input to a primitive and minimizes the logic according to your
specifications,
? For projects that use JK or SR flipflops,the Logic Synthesizer checks each case to
determine whether a D or T flipflop will implement the project more efficiently,D or T
flipflops are substituted where appropriate,and the resulting equations are minimized
accordingly.
? The Logic Synthesizer also synthesizes equations for flipflops to implement state
registers of state machines,An equation for each state bit is optimally implemented with
either a D or T flipflop,If no state bit assignments have been made,or if an incomplete
set of state bit assignments has been created,the Logic Synthesizer automatically
creates a set of state bits to encode the state machine,These encodings are chosen to
minimize the resources used.
? 返回
Fitter(适配器)
? The Compiler module that fits the logic of a project into one or more devices,
? Using the database updated by the Partitioner,the Fitter matches the logic requirements
of the project with the available resources of one or more devices,It assigns each logic
function to the best logic cell location and selects appropriate interconnection paths and
pin assignments.
? The Fitter attempts to match any resource assignments made for the project with the
resources on the device,If it cannot find a fit,the Fitter allows you to override some or all
of your assignments or terminate compilation.
? The Fitter module generates a Fit File that documents pin,buried logic cell,chip,clique,
and device assignments made by the Fitter module in the last successful compilation,
Each time the project compiles successfully,the Fit File is overwritten,You can back-
annotate the assignments in the file to preserve them in future compilations,
? 返回
Timing SNF Extractor(时序 SNF文件提取器 )
? The Compiler module that creates a timing SNF containing the logic and timing
information required for timing simulation,delay prediction,and timing analysis.
? The Timing SNF Extractor is turned on with the Timing SNF Extractor command
(Processing menu),It is also turned on automatically when you turn on the EDIF Netlist
Writer,Verilog Netlist Writer,or VHDL Netlist Writer command (Interfaces menu),The
Timing SNF Extractor cannot be turned on at the same time as the Functional SNF
Extractor or the Linked SNF Extractor.
? A timing SNF describes the fully optimized circuit after all logic synthesis and fitting have
been completed,Regardless of whether a project is partitioned into multiple devices,the
timing SNF describes a project as a whole,Therefore,timing simulation and timing
analysis (including delay prediction) are available only for the project as a whole,Neither
timing simulation nor functional testing is available for individual devices in a multi-device
project,Functional testing is available only for a single-device project.
? 返回
Assembler(汇编器)
? The Compiler module that creates one or more programming files for programming or configuring the
device(s) for a project,
? The Assembler module completes project processing by converting the Fitter's device,logic cell,and
pin assignments into a programming image for the device(s),in the form of one or more POFs,SOFs,
Hex Files,TTFs,Jam Files,JBC Files,and/or JEDEC Files,POFs and JEDEC Files are always
generated; SOFs,Hex Files,and TTFs are always generated if the project uses ACEX 1K,FLEX 6000,
FLEX 8000 or FLEX 10K devices; and Jam Files and JBC Files are always generated for MAX 9000,
MAX 7000B,MAX 7000AE or MAX 3000A projects,If you turn on the Enable JTAG Support option in
the Classic & MAX Global Project Device Options dialog box (Assign menu) or the Classic & MAX
Individual Device Options dialog box,the Assembler will also generate Jam Files and JBC Files for
MAX 7000A or MAX 7000S projects,After compilation,you can also use SOFs to create different
types of files for configuring FLEX 6000,FLEX 8000 and FLEX 10K devices with Convert SRAM
Object Files (File menu).
? The programming files can then be processed by the MAX+PLUS II Programmer and the MPU or
APU hardware to produce working devices,Several other programming hardware manufacturers also
provide programming support for Altera devices,
? 返回
具有知识产权
1,如果 Intel不提供 CPU给联想公司,那会总样?
2,如果设计中的某个芯片价格变高,或者不能按时供
货,那如何向客户交代?
? 传统设计受制于人。
? 使用 EDA的设计没有这些问题。
? 因为所有的芯片均是自己设计和制造的,这一点对于国
防尤其重要。
? 返回
适合高速电路
信号频率越高,则布线长度应越短
传统设计中 PCB的尺寸不可能太小
如果将一块 PCB上的设计集成到
一个芯片中?
那么,
模块间的连接线长度则 !!
? 返回
集成电路设计的各个阶段
1,原理图输入
2,编译和连接、
3,逻辑模拟、
4,测试码生成、
5,版图布局、
6,单元库的建立
? 返回
课程的具体内容
?要学习的关键内容
? FPGA/CPLD芯片的结构
? PFGA/CPLD芯片的使用
?具体包含 2个技术的掌握
? 硬件描述语言( VHDL,Verilog HDL)设计
? QURATUR II设计软件(或者 MAX+PLUS
II,XINLINX ISE等)