(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf_第1页
(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf_第2页
(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf_第3页
(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf_第4页
(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(微电子学与固体电子学专业论文)16位mcu的乘法、内积指令实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着m c u 功能的集成化的发展,其应用领域也逐渐由传统的控制,扩 展到控制处理、数据处理和数字信号处理等领域。( 3 2 0 1 是一颗高性能的1 6 位m c u ,它不仅提供常用的如加法、减法、逻辑运算等操作,还支持乘法 和内积指令。乘法运算是数字信号处理中最常用的运算,内积指令可实现 有限脉冲响应( f i r ) 滤波器的运算,配合其它指令集和a d 、d a 等c p u 外部模块,使得g 2 0 1 具有快速处理数字信号处理的能力。( 3 2 0 1 适合用于 需要数字语音处理的领域。本论文从乘法算法的研究开始,分析了g 2 0 1 的 乘法,内积指令的实现方法。 内积运算可以分解成乘法和加法,因此乘法算法是实现( 3 2 0 1 实现乘法 指令、内积指令的基础,文章对一位移位相加整数乘法、布思乘法、阵列乘 法三种乘法算法作了分析和比较,认为基4 布思算法在硬件规模、运算速度 方面都有优势,同时又可以充分利用c p u 已有的硬件资源,因此g 2 0 1 采 用基4 布思算法实现乘法、内积指令。文章对( 3 2 0 1 的c p u 结构作了简单 介绍,在此基础上,分析讨论了采用基4 布思算法的乘法、内积指令的实现 方法和指令执行过程,利用c p u 内部的算术逻辑单元作为运算部件,通过 指令译码电路控制整个c p u ,完成乘法、内积指令。设计完成的乘法指令 仅用1 2 个时钟就完成乘法运算,内积指令的运算时间是1 0 n + 8 个时钟周 期。最后通过验证,保证电路功能和时序的正确。 关键词:基4 布思算法乘法内积 a b s t r a c t w i t ht h ei n c r e a s i n go fi t s i n t e g r a t i o n t h em c uf u n c t i o n sa r em o i ea n d m o r ep o w e r f u l ,i t sa p p l i c a t i o nr e g i o n sa l s og r a d u a l l yf r o mt r a d i t i o n a lc o n t r o l , e x p a n dt ot h ec o n t r o lp r o c e s s i n g ,d a t ap r o c e s s i n ga n dd i g i t a ls i g n a lp r o c e s s i n g e t c g 2 0 1i sa h i g l lp e r f o r m a n c e16 - b i tm c u ,n o to n l yd o s ei tp e r f o r mg e n e r a l o p e r a t i o n ss u c ha sa d d i t i o n ,s u b t r a c t i o n ,a n do t h e rl o g i c a lo p e r a t i o n s ,b u ti ta l s o s u p p o r t sm u l t i p l i c a t i o na n di n n e r - p r o d u c to p e r a t i o n s w o r k i n gw i t ha dd ae t e b l o c k s ,g 2 0 1h a st h ea b i l i 哆t oh a n d l ec o m p l e xd i g i t a ls i g n a lp r o c e s s e se a s i l ya n d r a p i d l y g 2 0 1 i s d e s i g n e df o r d i g i t a lv o i c er e p e a t e r a p p l i c a t i o n t h i sp a p e r a n a l y s e sm u l t i p l i c a t i o na n di n n e r - p r o d u c to p e r a t i o n sf o rg 2 0 1 b e c a u s ei n n e r - p r o d u c tc a l lb ed i v i d e dt o m u l t i p l i c a t i o n a n da d d i t i o n , m u l t i p l i c a t i o n a r i t h m e t i ci st h eb a s eo fm u l t i p l i c a t i o na n d i n n e r - p r o d u c t o p e r a t i o n s b ya n a l y s i s o n e - b i ls h i f ta d d i n t e g e rm u l t i p l i c a t i o n b o o t h m u l t i p l i c a t i o n ,a r r a ym u l t i p l i c a t i o n ,i tc o n s i d e rt h a tr a d i x - 4b o o t hm u l t i p l i c a t i o n s u i t sg 2 0 1a th a r d w a r es i z ea n do p e r a t i o ns p e e d g 2 0 1d e s i g nm u l t i p l i c a t i o na n d i n n e r - p r o d u c to p e r a t i o n su s i n gr a d i x 一4 b o o t hm u l t i p l i c a t i o n u s i n ga l ua s o p e r a t i o nb l o c k c p up e r f o r mm u l t i p l i c a t i o na n di n n e r - p r o d u c tb yi n s t r u c t i o n d e c o d el o g i c a f t e ri n t r o d u c i n gt h ec p u sb l o c k sa n ds t r u c t u r e s ,t h ep a p e r d i s c u s s e st h ed e s i g no fm u l t i p l i c a t i o na n di n n e r - p r o d u c ti n s t r u c t i o n t h e m u l t i p l i c a t i o ni n s t r u c t i o no p e r a t e1 2c y c l e s ,t h ei n n e r - p r o d u c ti n s t r u c t i o no p e r a t e 1 0 n + 8c y c l e s a tl a s t , v e r i f i c a t i o nm a k e ss u r et h ed e s i g nc o r r e c t k e yw o r d s :r a d i x - 4b o o t h m u l t i p l i c a t i o n i r m e r - p r o d u c t n 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的蜕明并表示了 谢意。 研究生签名:亚壹 日期:2 q q 鱼生! ! 目2 q 目 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电予文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和 纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办 坪。 研究生签名:哇盔导师签名:2 苎鳖垒 日期:2 。6 年1 1 月2 。日 獭 第1 章绪论 第1 章绪论 1 1m c u 和d s p 特点 m c u 称为微控制器,它是将中央处理器( c p u ) 、存储器和输出接口集成在一块芯片的微型 计算机,已广泛应用于家用电器、工业控制和智能终端,主要起控制作用。m c u 产品的成熟 度,以及投入厂商之多,应用范围之广,可谓空前。在如此激烈的竞争中要占有一席之 地。产品必须要有自己的特色。 传统的删作为控制器,因其可编程能力特性,能实现很高的灵活性,但是运算能力 较弱,其指令中一般只有加减指令,但随着删功能的集成化的发展,其应用领域也逐渐 由传统的控制,扩展到控制处理、数据处理和数字信号处理等领域。d s p 称为数字信号处理 器,是在酶c u 基础上发展而来,它是针对数字信号处理算法特点而开发的,可高速地实现 过去由软件实现的大部分算法。如卷积,滤波、f f t 等,适用于复杂的数字信号处理m c 【i 和d s p 都是以数字信号为对象的单片机,但是各有其特点,下面将从几方面比较。 1 ) 硬件结构 删内部硬件结构是基于冯诺伊曼结构,其取指,取数据都是通过一条总线完成,因 此必须分时进行,在高速运算时,往往在传输线上会出现瓶颈效应;而d s p 一般采用的是 改进的哈佛结构,属于多总线结构,其片内至少有四套总线:程序的数据总线和地址总 线,数据的数据总线和地址总线,这样可以同时从程序存储器取到指令字,从数据存储器 取到操作数,而互不干扰。 d s p 内部一般包括多个处理单元,除了含有g c i j 有的累加( a c c ) 、算术逻辑单元( a l u ) 等外,还含有硬件乘法嚣( 1 l u l ) 、辅助算术单元( a i l a u ) ,有的还有硬件乘加器( m c ) 、硬件 循环控制器以及d 姒控制器等。 2 ) 指令执行 m c u 的程序与数据存储器不能同时访问,只能用顺序工作方式运行指令,而d s p 由于有 哈佛结构和多处理单元的硬件结构作保障,运行指令时可以使几个任务段相互重叠,形成 流水线。 d s p 比蛐c u 具有更强的寻址功能,在指令设置上也有利于速度的提高。d s p 和l g 叫的寻 址方式基本上相同。如立即寻址、直接寻址、间接寻址、寄存器寻址等,但是d s p 的间接 寻址中含有特别适合数字信号处理的寻址方式,如循环寻址,能快速执行乘加累积运算- d s p 除了具有m c u 大体相似的数据传送指令、算术逻辑运算指令、程序控制转移指令 外,还特别具有加快指令运行的特殊指令 东南大学硕1 :学位论文 m c u 与d s p 有许多相同之处,但是d s p 的硬件结构更能保障其快速地运算。随着集成电 路工艺水平的提高删的主频或者说工作速度越来越高,可以通过提高工作速度来提高其 运算能力,现在的l i c u 除了做传统的控制器外,也能作一般的信号处理如语音处理等,但 是其处理质量和速度不够高。d s p 运算中最常用的是乘法、乘加运算,如果m c u 内有快速执 行乘法、乘加运算的功能,加上工作速度的提高,那么其性能上就可以接近一般的d s p ,可 以更好更快速地处理语音等d s p 运算。 m c i j 经过多年的发展,历经了4 位、8 位到现在的1 6 位、3 2 位甚至6 4 位,目前市场占 有量最多的是8 位m c u ,而1 6 位m c u 作为8 位和3 2 位之间的产品,虽然目前市场占有量不 是很高,但还是有其生存的空间。因为最终客户是从性价比方面面不是从位数方面考虑选 择何种m c 【i 。在数字信号处理领域,一般数据的位数多大于8 位,对语音信号,常用1 6 位 数据表示,而8 位m c u 的数据总线宽度是8 位的,处理时要分成高8 位、低8 位,不方 便,因此,在数字信号处理方面,具有1 6 位数据总线宽度的1 6 位m c u 比8 位m c u 在数字 信号运算、处理方面更方便,更有优势。 m c u 市场广阔,竞争激烈,要在这激烈的竞争中占有一席之地,产品一定要有特色,性 价比要好。吸取d s p 的特点,使m c i j 能够快速地执行乘法,乘加运算,运算能力比一般姗 大大提高,将拓宽应用领域,大大提高产品的性价比 2 - 第l 章绪论 1 2 本论文主要研究工作 g 2 0 1 是一款1 6 位删,内部包含一个1 6 位c p 【i 。1 6 位a d 、d a ,3 2 0 kr o m ,2 8 k s i l m ,计数器、定时器,看门狗,中断。锁相环等模块,可外接s d r 肼存储器,提供2 2 个 i o 口,工作电压2 7 v 3 6 v ,最高工作频率4 3 姗z ,电路采用上华0 5 u $ 双铝单多晶工 艺设计。g 2 0 1 具有丰富实用的指令集,与常规c u 相比,g 2 0 1 的指令系统支持乘法和内积 运算,从而大大提高了数字信号处理运算的能力。 语音信号的频率较低,人耳可听到的频率范围大约是1 6 h z 1 6 k h z ,对语音信号的采样 率一般是在8 k h z 4 4 k h z ,而对信号处理的速度和采样率密切相关。g 2 0 1 支持1 6 位乘法和 内积运算,工作频率最高可达4 3 删z ,完全可以处理针对语音数字信号的数字信号处理运 算。g 2 0 1 特别适合用于电话答录机,语音复读机等需要数字音频处理和录放等场合 数字信号处理运算中,数据一般采用补码,g 2 0 1 的乘法指令支持1 6 位补码乘法运算: 在数字信号算法中,数字信号滤波是最常用的算法,l 阶或者长度是l 的有限脉冲响应 ( f i r ) 数字滤波器的输出是对应于时间序列珥,l 】的关系由一种内积形式给出,具体如下: m 拧】= h o l x 打】+ h l q x n l 】+ k + h i l 一1 x ( n 一三+ 1 ) h 是f i r 滤波器的系数,x n 是当前采样信号,x c n - 1 上次采样信号,因此类推。可以看 出内积运算涉及乘法和加法运算,可以在乘法指令的基础上实现内积指令。 本文将在分析硬件乘法算法的基础上,讨论g 2 0 1 的乘法、内积运算的实现方法,论文 的主要内容如下: 介绍几种硬件乘法算法的结构和原理,并对它们的工作速度,硬件规模等方面作比 较,选择一种适合9 2 0 1 的乘法算法: 分析g 2 0 1c p u 的主要硬件模块和指令系统; 采用基于基4 布思算法实现g 2 0 1 的乘法,内积指令,分析乘法、内积的执行过程; 通过仿真和模拟优化电路,验证电路功能的正确。 3 - 东南大学硕士学位论文 第2 章乘法器原理 在数字信号处理技术中,乘法是非常重要的基本运算。乘法器的种类有很多,从逻辑 设计的观点看。可以把乘法器分为时控乘法器和阵列乘法器两大类。后者具有足够的并行 性,不必寄存中间结果,就可以锝到最后答案。此外。乘法器的结构也依所用的数码( 原 码或补码) 而异。遥常,无符号位的乘法比补码乘法简单,但是补码最适合用于高速乘 法。 2 1 一位移位相加整数乘法 2 i 1 无符号位一位乘法 二进制与十进制乘法的运算方法一样。只是此时应用二进制乘法规则: 0 x 0 = o ;0 x i = l ;l x 0 = 0 ;lx 1 = 1 。 它实际就是作“与”操作,多位二进制乘法和十进制类似,见下例: 十进制乘法 被乘数: 乘数:x 1234 432l 234 68 2 l 2 4 37 o 被乘数: 乘数: 二进制乘法 ! 竺! 鱼 10 5 3 3 21 14 多位二进制乘法运算可以用一个加法器其经过多次迭代,迭代次数与乘数位数相同, 而加法器位数与被乘数位数相同。原理图见图2 1 i ,运算步骤如图2 1 2 以a = 1 0 1 1 , b = 1 1 0 1 为例,被乘数被放在寄存器b ,乘数放在寄存器a ,经过4 次加法 迭代运算,8 位结果保存在寄存器d ( 高4 位) 和a ( 低4 位) 中,电路的工作过程如表2 1 l 。这种实现方式称之为迭代,它的结构简单,但是速度很慢,若乘法位宽是n 位,那么它 需要2 1 4 个时钟周期。 一4 一。 一一 x,一 量:耋耄釜登璧耋 c 、d 、a 联合右移 图2 1 1 无符号位一位乘法原理图 图2 1 - 2 无符号位一位乘法运算步骤 5 东南丈学硕士学位论文 步骤 cda 说明 置初值 00 00 010l l 初始状态,置数a 、b ,清d 第加操作 l lol 计算第0 位;a 1 0 为1 。加b 0 和值 0l l0 1 加法结果 步 0l lol l0l c 、d 、a 联合右移,得到本次部分积移位 第加操作 l l01 计算第1 位;a 【o 】为1 ,加b l 和值 l0o1 1 加法结果 步 移位 l0 0lli io c 、d 、a 联合右移,得到本次部分积 第 加操作 0 0 0 0 计算第2 位ia o 】为o ,加0 2 和值 o10 0l 加法结果 步 移位 0l0 0l l l l c 、d 、a 联合右移,得到本次部分积 第 加操作 l lo1 计算第3 位;a o 】为l ,加b 3 和值 lo ool 加法结果 步 移位 l0 0 01i1i c 、d 、a 联合右移得到本次部分积 结束 l00 0llll 乘积d 中为高部分,a 中为低部分 表2 1 1 二进制无符号数一位相乘工作过程实例 2 1 2 符号数一位乘法 有符号数常用补码表示,对于一个n 位的定点补码数a ,可以写出它实际的表达为: 4 = 一4 州1 2 4 + 4 2 l 2 - 2 + + 1 】2 1 + 4 0 】2 0 ( 2 1 1 ) 其中4 - l 】是符号位,当彳2 0 时4 _ l 】= o ,当彳 o 时4 l = l - 则: d = 一b = ( 一4 - l i 2 - 1 + 4 2 l 2 4 + + 4 i i * 2 + 4 。l 2 。) j 8 ( 2 卜2 ) = 一4 川嚣2 卅+ 4 一2 】b 2 一2 + + 4 l l 口 2 + 4 0 l 口2 。 ( 2 1 - 3 ) 可见,补码运算在对最高位计算时需要特殊操作一减。据此思路,参照前面无符号 位乘法的实现方法补码乘法就不难实现。仍以a = 1 0 1 1 = ( - 5 ) i o b = 1 1 0 1 = ( 一3 ) ”为例,补 码一位乘法实现过程如表2 1 2 : 6 步骤 da 说明 置初值 0000l01l 初始状态,置数a 、b ,清d 第加操作ll01 计算第0 位:a 【o 】为1 ,加b 0 和值 ll0l 加法结果 步 移位 lll0 l lol d 、a 联合右移,得到本次部分积 第加操作ll0l 计算第1 位:a i o i 为l ,加b l 和值 l01l 加法结果 步 移位 l10ill lo d 、a 联合右移,得到本次部分积 第加操作 o000 计算第2 位;a 【。j 为0 加0 2 和值 110l 加法结果 步移位lll01111 d 、a 联合右移,得到本次部分积 第减操作 l101 计算第3 位;a t o 】为1 ,加b 3 差值0oo1减法结果 步移位0000 11l1 d 、a 联合右移,得到本次部分积 结束oooo l ll1 乘积,d 中为离部分,a 中为低部分 表2 卜2 二进制补码一位相乘工作过程实例 需要说明的是,这里寄存器d 内存放的是补码数,对补码的右移必须是带符号位扩 展的右移,最后一步对最高位须做减法而不是加法,运算结果0 0 0 0 1 1 1 1 = ( 1 5 ) m 和无符号 位一位乘法相同,符号数一位乘法也需要2 n 个时钟周期。 2 2 布思算法 前面已经提到,补码最适合用于高速乘法。但是在一位移位相加乘法器中,补码乘法 最高位计算需要和其它步骤不同的操作一减运算。增加了逻辑的复杂度,而布思算法对补 码的最高位( 符号位) 的处理和其它位相同。下面介绍布思算法的原理。 2 2 1 基2 布思算法 对式( 2 卜1 ) : a = - 4 - 1 1 2 - 1 + 4 2 j 幸2 拈2 + + 4 1 l 2 1 + 4 0 l 2 0 = - 4 n - q * 2 ”一1 + ( 2 2 】- 4 一2 1 ) 2 ”一2 + ( 2 4 n 3 1 - - 4 ,】) 2 ”q + + ( 2 4 2 】一4 2 j ) 2 2 + ( 2 4 l l - 4 1 1 ) 2 + ( 2 4 0 , - 。1 ) 2 。 2 2 1 ) = 一 一l j 2 ”一+ 4 v - 2 1 * 2 ”一- 4 一2 l 2 x - 2 + 4 3 l 2 - 24 3 l 2 ”一3 + , + 4 2 j 2 3 4 2 j 2 2 + 4 i i * 2 2 - d l j 2 1 + 4 0 l * 2 l 一南j 2 。 ( 2 2 一z ) = ( 一4 一1 1 + 4 2 1 ) 2 ”。+ ( _ 4 一2 1 + 4 一3 1 ) 2 ”一2 + + ( 一4 2 l + 4 1 1 ) 2 2 + ( 一4 j j + o j ) 2 1 + ( 一4 0 】+ o ) 2 0 一l ; n i o 1 1 - o - 1 = n - o t i l = 0 “一4 卅+ 4 _ j j ) 2 “) ( e 。,2 ”) ( 2 2 - 3 ) ( 2 2 4 ) ( 2 2 啼) 其中: 疋。,2 一 。l + 4 川l( o s n s ( 一1 ) ,4 一l l = o ) ( 2 2 - 6 ) 其值如表2 2 - i 州4 h 】 岛1 0o一0 + 0 = 0 010 十1 = l lo- i 0 = - 1 11 一l + 1 = 0 表2 2 - 1 基2 布恩编码 则: d = 4 b 一l = ( ( e 。,2 ”) ) b ( 2 2 - 7 ) n = o 一1 = ( ( 如,曰) 2 ”) ( 2 2 - 8 ) n t o 这就是布思算法。可见,在这种处理方式中,对最高位的处理没有特殊要求。它的编 码要考虑本位和相邻低位,确定操作为加或减,运算量是0 或8 。仍以a = 1 0 1 1 = ( _ 5 ) ,q b = 1 1 0 1 = ( 一3 ) m 为例,基2 布思算法的实现过程如表2 2 2 ,注意表内增加了一个相邻 低位寄存器“,】。基2 布思算法也需要2 n 个时钟周期。 步骤 da 说明 置初值 000010110 初始状态,置数a 、b ,清d ,p 第减操作 l10i 计算第0 位:a t o 】、a t _ 为1 0 ,减8 0 差值 o0ll减法结果 步 移位 000i1 10il d 、a 、a 卜t 】联合右移,得到本次部分积 - 8 第2 章乘法器原理 第加操作 0000 计算第1 位;a 、a f l 】为1 1 ,加0 1 和值 000l 加法结果 步移位0000lll0l d 、a 、a 【联合右移,得到本次部分积 第加操作11ol 计算第2 位;a 、a f i i 为o i ,加b 2 和值l1ol 加法结果 步 移位 l l10lilt0 1 3 、a 、a | 联合右移,得到本次部分积 第减操作 ll0l 计算第3 位;1 ,a i 1 为1 0 ,减b 3 差值 00ol 减法结果 步 移位 0000111l1 d 、a 、a i , i 联合右移,得到本次部分积 结束 00001111 乘积,d 中为高部分,a 中为低部分 表2 2 - 2 基2 布思算法工作过程实例 2 2 2 基4 布思算法 基2 布思算法是一位乘法,完成运算需要2 n 个时钟周期,基4 布思算法实现二位相 乘,可大大缩短运算时间。 乘数a 是补码,位宽为n 。若n 为奇数,可以对a 作符号位扩展成偶数,现在设a 为 位宽n 的补码数,n 是偶数,对式( 2 卜1 ) : 爿= 一4 1 l2 “1 - f 呜n - 2 * 2 “2 + + l j 2 + o 】2 0 = ( 一4 1 l + 4 一2 i ) 2 ”一。+ ( 一4 一2 1 + 3 1 ) 2 ”一2 + + ( 一4 2 j + 4 1 1 ) 2 2 + ( 一4 j l + 4 0 j ) 2 1 + ( 一4 。l + 0 ) 2 。 = ( 2 4 i 】+ 2 4 一2 1 ) 2 ”2 + ( _ 4 一2 l + 4 一3 j ) 2 ”。+ ( 2 2 - 9 ) + ( 4 2 1 + 4 l 】) 2 2 + ( 2 4 1 】+ 2 4 0 】) + 2 0 + ( 4 。l + o ) 2 0 ( 2 2 一l o ) = ( - 2 4 1 】+ 4 2 】+ 4 目) 2 “2 + ( 2 4 3 l + 4 4 】+ 4 一) 2 ”。4 + + ( _ 2 白j + 4 2 】+ 4 j 】) 2 2 + ( 2 4 i j + 4 0 】+ o ) 2 0 v i 。h j - j = 。- 0 ,乏i 。( 卜2 4 z 一+ 1 j + 4 z 一】+ 4 :一】) 。2 打) 9 - ( 2 2 - 1 1 ) ( 2 2 - 1 2 ) ( n 2 ) 一l 。磊( 巧一矿) ( 2 2 一1 3 ) 其中: e 一,。- 2 4 2 一州+ 4 z , q + 哞2 , r - t l ( o s 疗“ r 2 ) 一1 ) 4 h = o ) ( z 2 1 4 ) 其值如表2 2 3 : 4 2 肿i j4 h j 4 扣i j e 。, o0 0 - 0 + o + 0 = 0 oo l o + o + 1 = 1 01 0 0 + l + o = l o1 1- 0 + i + 1 = 2 1o 0 2 + o + o = 一2 l0l 一2 + 0 + l = 一l l10 - 2 + 1 + 0 = - 1 1 l1 - 2 + 1 + 1 = 0 表2 2 - 3 基4 布思编码 d = 爿占 f 2 ) 一i = ( ( 置。,矿) ) 占 ( 2 2 一1 5 ) 1 0 ,2 卜i = ( k 口) 矿 ( 2 2 - i o ) n - 0 基4 布思算法一次要考虑三位:本位、相邻高位、相邻低位,来确定( z 0 ,回的值。 ( 瓦,句的值有3 种。0 ”,“b “2 b ”,对“2 b ,的实现,只需要将“b ”左移1 位。基4 布思算法和基2 布思算法,运算复杂程度没有增加多少,但是运算时间缩短了一半,为n 个时钟周期。下面仍以a = i o l l = ( - - 5 ) ,“b = l 1 0 1 - - ( 一3 ) t 。为例,用基4 布恩算法计算a * b ,见 表2 2 - 4 。 步骤 da a il i说明 置初值0000lo110初始状态,置数a 、b ,清d ,p 第减操作 1lo1 a i i 】、】、a l l 为1 1 0 ,减b 0 差值 0oll 减法结果 步 移位 000011101 d 、a 、a t - j 联合右移2 位,得到本次部分积 第 减操作 l1o1 a t 、a f m 、a p j 】为1 0 1 ,减b 1 差值ooll减法结果 步 移位 00001 1111 d 、a 、a i - i ) 联合右移2 位,得到本次部分积 结束 00o01111 乘积,d 中为高部分,a 中为低部分 表2 2 4 基4 布思算法工作过程实例 - 1 0 - 第2 章乘法器原理 2 3 陈列乘法器 陈列乘法器是用一位加法器排列成的二维阵列,它是最快的乘法器,广泛使用在高速 d s p 中。陈列乘法器不需要储存器,它的速度仅取决于逻辑门的传输延时时间。随着集成电 路工艺水平的提高和结构的优化,陈列乘法器的运算速度不断得到提高常见的陈列乘法 器的算法有移位加算法,p e z a r i s 算法和b a u g h w o o l e y 算法。 2 3 1 移位加算法 移位加算法是一种比较简单的算法。每一个部分积都是由被乘数与一位乘数相乘产 生,然后按照笔算乘法的规则进行移位和相加。它将两个n 位的有符号数写成一位符号位 和( n - 1 ) 位数码位。井对它们分别进行陈列。具体操作过程如下: 1 )符号位用异或门进行处理如果两个数的符号位相同,则得出结果的符号为“0 ”, 否则为“1 ”; 2 )对数码位进行相乘。从乘数的最低位开始,每次取一位乘数,与被乘数相乘得到 部分积,并将其与上次的部分积相加形成新的部分积,再逻辑右移一位。重复上述步骤, 直到n 次“相加右移”的操作结束,得到部分积的总和; 3 )将符号位与数码位组合起来,获得最终的乘积结果。 图2 3 - 1 给出5 x 5 位不带符号位的移位加算法阵列乘法器原理图。图中的f a 是一位全 加器。f a 的斜线方向是进位输出,竖线是和输出 图2 3 - i5 x 5 位无符号数移位加算法原理图 a o b o 移位加算法在运算上简单明了,但是它对有符号数的处理只是单纯地将符号数与数码 位分开,这就增加了控制部件的难度,而且,数码位的运算中也存在许多冗余运算,导致 运算速度的降低。由于该算法建立在无符号数运算的基础上,延时长、速度慢是其主要的 缺点。 幺3 2p e z a r i s e 算法 相对于移位加算法。p e z a r i s 算法无需梅有符号数分为符号位和数码位,可直接用于 补码乘法的算法,因此提高了乘法器的速度。 p e z a r i s 算法的最大特点是仅通过不同类型的全加器组成的阵列就可以完成对补码数 的乘法运算。图2 3 2 给出了该算法所_ j 剑的四种类型的全加器的名称和逻辑符号。每一 类全加器都是用它所包含的负权输入的个数来命名的。因此,o 类全加器没有负权输入,l 类全加器有一个负权输入和两个正权输入,依次类推。 类型逻辑符号 撩作 o 关 敝: x y 加法罄 。 乜 c s i 关 t x y 加法器 。矿2 2 = z c ( 一s ) 2 类砧 - - x 警卜t y “2 2 f a 。+ + )z ( c ) s 3 类 敝: 一x y + )一z 加法器 cc 哆 ( 一c ) ( - - s ) 图2 3 - 2 四种不同类型的全加器 根据图2 3 - 2 ,可以导出这四类全加器的逻辑方程式。对于0 类、3 类全加器: s = x y z + 凇+ 矾z 七x y z c = 盖y + 陀+ 恧 对l 类、2 类全加器: s = x y z + x y z + x y z + ) 汜 c = 胛+ 】z + 屈 下面举例说明p e z a r i s 算法的运算过程。设被乘数a 和乘数b 是两个5 位的二迸制 补码效,即 1 2 第2 苹乘法器原理 a 2 【a 4 ) a 3 a 2 a l a o 口= ( 以) 毛岛6 1 用括号表示表示a b 的符号位是负的。同样,用括号来标注负的被加项,如( q 岛) , 则a 和b 相乘过程如下所示: 他)码吒q a o 瓴)岛 屯 岛 ( d 哦) 确c b 岛q 嘞岛 ( a 4 b 1 ) 吩白鹂酏a e l 岛 ( 峨) 码岛岛岛a z 岛鸸 瓴岛) 哦哦q 岛鸲 鱼些蚴2 垫! ! 鱼塾21 鱼塾2 l i 龟p 1 p 6p ,p ip 3 l h p ip q 可以用上述四种类型的全加器将该算法表示成乘法阵列,如图2 3 - 3 所示 a 4 a 3 8 2 b 0a l b 0a o b o 图2 3 - 35 x 5 位p e z a r i s 算法的乘法阵列 该算法的乘法阵列并不是唯一的,还可以有许多组合方式。这种乘法阵列可以直接求 有符号数的乘积。但是因为用到的全加器类型多,使得乘法阵列不规则,不利于v l s i 版图 的设计。 1 3 - 东南大学硕士学位论文 2 3 3b a u g h - - w o l e y 算法 b a u g h w o o l e y 算法也是一种补码乘法的算法。它仅需要使用图2 中的0 类型的全加 器构成的乘法阵列。由于结构规整,适合于v l s i 的实现。 同样用两个5 位的补码数来说明b a u g h - o o l e y 算法的实现过程,其运算过程为: 幽 码吗 q 嘞 x 以岛岛岛岛 + 啪吗趣q 岛缅趣 鸲鸥鹂鹂 码岛d 慨6 慨嘞岛 a 峨马钆钆 五q 五气磊气 群 b 4 hhp 1 p 6p ,p i - 3 p 1 p 、巩 从中可以看出b a u g h - w o o l e y 算法与p e z a r i s 算法的区别。图2 3 - 4 为该算法的乘法 阵列。 “丽d ,o a 2 b o a l b o a o b o 图2 3 - 45 x5 位b a u g h - w o o l e y 算法的乘法阵列 与p e z a r i s 算法相比,b a u g h - w o o l e y 算法只要用到一种类型的全加器 移位加算法是阵列乘法器最基础的算法,但该算法建立在无符号数运算的基础上,有 延时长、速度慢等缺点;而p e z a r i s 算法和b a u g h - _ o o l e y 算法则都能直接运用于幸卜码乘 1 4 - 法。 2 4 小结 在数字信号处理领域,乘法是非常重要的基本运算。乘法器的种类很多,本章介绍了 一位移位相加整数乘法算法、布思乘法算法和阵列乘法算法。一位移位相加整数乘法算法 是最基本的乘法算法,它的计算方法是模拟手算,利用储存器和一个加法器,在时钟的作 用下,分步逐次移位相加获得相乘结果;布思算法可方便地实现补码乘法运算,它也是需 要储存器和一个加法器,在时钟地作用下,通过布思码控制加法,逐次移位相加获得相乘 结果:阵列乘法器通过加法器阵列获得相乘结果,不需要时钟控制,是最快的乘法器。各 种乘法器的优缺点见表2 4 - i 。 乘法结构硬件模块运算时间其它 无符号位一位乘法加法器、寄存器、时2 n 个时钟周期原理简单明了;不 序控制屯路适合补码运算 有符号位一位乘法加法器、寄存器、对2 n 个时钟周期可以作补码运算: 序控制电路符号位要单独处理 基2 布思算法加法器、寄存器、布2 n 个时钟周期适合补码运算 思码和时序控制电路 基4 布思算法加法器、寄存器、布n 个时钟周期适合补码运算 思码和时序控制电路 阵列乘法器硬件规模大取决于门的延时时改进的算法适合补 间,速度最快 码运算 表2 4 - i 各种乘法器性能特点 ( ;2 0 1 的构架基于微处理器,采用阵列乘法器实现乘法运算虽然可以提高乘法运算速 度,但是会大大增加硬件成本;基4 布思算法也是常用的乘法算法,在硬件规模上和运算 速度上都比较适中,适合补码运算,它也是把乘法分解成若干次的加法来获得运算结果, 加法可以利用c p u 内部的a u i ,仅需设计针对布思算法的时序控制电路,在增加不多的硬件 规模基础上就可以实现乘法运算。g 2 0 1 的目标应用领域是数字音频信号处理。音频的采样 率一般在2 0 k h z 左右,而( 3 2 0 1 的设计最高工作频率达4 3 姗i z ,完全可以满足数字音频处理 的要求。因此。g 2 0 1 采用基4 布恩算法实现乘法和内积指令。 1 5 东南大学硕士学位论文 第3 章c p u 结构 g 2 0 1 是一颗用于数字语音信号处理的高性能1 6 位删,内部集成了一个1 6 位c p u 、 l7 5 k x l 6 b i t ss r 删、2 0 k x l 6 b i t sr 例、1 0 位数模转换电路( d a o 、1 0 位模数转换电路 ( a d c ) 、s d r 埘接口,计数器、定时器,看门狗,中断,锁相环等模块,可外接s d r 棚存储 数字语音信号,电路的功能框图见图3 - 1 。应用在电话答录系统或语音复读机时,可将模拟 语音信号通过 d c 转换成数字语音信号,然后通过c p u 作数字信号处理运算。对数字语音 信号进行压缩编码,存储到外接s d r a l l ;需要听录音时,把存储在s d r a m 内的语音压缩编码 还原成正常的数字语音信号,还可以根据需要对数字语音信号作语速变换的处理,然后通 过d a c 把数字语音信号转换成模拟信号,通过扬声器放出来。整个语音的录放过程需要用 到语音压缩编码、语音解压缩编码、数字信号滤波器、语速变换等数字信号处理运算,既 需要c p u 的管理控制能力,又需要c p u 有快速的运算能力,g 2 0 1 的c p u 既有一般m c u 具有 的加减等运算、逻辑运算和控制指令等功能,还具有乘法和内积运算,非常适合用于数字 语音处理领域。本章将介绍g 2 0 1c p u 的结构。 图3 - 1g 2 0 1 结构框图 1 6 - 第3 章c p u 结构 3 1c p u 核的结构 g 2 0 1 的内核1 6 位c p u 采用r i s c 体系结构,具有1 6 位双向数据总线和1 6 位地址总 线,内部含8 个高速寄存器,分别是堆栈指针( s p ) ,通用寄存器( r i ,r 2 ,r 3 ,r 4 ) ,基 址指针寄存器( b p ) ,段寄存器( s r ) 和程序计数器( p c ) ,可处理3 种中断包括1 个快速 中断请求( f i q ) 、8 个普通中断请求( i r q ) 和1 个软件中断( b r e a k ) ,对外部i o 寄存器 读写用一个时钟周期,而对速度较慢的r o w 、s r 删的读写,用2 个时钟周期。c p u 核结构见 图3 卜i ,内部包含时序控制电路、中断控制电路、算术逻辑单元、移位器、寄存器组、指 令译码电路等模块,各模块功能清晰,在指令泽码电路输出的微操作信号控制下,有序工 作,完成各条指令。为了控制c p u 模块的电路规模,控制电路成本,c p i i 的设计采用传统的 逻辑围设计方法,以下是c p u 各功能模块的介绍。 图3 i - ! g 2 0 1c p u 内核结构 - 1 7 一 东南大学硕士学位论文 3 1 1 算术逻辑单元 l u 算术逻辑单元a l u 是c p u 的核心部件,电路的所有算术和逻辑运算都要通过a i j 计算完 成a l u 的结构见图3 卜2 ,可以进行1 8 位数据的运算,其中高2 位是进行乘法运算时用 到的。是补码的符号位扩展。 图3 1 2 l u 的框图结构 o a l u 核心是全加器和、与逻辑、或逻辑、异或逻辑,全加器采用逐级进位方式。在4 位 操作码的控制下,a l u 对输入到其运算部件的数据作4 种运算,4 位操作码0 p 在运算时只 有l 位为l ,操作码o p 和a l u 运算的关系如下: a l u o f 0 a l u o p i a l u o p 2 a l u o p 3 a l u 0 1o00 4 ,1 b j 】 oloo 4 f 1 + b f l 0o l 0 再l 】昼f 】+ 4 i l 五q 0001a + b + c i l u 运算结果影响标志位n f 、z f 、s f 、c f 。n f 是负标志位,由a l u o , 。直接输出; z f 是零标志位,a l u 运算结果是零对z f = l ;s f 是符号位,由a l t ,j o , ,。,直接输出;c f 是进 位标志位,由第1 5 位的进位输出c d u 瓦。直接输出,标志信息的输出会锁存标志寄存 器。从前面的分析可以看到,a l u 的操作中有加法运算,没有减法运算,那么a l u 是否可以 傲减法运算呢? 我们知道,对一个补码数,对其各位取反,然后再加i ,那么该数就成 了原数的相反数,即a 变成了一a 。从图3 ,卜i 可见, l u 操作数不是直接从操作数寄存器 1 8 - 第3 章c p u 结构 直接得到的,而是通过了一个2 选l 电路( i i j x ) ,该2 选1 电路就是和加减操作有关,它 的作用是把操作数寄存器的数据进行处理。然后送到a l u ;另外,a l u 进位输入也是可选 的,这样,a l u 就可以实现以下几种运算: 加法fa = d a t a a ,b = d a t a b 。e = 0 则:a 上( ,d = a + b + c 。= d a t a a + d a t a b 带进位加法:a = d a t a a 。b = d a t a b ,e = c f 则:4 三【,d = a + b + c t = d a t a a + d a t a b + c f 减法:a = d a t a a ,b 是d a t a b 的取反,e = l 则:4 【,d = a + b + e = d a t a a d a t a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论