EDA书上和PPT整理的讲解.docx
- 文档编号:25819668
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:27
- 大小:48.83KB
EDA书上和PPT整理的讲解.docx
《EDA书上和PPT整理的讲解.docx》由会员分享,可在线阅读,更多相关《EDA书上和PPT整理的讲解.docx(27页珍藏版)》请在冰豆网上搜索。
EDA书上和PPT整理的讲解
1、EDA的定义:
EDA全称为ElectronicDesignAutomation,是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及试验开发系统为设计工具,通过有关开发软件,自动完成从软件方式设计电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
2、EDA进行电子设计特点:
1 软件方式的硬件设计
2 软件到硬件的转换由开发软件自动完成
3 设计过程中可用软件仿真
4 在线可编程isp
5 单芯片集成系统,高集成可靠性、低功耗
3、EDA三个发展阶段(并介绍时代特点):
计算机辅助设计ComputerAidedDesign
计算机辅助工程设计ComputerAidedEngineeringDesign
电子设计自动化ElectronicDesignAutomation
1)计算机辅助设计阶段(20世纪70年代):
选用中小规模集成电路
把设计繁杂劳动如布线布图用2D图形编辑与分析的CAD工具替代
系统调试在组装好的PCB上进行
2)计算机辅助工程设计阶段(20世纪80年代):
EDA工具以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心
重点解决设计完成之前的功能检测等问题
具有自动综合能力的EDA工具
大部分原理图出发的工具不适应复杂系统设计
3)电子设计自动化阶段(20世纪90年代):
设计芯片,使用硬件转向设计硬件,片上系统集成,单片系统SOC
工具的抽象设计能力,框图、状态图与流程图编辑,具有硬件描述语言(VHDL,ABEL,AHDL),标准元件库
超越电子设计范畴进入其他领域,基于EDA的单片系统SOC,软硬核功能库,基于VHDL自顶向下的设计理念
4、EDA的软件系统构成(书P6)
完整的EDA软件系统应包括:
设计输入、设计数据库、分析验证、综合仿真、布局布线等模块
设计输入:
接受设计输入,语义分析及检查
设计数据库:
存放系统库单元、用户设计描述及中间设计结果
分析验证:
各层次模拟验证、设计规则检查、故障检查等
综合仿真:
各层次综合工具,理想状况为高层次到低层次综合仿真全部由EDA工具自动实现。
布局布线:
逻辑设计到物理实现的映射,器件不同布线工具不同
5、EDA工程设计流程图分析介绍(书P9):
源程序编辑编译:
文本/图形编辑器输入设计、排错编译,生成VHDL文件格式,准备逻辑综合。
三种编辑方式:
原理图、状态图与文本方式
逻辑综合与优化:
根据设计输入,针对指定硬件编译优化转换综合,获得门级电路甚至更底层的电路描述文件
器件布线/适配:
针对具体器件进行逻辑映射,包括底层器件配置、逻辑分割与优化、布线,利用适配仿真文件可做精确时序仿真。
编程/下载:
上述过程无问题,可将产生的配置下载文件经编程器或下载电缆载入目标FPGA或CPLD中
硬件仿真/硬件测试:
这里的硬件仿真是针对ASIC而言。
ASIC设计中,常用FPGA对系统设计进行功能检测,通过后将VHDL设计以ASIC实现,硬件测试则是FPGA或CPLD直接应用于系统进行检测
6、数字系统设计模型(书P15)
(1)根据图示模型,一个数字系统可由数据处理子系统与控制子系统构成。
其中数据处理子系统完成数据的采集、存储、运算与传输
控制子系统接受外部控制信号与数据处理送出的条件信号,在时钟信号控制下进行状态转换,产生与状态和条件信号对应的输出控制信号,控制数据处理子系统的具体操作。
(2)数字系统的设计方法:
模块设计法、自顶向下设计法、自底向上设计法
自顶向下的设计方法:
按逐步细化、渐次求精的方法,将数字系统按功能或群组等方法层层分解为关系合理、便于逻辑设计实现的子系统与模块
特点:
模块化、并行化
原则:
逐层分解功能、分层次设计,考虑设计层次的方针验证
(3)数字系统的设计准则:
分割准则:
底层逻辑适于表述;相似功能组成功能模块;接口信号尽量少;同层次模块IO与资源平衡;通用性,可移植性
可观测:
关键点,代表性节点及线路,工作状态
同步与异步:
尽可能采用同步电路
最优设计:
资源利用率、工作速度、布线
设计艺术:
流畅、IO及资源分配、设计及性能瓶颈、可观测性、柔性、器件特点
(4)数字系统的设计步骤:
任务分析:
流程、时序、自然语言汇混合方式提出要求
算法确定:
系统逻辑实现方法,选优
系统建模:
框图设计,模块功能清楚、规模合适
逻辑描述:
流程、框图、描述语言描述功能
电路设计与仿真:
选择器件及连接关系实现系统逻辑,系统仿真,电路图与硬件描述语言方式
物理实现:
实际器件实现系统,仪表测量,PCB测试
7、
(1)ASIC与半定制ASIC
●ApplicationSpecificIntegratedCircuits-专用集成电路。
使电子设计由集成电路芯片使用转向SOC
●集成度、功耗、可靠性、保密性、isp、开发周期
●全定制与半定制ASIC,半定制集成电路--SIC,Semi-CustomIntegratedCircuits种类:
门阵列(GateArray)、标准单元(StandardCell)、简单可编程逻辑器件(SPLD)、复杂可编程逻辑器件(CPLD)、现场可编程逻辑器件(FPGA)与在系统可编程(isp)逻辑器件
●可编程ASIC:
半定制ASIC的后四种,即SPLD、CPLD、FPGA与ISP器件统称可编程ASIC
(2)可编程逻辑器件的发展(书P20)
70年代初:
可编程只读存储器(PROM)与可编程逻辑阵列(PLA),统称现场可编程逻辑阵列(FPLA)
70年代末:
可编程阵列逻辑(PAL)
80年代初:
通用阵列逻辑(GAL)器件,可擦除、重复编程、加密等特点
80年代中期:
Xilinx的现场可编程门阵列(FPGA)
90年代初:
Lattice的在系统可编程大规模集成电路ispLSI
90年代末:
Lattice的模拟可编程逻辑器件ispPAC(In-SystemProgrammingAbilityAnalogCircuits),可实现信号调理、信号处理与信号转换
(3)可编程逻辑器件的基本结构及分类
基本结构:
与阵列、或阵列、输入/输出缓冲电路
可编程逻辑器件的分类:
SPLD、CPLD、FPGA、ISP
SPLD:
包括PROMPALPLAGAL等器件
PROM-固定与阵列和可编程或阵列各一,一般作存储
PAL-可编程与阵列+固定或阵列,与阵列可编程使输入项增多,二代的GAL可电擦写、重复编程加密
PLA-与阵列或阵列均可编程,缺陷慢速特性与价格
CPLD:
逻辑板块编程而非逻辑门编程,逻辑宏单元为基础,加上内部与或阵列和外部的输入/输出模块,简单/时序逻辑控制,扩大应用范围、扩展性
FPGA:
逻辑单元阵列结构,静态随机存取存储工艺,设计灵活、集成度高、重复编程、现场模拟调试验证
Isp器件:
E2CMOS工艺,易用、高性能、具FPGA的灵活性、高密度等特点,在系统可编程
器件的互连结构、编程特性
互连结构:
确定型-每次布线互连线相同,统计型-同功能不同布线如FPGA
编程特性:
一次可编程与重复可编程
8、PLD的分类方法(书P22),PLD的全称英文(书P20)
9、FPGA和CPLD定义和特点(书P3、4)
·FPGA的特点
类似掩膜可编辑门阵列结构
高密度,可达30,000门/片以上
可编程、高可靠
·基本结构-三类可编程资源
可编程逻辑块CLB(ConfigurableLogicBlocks)
可编程I/O块IOB(Input/OutputBlocks)-连接芯片与外部封装
可编程内部连接PI(ProgrammableInterconnect)-连接内部各CLB与IOB,实现逻辑功能
10、GLB通用逻辑块(书P31)、宏单元(书P33)
11、LIBRARY库(书P118)、ENTITY实体(书P121)、ARCHITECTUE结构体(书P123)
12、十进制加法计数器之一、之二(书P168、169)
13、三态缓冲器电路(书P170)
14、8线-3线优先编码器(书P174)
15、8位三态锁存器(书P180)
16、带异步复位功能的8位二进制加法计数器的行为描述(书P190)
17、一位全加器的数据流描述/结构体描述(书P191、192)
18、3线-8线译码器(高电平有效)SLL、PROCESS、WHEN-ELSE、CASE-WHEN(书P194)
19、8线-3线优先编码器(条件赋值语句、LOOP循环、IF条件语句)(书P196)
20、比较器(书P197)
21、4选1信号选择器、4选1数据选择器(书P198)
22、三态门电路(书P199)
23、D触发器(书P201)
24、非同步复位/置位的D触发器(书P201)
25、同步复位的D触发器、JK触发器(书P202)
26、8位数据寄存(锁存)器(书P203)
27、具有左移或右移一位\并行输入和同步复位功能的8位移位寄存器(书P204)
28、带时钟使能的十进制同步计数器、具有异步复位\同步置数功能的8421BCD码60进制同步计数器(书P205)
29、8个D触发器构成的异步计数器(书P206)
30、分频电路(书P209)
31、“01111110”序列信号发生器(书P210)
32、20位的M序列发生器(书P211)
33、“01111110”序列信号检测器(书P212)
34、四位二进制并行加法器(书P351)
35、8位二进制加法器(书P352)
36、16位锁存器、8位右移寄存器(书P356)
37、8位乘法器9(书P358)
38、8位可自加载的加法计数器(书P364)
39、PWM信号发生器(书P365)
40、有时钟使能的十进制计数器(书P367)
41、32位锁存器(书P368)
42、六进制计数器(书P372)
43、显示控制模块(书P384)
●8253可编程定时计数器
●8252可编程并行接口
●8259可编程中断控制器
●PLD硬件实现实时性与并行性
●DSP可以进行浮点数运算,但是以72K/S的运行速度
●可执行程序的实质是指指令程序
●电源和地、专用管脚不是信号
●PIA:
可编程连线阵列
●宏单元触发器可以单独编程为D、JK、T或RS触发器(书P65)
●ORP为输出布线区
●差分信号用于串行口
●系统实体不唯一,结构体可以不唯一(结构体:
功能,行为,数据,流程与结构)
●端口共有九种状态(未定义、若0、若1、高、低、高组态等)(书P133)
●8位:
-128~127;32位:
-231~231-1
●常量在运行中不变
●变量不可送入信号
●:
=只用于变量赋初值,不产生延迟
●<=端口赋初值,是变量间的信号传递,允许延时
●=是逻辑运算,表示“相等”
●变量相当于寄存器,信号相当于导线
●信号不可以两次赋值
●事件驱动,状态转换
●位数据类型取值是0或1
●上升沿一般高于下降沿(书P161)
●PROCESS执行复杂程序,PROCESS之内无顺序,PROCESS之间有顺序(书P167)
●判断正确与否:
调用程序库中的程序包(分析错误原因)
●条件信号赋值语句中表达式结果可以是数也可以是逻辑表达式
●选择信号赋值语句中选择表达式可以是信号、逻辑表达式、数
●PROCESS里是顺行语句
●奇偶校验位(看为“1”的个数,为“0”的个数)
●多个VHDL出现在PROJECT中需选出一个顶层实体(通过元件调用)
●PROCEDURE不带返回值;FUNCTION带返回值
●结构体中只能使用信号,变量不能再结构体中直接使用
●信号只能赋值一次
●PROCESS(CLK):
执行两次
●74LS373的功能:
地址锁存器(三态缓冲)
●程序包位于程序库中(书P187)
●STD_LOGIC:
标准逻辑量
4.1.1短标识符
●规则
●英文字母打头
●字符含数字、大小写字母与下划线
●下划线前后必有字母或数字
●综合仿真,不区分大小写
4.1.2扩展标识符
●反斜杠定界-\parameter_setting\
●可含图形、空格-\100$\、\poweron\
●反斜杠间可用保留字-\end\
●界定符间可数字打头-\2MCU\
●允许多个下划线-\Chip_Select_of_8255\
●区分大小写-\EDA\不同于\Eda\
●不同于短标识符-\EDA\与Eda或eda不同
4.2.1常量-constant
说明格式:
CONSTANT常量名:
数据类型:
=表达式
CONSTANTwidth:
integer:
=8;
CONSTANTVcc:
real:
=5.0;
CONSTANTDelay:
time:
=100ns;
CONSTANTPBUS:
BIT_VECTOR:
=“10110011”;
●常量值运行中不变(改变实体常量说明重新编译才能改变常量)
●程序包、实体、结构体或进程说明域中须对常量标识符、类型及常量值进行指定
●定义在程序包中的常量可由所在任何实体与结构体调用
●定义在实体内常量仅在实体内使用,定义在进程内常量仅在进程内使用
4.2.2变量-Variables
格式:
VARIABLES变量名:
数据类型约束条件:
=表达式
VARIABLESresult:
std_logic:
=’0’;
VARIABLESx,y,z:
integer;
VARIABLEScount:
integerrange0to255:
=10;
使用规则
●变量赋值是直接非预设的。
某一时刻仅包含一个值
●赋值符号用‘:
=’表示,赋值无延时
●变量不用于硬件连线与存储元件
●仿真模型中,变量用于高层次建模
●系统综合时,变量用于计算,作为索引载体与数据暂存
●进程中,变量仅适用于进程内。
变量用于进程外时需将变量赋给一个信号,即进程数据传递通过信号实现
4.2.3信号-Signal
硬件实体连接的抽象表示
格式:
SIGNAL信号名:
数据类型约束条件:
=表达式
SIGNALsys_clk:
BIT:
=’0’;-系统时钟变量
SIGNALsys_busy:
BIT:
=’0’;-系统总线状态变量
SIGNALcount:
BIT_VECTOR(7DOWNTO0);-计数器宽度
使用规则
●直接赋值符号‘:
=’,信号初始值,不产生延时
●代如赋值符号‘<=’,变量间的信号传递,允许延时,例:
T1<=T2after20ns
4.3.1标准定义的数据类型
●布尔量-BOOLEAN:
(1)二值枚举量-“真”与“假”
(2)无数量概念,只能逻辑运算不能算术运算(3)常表达信号的状态、总线控制权、仲裁情况、忙闲状态等(4)仿真时仿真工具自动对布尔量赋值情况进行检查(5)初始值一般为FAILURE
●字符-CHARACTER:
(1)编程时用单引号括起来,‘a’,‘A’不同
(2)VHDL对字母大小写不敏感,但区分字符量中的大小写,‘1’为字符(3)字符包括字母、数字及特殊字符
●字符串-STRING:
(1)双引号括起来的字符系列,如“VHDL”
(2)又称字符矢量或字符串数组(3)一般用于程序提示、结果说明等场合
●整数-INTEGER:
(1)范围-(231-1)到231-1
(2)可用进制表示(3)不能看作矢量,不能单独对某位操作(4)不用于逻辑运算,只用于算术运算(5)范围应有约束,如VARIABLEA:
INTEGERRANGE–128to128(6)可用来抽象地表达总线状态
4.3.1标准定义的数据类型
●实数-REAL:
(1)范围-1.0E+38到+1.0E+38
(2)有些数可实数表示也可整数表示如:
99与99.0,类型不同值相同(3)也称浮点型(FLOATINGTYPE),多数EDA工具不支持浮点运算
●位-BIT:
(1)通常表示信号值
(2)通常用单引号括其值,如:
TYPEBITIS(‘0’,‘1’)(3)其值‘0’,‘1’分别表示‘假’与‘真’
●时间-TIME:
(1)又称物理类型(PHYSICALTYPES)
(2)范围-(231-1)到231-1(3)内容包括整数与单位(4)一般用于仿真而不用于综合(5)单位Fs,Ps,Ns,Us,Ms,Sec,Min,Hr
●错误等级-SEVRITYLEVEL:
(1)表示电子系统工作状态
(2)错误等级:
NOTE,WARNING,ERROR,FAILURE四级(3)常用来在仿真时给开发者提供电子系统工作情况
●自然数-NATURAL与正整数-POSITIVE:
(1)自然数与正整数为整数的子集
(2)自然数是0和0以上的整数
4.3.2用户定义的数据类型
1.枚举类型-ENUMERATEDTYPE,把类型各元素枚举出来书写格式为:
TYPE数据类型名IS(元素,元素,……);
eg1:
TYPEPCI_BUSstateIS
(Idle,busbusy,write,read,Backoff);-PCI总线状态机变量
eg2:
TYPEstd_UlogicIS
(‘U’,‘X’,‘1’,‘0’,‘Z’,‘W’,‘L’,‘H’,‘-’);
未定义,强迫未知,强迫为1,强迫为0,高阻,弱未知,弱0,弱1,可忽略值
2.整数类型与实数类型-INTEGERTYPES,REALTYPES
VHDL语言标准中已定义,自定义用于特殊用途,一般格式:
TYPE数据类型名IS数据类型定义约束范围;
eg1:
TYPEdigitISINTEGERrange0TO255
3.数组(ARRAY)类型
*程序设计中,相同类型数据集合形成的数据类型,可二维和多维
*格式-TYPE数据类型名ISARRAY(1NTEGER0TO9)OFSTD_LOGIC
*数组类型在总线定义及ROM,RAM等电子系统设计的建模中应用。
*多维数组不能生成逻辑电路,EDA工具不能用多维数组进行设计综合
设计仿真,及系统建模
*多维数组要用多个范围来描述
4.记录类型-RECODETYPES,不同类型数据组织在一起形成的数据类型
格式:
TYPE数据类型ISRECORD
元素名:
数据类型名;
元素名:
数据类型名;
…
ENDRECORD;
●记录用于描述总线,通讯协议很方便。
●记录适用于仿真。
●从记录中提取元素的数据类型应用“.”。
5.文件类型-FILESTYPES,在系统环境中定义为代表文件的一类客体,可以赋值。
其值是系统文件中值的序列。
格式:
TYPE文件类型名ISFILE限制:
例:
TYPEtextISFILEOFstring;
TYPEinput-typeISFILEOFcharater
VHDL中,程序TEXTIO中有两个预定义标准文本文件
FILEinput:
textOPENread_modeIS"TSDINPUT";
FILEinput:
textOPENwritemodeIS"TSDINPUT";
6.存取类型-ACCESSTYPE,用于客体间建立联系,或对象分配或释放存储空间。
VHDL标准IEEEstd_1076的程序包TEXTIO中,定义了一个存取类型:
TYPElineISACCESSstring
表示LINE类型变量,值为指向字符串的指针。
仅有变量可以定义为存取类型:
VARIABLElinebuffer:
line;
VHDL中,变量、信号、常量、文件赋值时,类型要一致。
不同类型数据变换方法:
类型标记法、函数转换法和常数转换法
4.4.5IEEE标准数据类型“std_logic”和“std_logic_vector'
-VHDL‘93的STD_LOGIC中不定状态方便系统仿真,高阻方便双向总线的描述
-‘U’‘X’‘O’‘1’‘Z’‘W’‘L’‘H’‘-’
表示初始值,不定/未知,0,1高阻弱信号不定/未知,弱信号0,弱信号1与不可能情况
-STD_LOGIC与STD_LOGIC_VECTOR为IEEE标准化数据类型,使用时在程序中必须写出库说明语句和使用程序包集合说明语句
4.5.1注释
-目的:
保证VHDL程序可读性,位置:
程序行的末尾,连字符后
-注释非设计描述有效部分,编译后存入数据库中的部分不含注释部分
-例:
Trant<=Frame&idle&irdy&devseI-PCI总线数据传输译码逻辑之一
4.5.2数字
-两类数字表示法分为:
十进制表示法和基表示法
-十进制数表示法-格式:
十进制文字:
:
=整数[整数][指数]
其中,整数:
:
=数字或下划线连接的数字,指数:
:
=E[+]整数或E[-]整数
整数举例:
089,0,456-78,2e8,5e3。
实数举例:
12.0,0.0,3.14159,1.2E一3,2.4e+5
-二、八、十六进制数的基表示法
格式:
以基表示的数:
:
=基#基于基的整数[基于基的整数]#指数
其中,基:
:
=整数,基于基的整数:
:
=扩展数字{[下划线]扩展数字)
扩展数字:
:
=数字/字母
十六进制数中,数字用0-F共16个符号表示数字称为扩展数字。
整数举例:
十进制值数255,用基表示法为:
2#11111111#-二进制表示,8#377#-八进制表示,16#FF# -十六进制表示
浮点数举例:
16#0F#E+0,16#FFFF#E+l
5.1.1进程语句(Process)
VHDL程序中描述硬件并行工作行为最常用最基本的语句
特点:
1)进程内语句顺序执行
2)进程之间并行,可访问构造体或实体中定义的信号
3)进程启动由信号敏感表触发或WAIT语句等待触发条件成立
4)进程通信由信号来传递。
程序注释:
●提高程序可读性
●注释从"-"符号开始,到行尾结束
●注释文字不作EDA工具进行逻辑综合的依据
采用布尔方程,也可用数据流描述--用布尔方程的数据流描述法设计的8位比较器
Libraryieee:
useieee.std_logic_1164.all:
ENTITYcomparatorIS
Port(a,b:
INstd_logic_vector(7downto0);
g:
OUTstd_logic);
ENDcomparator;
ARCHITECTUREboolOFcomparatorIS
BEGIN
g<=not(a(0)xorb(0))andnot(a
(1)xorb(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 书上 PPT 整理 讲解