版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1现代数字系统设计理论与技术(EDA技术理论与应用)电子设计自动化技术研究所
王祖强电话箱:wzq@办公室:中心校区信息楼3182课程背景
1.EDA技术的重要性2.产业概况电路设计:
模拟系统设计数字系统设计
传统的数字电路设计方法基于微处理器的设计方法
基于EDA技术的设计方法混合系统设计3课程学习主要内容
1.现代数字系统设计方法2.SOPC技术3.器件、语言与EDA工具软件器件:可编程逻辑器件(PLD)语言:VHDL和VerilogHDL工具软件:PLD设计工具(1)数字系统设计概述(2)数字系统算法描述(3)数字系统设计步骤(4)仿真、综合与下载(5)可测性设计(6)软硬件协同设计技术参考书:现代数字系统设计
侯伯亨等西安电子科技大学出版社
(1)SOPC技术基本知识(包括niosii处理器结构及软件编程、avalon总线、外设及DE2平台的应用)
(2)SOPC技术应用(包括SOPCBuilder、DSPBuilder的使用方法等)
(3)SOPC技术高级应用(包括操作系统嵌入、协议栈嵌入、自定义指令等)参考书:SOPC技术与应用江国强编著机械工业出版社5主要参考书籍
现代数字系统设计
侯伯亨等西安电子科技大学出版社SOPC技术与应用江国强编著机械工业出版社FPGA现代数字系统设计马建国等清华大学出版社数字集成电路——电路、系统与设计周润德等译电子工业出版社5.数字集成系统的结构化设计与高层次综合王志华等清华大学出版社6.SoC设计方法与实现郭炜等电子工业出版社7.专用集成电路设计实用教程虞希清等浙江大学出版社6第1章数字系统设计概述1.1数字系统的基本概念
1.1.1什么是数字系统是对数字信息进行存储、传输和处理的系统1.1.2数字系统和模拟系统的比较
稳定性精确性可靠性模块化71.1.3数字系统的硬件实现1.微控制器实现
2.可编程逻辑器件实现
3.专用集成电路实现
1.1.4集成电路技术的发展数字系统实现从传统的板上系统(System_on_Board)
→当前的片上系统(System_on_a_Chip)
三次变革:
1.第一次变革(20世纪70年代):IC制造与封装测试的分离;
2.
第二次变革(20世纪80年代):代加工(foundry)与IC设计的分离;
3.第三次变革(20世纪90年代):设计、制造、封装、测试的四业分离。81.1.5数字系统与EDA技术行为级PLD开发模拟IC设计PCB设计版图数字IC设计综合和仿真混合IC设计逻辑级EDA设计技术、工具1.EDA技术的应用91.1.5数字系统与EDA技术2.现代EDA技术的主要特点
●用HDL进行系统描述●与工艺无关,语言的标准化和描述能力●适合大规模系统设计,可重用设计
●支持自上而下的设计方法、高层综合和优化
●并行工程(CE)设计,设计周期短,设计效率高
●开放性和标准化
●多种多厂商EDA工具●标准的软件平台框架101.1.5数字系统与EDA技术3.SoC(SOPC)与IP核SoC:System-On-a-Chip在一个芯片上集成一个系统111.1.5数字系统与EDA技术◆IP:IntellectualProperty◆
类型类型:软核软核通常以可综合的HDL提供,因此具有较高的灵活性,并与具体的实现工艺无关。其主要缺点是缺乏对时序、面积和功耗的预见性。由于软核是以源代码的形式提供,尽管源代码可以采用加密方法,但其知识产权保护问题不容忽视。硬核IP硬核是基于半导体工艺的物理设计,已有固定的拓扑布局和具体工艺,并已经过工艺验证,具有可保证的性能。其提供给用户的形式是电路物理结构掩模版图和全套工艺文件,是可以拿来就用的全套技术。
硬核缺乏灵活性、可移植性差但由于无须提供寄存器传输级(RTL)文件,易于实现IP保护固核介于软核和硬核之间IP固核除了完成软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般以门级电路网表的形式提供给用户。◆典型的IP核
MPU,DSP,Memory,Ethernet,USB,PCI,IEEE1394等等131.2数字系统设计方法1.2.1数字系统设计描述观察、分析和处理一个复杂数字系统时,通常采用分层的方法,实践证明这是一种非常有效的方法,其原因是:●分层的方法反映了事物的内部联系:大化小、复杂变简单;●有助于控制复杂度:隐藏细节,减小每次处理事物的数量;●设计模块化:便于对系统进行划分,简化系统的实现和调试。1.分层描述的优点14(1)描述域:数字系统设计信息的描述可在三个域进行:行为域、结构域、物理域。2.描述域和描述层次行为域:强调的是行为,它说明电路的功能,即电路的输入一输出的关系,但与该行为的实现无关,也可以说如何实现在该域中被隐蔽起来了;结构域:
描述组成电路的各部件及部件间的拓扑连接关系,即互连功能部件的层次关系;物理域:描述生产和制造物理实体所需要的信息(如几何布局或拓扑约束等),即空间的物理布局和物理特性,没有任何功能部件的概念。15(2)描述层次:描述层次一般可以从低至高分为五级:电路级、逻辑级、寄存器传输级、算法级和系统级,常用电子设计Y图表示。实际应用时,可根据系统的复杂程度适当舍取。电子设计Y图16电路级:其主要构件是晶体管、电阻等。•该层的功能通常用微分方程或电流电压关系方程来描述;•该层的结构描述说明晶体管和电阻元件的符号定义及其拓扑连接关系;•该层的物理描述则说明由晶体管及物理连线几何图形构成的掩膜版图。17门级:主要构件是门、触发器等。•该层的功能通常用布尔表达式和时序状态方程来描述;•该层的结构描述说明各种类型门单元和触发器单元的符号定义及其拓扑连接关系;•该层的物理描述说明由门单元、触发器和物理连线几何布局。
EDA软件可以在门级电路描述的基础上,通过功能和时序仿真,利用布局布线工具实现版图。18RTL级设计:用RTL硬件描述语言描述电路,进行RTL仿真,利用逻辑综合工具将RTL级描述转化为门级网表,再利用自动布局布线工具来实现所需版图。随设计规模、复杂性的增加,门级设计方法已无法适应。寄存器传输级:主要构件是算术/逻辑单元、寄存器等。•该层的功能通常用时序状态图、RTL语句和布尔表达式方程来描述;•该层的结构描述说明算术/逻辑单元、寄存器等的符号定义及其结构连接关系;•该层的物理描述说明算术/逻辑单元、寄存器、物理连线构成几何布局。19算法级:主要构件是由寄存器级单元构成的乘法器、控制器等硬件功能模块。•该层的功能通常用算法过程描述;•该层的结构描述说明乘法器、控制器等硬件功能模块的符号定义及其结构连接关系;•该层的物理描述说明硬件功能模块、物理连线构成的几何布局。20系统级:主要构件有CPU、存储器、I/O接口•该层的功能描述就是指系统规格;•该层的结构描述是指CPU、存储器、I/O接口等的符号定义及其结构连接关系;•该层的物理描述是由CPU、存储器、I/O接口等硬件功能模块构成的电路版图的物理划分。21(3)行为域、结构域和物理域之间的关系
综合(Synthesis)与分析(Analysis):综合是一个设计过程,是从行为域向结构域的转换过程;分析则是与综合相反的过程。
抽象(Abstraction)与细化(Refinement)抽象是从物理域向行为域的转换过程;细化是与抽象相反的过程。
生成(Generation)与提取(Extraction)生成是从结构域向物理域的转换过程;提取是与生成相反的过程。221.2.2数字系统常用的设计方法自底向上的设计方法自关键部件开始设计的方法系统信息流驱动设计的方法自顶向下的设计方法23何谓顶?顶——系统的功能何谓底?底——最基本的元、器件,甚至是版图自顶向下的设计方法器件级描述系统级描述系统设计功能级描述逻辑设计描述过程是一种将系统分成几个不同级别,在不同级别中分别采用不同描述方法的设计。自顶向下设计的描述通常分为系统级描述、功能级描述和器件级描述三个阶段。24器件级描述系统级描述系统设计功能级描述逻辑设计指对系统总的技术指标的描述,这是最高一级的描述,由此导出的实现系统功能的方法也是系统功能的一种描述。实质上就是逻辑框图,它说明了系统经分解后各功能模块的组成和相互联系。指详细的逻辑电路图,它详细地给出了实际系统的单元电路及它们之间的连线。在逻辑设计阶段中,这是最低级别的描述。2526自顶向下的设计方法的优点•
尽量运用概念(抽象)描述、分析设计对象,不过早地考虑具体的电路、元器件和工艺。
•
抓住主要矛盾,不纠缠在具体细节上。27自底向上的设计方法它是一种多层次的设计方法。这种方法从现成的数字器件或子系统开始,根据用户要求,对现有的组件、较小系统或相似系统加以修改、扩大和相互联接,直到构成用户要求的新系统为止。设计过程设计验证修改设计再验证优点:设计者凭自己的智慧和经验进行设计和加以修改,可以充分利用已有设计成果,较快地设计出所要求的系统,设计成本较低。缺点:在进行底层设计时,缺乏对整个系统总体性能的把握。其系统结构有时不是最佳的。随着系统规模和复杂度的提高,其缺点越来越突出。2829自关键部件开始设计的方法当一个设计者在设计的开始阶段可以作出判断:待设计系统中,必然要配置某个决定整个系统性能和结构的关键或核心部件,这一部件的性能、价格将决定这种系统结构是否可行。此时,该设计可从这一关键或核心部件开始进行设计。特点:这种方法实际上是自顶向下和自底向上两种方法的结合和变形。自顶向下地考虑系统可能采用的方案和总体结构,在关键部件设计完成之后,配以适当的辅助电路和控制电路,从而实现整个系统。3031系统信息流驱动设计的方法是根据数据处理单元的数据流或根据控制单元的控制流的状况和流向进行系统设计方法。数据处理单元数据流系统信息流控制单元控制流系统数据流驱动设计系统控制流驱动设计32系统数据流驱动设计以数据的流程(即待处理数据所进行的各种变换)为思路来推动系统设计而进行的设计方法。系统控制流驱动设计以控制过程为系统设计的中心。即设计者由控制单元应该实施的控制过程入手,确定系统控制流程的设计方法。33举例1:试设计一个数据采集系统:M1,M2,……,M8是8路模拟量;N1和N2是两路8位数字量;OUT是系统的串行输出端,它以0.1秒输出一个记录。每个记录有Ai、N1和N2三个8位串行数字量组成,其中Ai与模拟量Mi对应。每8个记录依次输出M1~M8一次。控制单元地址地址控制控制模拟开关8选1M1M2M8…A/D(8位)MUXP/S(8位)MiAiN1N2D0~D78888OUT数据采集系统34举例2:某学校有一台备用交流发电机。该机在市电突然发生停电故障时应立即启动并发电,以确保学校有关部门继续供电。该发电机是以柴油为燃料的。按以上要求设计一个发电机控制系统。对发电机的控制过程是:在市电停电时自动启动,启动后2分钟测量发电机的转速,如果转速未达到规定值则告警。反之,进入正常发电阶段,此时应不断测量转速和输出电压,依次调整供油量,使发电机输出的交流电压和频率均稳定在某一定值上;如果转速或输出电压发生异常,则告警,并在3分钟内停机。备用发电机的控制流程图35备用发电机的控制流程图市电停开始发出启动信号2分钟到测量转速合格供适当油量转速电压合格告警3分钟到停机告警yesnonoyesnoyesnoyesyesno36正向设计自上而下设计流程系统描述功能设计逻辑设计电路设计版图设计芯片制造封装测试芯片规划:功能,性能,功耗,成本,尺寸,工艺行为特性:时序图,状态机和模块连接图逻辑结构:综合和优化设计结果晶体管级:元件的电性能物理设计:几何表示流片:工艺线上加工已验证的版图设计结果测试是否符合设计规划37逆向设计辅助的设计方法设计流程已有芯片功能图逻辑图正向设计原理图芯片版图实现/改进芯片38第2章数字系统的基本模型和结构
2.1数字系统的基本模型在设计数字系统时,一般采用数字系统的动态模型和算法模型。数字系统的动态模型是指在数字逻辑设计中,采用传统的状态转换图,状态转换表,状态方程,输出方程,时序图,真值表,卡诺图等描述工具的数字系统称为动态模型。1.数字系统的动态模型392.数字系统的算法模型
数字系统的算法模型的基本思想是将系统实现的功能看做应完成的一种运算。算法模型通常有以下两大特征:
(1)含有若干个子运算:子运算实现对处理数据或信息的传输、存贮和处理。
(2)具有相应的控制序列:控制子运算按一定的规律有序进行。图2-1数字系统结构框图存储部件处理部件控制单元输出部件输入部件逻辑系统数据处理单元402.2数字系统的基本结构前已述及,所谓数字系统,指的是具有存储、传输和处理数字信息功能的逻辑子系统的集合体。
数字系统的设计,涉及机、光、电、化学、经济学等学科各类工程技术问题,但从本质上看,其核心问题仍是逻辑设计问题。受控单元41数字系统基本结构数据处理单元控制单元控制序列信号反馈应答信号待处理输入数据外部输入控制信号处理后输出数据输出控制信号数据流控制流控制单元用来产生控制信号序列,以决定何时进行何种数据运算。工作过程发出控制信号->数据处理->处理后输出数据和反馈信号->发出新的控制信号->……数据处理单元组合逻辑电路:完成数据运算数据存储器:保存运算数据和运算结果43第3章数字系统的算法描述
对数字系统进行算法描述时,常用的算法包括:算法流程图、算法状态机图(ASM图)和助记状态图(MDS图)。高级语言编写程序:
画出程序流程图(框图)程序编写
这里的程序流程图(框图)实际上就是一种算法描述的方法443.1算法流程图
算法流程图是描述数字系统非常有效的工具。3.1.1算法流程图的符号1.启动框与结束框启动结束452.工作框(A)
CTR0D3D2D1D0CrQ3Q2Q1Q0CPCTR(B)
D3D2D1D0LDQ3Q2Q1Q0CPCTR
0000(C)工作块与硬件实现的对应关系工作框●工作框的表示方法●和硬件电路的对应关系46工作块与硬件实现的对应关系RbBRmM(A)CPBMDDQQRbRm(B)47CNT=8?CNT0A1.A0CNTCNT+1FD0FD1FD001001NOYES3.判断框●判断框的表示方法●框内给出判断条件●2个以上分支的表示48R0CNT=4?NOYES条件输出框BD4.条件输出框●条件输出框的表示符号●一定与判断框的一个分支相连●可以描述硬件操作的并发性,即与判断结果同时发生49设计一个带极性的8位二进制数的补码变换器,试画出该变换器的逻辑框图和算法流程图。算法一:本例采用移位变换型的算法其规则为:正数的补码等于原码;负数的补码其极性位不变,数值位求反加1。补码变换器的示意图如下图所示3.1.2算法流程图举例doneA补码变换器startB88图中A=asa6a5…a0
B=bsb6b5…b050算法描述:利用移位寄存器按如下步骤将A变换为补码Bas=0,直接输出as=1,对ai依次移位(低位开始)进行判断,从第一个1后的下一位求反as不求反51开始as=1REG右移,cnt+1cnt=8SREG右移,位求反,cnt+1SR=1等待,done=1yesnoST=1noyesnoyesnonoyesyesREGA,清cntcnt=7cnt=7noyes算法流程图52逻辑框图作业:试使用其他算法描述该题53
ASM图(AlgorithmicStateMachineChart)是硬件算法的符号表示方法,可以方便地表示数字系统的时序操作。ASM图不同于算法流程图:算法流程图是一种事件驱动的流程图;而ASM图是一种时钟驱动的流程图。算法流程图描述的是系统的操作;而ASM图是用来描述控制器的控制过程(即控制器的状态转换、转换条件以及控制器的输出等),它强调的是为执行操作应该产生的对数据处理单元的控制信号或系统外部的输出。3.2算法状态机图(ASM图)3.2.1算法流程图和算法状态机图的区别
54某数字系统的部分算法流程图及ASM图C1=1x=n?C2=101S000S101(b)ASM图x←x+1x=n?RD←
D01(a)算法流程图553.2.2ASM图的表示符号
操作内容状态名称状态编码(a)状态框判断条件判断条件(b)判断框输出内容(c)条件输出框ASM图的基本图形符号ASM图由三个基本图形符号组成:状态框、判断框和条件输出框,如下图所示。
1.ASM图的基本图形符号56操作内容状态名称状态编码(a)状态框
ASM图状态框
是一个具有进口和出口的矩形框,用来代表系统的一个状态,如图(a)所示。状态框内定义在此状态实现的寄存器传输操作和输出,框外的左上方标明状态名称,右上方可以写上状态的编码。57(b)
判断框
ASM图判断框又称为条件分支框,用单入口双出口的菱形框或单入口多出口的多边形表示,如上图所示。框中内容是被检验的判别变量和判别条件。其中的判别变量可以是状态变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用可以同等重要,也可以有优先级顺序。判断条件判断条件58(c)条件输出框
ASM图条件输出框用平行四边形表示,它的入口必须来自判断框的某一分支,如上图所示。条件输出框内所规定的操作必须在与之相连的判断框内的判断条件满足时才进行。注意:条件输出框不是控制器的一个状态。输出内容来自判断框的一个分支59一个ASM块表示一个时钟周期内的系统状态。一个ASM块必定包含一个状态框且只允许包含一个状态框,与此状态框相连的若干个判断框和条件输出框也属于该ASM块,如图(a)虚线框所示。仅含有一个状态框的ASM块是一个简单块,如图(b)所示。
一个ASM图可以由若干个ASM块组成ASM块cn←0(b)(a)xycn←0………cn←cn+1S0S1S2S300011011S0002.ASM块◆ASM图具有时间序列。
ASM图状态由现态转到次态的这种状态改变是在时钟信号的控制下实现的;ASM图中的每一个ASM块都在状态框和条件输出框内列出了一个时钟脉冲周期应实现的操作,这些操作均在数据处理器中完成,状态的变化则在控制器中实现。61◆由算法流程图到ASM图:
算法流程图规定了为完成某项设计任务系统应进行的判断和操作,以及判断和操作的顺序;ASM图规定了为完成这些判断和操作顺序所需的时间和控制器应输出的信号。由算法流程图导出ASM图的关键是安排状态。◆安排状态注意的问题:
①在算法的起点安排一个状态;
②
为不能同时实现的寄存器操作分配不同的状态;
③在受寄存器操作影响的判断处安排一个状态。3.2.3ASM图的建立算法流程图->数据处理单元控制序列->ASM图62◆举例:设计一个串行数据接收器,接收RS232标准编码的串行
数据,并输出接收到的数据。
解:RS232数据编码的格式是:
起始位(1bit)+数据位(8bit)+奇偶校验位(1bit)+停止位(1bit)其中,起始位为低有效。令P为奇偶误差标志信号,高有效(即P=1表示检测到奇偶误差);
M为输出标志信号,高有效(即M=1表示输出信号有效);R为接收数据寄存器;
COUNT是记录接收到几位数据的计数器。串行数据接收器的算法流程图如图(a)所示,与其对应的ASM图如图(b)所示。63开始起始信号出现收到8位信息存在奇偶误差COUNT←0,M←0,P←0R←SR(R)COUNT←COUNT+10M←1,P←1M←111100(a)串行数据接收器算法流程图C1C2C3011100S00M←1,P←1R←SR(R)COUNT←COUNT+1M←1COUNT←0,M←0,P←0S11(b)串行数据接收器的ASM图ASM图中的C1、C2、C3分别与算法流程图条件框中的条件相对应;S0状态框表示在算法的起点安排了一个状态;S1状态框表示清零后的操作和比较操作不在一个状态完成。P为奇偶误差标志信号,高有效;M为输出标志信号,高有效;R为接收数据寄存器;COUNT是记录接收到几位数据的计数器。64
①适用于同步电路;②
状态框之间的时间约定;③ASM图是时间驱动的,一个ASM块中的各个操作和从一种状态到另一种状态的转换均发生在时钟的同一个边沿。④异步输入信号的处理:对异步输入信号需要进行同步化处理。异步信号的同步化电路如图所示(图中将同步化时间确定在时钟上升沿)。注意:算法流程图与ASM图在时间概念上的区别
3.2.3使用ASM图应注意的问题同步化电路&&同步化输出qDcpQ异步输入x系统时钟yx65Si表示状态Si表示当系统时钟的有效沿到来时,状态从Si无条件地转换到Sj。SiSj表示在满足条件T的情况下,且系统时钟的有效沿到来时,状态从Si转换到Sj;转换条件T可以是一个变量,也可以是一个复杂的布尔代数表达式。TSiSj3.3.1MDS图符号3.3助记状态图(MDS图)助记状态图即备有记忆文挡的状态图(MDS图)
(MemonicDocumentedStateDiagrams)。它是1980年由美国人William.Fletcher提出的一种系统设计方法。67表示进入状态Si时,输出信号Z变为有效;若Z的有效电平已经确定,则可在Z旁边注明。例如,Z为高有效,则可用Z=H↑来代替Z↑。Z↑Si表示进入状态Si时,输出信号Z变为无效;若Z的有效电平已经确定,则可在Z旁边注明。例如,Z为高有效,则可用Z=H↓来代替Z↓。Z↓Si表示进入状态Si时,输出信号Z变为有效;退出状态Si时,Z变为无效。若Z的有效电平已确定,可在Z旁边注明。例如,Z为高有效,则可用Z=H↑↓来代替Z↑↓。Z↑↓Si表示如果条件T满足,则进入状态Si时,输出信号Z变为有效;退出状态Si时,Z变为无效。Z↑↓=Si·TSi表示T是一个异步输入,而Si是在异步输入T的作用下才退出这一状态。TSi683.3.2MDS图的建立
ASM图
可以作为系统方案的最终结果来直接设计电路,也可以作为阶段性成果,转换成MDS图的控制器。
由ASM图导出MDS图的原则:(1)ASM图的一个状态框对应于MDS图的一个状态圆:两个状态圆之间只允许存在一个异步输入信号,当两个状态圆之间多余一个异步输入信号时,必须增加状态圆,以免丢失异步输入信号;两个状态框之间若存在前后连续的多个判断框,则表示判断条件同时满足时,转入下一个状态圆。(2)ASM图的判断框对应于MDS图中的分支:其中判断变量是转换条件或分支条件的一部分或全部。(3)ASM图中的条件输出和MDS图中的条件输出相对应:条件输出信号标注在当前状态圆旁边。(4)ASM图状态框上的信息就是MDS图中对应的状态输出。69例题1ASM图和MDS之间的转换ASM图MDS图(A)(B)START?YESNO计数器复位执行ABSTARTSTARTCR↑↓OPR↑↓70例题2ASM图和MDS之间的转换71注:A态返回到A态时,有一条件输出:当X=0,CP=0时,RUN有效。到MDS图例题3ASM图和MDS之间的转换72例题4自动交通控制系统的设计设计任务
:在一个具有主、支干道的十字路口,设计一个交通灯自动控制装置。设计要求:(1)当主干道与支干道均无车辆要求通行时,主干道应保持畅通,亮绿灯,支干道亮红灯。(2)如果主干道无车,支干道有车,则允许支干道通行,主干道亮红灯,支干道亮绿灯。(3)如果主干道和支干道均有车要求通行,则两者应交替通行,并要求主干道每次通行30秒,支干道每次通行20秒。(4)每次绿灯变红灯时,黄灯应先亮5秒钟。73控制器时钟电路定时器传感器SaSbcntcr30205rbybgbrayagaclk系统框图
传感器信号:Sa(主道)、Sb(支道)
时钟信号:clk输出信号:ra、ya、ga;rb、yb、gb;内部信号:cr、cnt。74ASM图
cr主黄、支红5scnt主绿、支红SacrSbSb30scntcnt主红、支黄cntcnt20s5scr主红、支绿crSbSbSa01S011110000S1S2S3010111100075MDS图
S0S1cnt↑↓=S0SaSb30scr↑↓=S0(SaSb30s+SaSb)cnt↑↓=S15scr↑↓=S15scnt↑↓=S35scr↑↓=S35s5s5s5s5sSaSb+SaSb30s+SaSbSaSb30s+SaSbSb+SaSb20sSaSb20s+SaSbcnt↑↓=S2Sb(20s+Sa)cr↑↓=S2(SaSb20s+Sb)S2S3传感器信号:Sa、Sb时钟信号:clk输出信号:ra、ya、ga;rb、yb、gb;内部信号:cr、cnt。76第4章数字系统设计的基本步骤4.1数字系统设计的一般步骤
采用自顶向下的设计方法,具体包括如下几步:第一步:根据系统的总体功能要求,进行系统级设计;第二步:按照一定标准将整个系统划分成若干个子系统,进行逻辑级设计;第三步:将各个子系统划分为若干功能模块,针对各模块进行电路级设计。应注意两点:1)子系统的划分要合理,数目要适当。子系统划分的太少,会失去模块化设计的优点;划分的太多,则系统之间的连接过于复杂,容易出错。对系统进行逻辑划分可按数字系统设计准则中的分割准则进行。2)子系统的首要任务是正确划分功能模块。也就是说,如何将其正确地划分为控制器和数据处理器模块。子系统设计的主要任务是控制器模块的设计。774.1.1系统级的设计过程
1)确定系统的逻辑功能逻辑功能的确定是设计的首要任务,即根据用户要求,对设计任务作透彻的分析和了解,确定系统的整体功能及其输入信号、输出信号、控制信号和控制信号与输入、输出信息之间的关系等。
2)描述系统功能,设计算法描述系统功能就是用符号、图形、文字、表达式等形式来正确描述系统应具有的逻辑功能和应达到的技术指标;设计算法就是寻求一个实现系统逻辑功能的方案。它实质上是把系统要实现的复杂运算分解成一组有序进行的子运算。描述算法的工具有:算法流程图、ASM图、MDS图等。系统级设计
实质上是原理性设计,是数字系统设计的关键步骤,也是最困难的,最具有创造性的一步。画出算法流程图(ASM图、MDS图)是完成系统级设计的标志。794.1.2逻辑级和电路级的设计过程
1)根据算法选择电路结构
系统算法决定电路结构。虽然不同的算法可以实现相同的系统功能,但是电路结构是不同的;相同的算法也可能对应不同的电路结构。
2)选择器件并实现电路
根据设计、生产条件,选择适当的器件来实现电路,并导出详细的逻辑电路图。在此之后将是工程设计阶段,它包括印刷电路板的设计、接插件的选择及形成整机的工艺文件等。逻辑级设计所提供的逻辑图应充分包含全部工程设计所需要的信息。80
随着数字集成技术的发展,VLSI规模和技术复杂度也在急剧增长,人工设计数字系统十分困难,必须依靠EDA技术。用EDA技术设计数字系统的实质是一种自顶向下的分层设计方法。在每一层上,都有描述、划分、综合和验证
四种类型的工作。
描述是电路与系统设计的输入方法,它可以采用图形输入、硬件描述语言输入或二者混合使用的方法输入;也可以采用波形图输入法。整个设计过程只有该部分由设计者完成。
划分、综合和验证
则采用EDA软件平台自动完成,这样做大大简化了设计工作,提高了效率,因此,采用EDA技术设计数字系统的方法得到了越来越广泛的应用。814.2数字系统的设计准则进行数字系统设计时,通常要考虑多方面的条件和要求。由于具体的设计条件和要求千差万别,实现的方法也各不相同,因此,数字系统的设计还应具备一些共同的准则。4.2.1分割准则自顶向下的设计方法是一种层次化的设计方法,需要对系统功能进行分割,然后用逻辑语言进行描述。在分割过程中,若分割过粗,则不易用逻辑语言表达;分割过细,则带来不必要的重复和繁琐。因此,分割的粗细程度应根据具体情况而定。可遵循以下原则:82(1)分割后最底层的逻辑块应适合用逻辑语言进行表达。如果利用逻辑图作最底层模块输入方法,需要分解到门,触发器和宏模块一级;用HDL行为描述语言则可以分解到算法一级。(2)考虑共享模块。在设计中,往往会出现一些功能相似的逻辑模块,相似的功能应该设计成共享的基本模块,象子程序一样由高层逻辑块调用。这样可以减少需要设计的模块数目、改善设计的结构化特性。(3)接口信号线尽可能少。复杂的接口信号容易引起设计错误,并且为布线带来困难。以交互信号最少的地方为边界划分模块,用最少的信号线进行信号和数据的交换为最佳的方法。(4)结构均称。同层次的模块之间,在资源和I/O分配上,不出现悬殊的差异,没有明显的结构和性能上的瓶颈。(5)通用性好,易于移植。模块的划分和设计应满足通用性要求,模块设计应考虑移植的问题。一个好的设计模型块应该可以在其它设计中使用,并且容易升级和移植;另外,在设计中应尽可能避免使用与器件有关的特性,保证设计可以在不同的器件(CPLD或FPGA)上实现,即设计具有可移植性。
834.2.2系统的可观测性在系统设计中,应该同时考虑功能检查和性能的测试,即系统观测性的问题。
一个系统除了引脚上的信号外,系统内部的状态也是需要测试的内容。如果输出能够反映系统内部的状态,即可以通过输出观测到系统内部的工作状态,那么这个系统是可观测的。如果输出信号不能完全反映系统内部工作状态,那么这个系统是不可观测的或部分可观测的,这时为了测试系统内部的状态,就需要建立必要的观测电路,将不可观测的系统转换为可观测系统。
一些有经验的设计者会自觉地在设计系统的同时设计观测电路,即观测器,指示系统内部的工作状态。一方面,将系统内部的信号引向管脚输出供外部测试,另一方面,对系统工作状态进行判断。建立观测器,可遵循以下原则:(1)系统的关键点信号,如时钟、同步信号和状态机状态等信号。(2)具有代表性的节点和线路上的信号。(3)具备简单的“系统工作是否正常”的判断能力。844.2.3同步和异步电路尽可能采用同步电路进行设计,避免使用异步电路。使用异步电路的场合,应采取必要的措施来避免竞争和增加稳定性。系统使用两个或两个以上的时钟,这时对模块之间的接口信号,要采取一定的措施,必要时需要插入时钟同步电路。854.2.4最优化设计
1、优化原则
为节省器件的逻辑资源或提高工作速度,设计系统的过程相当于求最优解的过程。这个求最优解的过程需要给定两个约束条件:边界条件和最优化目标。
边界条件:即器件的资源及性能限制。
最优化目标
有多种,设计中常见的最优化目标有:
(1)器件资源利用率最高;
(2)系统工作速度最快,即延时最小;
(3)布线最容易,即可实现性最好。
各个最优化目标会相互冲突产生矛盾:抓主要矛盾
现代的EDA软件中,一般都提供常用的优化设计工具,用户可以通过改变“优化策略”来指示EDA工具完成要求的设计。
2、常用的优化方法:
864.2.5系统设计的艺术一个系统的设计通常需要经过反复的修改、优化,在各种设计要求、限定条件、优化原则之间反复权衡利弊、折衷、构思、创造才能达到设计的意图和要求。设计既是一门技术,也是一门艺术,应借鉴艺术的概念和原理进行设计。一个理想的设计需要设计者经过多次反复才能达到比较满意的结果。判断设计反复的过程何时可以停止,或者判断设计还能否进一步优化,以及在总体上把握设计优化进程,可以借鉴一个艺术概念“和谐”。一个好的设计,应该满足“和谐”的基本特征。87对数字系统可以根据以下几点作出判断:(1)直觉判断,设计总体上流畅、无拖泥带水的感觉。(2)结构协调。资源分配、I/O分配合理,没有任何设计上和性能上的瓶颈。(3)具有良好的可观测性。(4)易于修改和移植。(5)器件的特点得到充分的发挥。
作到前三点,可以说是一个不错的设计;作到了最后两点,可称为是比较理想的设计。884.3数字系统设计中的几个工程实际问题
4.3.1提高系统工作速度的方法1、影响系统工作速度的主要因素关键路径:从系统输入到输出的各条路径中信号通过时间最长的那条路径门电路延时:门本身延时和连线延时
2、提高系统工作速度的主要方法◆缩短关键路径长度◆改变关键路径上的处理顺序◆提高各个运算器的工作速度◆利用多周期路径提高工作速度◆减少关键路径上部件的扇出数4.3.2缩小电路规模和降低功耗的方法
4.3.3系统误操作的成因及消除方法4.3.4非同步信号的控制方法89乘法器abstartMdone844clk例题
4位乘法器的设计设计一个如下图所示的4位乘法器,图中:a、b为两个4位操作数输入;start为乘法器的启动信号;clk为时钟信号;M为8位乘法结果;done为乘法运算结束信号。90根据二进制乘法的运算规则,运算过程为:M=b0×a×20+b1×a×21+b2×a×22+b3×a×23
若a=1011,b=1101,则运算过程和运算结果是:1011----------a被乘数×1101----------b乘数101100001011+101110001111------------M1.功能确定:----------b0×a×20
0----------b1×a×21(左移1位)00----------b2×a×22(左移2位)000----------b3×a×23(左移3位)2.算法设计:91对4位乘法器电路行为描述如下:根据上述描述,4位乘法器的算法是采用将被乘数向左移位,并与乘数逐位相乘求得位积,然后与部分积累加求和的运算过程,经过4次迭代后获得乘法结果。其算法流程图描述如下图所示:i=0,M=0M←a×bi+Ma左移1位i←i+1开始结束yesnoi
=3?92根据算法流程图可知其具体实现应包括:1.将被乘数的高位补0扩展成8位。2.从最低位开始依次选择乘数位与被乘数进行乘运算求得位积;向左移位:从次低位开始,在求位积前将被乘数依次左移1位;与部分积累加。被乘数移位时,其低端均移入0。3.经4次迭代后,乘法运算结束。i=0,M=0M←a×bi+Ma左移1位i←i+1开始结束yesnoi
=3?934位乘法器的逻辑框图控制器计数器M=4Q1Q0MUXb0b1b2b30123YA1A0RMADDANDSLA0000
a3a2a1a088888MCPCrcnt=3CMCAstartdoneCLK3.电路结构的选择94Q7Q6Q5Q4Q3Q2Q1Q0D7D6D5D4D3D2D1D0S0S1SlD0D1D2D3S0S1SlD0D1D2D3控制单元PTCr74LS161LDQ1Q2
A0A1D0D1Y1D2D3D0D2Y2D2D3
&CPCON=3
MCP1CrCP174LS15374LS00111CrCrCP2C074LS2732X74LS832X74LS002X74LS194a3a2a1a00000B0B1B2B31000Q7Q6Q5Q4Q3Q2Q1Q04.电路实现乘法器数据处理单元逻辑电路图95高速并行乘法器的算法设计和电路结构在上述乘法器的设计过程中,电路结构是一个时序结构的电路,运算是通过左移操作一位一位地进行的,不适合高速运算。若设想左移操作不是通过移位寄存器在时钟信号驱动下进行,而是硬件直接连接而成,则运算速度可以大大提高。根据这一思路,设计出一个高速并行运算乘法器,输入为两个带符号位的4位二进制数。其电路结构如图3-11所示。96Σ3Σ2Σ1Σ0M0CO加法器CIΣ3Σ2Σ1Σ0M1CO加法器CIΣ3Σ2Σ1Σ0M2CO加法器CIΣ3Σ2Σ1Σ0M7M6M5M4M3CO加法器CI0000b0×ab1×ab2×ab3×aMsXORas
bs符号位bi×a0bibi×a1bi×a2bi×a3a0a1a2a3bi×a模块高速乘法器的电路结构97
上述结构的乘法器的运算速度仅和加法器产生进位信号的延迟时间有关。通常加法器的延迟时间仅十几纳秒至几十纳秒,因此该结构乘法器的运算速度将非常快。当然,获得高运算速度是以增加硬件数量(价格)为代价的。多位乘法器还可以采用其它的算法模型和电路结构。
需要注意的是:在数字系统设计中,不但要考虑用户对系统逻辑功能的要求,而且要考虑许多非逻辑因素,如系统的运算速度、产品的成本价格、电路的可靠性、可测性、功耗、体积以及工艺等其它因素。98第5章控制单元的实现数据处理单元控制单元控制序列信号反馈应答信号待处理输入数据外部输入控制信号处理后输出数据输出控制信号数据流控制流控制单元用来产生控制信号序列,以决定何时进行何种数据运算。数字系统基本结构99微程序控制器法有限状态机法软硬结合实现的控制器又称微代码控制器。是采用软、硬结合的一种实现方法,其设计的规整性非常好。硬件直接实现的控制器是指对于给定的电路指标要求,直接采用硬件电路实现。每个电路,都必须专门进行设计,有较高的运算速度,但种类多,通用性差。控制单元的电路实现形式多路选择器法传统方法一对一触发器法1005.1传统方法●同步时序电路:状态图●控制器:ASM图、硬件描述语言等
控制器具有与同步时序电路相似的结构,因此同步时序电路的设计方法应基本适用于控制器的设计,差别主要体现在设计依据上:Z1i←i+1Z2yes11Xno1000某控制器的ASM图如右图所示,试使用传统方法设计该控制器101由ASM图画出状态表:求次态方程:求驱动方程和输出方程:画逻辑图:略特点:传统方法实现的硬件图与ASM图之间无明显的对应关系,一旦ASM图有很小的改动时,需要重新设计电路;此外,当系统的状态超过8个时,该方法实现非常困难。00/0000/0000/0000/0000/0000/0011/0110/11Q2Q100011110X01Q2n+1=Q2Q1Q1n+1=Q2Q1XD2=Z1=Q2Q1D1=Z2=Q2Q1XQ2n+1Q1n+1/Z2Z1Z1i←i+1Z2yes11Xno10001025.2多路选择器法方法:确定所需触发器个数;在每级触发器的输入端加一个多路选择器;多路选择器输出接触发器的输入,控制触发器产生相应次态;触发器现态加到多路选择器的选择端。用多路选择器实现ASM图的特点是次态的产生与ASM图有一一对应关系。传统方法是通过计算得到次态方程,该方法是通过查表得到次态方程,多路选择器就是查表模块。例题:用多路选择器法实现上例所示的ASM图。例题中,ASM图共有3个状态,因此需要2个触发器和2个多路选择器实现,并且每个多路选择器至少应有3个输入端。Z1i←i+1Z2yes11Xno1000103首先根据ASM图画出状态转换表
由表可看出:当处在00状态时,若X=0,Q2n+1=1,Q1n+1=0若X=1,Q2n+1=1,Q1n+1=1
所以D10=X,D20=1同样道理,在10,11,01状态时,次态都为0,所以D11=D12=D13=D21=D22=D23=0原理图略Z1i←i+1Z2yes11Xno10001045.3一对一触发器法一对一触发器法是指一个状态使用一个触发器实现的方法。一对一触发器法中驱动方程的归纳可直接由ASM图写出,从而省掉列状态图的过程,方法是:观察指向某状态的箭头数,每一个箭头相当于该状态框次态方程中的一个与项,而次态方程是全部箭头所代表的与项之和。例题:105状态机是纯硬件数字系统中的顺序控制电路,其运行方式上类似于控制灵活和方便的CPU,而在运行速度和工作可靠性方面都优于CPU。
状态机结构模式相对简单,设计方案相对固定。状态机的HDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到之处。
在高速运算和控制方面,状态机具有巨大的优势。在VHDL中,一个状态机可以有多个进程构成,一个结构体中可以包含多个状态机,而一个单独的状态机(或多个并行运行的状态机)以顺序方式所能完成的运算和控制方面的工作与一个CPU的功能类似。因此,一个设计实体的功能便类似于一个含有并行运行的多CPU的高性能微处理器的功能。5.4有限状态机法
为什么使用状态机
就可靠性而言:
由于CPU本身的结构特点与执行软件指令的工作方式决定了CPU不能获得圆满的容错保障,这已是不争的事实。而状态机系统不同,首先由于它是纯硬件电路构成,不存在CPU运行软件过程中许多固有的缺陷;其次是由于状态机设计中能使用各种完整的容错技术;第三是状态机从非法状态跳出进入正常状态的耗时十分短暂,通常只有2、3个时钟周期,约几十个ns;而CPU则是通过复位方式从非法运行方式中恢复过来,耗时达几十ms,这对于高速高可靠系统是无法容忍的。
就运行速度而言:
状态机的状态变换周期只有一个时钟周期,而在每一个状态中,状态机可以完成许多并行的运算和控制操作。一个完整的控制程序,可使用多个并行状态机构成。一般由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高出三到四个数量级。1081.一般有限状态机设计●说明部分●主控时序进程●主控组合进程●辅助进程用VHDL设计状态机,结构体一般由以下几部分组成:109●说明部分:
说明部分中使用TYPE
语句定义一个新的数据类型,一般为枚举型,其元素都用状态机的状态名来定义。说明部分一般放在ARCHITECTURE
和BEGIN之间,例如:ARCHITECTURE···IS
TYPEstatesIS(S0,S1,S2,S3);
SIGNALcurrent_state,next_state:states;
BEGIN
···110●主控时序进程:
所谓主控时序进程是指负责状态机运转
和在时钟驱动下负责状态转换的进程。
主控时序进程
实际上是一个对工作时钟信号敏感的进程,可看作状态机的“驱动泵”,而时钟
clk
相当于这个
“驱动泵”中的驱动功率电源。resetPROCESSREGPROCESSCOMcurrent_statenext_stateclkS_inputS_outputFSM:一般状态机结构框图工作示意图主控时序进程111主控组合进程通过信号current_state中的状态值,进入相应的状态,并在此状态中根据外部输入的信号如S_input
(指令),向外发出控制信号如S_output
,同时确定下一状态的取向,即向next_state中赋入相应的状态值。此状态值通过next_state传给主控时序进程,直至下一个时钟脉冲到来再进入再一次的状态转换周期。因此,主控组合进程也称状态译码进程。●主控组合进程:
主控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合和时序进程的信号),及当前状态的状态值确定下一个状态的取向,即next_state
的取值内容,并确定对外输出或对内其它组合和时序进程输出控制信号的内容。具体过程是:主控组合进程resetPROCESSREGPROCESSCOMcurrent_statenext_stateclkS_inputS_outputFSM:一般状态机结构框示意图113libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;ENTITYs_machineISPORT(clk,reset:INstd_logic; s_inputs:INstd_logic_vector(0to1); s_outputs:OUTintegerrange0to15);ENDs_machine;ARCHITECTUREarcOFs_machineIS
TYPEstatsIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:stats;BEGINreg:PROCESS(reset,clk)BEGIN IFreset='1'THENcurrent_state<=s0; ELSIF(clk'eventandclk='1')THEN current_state<=next_state; ENDIF;ENDPROCESS;例1114com:PROCESS(current_state,s_inputs)BEGIN casecurrent_stateis whens0=>s_outputs<=5; ifs_inputs="00"thennext_state<=s0; elsenext_state<=s1; endif; whens1=>s_outputs<=8; ifs_inputs="01"thennext_state<=s1; elsenext_state<=s2; endif; whens2=>s_outputs<=12; ifs_inputs="10"thennext_state<=s0; elsenext_state<=s3; endif; whens3=>s_outputs<=14; ifs_inputs="11"thennext_state<=s3; elsenext_state<=s0; endif; endcase;ENDPROCESS;ENDarc;115从一般意义上说,进程间是并行运行
的,但由于敏感信号的设置不同及电路的延迟,在时序上进程间的动作是有先后的。本例中,就状态转换这一行为来说,进程“reg”在时钟上升沿到来时将首先运行,完成状态转换的赋值。而进程“com”就只有当来自进程“reg”的信号current_state改变时才开始动作。
请注意:在此状态机中,有两个信号起到了互相反馈的作用,完成两个进程间信息传递的功能。这两个信号是:
current_state(进程“reg”→进程“com”)
next_state(进程“com”→进程“reg”)反馈信号116●辅助进程:用于配合状态机工作的组合进程或时序进程。例如,为了完成某种算法的进程;为了稳定输出而设置的数据锁存器;或者用于配合状态机工作的其它时序进程等。例如上例中,如果希望输出信号具有寄存器锁存功能,则需要为此输出写第三个进程。117AD574工作时序RCSTATUSD[11..0]D[11..0]20μsZCS:片选信号,低有效R/C:数据输出和AD转换控制信号A0:12位AD转换启动和12位数据输出控制信号K12/8:12位/8位输出有效控制信号STATUS:转换结束状态位,低有效A_inputAD574CSA0R/CK12/8STATUSD[11..0]CSA0RCK12/8STATUSD[11..0]A例2用状态机设计A/D采样控制器(AD574,12位,采样周期20μs)118CECSRCK12/8A0工作状态0××××禁止×1×××禁止100×0启动12位转换100×1启动8位转换1011×12位并行输出有效10100高8位并行输出有效10101低4位加上尾随4个0有效AD574逻辑控制真值表119对AD574初始化打开片选,启动AD转换STATUS=’1’正在转换,等待STATUS=’0’转换结束12位转换数据输出有效锁存数据St1St2St3St4St0AD574采样控制状态图120采样状态机结构框图clkPROCESSREGPROCESSCOMcurrent_statenext_stateA_inputQ[11..0]FSM:AD574PROCESSCOMPROCESSLATCHAD574CSA0RCK12/8STATUSD[11..0]lock0lock121libraryieee;useieee.std_logic_1164.all;ENTITYad574ISPORT(d :INstd_logic_vector(11downto0); clk,status :INstd_logic; lock :OUTstd_logic; cs,a0,rc,k12_8:OUTstd_logic; q :OUTstd_logic_vector(11downto0));ENDad574;ARCHITECTUREarcOFad574IS TYPEstatsIS(s0,s1,s2,s3,s4); SIGNALcurrent_state,next_state:stats; SIGNALregl:std_logic_vector(11downto0); SIGNALlock0:std_logic;BEGIN k12_8<='1';lock<=lock0;q<=regl;reg:PROCESS(clk) BEGIN IF(clk'eventandclk='1')THEN current_state<=next_state; ENDIF;ENDPROCESS;122latch1:PROCESS(lock0)BEGIN IF(lock0'eventandlock0='1')THEN regl<=d; ENDIF;ENDPROCESS;com:PROCESS(current_state,status)BEGINcasecurrent_stateiswhens0=>next_state<=s1; cs<='1';a0<='1';rc<='1';lock0<='0'; whens1=>next_state<=s2; cs<='0';a0<='0';rc<='0';lock0<='0'; whens2=>ifstatus='1'thennext_state<=s2;elsenext_state<=s3;endif; cs<='0';a0<='0';rc<='0';lock0<='0'; whens3=>next_state<=s4; cs<='0';a0<='0';rc<='1';lock0<='0'; whens4=>next_state<=s0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 定金合同范本
- 2024年度演艺经纪代理合同2篇
- 二零二四年度云计算服务定制与运维合同
- 二零二四年度电动折叠自行车购销协议3篇
- 短期劳动力雇佣合同04
- 高级定制服装生产与销售合同(04版)
- 二零二四年度社交电商模式创新与合作合同3篇
- 二零二四年度广告媒体投放合作协议
- 二零二四年度地下水监测井建设合同
- 二零二四年度技术转让合同with技术改进与后续支持
- 新实用汉语课本16课
- 金融企业详细划分标准出台-共分大中小微四类型
- 南芳学校学生“双姿”日常考核方案
- 网络安全检查表完整参考模板
- 铝基合金高温相变储热材料
- 三位数乘两位数计算题360道
- 《跨文化交际》课程教学大纲(英语师范专业)
- PIV操作流程详解要点
- 在“家庭医生签约服务”工作推进会上的发言稿
- 火力发电厂生产过程-ppt课件
- 领导在思想作风纪律总结大会讲话
评论
0/150
提交评论