数字系统设计与PLD应用复习资料.docx
《数字系统设计与PLD应用复习资料.docx》由会员分享,可在线阅读,更多相关《数字系统设计与PLD应用复习资料.docx(22页珍藏版)》请在冰豆网上搜索。
数字系统设计与PLD应用复习资料
数字系统设计与PLD应用复习资料
第一章
1.名词解释(P1)
EDA:
电子设计自动化
SSI:
小规模集成电路
MSI:
中规模集成电路
LSI:
大规模集成电路
VLSI:
超大规模集成电路
ASIC:
专用集成电路
PLD:
可编程逻辑器件
2.区分数字系统和逻辑功能部件的重要标志(P1):
有没有控制部件
3.数字系统设计人员从事的工作可以分为三种(P2):
1)选用通用集成电路芯片构成系统
2)应用可编程逻辑器件实现数字系统
3)设计专用集成电路(单片系统)
4.数字系统的基本模型(P3~P5)
1)数字系统动态模型
采用传统的数字电路描述方法建立的系统模型称为数字系统的动态模型。
具体地说,用状态转换图、状态转换表、状态方程组、输出方程组、时序图、真值表、卡诺图等描述工具可以建立数字系统的动态模型。
2)数字系统的算法模型
设计数字系统的传统方法是建立在系统动态模型的基础上的,即用真值表、卡诺图、状态转换图、状态转换表、时序图、状态方程和输出函数方程建来建立系统模型。
系统的算法模型两大特征:
1>含有若干子运算,这些子运算实现对欲处理数据或信息的传输、存储或加工处理
2>具有相应的控制序列,控制子运算按一定的规律有序地进行
5.数字系统的基本结构(P8)
工作过程:
控制单元根据外部输入控制信号及反映数据处理单元当前工作状况的反馈应答信号,发出对数据处理单元的控制序列信号;在此控制信号的作用下,数据处理单元对待处理的输入数据进行分解、组合、传输、存储和变换,产生相应的输出数据信号,并向控制单元送去反馈应答信号,用于表明它当前的工作状态和处理数据的结果。
控制单元在收到反馈应答信号后,再决定发出新的控制信号,使数据处理单元进行新一轮的数据处理。
控制单元和数据处理单元密切配合、协调工作,称为一个实现预定功能的有机整体。
6.数字系统设计的基本步骤(P10)
1)系统逻辑功能的确定
2)系统的描述
3)算法的设计
4)电路结构选择
5)电路的实现
7.数字系统设计方法
1)自上而下的设计方法(P15)
自上而下的设计过程表现为由高一级(或最高层次)描述变换成最低一级(或最低层次)描述的过程。
2)自下而上的设计方法(P16)
根据用户要求,对现有的器件或较小的系统或相似的系统加以修改、扩大或相互连接,直到构成满足用户要求的新系统为止。
它是一种多层次的设计方法,从现成的数字器件或子系统开始的。
8.利用DSP串口通信设计电路(P19)
第二章
1.算法推导的主要考虑因素(P29)
1)逻辑指标。
这是数字系统最后总要的指标,表达系统应完成的逻辑功能
2)非逻辑指标。
系指逻辑功能以外的其他非逻辑约束因素
2.硬件结构对算法推导的影响(P30)
1)采用不同规模、不同性质的器件时,将有不同的算法设计对策
2)系统算法设计与软件算法设计的区别
3.算法设计的方法:
跟踪法、归纳法、划分法、解析法、综合法(P30)
4.三种常用的算法结构:
顺序算法结构、并行算法结构、流水线算法结构(P42)
5.三种算法的执行时间计算(P42~P46):
1)顺序算法结构执行时间
假设待处理数据是单个数据D,它完成算法流程需要经历
段,每段平均时间是
,则所需要的运行时间为
如果含有
个元素的数据流,则总的运算时间为
2)并行算法结构执行时间
如果待处理数据是单个元素
,
是并行算法流程经历的段数,则运行时间
如果含有
个元素的数据流输入,则总的运算时间为
例:
计算
个数据排队电路采用顺序结构算法和并行结构算法的运行时间。
假设顺序结构中每个
与一个
比较且存放需经历
段,每段平均时间
。
解:
根据顺序算法结构的含义,可得到输入一个
的最长运行时间为:
(
)
输入R个数据元素总的运行时间为:
根据并行结构算法的特点,输入R个数据元素的总的运行时间为:
(
)
3)流水线算法结构运行时间
若系统输入数据流的待处理数据元素为
个,每一元素运算有
段,每段经历时间为
,则流水线算法结构运行时间:
例:
某系统待处理结构元素为100个,每个元素需进行16段运算,且每段所需运算时间为0.2us,求顺序算法结构和流水线算法结构运行时间。
顺序算法:
流水线算法:
6.实现系统的途径及特点(P47)
1)用市售标准的SSI、MSI、和LSI构成(最经典,为国内广大设计者采用)
2)以微机为核心、辅以必要的辅助器件,在固化于存储器内的软件控制下实现系统的功能。
(价格便宜,实现方便,适用于运行速度要求不高的场合)
3)将整个系统配置在一片或数片PLD芯片内。
(低廉、运行速度高,体积小、易于修改设计)
4)研制相应的ASIC,构成单片系统。
(是系统设计师面临的新技术和新挑战,将得到越来越多应用)
7.器件选择考虑因素(P47)
1)满足逻辑约束的要求
2)易于控制
3)满足非逻辑约束的要求
1>性能因素:
运行速度、可靠性、可测试性
2>物理因素:
包括尺寸、重量、功耗、散热、安装和抗震等方面
3>经济因素:
设计成本、制造成本、维护成本和运行成本等
8.数据处理单元逻辑电路图(P51)
9.系统控制方式:
实质是控制系统中数据处理单元以预定时序进行工作。
包括集中控制、分散控制、半集中控制
10.控制器的基本结构(P55)
输入信号:
外部对系统的输入和数据处理单元所产生的条件反馈信息
输出信号:
有对数据处理单元的控制信号和对外部的输出
11.系统同步(P56):
1)控制器与外部输入信号之间的同步,即异步输入信号的同步化
2)系统控制器的输出同步
12.系统控制器同步的目的(P56):
使得系统控制器毫无遗漏的,正确地接收这些信号,并根据所有这些输入信号做出正确的响应,向数据处理单元发出相应的控制信号,同时向系统输出必要的信息,使整个系统配合密切、协调一致的工作。
13.算法状态机图(ASM图)与算法流程图关系(P58)
1)应用场合的区别:
算法流程图仅规定操作顺序,不严格规定各操作时间及操作之间的关系。
ASM图用来描述控制器在不同时间内应完成的一系列操作,指出控制器状态转换,转换条件及控制器的输出。
2)算法流程图是一种事件驱动的流程图,而ASM图已具体为时钟CP驱动的流程图,前者的工作块可能对应ASM图中的一个或几个状态快,即控制器的状态。
ASM图状态快的名称和二进制代码分别标注在状态快的左、右上角。
3)ASM图是用以描述控制器控制过程的,它强调的不是系统进行的操作,而是控制器为进行这些操作应该产生的对数据处理单元的控制信号或对系统外部的输出,为此在ASM图的状态块中,往往不再说明操作,只明确表明应有的输出。
第三章
1.VHDL语言的含义、基本结构、作用(P83)
含义:
超高速集成电路硬件描述语言
基本结构:
实体说明、结构体
实体说明作用:
定义实体与外部的连接关系
结构体作用:
描述设计实体的逻辑功能或内部电路的结构,从而建立设计实体输出与输入之间的关系。
2.顺序语句与并行语句的应用场合(P91、P94)
1)顺序语句:
可用于进程和子程序中,为算法描述提供了方便。
2)并行语句:
用于结构体中。
3.断言语句起调试的作用,既可以作为顺序语句,有可以作为并行语句。
第四章
1.用PLD实现数字系统的基本过程(P155)
2.PLD的基本组成(P157)
3.FPGA的含义:
现场可编辑门阵列
第五章
1.HDPLD(高密度可编程逻辑器件)分类(P192)
1)按片内结构分类
1>阵列结构扩展型:
这类器件是在PAL或GAL结构的基础上加以扩展或改进而成。
它的基本资源是多个SPLD的集合,经可编程互连结构来组成更大规模的单片系统。
2>逻辑单元型:
由许多基本逻辑单元组成,因而它们本质上是这些逻辑单元的矩阵
2)按连线资源分类
1>确定型连线结构:
这类器件内部有同样长度的连线,因此提供了具有固定延时的通路,信号通过器件的时延固定且可预知。
2>统计型连线结构:
具有较复杂的可编程连线资源,内部包含多种不同长度的金属连线,从而使片内互联十分灵活,但由于同一个逻辑功能可以用不同的连接方式来实现,所以每次编程后连线不尽相同。
3)按照编程技术分类
1>在系统可编程技术(isp):
具有isp功能的器件在下载时无需专门的编程器,可直接在已经制成的系统(目标系统)中或印制板上对芯片下载,为系统设计带来很大灵活性
2>在电路配置技术(icr):
具备icr功能的器件也可直接在目标系统中或印制电路板上编程,无需专门的编程器,但系统掉电后,芯片的编程信息会丢失。
3>一次性编程技术:
具备这种编程技术的HDPLD采用反熔丝制造工艺,一旦编程就不可改变,特别适用于高可靠性使用场合。
2.CPLD:
复杂可编程逻辑器件
3.CPLD与FPGA的区别
1)CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。
换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
2)CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
3)在编程上FPGA比CPLD具有更大的灵活性。
CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。
4)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
5)CPLD比FPGA使用起来更方便。
CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。
而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
6)CPLD的速度比FPGA快,并且具有较大的时间可预测性。
这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
7)在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。
CPLD又可分为在编程器上编程和在系统编程两类。
FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。
其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
8)CPLD保密性好,FPGA保密性差。
9)一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
随着复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市常许多设计人员已经感受到CPLD容易使用。
时序可预测和速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC。
现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处。
4.HDPLD开发系统的基本工作流程:
设计输入、设计处理、设计校验和逻辑仿真、变成目标文件产生、器件下载配置
综合题
1.序列发生器
采用状态机方法设计:
长度为P的序列发生器可以用状态数为P的状态机来描述,每个状态的输出对应的数码。
流程如图:
VHDL程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSGIS
PORT(CLK:
INSTD_LOGIC;
Z:
OUTSTD_LOGIC);
ENDSG;
ARCHITECTURERTLOFSGIS
TYPESTATE_SPACEIS(S0,S1,S2,S3,S4,S5,S6);
SIGNALSTATE:
STATE_SPACE;
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
CASESTATEIS
WHENS0=>
STATE<=S1;
Z<='1';
WHENS1=>
STATE<=S2;
Z<='1';
WHENS2=>
STATE<=S3;
Z<='0';
WHENS3=>
STATE<=S4;
Z<='0';
WHENS4=>
STATE<=S5;
Z<='1';
WHENS5=>
STATE<=S6;
Z<='0';
WHENS6=>
STATE<=S0;
Z<='1';
ENDCASE;
ENDIF;
ENDPROCESS;
ENDRTL;
采用计数器和数据选择器实现序列发生器:
VHDL语言实现8选1数据选择器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.NUMERIC_STD.ALL;
ENTITYMUX81IS
PORT(A:
INSTD_LOGIC_VECTOR(2DOWNTO0);
D7,D6,D5,D4,D3,D2,D1,D0:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC);
ENDMUX81;
ARCHITECTUREBEHOFMUX81IS
BEGIN
Y<=D0WHENA="000"ELSE
D1WHENA="001"ELSE
D2WHENA="010"ELSE
D3WHENA="011"ELSE
D4WHENA="100"ELSE
D5WHENA="101"ELSE
D6WHENA="110"ELSE
D7;
ENDBEH;
VHDL语言实现七进制计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.NUMERIC_STD.ALL;
ENTITYCOUNT7IS
PORT(CLK:
INSTD_LOGIC;
Y:
BUFFERSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOUNT7;
ARCHITECTUREBEHOFCOUNT7IS
BEGIN
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFY="110"THEN
Y<="000";
ELSE
Y<=Y+1;
ENDIF;
ENDIF;
ENDPROCESS;
ENDBEH;
2.控制器的设计
根据ASM图编写VHDL程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCtIS
PORT(CLK:
INSTD_LOGIC;
A,B,X,Y,R,P:
INSTD_LOGIC;
RESET,Z1,Z2,Z3,Z4,Z5,Z6,Z7,COUNT,CODM:
OUTSTD_LOGIC;
RS:
INSTD_LOGIC);
ENDCt;
ARCHITECTUREBEHOFCtIS
TYPESTATE_SPACEIS(S0,S1,S2,S3,S4,S5,S6);
SIGNALstate:
STATE_SPACE;
BEGIN
PROCESS(CLK,RESET)
BEGIN
IFRS='0'THEN
state<=S0;
ELSIF(CLK'EVENTANDCLK='1')THEN
CASEstateIS
WHENS0=>
IF(A='1'ANDB='1')THEN
state<=S2;
ELSIF(A='1'ANDB='0')THEN
state<=S1;
ELSE
state<=S0;
ENDIF;
WHENS1=>
state<=S2;
WHENS2=>
IFP='1'THEN
state<=S4;
ELSE
state<=S3;
ENDIF;
WHENS3=>
IFR='1'THEN
state<=S1;
ELSE
state<=S5;
ENDIF;
WHENS4=>
IFR='1'THEN
state<=S0;
ELSE
state<=S4;
ENDIF;
WHENS5=>
IFX=YTHEN
state<=S5;
ELSIFX>YTHEN
state<=S6;
ELSE
state<=S3;
ENDIF;
WHENS6=>
state<=S0;
ENDCASE;
ENDIF;
ENDPROCESS;
Z1<='1'WHENstate=S1ELSE'0';
Z2<='1'WHENstate=S2ELSE'0';
Z3<='1'WHENstate=S3ELSE'0';
Z4<='1'WHENstate=S4ELSE'0';
Z5<='1'WHENstate=S5ELSE'0';
Z6<='1'WHENstate=S6ELSE'0';
Z7<='1'WHENstate=S5ELSE'0';
COUNT<='1'WHENstate=S3ANDR='0'ELSE'0';
CODM<='1'WHENstate=S4ANDR='1'ELSE'0';
RESET<='0'WHENstate=S0ELSE'1';
ENDBEH;
电路图设计:
1)根据ASM图画出状态转移图
2)根据状态转移图画出卡诺图
Q2Q1
Q0
00
01
11
10
0
S0
—
S5
S2
1
S1
S4
S6
S3
Q2Q1
Q0
00
01
11
10
0
A·B
—
0
P
1
1
0
1
R
Q2Q1
Q0
00
01
11
10
0
0
—
XP
1
0
R
1
Q2Q1
Q0
00
01
11
10
0
A·
—
1
1
1
R
1
3)根据卡诺图写出置数端的函数方程
T2=A·B·S0+1·S1+P·S2+R·S3+0·S4+0·S5+1·S6
=A·B·D0+1·D1+P·D4+R·D5+0·D3+0·D6+1·D7
T1=0·S0+0·S1+P·S2+
·S3+R·S4+(X =0·D0+0·D1+P·D4+
·D5+R·D3+(XT0=A·
·S0+1·S1+1·S2+
·S3+R·S4+(
)·S5+1·S6
=A·
·D0+1·D1+1·D4+
·D5+R·D3+(
)·D6+1·D7
4)写出控制器输出信号方程
RESET=
Z1=S1
Z2=S2
Z3=S3
COUT=S3·
(条件输出)
Z4=S4
CODM=S4·R(条件输出)
Z5=Z7=S5
Z6=S6
5)根据函数方程连线