资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,桂林电子科技大学 信息与通信学院,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,工学asic原理及应用,第二章,ASIC,算法模型设计,数字系统的描述方法,数字系统算法设计,算法流程图,算法构造,2,2.1,数字系统模型,为便于分析和设计数字系统,有必要选择适当的模型对系统进展描述。数字系统的动态模型和算法模型是两种根本的有效模型。,一、动态模型,指在数字逻辑设计中,采用传统的,状态转换图,,,状态转换表,,,状态方程,输出方程,时序图,真值表,卡诺图,等描述工具的数字系统称为动态模型。数电学过的描述方法,3,例:设计一个串行数据检测电路,当连续输入3个或3个以上“1时,电路输出为“1,其它情况下输出为“0。,例如: 输入X 1110,输出Z 0110,状态表,4,二、算法模型,对于较,复杂的数字系统,,动态模型,难以适用,,数字技术人员现今,普遍采用,算法模型,来描述和设计数字系统。,算法模型思想:将系统实现的功能看作是应完成的某种运算。,假设运算太复杂,可把它分解成一系列子运算(子功能),假设子运算还较复杂,可以继续分解,直到分解为一系列简单运算。,然后按一定的规律,顺序地或并行地进展这些简单的根本运算,从而,实现原来复杂系统的功能。,5,数字系统的算法模型通常具有两大特征:,(1)含有假设干子运算:数据存储、读取、算术运算、逻辑运算等。,(2)具有相应的控制序列,控制子运算按一定的规律有序地执行。,算法就是有根本运算与规定的运算顺序所构成的完整的解题步骤,就是解决问题的方法。事实证明,任何一个系统都可以用算法模型来进展描述。,6,例:设计一个串行数据检测电路,当连续输入3个或3个以上“1时,电路输出为“1,其它情况下输出为“0。,例如: 输入X 1110,输出Z 00110,求其算法模型?,解: 实现该系统功能应由三个存贮单元R1、R2和R3,分别存放输入信号x(t-1)、x(t)、x(t+1)的数据,然后再根据以下检测规那么决定输出Z,(1) 当x(t-1) x(t)x(t+1)=1,输出Z=1即Z=R1&R2&R3。,(2)其它情况Z0。,每经过一次检测,那么将后进入的数据取代先进入的数据,又送进一个新的数据,此过程周而复始地进展。,以上就是串行数据检测,算法,,如何描述该,算法模型?,7,图,2.1.3,序列检测系统算法流程图,开场,t=0 Z=0,t = t+1,Z=1,Z=0,R1=R2=R3=1?,NO,YES,R1 X(t),R2 R1,R3 R2,以图形像地给出了需要进展的操作以与进展这些操作的条件和顺序。与软件设计中的流程图十分一样,称为算法流程图。,算法流程,图描述算法后,可借助编程语言来设计实现,可用如,C,语言、,Matlab,语言,建模仿真,以验证算法。,8,module,ser_detector(z,x,clk);,input,x,clk;,output,z;,reg,r1,r2,r3;,initial,begin,r1=0;,r2=0;,r3=0;,end,always, (posedge clk),begin,r3=r2;,r2=r1;,r1=15?,Paper=1,开始,Coin=0,Paper=15时paper=1,比较完成后,根据结果进展coin清零,Y,Y,20,实例,2,:,雷达接收回波信号中找出目标反射信号,即一个数学问题,,从,m,个输入,n,位二进制数,x,中找出,最大值,和,最小值,的系统。,运算结果存储在r_max与r_min,输入的数据暂时存储在r,需要两个比较器进展大小比较,comp1,com2,比较完成后,根据结果进展数据交换数据,需要一个计数器i,对输入的数据进展计数,21,开始,i=i+1,i=0,r_max=0,r_min=0,rr_max?,YES,r_max=r,rm?,NO,r=x(i),YES,NO,22,module,max_min_finder,(r_max,r_min,x,clk);,input,7:0 x;,input,clk;,output,7:0 r_max,r_min;,reg,7:0 r_max,r_min;,reg,7:0 r;,reg,9:0 i;,initial,begin,r_max=x;,r_min=x;,i=0;,end,always, (posedge clk),begin,i=i+1;,if,(i=1000),begin,rr_max),r_max=r;,if(rr_min),r_min=0?,Y,N,q=q+2,k-1,ab?,a=a-c/2,Y,N,m=a-c/2,m=b,Y,完毕,q=0,38,例:,设计 的算法流程图,分析:问题的核心是求,x,的平方根,一种常用的方法是,牛顿逐次逼近法,。方法的核心是给出一个 的估算值,y,0,,用子运算,y,1,=(y,0,+x/y,0,)/2,,求得,y,1,,同理求得,y,2,y,3,逐次递进,39,设,x=3,,令,y0=1,,其计算过程为,:,序号,y W=x/y V=y+W U=V/2,0 1 3 4 2,通过解析,将平方根的运算转化成W=x/y,=y+W,U=V/2三种根本运算,由此可设计出算法的流程图:,40,开场,w=x / y,READ x, y=y0,u=(y+w)/2,u-y=,允许的误差,完毕,No,y = u,开场,w=x / y,READ x, y=y0,u=(y+w)/2,u-y=,允许的误差,完毕,Yes,算法的流程图,41,3.,综合法,在实际应用中,大局部数字系统的算法比较复杂,总是要综合、全面地考虑,逐步分解逻辑关系,最后获得完整的算法流程图。所以,把跟踪法、归纳法、划分法、解析法等几种设计算法组合起来应用的方法称为综合法,注:因为系统的逻辑功能种类繁多,采用的方法和手段也多种多样,至今尚没有找到可以设计出各种算法的通用的规那么、方法、步骤。,42,例:试设计一个人体电子秤控制装置的算法流程。该人体电子秤控制装置应能有序、正确地管理以下功能的实现:,(1)进展人体体重的测量,并能以3位十进制数字显 示体重的千克数;,(2)进展人体身高的测量,井能以3位十进制数字显 示高度的厘米数,体重和身高显示器公用;,(3)由体重和身高的实测信息,并根据被测对象的具体状况(男性或女性,成人或儿童等),自动计算并显示被测 对象属于偏瘦、适中、偏胖3种类型的哪一种。,(4)为简化设计,允许不考虑消除电子秤自重的功能 (常称去皮重功能)。,43,荷,重,传,感,器,位,移,传,感,器,放,大,器,放,大,器,A/D,身高体重,处理芯片,数,码,管,显,示,打,印,结,果,体重,身高,图电子秤整体框图,44,分析:身高体重需要通过传感器转换成电信号,再经放大整理、AD变换后的数据方可进展处理,是一数、模混合电路模型。,VL表示身高信号,放大后经8位AD变换后00H0cm,FFH225cm,Vw表示体重信号,放大后经8位AD变换后00H0kg,FFH225kg,身高、体重的测量过程是:, 电子秤未进展测量时,控制装置处于等待状态;只有当按动start按钮、接收start1信号时,开场一次人体身高和体重的测量。, 接收到start1信号,首先测量身高,表示身高的模拟信息VL经八位AD转换为数字量,并经存放、码制转换,由8段显示器显示出3位十进制数表示的身高数据,此时单位显示cm。,45,按动weight按钮,产生weight=1信号,系统进展体重测量。表示体重的模拟信息Vw经AD转换为另一组数字量,经存储、码制变换和处理,显示3位十进制数表示的体重数据,此时单位显示kg。,对于上述测得的身高、体重两组数字量,进展数据计算和判别。由计算结果判别出被测对象胖、瘦程度,并正确显示偏胖、适中或偏瘦3种情况之一。,判断规那么如下:L实测身高、W实测体重,K1、K2为常数,对于男性成人K1105cm,女性成人k1=100,k238cm。那么有:,a. L-k1=W 标准体型b. L-K1-K2=W=L-K1+k2 体型适中,c. WL-K1+k2 偏胖,由以上分析可得其算法流程图如下,:,46,开场,V,L,A/D,(L-K1)与w比较,偏瘦,wait,start?,YES,NO,完毕否?,YES,NO,存储转换显示,L,延时,Weight,?,V,w,A/D,YES,完毕否?,存储转换显示,W,L-k1k2,与w比较,L-k1,w,?,L-k1k2,与w比较,L-k1k2,w?,L-k1k2,w?,适中,偏胖,YES,YES,YES,YES,NO,NO,NO,NO,NO,47,2.4 算法构造,算法是由许多子运算组成的,在各子运算之间存在一个执行方法和次序问题,这就是算法构造。,三种主要算法构造:顺序构造并行构造流水线构造,48,顺序算法构造是指在执行算法的整个过程中,同一时间只进展一种或一组相关的子运算。图是顺序算法构造,顺序构造的两种情况:, 在每个时间段中,仅有一个子运算操作,各子运算之间逐个按规 定的次序进展,OP,1,OP,2,OP,3,OP,4,OP,5,0,t1,t2,t3,t4,t5,一、顺序算法构造,图顺序算法构造,49,OP,1,OP,2,OP,3,OP,4,OP,5,OP,6,OP,7,OP,8,0,t1,t2,t3,t4,t5,在顺序算法构造中,假设输入要处理的数据是单个元素Di,,完成该数据的算法流程需经L个时间段,而每段的平均时,间为t,那么完成该数据运算的时间为,t = L * t,假设含有n个元素的数据流输入时,总的运算时间为,Ts=n t=n L t,在同一时间里,有时仅有一个子操作,但有时有一组子运算操作,特点:速度慢;构造简单;硬件本钱低,50,二、并行算法构造,并行算法是指在同一时间段中,有多条路径在同时进展运算,在这些同时执行的子运算操作之间是相互独立的。,OP,1,OP,2,OP,3,OP,4,OP,5,OP,6,OP,7,OP,8,OP,9,OP,10,OP,11,0,t1,t2,t3,t4,51,注意点:,OP1,到,OP2,、,OP3,、,OP4,的转移决不是顺序算法中的条件转移,因为条件转移有判断条件决定,总是有一条后操作路径,。,OP2,、,OP3,、,OP4,也不是顺序算法中同时执行的一组操作,因它们之间互不关联,。,OP5,、,OP6,、,OP10,、,OP11,为顺序运算路径中的一组相互有关的操作。,OP,1,OP,2,OP,3,OP,4,OP,5,OP,6,OP,7,OP,8,OP,9,OP,10,OP,11,0,t1,t2,t3,t4,52,并行算法完成运算的时间:,在并行算法构造中,假设待处理数据是单元素Di,它完成运算的时间为,t = L t,其中L 是并行算法流程经过的运算段数,假设含有n个元素的数据流输入时,并行构造算法总的运算时间为,Tp=n t =n L t,特点:运算速度快;硬件本钱高,53,三、流水线操作算法构造,流水线处理是高速设计中的一个常用设计手段。如果某个设计的处理流程分为假设干步骤,而且整个数据处理是 “ 单流向 的,即没有反响或者迭代运算,前一个步骤的输出是下一个步骤的输入,那么可以考虑采用流水线设计方法来提高系统的工作频率。,步骤,1,步骤,2,步骤,n,54,例如要对1000个数据x(n)进展处理,处理输出结果y(n) ,每个数据需要4个处理步骤,X(n),步骤,1,步骤,2,步骤,3,步骤,4,y(n),假设每个步骤处理时间均需1个时钟周期T,那么顺序构造需10004T,可采用如下流水构造:,X(1),步骤,1,步骤,2,步骤,3,步骤,4,X(2),步骤,1,步骤,2,步骤,3,步骤,4,X(3),步骤,1,步骤,2,步骤,3,步骤,4,X(4),步骤,1,步骤,2,步骤,3,步骤,4,X(5),步骤,1,步骤,2,步骤,3,步骤,4,1 clock,2 clock,3 clock,4 clock,5 clock,X(1),X(2),X(3),X(4),X(1),X(2),X(3),X(1),X(2),y(1),y(2),55,流水线操作算法构造是针对连续输入数据流系统而言的。它将整个运算分解成假设干子运算,系统在同一时间可对先后输入的数据流元素进展不同子运算。具有如下特点:,1 在流水线中操作运算必须是连续任务,只有连续不断地提供任务才能充分发挥流水线的效。,2 把一个运算操作分解为几个有联系的子运算子操作,每个子运算由一个专门的功能部件来实现。,56,3 在流水线的每一个功能部件后面都要有一个缓冲存放器,用于保存本段的执行结果。,4 流水线中各段子运算的时间应尽量相等,否那么将引起“堵塞或“断流等现象。,5流水线需要有“装入时间和“排空时间。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。,流水线操作算法构造如以下图所示:,OP,1,OP,2,OP,1,OP,3,OP,2,OP,1,OP,4,OP,3,OP,2,OP,1,OP,5,OP,4,OP,3,OP,2,OP,6,OP,5,OP,4,OP,3,OP,6,OP,5,OP,4,OP,5,OP,6,OP,6,0,t1,t2,t3,t4,t5,t6,57,顺序算法和流水算法的例如:,分析:给定的数据流共有m个元素,它们是(a1,b1,c1)、a2,b2,c2)、 am,bm,cm),这一运算,可简单分解为相乘、相加和开方三个运算段,算法流程图为,例:,试用顺序操作和流水操作算法实现,Z,AB+C,的平方根。其中,A,、,B,、,C,均为数据流,长度为,m ,且均是,n,位,开场,AB,AB,C,AB,C,58,采用顺序算法构造:,采用顺序算法构造:在t1,t2,t3分别完成这三种运算。为方便分析,设t1= t2= t3= t,顺序算法构造的时间关系如图,这样完成整个运算的时间为,Ts=3 m t,a1b1,a1b1+c1,a1b1+c1,a,m,b,m,a,m,b,m,+c,m,a,m,b,m,+c,m,t1,t2,t3,t1,t2,t3,59,采用流水线操作算法构造:,时间关系图如下:,由图可以看出,完成全部数据计算所需要的时间为,T=3 t + (m-1) t,显然,流水线构造比顺序构造所需要的运算时间要少,a1b1,a1b1+c1,a1b1+c1,t1,t2,t3,a2b2,a2b2+c2,a3b3,a2b3+c2,a3b3+c3,a4b4,0,60,谢谢欣赏!,61,2021/11/5,谢谢!,
展开阅读全文