首页> 中国专利> 数字绳码编码解码及加减乘除倒数算术电路设计的方法

数字绳码编码解码及加减乘除倒数算术电路设计的方法

摘要

计算机及单片机的编码与算术运算采用二进制规则,用二进制规则进行算术运算必须发生进位与借位,进位与借位极大地影响运算速度。本发明是一种运算码的编码、解码、算术运算的方法,构建的算术运算电路是把二进制码编码成运算码,由运算码进行算术运算,运算结束后再把运算码解码成二进制码。优点是电路级数少,把二进制数操作数(整数、定点数、浮点数)送入运算电路到二进制运算结果从电路中输出,加减运算的电路级数小于10级,乘法运算与倒数运算的电路级数小于25级,除法运算的电路级数小于45级。所用的电子元件少,不仅能集成到计算机的CPU里,还能集成到单片机的CPU里。

著录项

  • 公开/公告号CN101692200A

    专利类型发明专利

  • 公开/公告日2010-04-07

    原文格式PDF

  • 申请/专利权人 魏营隆;

    申请/专利号CN200810086016.3

  • 发明设计人 魏营隆;

    申请日2008-03-11

  • 分类号G06F7/38;

  • 代理机构

  • 代理人

  • 地址 453003 河南省新乡市中原路171号院5号楼2单元12号

  • 入库时间 2023-12-17 23:35:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-02

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):G06F7/38 申请日:20080311

    实质审查的生效

  • 2010-04-07

    公开

    公开

说明书

技术领域

电子信息

技术背景

数字电路进行数据处理时,把高电平做为1,低电平做为0,以1或0编制成二进制码,通过与门、或门、非门三个基本逻辑关系进行算术运算或逻辑运算。在算术运算中,二进制码进行加法运算是逐位进行,两个N位的二进制数相加时,每一位运算都必须向上发生多次连续进位,总运算层数为0.5*N*(N+1),假设每个运算层需要3级电路,则加法运算的总电路级数为1.5*N*(N+1)级,128位加法运算,电路级数达二万五千级。二进制码的乘法运算实质上是加法运算,128位的乘法运算的电路级数相当于N个N位加法运算电路级数的和,电路级数大约300多万级。二进制码的除法运算实质上是减法运算,N/N位的电路级数大于N*N位的乘法运算电路级数。显然,如果计算机使用二进制码的硬件算术运算电路,它的位数必须足够大,大到所有数据的算术运算都能用硬件算术电路完成。当硬件算术电路的位数足够大时,即使1+1的运算也得用电路级数很大的硬件运算电路。所以,现计算机进行算术运算是用软件来模拟或管理硬件进行,大位数的二进制数据处理,用软件模拟比硬件算术电路运算效率要低,但把不同位数的算术运算综合起来统计,软件模拟运算比硬件运算效率要高。但是,只要是用二进制码进行算术运算,就必须发生进位与借位,进位与借位就一定降低计算机的运算速度。目前世界上运算速度最快的巨型计算机每秒钟也仅能完成5000万个64位的浮点数算术运算结果。

技术先进性

本方法是把二进制码编码成数字绳码,通过数字绳码进行算术运算,运算过程中不发生进位,运算结束再把数字绳码解码还原成二进制码。数字绳码是一个分级码,所有的数字绳绳内运算的规则相同,同级的数字绳可以连接成一条数字绳,不同级的数字绳可以组成数字绳组,数字绳组内的不同数字绳进行运算时按跳级运算的规则进行。由数字绳码组成的算术运算电路比二进制码组成的算术运算电路其电路级数少的多。以256位的的浮点加法、减法、除法、倒数运算为例,由数字绳码组成的数字绳组算术运算电路,从二进制码的整数、定点数、浮点数送入运算电路,到运算电路中输出整数、定点数、浮点数,加法、减法运算电路约为10级基本逻辑元件,乘法电路约为20级,倒数电路约20级,除法电路为乘法电路与倒数电路的级数和。假设三种基本逻辑元件的开关速度为每秒100亿次,加法或减法的运算速度为每秒钟10亿个256位数据的运算结果,乘法的运算速度为每秒5亿个256位数据的运算结果,除法为每秒2.5亿个256位数据的运算结果,并且可以进行加、减、乘、除的并行运算。这样的运算速度比世界上现有的速度最快的巨型计算机的运算速度都快的多,所用的电子元件并不多,既可以把256位的算术运算电路集成到电子计算机的CPU里,也可以把32位的算术运算电路集成到单片机的CPU里,还可以做成插件电路板把加、减、乘、除算术运算电路外挂到CPU上。

发明目的

1、建立多级数字绳码的规则,建立多级数字绳码编码、解码的方法,建立数字绳码进行实结或实结段平移的方法,建立标准数字绳及浮标数字绳的方法,建立多级数字绳码的数字绳组的方法,建立多级数字绳组从饱和数字绳到不饱和数字绳的跳级方法,建立不饱和数字绳解码的方法。用与门、非门、或门三种基本逻辑元件建立起运算电路的原理电路图。

2、建立数字绳码加、减算术运算的方法与原理电路。

3、建立数字绳组进行加法、减法、乘法、倒数、除法的运算方法与原理电路。使用假码使数字绳码的减法运算成为加法运算;用分解因式的方法使乘法运算成为数字绳码的加法运算;使用假码使倒数运算成为数字绳码的加法运算,用除数的倒数与被除数相乘使除法运算成为数字绳码的加法运算。

4、建立起加法、减法、乘法、倒数、除法的运算电路输入接口与输出接口的方法,整数、定点数、浮点数通过相应的输入接口送入运算,运算结果通过整数、定点数、浮点数输出接口直接以整数、定点数、浮点数输出。对算术运算的操作只是选择相应的接口输入数据与选择相应的接口取出数据。

技术方案

本方法是数字绳码编码、解码与算术运算的方法。其特征是:计算机进行算术运算时,高电平为1码,低电平为0码。数字绳码是把0码用虚结表示,把1码用实结表示,由实结与虚结组合起来表达数据;一条数字绳的结数是实结数与虚结数的和,一条数字绳所表达的数值等于该条数字绳内所有实结数的和;数字绳的绳结数可以任意定义,一条数字绳表达的可以是一个二进制数,也可以是一个二进制数中的一位或几位数;一个二进制数用一条数字绳表达时,数字绳表达的数据是所有实结数的和,每个实结的数值为1,这条数字绳的级数为1;一个二进制数用一组数字绳来表达时,用数字绳组内的每条数字绳分别表达这个二进制数中的一位或几位;当数字绳组中的每条数字绳分别表达一位时,每条数字绳内的结数可以任意定义,从0位开始的每条数字绳依次为第一条数字绳、第二条数字绳,直至第i条数字绳,第一条数字绳内每个实结的数值为1,第二条数字绳内的每个实结的数值为2,第三条数字绳内的每个实结为4,第i条数字绳内的每个实结的数值为2i-1,这条数字绳的级数为2;当数字绳组中的每条数字绳分别表达m位时,每条数字绳内的结数可以任意定义,从0位到m位为第一条数字绳,从m位到2m位为第二条数字绳,依次类推直至第i条数字绳,第一条数字绳内每个实结的数值为1,第二条数字绳内的每个实结的数值为2m,第三条数字绳内的每个实结为22m,第i条数字绳内的每个实结的数值为2m(i-1),这条数字绳的级数为2m;数字绳内的实结与虚结可以任意组合排列,实结自数字绳的一端起排列并且所有的实结都相邻的数字绳为标准数字绳,标准数字绳的实结起始端为数字绳首端,另一端为数字绳末端;当数字绳内的实结或实结段不以数字绳的首端为起始端或可能不以数字绳的首端为起始端时,要把实结或实结段平移到数字绳的首端;当多条同级的数字绳连接成一条数字绳时,要先把各条数字绳内的实结或实结段平移成一个实结段,再把各条数字绳的实结段平移成一条以首端为起始端的标准数字绳;把数字绳的实结自首端起替换成虚结,只保留最上边的一个实结,这个实结就是数字绳的浮标码,有浮标码的数字绳为浮标数字绳;数字绳码的编码是把二进制码编码成标准数字绳码;数字绳解码是把浮标数字绳转换成二进制码。数字绳加法运算是把两条或多条同级数字绳连接成一条新的数字绳,把新的数字绳做成标准数字绳,标准数字绳内的实结总数为加法的和;数字绳减法运算是把两条标准数字绳做成一条新的标准数字绳,新的标准数字绳内的实结数量为两条数字绳内实结数量的差值。数字绳加法、减法运算时都可以把两个源操作数及结果做出0或非0标志,加法电路中必须有进位标志,减法中必须有符号标志。数字绳组的加法运算是把两个或多个级数相同的标准数字绳组合并成一个新的饱和标准数字绳组,合并过程是对数字绳组内实结表达数值相同的两条或多条数字绳合并成一条新的标准饱和数字绳,再通过数字绳组的跳级消减结使数字绳组内的每条数字绳都成为不饱和数字绳;两个数字绳组A与B相减时,减法运算由三个并行电路组成,第一个并行电路是用假码数字绳组减A数字绳组然后与B数字绳组进行加法运算,第二个并行电路是用假码数字绳组减B数字绳组然后与A数字绳组进行加法运算,第三个并行电路是对两个减法二进制操作数进行比较,比较结果做为减法运算的符号标志,由两个符号标志控制两个与门开关组,与门开关组在A大于B时接通第二个电路,在A小于B时接通第一个电路,在与门开关组后面得到的是数字绳组相减的结果;数字绳组的乘法运算是通过分解因式使乘法运算转换成加法运算;数字绳的倒数运算是把数字绳B当做数字绳A的倒数,以A乘B的结果等于22n建立乘法关系,2n是倒数的基本移位值,由乘法关系的逆关系求解倒数B,在得到倒数数字绳后通过解码得到二进制码,对结果二进制码进行基本移位位与A数移位位的位值校正;数字绳的除法运算是先把除数进行倒数运算,由倒数运算的结果值与被除数相乘,相乘结果进行基本移位位校正。数字绳或数字绳组的加法、减法、乘法、倒数、除法运算的操作数都是整数,在算术运算电路的前端连接整数输入接口、定点数输入接口、浮点数输入接口,使算术运算能够进行整数、定点数、浮点数运算,同时通过接口电路使算术运算能直接进行有符号数运算;在算术运算电路的后端连接输出接口,直接输出二进制的整数、定点数、浮点数;其中加减运算的输入接口是;加减运算的输入接口是;乘法运算的输入接口是;乘法运算的输出接口是;倒数运算的输入接口是;倒数运算的输出接口是;除法运算的输入接口是;除法运算的输出接口是。

(一)、数字绳码与标准数字绳

数字绳码不是物理上的一条绳打上结做为码,而是逻辑上的关系。数字绳的结表达的是电路上的点,把电路上的点视做绳结,这些点上出现低电平时为虚结,出现高电平时为实结,低电平为0码,高电平为1码,多个电路点的联系形成逻辑上的数字绳关系。由电路上的点组成的数字绳反映的是电路上的数学逻辑关系,反之,由数字绳的数学逻辑关系可以来构成电路。

数字绳码只以实结计数,一条数字绳表达的数值是这条绳上所有实结数量的和。数字绳码计数从一端开始,实结要连续,实结与实结间不能有虚结,能计数的数字绳为标准数字绳。标准数字绳码是数字绳内所有的实结相邻形成连续的实结段。实结段起始的一端为数字绳的首端,另一端为数字绳的未端。

一条标准的数字绳最多只能有一个实结或实结段,实结或实结段的起始端必须在首端。当数字绳的实结或实结段与虚结或虚结段相互交错时,通过平移实结或实结段使一条数字绳内只存在一个实结或实结段;当数字绳内的实结或实结段可能不以首端为起始端时,要把实结或实结段平移到数字绳的首端;当多条数字绳连接成一条数字绳时,要先把各条数字绳内的实结或实结段平移成一个实结段,再把该实结段平移到数字绳的一个端口成为标准数字绳。

(二)、数字绳上的实结或实结段的平移

数字绳码的编码解码及算术运算都必须是标准数字绳,当不能确定数字绳是标准数字绳时,就必须把数字绳上可能存在的实结或实结段进行平移,使数字绳的实结或实结段的起始位置在数字绳的首端。

一条数字绳内只能有一个实结或实结段,当不能确定一条数字绳只有一个实结或实结段时,要把这条数字绳视做多条数字绳进行实结或实结段合并,使之成为一条数字绳。标准数字绳内的实结或实结段起始端必须在数字绳的首端,如果不能确定一条数字绳内的实结或实结段在数字绳的首端时,要把这条数字绳内的实结或实结段平移到数字绳的首端。

如果两条数字绳连接到成一条数字绳,这条数字绳内就可能有两个实结或实结段,如果能够确定一个实结或实结段在数字绳的首端时,可以对另一个实结或实结段进行平移形成一个实结段。如果不能确定其中的一个实结或实结段在数字绳的首端时,可以把其中的一条数字绳先做成标准数字绳,然后再平移另一个实结段;也可以把两个实结或实结段合并成一个实结或实结段,然后再平移到数字绳的首端。

当把多条数字绳连接起来成为一条数字绳时,要把多条数字绳分成组,先把每组数字绳通过实结或实结段进行平移成为一条数字绳,再分组对每组数字绳的实结或实结段进行平移,直到把所有的数字绳内的实结或实结段平移到一起并且成为一条标准数字绳为止。

(1)把一条数字绳内的实结或实结段平移到数字绳首端的方法。

设:一条数字绳结数为m,从首端起依次为1,2,3,4,5...i..m结。平移方法:对1,2,3,4,5...i..m结用单向导通的元件进行隔离平移,平移后连接到数字绳的1,2,3...i..m-1结;2结平移到数字绳首端,2结分别和3,4,5,...i..m结相与后分别连接到平移后数字绳的2,3,4...i..m-2结;3结平移到数字绳首端,3结分别和4,5,6...i..m结相与后分别连接到平移后数字绳的2,3,4,...i..m-2结;依次相与,直至第m结自己和自己相与后连接到平移到数字绳首端。设:m=8,图1是一条8结数字绳内的实结或实结段平移到首端成为标准数字绳的原理电路图。

(2)两条标准数字绳连接成一条标准数字绳的方法

第一种方法是把两条数字绳的首端相连成为一条新的非标准数字绳,然后再通过一条数字绳内实结或实结段平移使之成为标准数字绳,其平移方法的逻辑电路图如图1所示。

第二种方法是把一条标准数字绳的首端连接另一条标准数字绳的未端相连成为一条新的数字绳,其中的一个实结或实结段在数字绳的一端,以此端为数字绳的首端,通过对绳内实结或实结段平移成为标准数字绳。设:一条数字绳结数为m,从首端起依次为a1,a2,a3,a4...ai...am结,另一条数字绳结数为n,从首端起依次为b1,b2,b3,b4...bi...bn结,连接方式为b1端连接到am端。平移方法是:a1,a2,a3,a4...ai...am隔离后为c1,c2,c3,c4...ci...cm,b1,b2,b3,b4...bi...bn隔离后后分别连接到c1,c2,c3,c4...ci...cm结;以a1结分别和b1,b2,b3,b4...bi...bn相与后分别连接到c2,c3,c4...ci...cm,结,其最未端的相与结果为cm+1结;以a2结分别和b1,b2,b3,b4...bi...bn相与后分别连接c3,c4...ci...cm,cm+1结,其最未端的相与结果为cm+2结:以a3结分别和b1,b2,b3,b4...bi...bn相与后分别连接c4...ci..cm,cm+1,cm+2结,其最未端的相与结果为cm+3结;依次相与,直至第m结分别和b1,b2,b3,b4...bi...bn相与后结束。设:一条5绳结的标准条数字绳为a1,a2,a3,a4,a5,另一条6绳结的标准数字绳为b1,b2,b3,b4,b5,b6,图2为一条标准数字绳内的实结或实结段平移到另一条标准数字绳内成为新的标准数字绳的原理电路图。

(3)四条数字绳连接成一条数字绳再做成标准数字绳的方法。

当四条数字绳连接成一条数字绳时,先把每条数字绳做成标准数字绳,中间的两条数字绳首端相连成为一条数字绳,外面的两条数字绳向中间的一条数字绳进行实结或实结段平移成为一条数字绳,然后再通过实结或实结段平移成为标准数字绳。

设:A、B、C、D为四条数字绳,每条数字绳有三个结。第一步,把每条数字绳平移实结或实结段成为标准数字绳。第二步,把中间的两条数字绳首端连接起来成为一条数字绳。第三步,把外部的两条数字绳向中间的一条数字绳进行实结或实结段平移。第四步,做成标准数字绳。图3为四条数字绳做成一条数字绳的原理电路图,本图省略了做标准数字绳的原理电路。

(4)多条数字绳连接成一条数字绳再做成标准数字绳的方法。

当多条数字绳连接成一条数字绳时,每四条数字绳分成一组,每组平移后成为一条数字绳。然后再以四条数字绳为一组进行平移,直到平移成一条数字绳后,再把最后的一条数字绳平移成标准数字绳。

例如:当有256条数字绳连接成一条数字绳时,第一级电路把256条数字绳转换成128条数字绳,第二级电路把128条数字绳转换成了64条数字绳,依次类推,256条数字绳通过平移成为一条标准数字绳需要9级电路。

(三)、数字绳码的编码方法

数字绳码编码就是把二进制码通过电路转换成数字绳码。编码有三种编码方法,方法1编码是用两路相与电路逐层相与,分别求出所有的十进制的数值,把求出的数字加到相应的数字绳结上,在数字绳内,任意一个实结以后全部填充成实结成为标准数字绳。方法2是用多路相与的电路,分别求出所有的十进制的数值,把求出的数字加到相应的数字绳结上,绳结以下的结全部填充成实结成为标准数字绳。方法3是把各个位做成数字绳电路,N位二进制数就有N条数字绳,把N条数字绳连接成一条数字绳,对N条数字绳进行分组平移实结或实结段,最后得到一条标准数字绳。

(1)用两路逐层相与的方法编码

把所编码的二进制的从最低位往上排列为第0位、第1位...第i位...。第0位经电路隔离后为数字绳第1个结,第1位经电路隔离后做为第2个结,第3位经电路隔高后做为第8个结,第i位经电路隔离后做为第2i结。0位和1位相与后做为第3个结,0位和第2位相与后做为第5个结,0位和i位相与后做为第2i+1结;1位和2位相与后做为第6个结,1位和3位相与后做为第10个结,1位和i位相与后做为第2i+2结;直到i-1位与i位相与后做为第一层。然后再进行第二层相与,第三层相与,直到把所有的数值全部计算完用数字绳结表达为止。之后,要把数字绳内任意一个实结以后的结全部填充为实结。举例:假设二进制数为四位,图4为两路逐层相与的方法进行编码的原理电路。

(2)用多路相与方法编码

多路相与的编码为两级电路,第一级电路用多路相与的方法把所有的数字绳结表达的数值计算出来,第二级电路对任意一个实结以后的绳结全部填充成实结。以四位二进制数编码成数字绳码为例,0位为1结,1位为2结,0位和1位相与为3结,2位为4结,0位和2位相与为5结,1位和2位相与为6结,0位、1位、2位三路相与为7结,3位数8结,0位和3位相与为9结,1位和3位相与为10结,0位、1位、3位三路相与为11结,2位和3位相与为12结,0位、2位、3位三路相与为13结,1位、2位、3位三路相与为14结,0位、1位、2位、3位四路相与为15结。图5为四位二进制码用多路相与的方法进行编码的原理电路。

(3)用多条数字绳分组平移的方法编码

用多条数字绳进行分组平移实结的编码方法是:(1)把二进制码的每一位都做成标准数字绳。当2进制码的每一位都做为一条标准数字绳,每条标准数字绳要么全是虚结,要么全是实结。每1条数字绳的结数为它所处的位数的数值,0位的数字绳结数为1,1位的数字绳结数为2,2位的数字绳结数为4,i位的数字绳结数为2i-1。(2)平移实结合并数字绳。每四条数字绳用一级电路合并成一条数字绳,合并后的数字绳再做成标准数字绳,再次每四条标准数字绳合并成一条数字绳。走到合并成一条标准数字绳时结束。电路级数为二进制码的位数除2,再对商除2,每除一次为1级电路,走到商为1为止。例如:128位的二进制数用数字绳分组平移的方法编码电路级数为:第1级电路把128条数字绳合并成32条数字绳,第2级第3级电路合并成8条数字绳,第4级第5级电路合并成2条数字绳,第6级第7级电路合并成一条标准数字绳。

(四)、数字绳浮标

数字绳浮标就是把标准数字绳的实结换成虚结,只保留最上端的一个实结。方法是第i结与第i+1结比较,当第i+1结为实结时第i结要转换成虚结,只有第i+1结为实结时才能保留第i结的虚结。逻辑电路的方法有2种。方法1:第i+1结和第i结相与,相与后用非门翻转后再和第i结相与。以15结标准数字绳为例,图6为方法1的数字绳浮标电路原理图。方法2:第i+1结经非门翻转后和第i结相与。以15结标准数字绳为例,图7为方法2的数字绳浮标电路原理图。

(五)、数字绳解码

数字绳解码是把数字绳码转换成二进制码。方法是:在一条数字绳的浮标电路上,从首端开始,把第1结连接到二进制的0位,第2结连接到二进制码的1位,第3结连接到二进制码的0位与1位,第4结连接到二进制码的3位,第5结连接到二进制码的0位与3位,依次类推,直到把所有的结与二进制码都连接完,然后进行隔离,使每一个结点与其他结点都处于隔离状态。以15个结的标准数字绳为例,图8为数字绳码解码的原理电路图。

(六)、数字绳加法

数字绳加法是把两个加法操作数通过电路编码成为两条标准数字绳,把两条标准数字连接起来进行实结或实结段平移成为一条标准数字绳,这条标准数字绳就是两数相加的和。即:两条数字绳的加法是把两条数字绳合并成一条标准数字绳。多条数字绳相加是把多条数字绳合并成一条标准数字绳。

在两条数字绳的加法电路中,两个相加的操作数要有0或非0标志,结果要有进位标志。操作数的0或非0标志是从两条编码后的标准数字绳的首端引出两个电路端口,两个端口分别为两个操作数的0或非0类标志,当端口为0时,操作数为0,当端口为1时,操作数不为0。进位标志位是解码后的结果电路中最上一位为进位标志位,当加法电路是两个N位的二进制码是,结果二进制码的第N+1位是进位标志。

加法的全过程是:把二进制码编码成标准数字绳码,进行绳码相加,把相加后的标准数字绳做成浮标,利用数字绳浮标解码还原成二进制码。

(七)、数字绳减法

数字绳减法是把被减数与减数两个操作数通过电路解码分别做成两条标准数字绳A与标准数字绳B,把两条标准数字绳的首端对齐进行比较。设:A数字绳从首端开始的绳结序号依次为a1,a2,a3...ai...am,B数字绳从首端开始的绳结序号依次为b1,b2,b3...bi...bm,两条数字绳的首端对齐,两条数字绳相减后得到一条数字绳C,C数字绳从首端开始的序号依次为c1,c2c3...ci...cm;当ai与bi同时为0或同时为1时,ci为0,否则,ci为1。减法电路有两种方法,方法1是ai同ai和bi的与非结果相与,bi同ai和bi的与非结果相与,然后再相或得到数字绳的结点ci。图9是方法1的原理电路图。方法2是ai经非门翻转后同bi相与得到一个结果,bi经非门翻转后同ai相与得到一个结果,然后把两个结果再相或得到数字绳的结点ci。图10结果是方法2的原理电路图。

在数字绳减法中,所得到的两数差没有符号,需要加符号标志电路。用方法1做数字绳减法时,符号标志电路是分别从ai同ai和bi的与非结果相与的结果后引出线路,经隔离后连接成一个端口,这个端口就是减法的符号标志A;再分别从bi同ai和bi的与非结果相与的结果后引出线路,经隔离后连接成一个端口,这个端口就是减法的符号标志B。用方法2做数字绳减法时,符号标志电路是分别从ai经非门翻转后同bi相与的结果后引出线路,经隔离后连接成一个端口,这个端口就是减法的符号标志B;再分别从bi经非门翻转后同ai相与的结果后引出线路,经隔离后连接成一个端口,这个端口就是减法的符号标志A。当A减B时,符号标志A为1时差为正数,为0时差值为负。符号标志A与符号标志B的关系时,当A为1时,B一定为0,当A为0时,B可能为0也可能为1;当B为1时,A一定为0,当B为0时,A可能为0也可能为1。

在数字绳减法中,还要有被减数、减数两个操作数的0或非0标志,结果的0或非0标志。通过符号标志、操作数的0或非0标志、结果的0或非0标志,可以比较两个操作数。

减法的全过程是:把二进制码编码成A、B两条标准数字绳,进行绳码比较,把比较后的结果平移实结或实结段成为标准数字绳,把标准数字绳做成浮标,利用数字绳浮标解码还原成二进制码。

(八)、数字绳组与数字绳组的级

一个数不仅可以用一条数字绳表达,还可以用一组数字绳表达。用数字绳组表达一个二进制数时,数字绳组中的数字绳就有了级。当数字绳组的级为m时,第一条数字绳中每个实结表达的数值为1,第二条数字绳中每个实结表达的数值为m,第三条数字绳中每个实结表达的数值为m2,第j条数字绳中每个实结表达的数值为mj-1。用数字绳组表达一个数时,m必须大于1。如果数字绳的级m=1,要把数字绳组合并成一条数字绳。

在一个数字绳组中,当每条数字绳中的结数都小于该组的级数时,这一组数字绳为绳结不饱和的数字绳组,绳结不饱和的数字绳组可以分别对每一条数字绳解码,解码后合并每条数字绳的解码结果就还原成了一个数。

在一个数字绳组中,当任意一条数字绳的结数不小于该组的级数时,这一组为绳结饱和的数字绳组。绳结饱和的数字绳组解码成一个二进制码的方法有两种,方法1是把绳结饱和的数字绳组转换成绳结不饱和的数字绳组,对绳结不饱和的数字绳组中的每条数字绳分别进行解码,把每条数字绳解码出的二进制码按顺序排列起来;方法2是把数字绳组合并成级数为1的一条数字绳,对1数字级数字绳直接进行解码。其中,用方法1进行解码要通过两个步骤实现,第一步是把数字绳组中的每条数字绳通过跳级减少结数,使每条数字绳的结数小于或等于数字绳组的级数,再通过增加虚结使每条数字绳的级数与结数相等;第二步把结数与级数相等的饱和数字绳组通过跳级使之成为不饱和数字绳组,对不饱和的数字绳组中的每条数字绳解码成二进制码,解码出的二进制码按每条数字绳的顺序排列进来。方法2是把绳结饱和的数字绳组转换成级数为1的一条数字绳,转换时第i条数字绳中的每一个结都扩大成mj-1结,通过平移实结或实结段形成一条标准数字绳,再对一级标准数字绳进行解码。

(九)、把饱和数字绳组中的每条数字绳的结数减少到与级数相等的方法

把饱和数字绳组中的每条数字绳的结数减少到与级数相当的方法有两种。方法1是通过电路运算进行跳级,逐层减少数字绳的结数,直到每条数字绳的结数与级数相等为止。方法2是通过解码跳级,逐层减少数字绳的结数,直到每条数字绳的结数与级数相等为止。

方法1:通过电路运算进行跳级的方法

设:数字绳组中的每一条数字绳均为标准数字绳,数字绳组的级数为m且m大于1,数字绳组中至少有一条数字绳的结数大于m。(1)把数字绳组中的每条数字绳做成标准数字绳,在第i条数字绳中,第m结向上跳至第i+1条数字绳,第m2结向上跳至第i+2条数字绳,第m3结向上跳至第i+3条数字绳...第mj结向上跳至第i+j条数字绳。(2)比较跳级结是否为实结。如果第mj结为实结时,将小于j的结全部置成虚结,将小于j结的跳级点也同时置成虚结。(3)保留跳级结前边没有发生跳级的结数。当一条数字绳内有x个跳级点,跳级结有y个,那么第y个跳级结为实结,第y个跳级结以后的结全部发生丁跳级,而第y+1结以上的结一字是虚结,第y+1结以后至第y结以前的结可能有实结并且没有跳级,把第y+1结以后至第y结以前的结保留下来。如果所有的跳级结都是虚结,第一个跳级结以后的结保留下来。(4)将保留下来的结与跳级上来的结通过移动实结或实结段,使之成为一条标准数字绳。(5)当数字绳的结数为n,最大跳级数量为h,n-h>m时,数字绳的mh结以上的部分进行并行跳级;如果并行跳级以后剩余的结仍然能够跳级,就再进行并行跳级,直到并行到没有剩余的结可跳级为止。(6)重复上述步骤,直到数字绳组中的每一条数字绳的结数全部与级数相等。

本方法举例:设数字绳组的级数为2,共有8条数字绳,第一条数字绳结数为1,第2条数字绳结数为2,第3条数字绳结数为3,第4条数字绳结数为4,第5条数字绳结数为5,第6条数字绳结数为6,第7条数字绳结数为6,第8条数字绳结数为8,上述8条数字绳均为标准数字绳,图11为该数字绳组通过运算进行跳级的原理电路图。

方法2:通过解码进行跳级的方法

解码跳级的方法是:(1)把数字绳组中的每条数字绳解码成二进制码,并根据数字绳组的级数确定跳级的点。当数字组的级数为2时,由第i条数字绳解码成二进制码后,第0位不跳级,第1位跳级到第i+1条数字绳中,第2位跳级到第i+2条数字绳中,第3位跳级到第i+3条数字绳中,第j位跳级到第i+j条数字绳中。当数字绳组的级数为4时,第i条数字绳解码成二进制码后,第0位与第1位不跳级,第3位跳级到第i+1条数字绳中,第4位以2个结点跳级到第i+1条数字绳中,第5位跳级到第i+2条数字绳中,第6位以2个结点跳级到第i+2条数字绳中,第7位跳级到第i+3条数字绳中。当数字绳组的级数为m且m为2的倍数时,每i条数字绳解码成二进制码后,小于m的位保留,等于m的位跳到第i+1条数字绳中,等于A*m的位(A大于1且A*m小于m2)以A个结点到第i+1条数字绳中,等于m2的位跳级到第i+2条数字绳中,等于A*m2的位(A大于1且A*m小于m3)以A个结点到第i+2条数字绳中,依次类推,等于mj的位跳级到第i+j条数字绳中,等于A*mj的位(A大于1且A*mj小于mj+1)以A个结点到第i+j条数字绳中。(2)跳级后,第i条数字绳中有保留下来的二进制码,也有跳级上来的数字绳码,要把保留下来的二进制解码成数字绳码形成一条数字绳,再把这条数字绳做成标准数字绳,再做成浮标数字绳。如果数字绳组的级数为2,保留下来的第0位二进制码也是数字绳,不用进行解码直接做成标准数字绳,再做成浮标数字绳。(3)重复上述步骤,直到把数字绳组中的每条数字绳都消减到级数与结数相等时为止。

本方法举例:设数字绳组的级数为2,共有4条数字绳,第一条数字绳结数为10,第2条数字绳结数为9,第3条数字绳结数为5,第4条数字绳结数为3,四条数字绳均为浮标数字绳,图12为该数字绳组通过解码成二进制进行跳级的原理电路图。

(十)、级数与结数相等的数字绳转换为绳结不饱和的数字绳的方法

当数字绳组中的每一条数字绳的结数与级数相等时,只要每条数字绳中的结数再消减一个结就成了不饱和的数字绳。消减一个结的方法有两种,方法1是在数字绳组中通过并行跳级的方法消减结;方法2是逐条数字绳串行跳级消减结。

方法1:并行跳级的方法削减数字绳的结

当数字绳组有m级时,数字绳组中的每条数字绳都是m个结。把每条数字绳都做成浮标数字绳,每条数字绳的第m结就是向上的跳级结。并行跳级是每条数字绳的第m结向上并行跳级,进行并行跳级的第i条数字绳的第m结向第i+1条数字绳及以上的所有数字绳同时跳级。在并行跳级后,数字绳组中的每条数字绳保留跳入结与第m-2结和m-2结以下的所有结,保留下来的结数小于数字绳组的级数,每条数字绳直接解码成二进制,数字绳组中的每条数字绳解码出来的二进制码按顺序排列起来就成了一个数字绳组表达的二进制数。

第i条数字绳的第m结向第i+1条数字绳及以上的所有数字绳同时跳级的方法是,由第i条数字绳的第m结与第i+1条数字绳的第m-1结组成第1个相与电路,由第i条数字绳的第m结与第i+1、第i+2条数字绳的第m-1结组成第2条相与电路,由第i条数字绳的第m结与第i+1、第i+2、第i+3条数字绳的第m-1结组成第3条相与电路,依次类推,当数字绳组中有n条数字绳时,就组成n-i个相与电路。在n-1个相与电路中,第j+1个相与电路的结果经非门翻转后同第j个相与电路的结果再次相与后跳级到第i+2条数字绳中。其中,跳级到第i+1条数字绳的方法是第1个相与电路的结果经非门翻转后分别同第i条数字绳的m结及第i+1条数字绳的m-1结相与。第n-1个相与电路的相与结果为数字绳组中的一条新数字绳,它直接同原数字绳组中最后一条数字绳相与。

本方法举例:设数字绳组的级数为2,有8条数字绳组成,每条数字绳的结数为2,每条数字绳均为浮标数字绳。图13为并行跳级消减结的原理电路图。在图13中,由于每条数字绳的级数为2,并行跳级后只保留跳级结1个结,一个结的数字绳码也是二进制码,所以,2个结的并行跳级电路不再需要解码就成了二进制码。

方法2:逐条数字绳串行跳级消减结的方法

设:数字绳组的级数为m,每一条数字绳的结数等于m。数字绳组中共有n条数字绳。

逐条数字绳串行跳级消减结转化成不饱和的数字绳组的方法是:把数字绳组中的每条数字绳均做成标准数字绳。(1)第一条数字绳的m结跳入第2条数字绳中。当m结为实结时,第一条数字绳的所有结置为虚结,把虚结解码成二进制码;当m结为虚结时,保留m-1结及m-1结以下的结,把保留下来的结做成浮标数字绳,然后解码成二进制码;(2)第2条数字绳的m个结与第一条数字绳跳入的1个结做成m+1结的标准数字绳,第二条数字绳的m结跳入第三条数字绳中。当m结为实结时,只保留第m+1结,把保留下来的一个结解码成二进制码;当m结为虚结时,保留m-1结及m-1结以下的结,把保留下来的结做成浮标数字绳,然后解码成二进制码;同理,第i条的m个结与第i-1条数字绳跳入的1个结做成m+1结的标准数字绳,第i条数字绳的m结跳入第i+1条数字绳中。当m结为实结时,只保留第m+1结,把保留下来的一个结解码成二进制码;当m结为虚结时,保留m-1结及m-1结以下的结,把保留下来的结做成浮标数字绳,然后解码成二进制码。

逐条数字绳串行跳级消减结转化成不饱和的数字绳的电路运算方法是:把数字绳组中的每条数字绳的m结做为跳级结。把m-1结以下做成浮标数字绳,解码成二进制码;把m+1结解码成二进制码;m结经过非门翻转后做为与门开关,控制两组二进制码。

本方法举例1:设,数字绳组的级数为2,有5条数字绳组成,每条数字绳的结数为4,每条数字绳均为标准数字绳。图14为逐条数字绳串行跳级消减结的原理电路图。。

本方法举例2:设:数字绳组的级数为2,有7条数字绳组成,每条数字绳的结数为2,每条数字绳均为标准数字绳。图15为逐条数字绳串行跳级消减结的原理电路图。

(十一)、数字绳组的加法运算

把一个二进制码用一个数字绳组表达,组内的每条数字绳可以表达一位二进制码,可以表达两位二进制码,可以表达三位二进制码,也可以表达任意位二进制码。每条数字绳表达一位二进制码时,数字绳组的级数为2,不饱和数字绳组内有一个结;每条数字绳表达两位二进制码时,数字绳组的级数为4,一条不饱和数字绳有3个结;表达三位二进制码时,数字绳组的级数为8,不饱和数字绳组内有7个结;表达四位二进制码时,数字绳组的级数为16,不饱和数字绳内有15个结。

数字绳组进行加法运算的方法是:两个同级的数字绳组相加,每组内的每条数字绳通过电路都做成标准数字绳,把两个数字绳组内的数字绳结表达数值相同的两条标准数字绳连接起来,再把连接起来的数字绳做成标准数字绳,就把两组不饱和数字绳组转换成了一组饱和数字绳组。这组饱和数字绳组就是两组数字绳组加法运算的和。把这组数字绳组通过消减结运算与解码运算,就完成了二进制码通过数字绳组进行运算。

(1)举例1:两个8位二进制码做成两组2级数字绳并行跳级消码的加法运算原理图。

设:两个二进制码从低位到高位的码顺序分别为:a1,a2,a3,a4,a5,a6,a7,a6,b1,b2,b3,b4,b5,b6,b7,b8,这两个二进制码就可以直接做为两个2级数字绳组。数字绳组的每条数字绳相加分别为a1+b1,a2+a2,a3+b3...ai+bi...an+bn.,相加后每条数字绳有两个结,级数与结数相等,先把每条数字绳做成标准数字绳,由标准数字绳做成浮标数字绳,对浮标数字绳进行并行跳级消结解码就得到二进制码的加法结果。图16为数字绳组并行跳级消结解码进行加法运算的原理电路图。

(2)举例2:两个8位二进制码做成两组2级数字绳的加法运算

图17为数字绳组串行跳级消结解码进行加法运算的原理电路图。

(十二)、数字绳组的减法运算

把减法运算的两个二进制操作数做成两个级数不小于2的数字绳组,用数字绳组内的顺序对应的数字绳进行减法运算。在数字绳组进行减法运算过程中,当A数字绳组减B数字绳组的结果为C数字绳组时,C数字绳组中的每条数字绳会有不同的符号,需要再次对C数字绳组进行统一符号的运算,运算过程复杂。为了简化运算过程,通过增加假码使减法运算成为加法运算。增加假码的方法是,对A、B两个操作数进行进行数值比较,选择数值大的数字绳组增加假码。设:A大于B,A减B的运算转换成先用运算电路的进位位减B,其结果再与A相加,同理,当B大于A时,先用运算电路的进位位减A,其结果再加B。当A等于B时,其减法结果一定为0,不进行运算。数学表述为:

A>B且A-B=C时,A-B=A+(X-B)=X+C :

B>A且A-B=C时,A-B=-[B+(X-A)]=-(X+C)

增加假码进行运算时,在结果数字绳组中舍去进位位,就得到了有正负符号标志的运算结果。把结果数字绳进行跳级消码,然后解码成二进制码,就得到了减法结果。

实现数字绳组减法运算的电路方法是:把减法运算电路分成三个电路,电路1是A数字绳组加上进位位减B数字绳组的运算;电路2是B数字绳组加上进位位减A数字绳组的运算,电路3是A、B两个数字绳组进行数值比较得出符号标志的运算。在电路3中,当A的符号标志为1时,则A大于B;当B的符号标志大于1时,则B大于A。用A与B的符号标志分别控制两组与门开关,当A的符号为1时电路1的结果导出并做为减法运算结果,当B的符号为1时电路2的结果导出并做为减法运算结果,当A、B同时为0时,减法运算的结果为0。

进位位做成的数字绳组与操作数的数字绳组相同,数字绳组内的数字绳条数相等。当数字绳组的级数为m时,进位位数字绳组内的第一条数字绳的实结数与级数相等,第二条及以上的各条数字绳内的实结数为m-1。假设级数为2,进位位数字绳组内的第一条数字绳有2个实结,第二条及以上各条数字绳内有1个实结。假设级数为4,进位位数字绳组内的第一条数字绳的实结为4,第二条及以上各条数字绳内的实结数为3。

假码使用的方法。设;有两个二进制数A、B相减,A数从低位到高位的码顺序为a1,a2,a3,a4...,ai...,an,B数从低位到高位的码顺序为b1,b2,b3,b4...,bi...,bn。把A、B做成两个级数为2的数字绳组相减时,假设A大于B,加上假码进位位后的数学表达是,第一条结果数字绳为a1+(2-b1),第二条结果数字绳为a2+(1-b2),第i条结果数字绳为ai+(1-bi),第n条结果数字绳为an+(1-bn)。假设A小于B,加上假码进位位后的数学表达是,第一条结果数字绳为-[b1+(2-a1)],第二条结果数字绳为-[b2+(1-a2)],第i条结果数字绳为-[bi+(1-ai)],第n条结果数字绳为-[bn+(1-an)]。同理,当两个数字绳组的级数为m,A数字绳组内数字绳的排列排列顺序为a1,a2,a3,a4...,ai...,an,B数字绳组内数字绳的排列顺序为b1,b2,b3,b4...,bi...,bn。假设A大于B,加上假码进位位后的数学表达是,第一条结果数字绳为a1+(m-b1),第二条结果数字绳为a2+(m-1-b2),第i条结果数字绳为ai+(m-1-bi),第n条结果数字绳为an+(m-1-bn)。假设A小于B,加上假码进位位后的数学表达是,第一条结果数字绳为-[b1+(m-a1)],第二条结果数字绳为-[b2+(m-1-a2)],第i条结果数字绳为-[bi+(m-1-ai)],第n条结果数字绳为-[bn+(m-1-an)]。

比较两个二进制数A与B的方法是,把A、B两个二进制数直接做为两个2级数字绳组,A与B两个数字绳组进行比较时,由A的符号标志组成一条数字绳,由B的符号标志组成一条数字绳,两个符号标志组成的两条数字绳分别通过填充实结成为两条标准数字绳,再通过两条符号标志组成的数字绳进行比较,得出符号标志a与符号标志b。符号标志a与符号标志b只能有一个符号为1,两个符号标志可以同时为0但不可能同时为1。如果a为1,则A大于B ;如果b为1,则B大于A;如果a与b都为0,说明A与B两个数相等。

两个二进制数进行比较举例:设:两个8位二进制码从低位到高位的码顺序分别为:a1,a2,a3,a4,a5,a6,a7,a8,b1,b2,b3,b4,b5,b6,b7,b8,把两个二进制码直接做为两个2级数字绳组。图20为两个二进制数进行比较的原理电路图。

数字绳组减法运算的全过程是:当两个二进制操作数A减B,数字绳组减法运算的全过程是:(1)把A、B两个二进制数做成两个级数为m的数字绳组;(2)电路1进行假码减B组数字绳组的运算,电路2进行假码减数字绳A组的运算;(3)电路1用数字绳组A与假码减数字绳组B的结果数字绳组进行加法运算,电路2用数字绳B与假码减数字绳A的结果数字绳进行加法运算;(4)电路1与电路2的加法运算结果分别通过数字绳组的跳级消码,使结果数字绳组成为级数与结数相等的饱和数字绳组,再分别通过串行跳级消码或并行跳级消码使数字绳组成为不饱和数字绳组,对两个不饱和的数字绳组分别进行解码得到两个二进制结果码,结果码中舍去进位位,就得到两个减法运算结果,一个结果为正确数据,一个结果为错误数据。(5)在电路1与电路2进行运算时,同时进行二进制数A与B的大小比较,比较过程是把两个二进制数当做两个2级数字绳组,通过比较两个数字绳组得到两条符号标志的数字绳,再通过比较两条数字绳得到A减B的两个符号标志a与符号标志b,用符号标志a控制一组连接电路1的与门开关组,用符号标志b控制一组连接电路2的与门开关组。(6)两个与门开关组的输出端口并联就是减法结果。同时,与二进制数A与B的比较电路中,通过电路得出被减数0与非0标志,减数0与非0标志。由减法结果数据,符号标志,被减数、减数的0与非0标志,共同组成减法运算的结果。

二进制码减法运算的全过程举例1:两个4位二进制码A减B,二进制码A为:a1,a2,a3,a4,二进制码B为b1,b2,b3,b4,用串行跳级消码。图18为数字绳组减法串行跳级消码的原理电路图。

二进制码减法运算的全过程举例2:两个4位二进制码A减B,二进制码A为:a1,a2,a3,a4,二进制码B为b1,b2,b3,b4,用并行跳级消码。图19为数字绳组减法并行跳级消码的原理电路图。

(十三)、数字绳组的乘法运算

把乘法运算中的两个二进制乘法操作数A、B分别做为两组级数为2的数字绳组,然后分解因式。设:A数从低位到高位的码顺序为a1,a2,a3,a4..,ai...,an,B数从低位到高位的码顺序为b1,b2,b3,b4...,bi...,bn。分解因式的结果如下:

anb1 an-1b1... aib1... a4b1 a3b1 a2b1 a1b1

anb2 an-1b2... aib2... a4b2 a3b2 a2b2 a1b2

anb3 an-1b3... aib3... a4b3 a3b3 a2b3 aib3

anb4 an-1b4... aib4... a4b4 a3b4 a2b4 a1b4

.........

anb1... an-1bi... aibi a4bi a3bi a2bi a1bi

.........

anbn an-1bn... aibn... a4bn a3bn a2bn a1bn

cn cn-1 c4 c3 c2 c1

当A数字绳组乘B数字绳组的结果为C数字绳组时,C数字绳组的第一条数字绳为c1,第二条数字绳为c2,第3条数字绳为c3,第i条数字绳为ci,第n-1条数字绳为cn-1,第n条数字绳为跳级数字绳,有:

c1=a1b1

c2=a2b1+a1b2

c3=a3b1+a2b2+a1b3

c4=a4b1+a3b2+a2b3+a1b4

...

ci=aib1+ai-1b2+ai-2b3...+a4bi-4+a3bi-3+a2bi-1+a1bi

...

cn=anb1+an-1b2+an-2b3+an-3b4...+aibj...+a4bn-3+a3bn-2+a2bn-1+a1bn

cn+1=anb2+an-1b3+an-2b4...+aibj...+a5bn-3+a4bn-2+a3bn-1+a2bn

cn+2=anb3+an-1b4+an-2b5...+aibj...+a5bn-2+a4bn-1+a3bn

...

cn-3=anbn-2+an-1bn-1+an-2bn

cn-2=anbn-1+an-1bn

cn-1=anbn

数字绳组的乘法运算就是把C数字绳组中的每条数字绳ci做成标准数字绳,把标准绳做成浮标数字绳进行跳级消码,经过几次跳级消码后使数字绳组中每条数字绳的结数不大于2,然后通过并行跳级解码,把C数字绳表达的运算结果转换成一个二进制码数据。

把C数字绳组中的每条数字绳做成标准数字绳的方法有两种,方法1是把C数字绳组中的每条数字绳中的每一个分解因式后的结点做为一条数字绳,进行同级数字绳的实结平移,经多次平移实结或实结段成为一条标准数字绳;方法2是通过并行找数的方式把C数字绳组中的每条数字绳一次做成几条或一条2级标准数字绳,对几条或一条标准数字绳进行跳级消码,直至最终解码成二进制码。

并行找数做成标准数字绳的方法是,当一条数字绳内有an个结时,假设an个结中有aj个结为实结。对an个结通过电路进行共与运算,当aj等于an时共与运算的结果为1,当aj小于an时共与运算的结果为0,共与运算结果做为标准数字绳的第bn结;在an个结中取an-1个不完全相同的结通过电路进行并行共与运算,并行共与运算的结果并联到一起,当aj大于或等于an-1时共与运算结果为1,当aj小于an-1时共与运算结果为0,共与运算结果做为标准数字绳的第bn-1结;在an个结中取ai个不完全相同的结通过电路进行并行共与运算,并行共与运算的结果并联到一起,当aj大于或等于ai时共与运算的结果为1,当aj小于ai时共与运算的结果为0,并行共与运算的结果做为标准数字绳的第bi结,其中,n>i>1;当i=1时,把an个结通过电路进行共或运算,当an个结全部为虚结时共或运算结果为0,只要an个结中有一个实结共或运算的结果为1,共或运算的结果做为标准数字绳的第1个结。举例:设一条数字绳内有8个结,分别为a1,a2,a3,a4,a5,a6,a7,a8,并行找数后的标准数字绳为b1,b2,b3,b4,b5,b6,7,b8,图21为并行找数做成标准数字绳的原理电路图。

(十四)数字绳组的倒数运算

设:A与B分别为n位的二进制数,A与B相乘的结果为22n

用2n-1条2级数字绳组表达22n为:c2n-1,c2n-2,c2n-3....ci...c4,c3,c2,c1,其中,第一条数字绳c1位为2个实结,第二条数字绳c2到第2n-1条数字绳c2n-1全部为1个实结。

表达二进制数A的数字绳组有n条数字绳,分别为:an,an-1,an-2...ai...a3,a2,a1

表达二进制数B的数字绳组有n条数字绳,分别为bn,bn-1,bn-2....b1...b4,b3,b2,b1

以n=8为例,A*B的乘法逻辑如下:

a8b1 a7b1 a6b1 a5b1 a4b1 a3b1 a2b1 a1b1

a8b2 a7b2 a6b2 a5b2 a4b2 a3b2 a2b2 a1b2

a8b3 a7b3 a6b3 a5b3 a4b3 a3b3 a2b3 a1b3

a8b4 a7b4 a6b4 a5b4 a4b4 a3b4 a2b4 a1b4

a8b5 a7b5 a6b5 a5b5 a4b5 a3b5 a2b5 a1b5

a8b6 a7b6 a6b5 a5b6 a4b6 a3b6 a2b6 a1b6

a8b7 a7b7 a6b7 a5b7 a4b7 a3b7 a2b7 a1b7

a8b8 a7b8 a6b8 a5b8 a4b8 a3b8 a2b8 a1b8

c15 c14 c13 c12 c11 c10 c9 c8 c7 c6 c5 c4 c3 c2 c1

A=216/B的数学关系推导

令:b8-1,C数字绳组取2级8条数字绳,第一条数字绳为2个实结,其余的各条数字绳为1个实结,有:

a8=1

a7=1-b7

a6=1-b6

a5=1-(a6b7+a7b6+b5)

=1-[(1-b6)b7+(1-b7)b6+b5]

=1+2b6b7-(b5+b6+b7)

a4=1-(a5b7+a6b6+a7b5+b4)

=1-{[1+2b6b7-(b5+b6+b7)]b7+(1-b6)b6+(1-b7)b5+b4}

=1-(b7+b6b7-b5b7-b6b7+b5-b7b5+b4)

=1+2b7b5-(b6b7+b5+b4)

a3=1-(a4b7+a5b6+a6b5+a7b4+b3)

=1-{[1+2b7b5-(b6b7+b5+b4)]b7+[1+2b6b7-(b5+b6+b7)]b6+(1-b6)b5+(1-b7)b4+b3}

=1-(b7+2b5b7-b6b7-b5b7-b4b7+b6+2b6b7-b5b6-b6-b7b6+b5-b6b5+b4-b7b4+b3)

=1-(b5b7-2b5b6-b4b7+b7+b5+b4+b3)

=1+2b5b6+2b4b7-(b7+b5+b4+b3+b5b7)

a2=1-a3b7-a4b6-a5b5-a6b4-a7b3-b2

=1-(1+2b5b6+2b4b7-b7-b5-b4-b3-b5b7)b7-(1+2b7b5-b6b7-b5-b4)b6-(1+2b6b7-b5-b6-b7)b5-(1-b6)b4-(1-b7)b3-b2

=1-b7-2b5b6b7-2b4b7+b7+b5b7+b4b7+b3b7+b5b7-b6-2b5b6b7+b6b7+b5b6+b4b6-b5-2b5b6b7+b5+b5b6+b5b7-b4+b4b6-b3+b3b7-b2

=1+2b3b7+3b5b7+b6b7+2b4b6+2b5b6-b6-b4-b3-b2-6b5b6b7-b4b7

=1+2b3b7+2b4b6+2b5b6+3b5b7+b6b7-(b6+b4+b3+b2+6b5b6b7+b4b7)

a1=2-a2b7-a3b6-a4b5-a5b4-a6b3-a7b2-b1

=2-(1+2b3b7+2b4b6+2b5b6+3b5b7+b6b7-b6-b4-b3-b2-6b5b6b7-b4b7)b7-(1+2b5b6+2b4b7-b7-b5-b4-b3-b5b7)b6-(1+2b7b5-b6b7-b5-b4)b5-(1+2b6b7-b5-b6-b7)b4-(1-b6)b3-(1-b7)b2-b1

=2-b7-2b3b7-2b4b6b7-2b5b6b7-3b5b7-b6b7+b6b7+b4b7+b3b7+b2b7+6b5b6b7+b4b7-b6-2b5b6-2b4b6b7+b6b7+b5b6+b4b6+b3b6+b5b6b7-b5-2b5b7+b5b6b7+b3+b4b5-b4-2b4b6b7+b4b5+b4b6+b4b7-b3+b3b6-b2+b2b7-b1

=2+b2b7+b2b7+b3b6+b3b6-2b3b7+b3b7+b4b5+b4b5+b4b6+b4b6+b4b7+b4b7+b4b7-2b5b6+b5b6-3b5b7-2b5b7-b6b7+b6b7+b6b7-2b4b6b7-2b4b6b7-2b4b6b7-2b5b6b7+6b5b6b7+b5b6b7+b5b6b7-b7-b6-b5+b5-b4-b3-b2-b1

=2+2b2b7+2b3b6+2b4b5+2b4b6+3b4b7+b6b7+6b5b6b7-b7-b6-b4-b3-b2-b1-b3b7-b5b6-5b5b7-6b4b6b7

对上述推导的a1,a2,a3,a4,a5,a6,a7,a88条2级数字绳组进行跳级级,有:

a8=1

a7=1-b7

a6=1+b6b7-b6

a5=1+b7b5-(b5+b6+b7)

a4=1+b5b6+b4b7-(b6b7+b5+b4+b5b6b7)

a3=1+b3b7+b4b6+b5b6+b5b6b7-(b7+b5+b4+b3+b5b7+b5b6b7+b4b6b7)

a2=1+b2b7+b3b6+b4b5+b4b6+b5b7+b6b7+b5b6b7-(b6+b4+b3+b2+b4b6b7)

a1=2+b4b7+b6b7-b7-b6-b4-b3-b2-b1-b3b7-b5b6-b5b7

对上述数字绳组再次进行简化,有:

a8=1

a7=(1-b7)

a6=b6b7+(1-b6)

a5=b7b5+(1-b5)+(1-b6)+(1-b7)-2

a4=b5b6+b4b7+(1-b6b7)+(1-b5)+(1-b4)+(1-b5b6b7)-3

a3=b3b7+b4b6+b5b6+b5b6b7+(1-b7)+(1-b5)+(1-b4)+(1-b3)+(1-b5b7)+(1-b5b6b7)+(1-b4b6b7)-6

a2=b2b7+b3b6+b4b5+b4b6+b5b7+b6b7+b5b6b7+(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b4b6b7)-4

a1=b4b7+b6b7+(1-b7)+(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b1)+(1-b3b7)+(1-b5b6)+(1-b5b7)-7

把上述数字绳组中的负数通过跳级消减为每条数字绳一个结,有:

a8=1

a7=(1-b7)-1

a6=b6b7+(1-b6)

a5=b7b5+(1-b5)+(1-b6)+(1-b7)-1

a4=b5b6+b4b7+(1-b6b7)+(1-b5)+(1-b4)+(1-b5b6b7)-1

a3=b3b7+b4b6+b5b6+b5b6b7+(1-b7)+(1-b5)+(1-b4)+(1-b3)+(1-b5b7)+(1-b5b6b7)+(1-b4b6b7)-1

a2=b2b7+b3b6+b4b5+b4b6+b5b7+b6b7+b5b6b7+(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b4b6b7)-1

a1=b4b7+b5b7+(1-b7)+(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b1)+(1-b3b7)+(1-b5b6)+(1-b5b7)-1

消减掉上述数字绳组中的负数,有::

a8=2

a7=(1-b7)

a6=b6b7+(1-b6)+1

a5=b7b5+(1-b5)+(1-b6)+(1-b7)

a4=b5b6+b4b7+(1-b6b7)+(1-b5)+(1-b4)+(1-b5b6b7)

a3=b3b7+b4b6+b5b6+b5b6b7+(1-b7)+(1-b5)+(1-b4)+(1-b3)+(1-b5b7)+(1-b5b6b7)+(1-b4b6b7)

a2=b2b7+b3b6+b4b5+b4b6+b5b7+b6b7+b5b6b7(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b4b6b7)

a1=b4b7+b6b7+(1-b7)+(1-b6)+(1-b4)+(1-b3)+(1-b2)+(1-b1)+(1-b3b7)+(1-b5b6)+(1-b5b7)+1

建立数字绳组倒数运算数学模型的方法是:以A数字绳组乘B数字绳组等于C数字绳组的逆运算进行推导,数学模型为整数运算,当B数字绳表达的二进制数为N位,A数字绳组是B数字绳组的倒数时,B数字绳组表达的位数也为N位,C数字绳组是一个有2n-1条数字绳表达的22n数值,倒数运算的数学关系为A=22n/B建立,把运算结果再右移2n位。由于倒数的数学模型建立在C数字绳组表达的是22n数值上,2级数字绳组B的第N条数字绳表达的数是1,也就是说二进制操作数的第N位必须是1。如果二进制操作数的第N位不是1,要把二进制操作数左移使它的第N位为1,假设操作数左移了m位,倒数运算的数学关系就成了A=(22n/B)*2m,倒数运算整数结果应再乘上2m-2n

倒数运算中每条数字绳转换成标准数字绳的运算是数字绳码的加减混合运算,在加减混合运算中增加假码可以转换成加法运算。转换成加法运算的方法是:(1)表达式跳级。把表达式中所有的2*aibj连同符号向上跳一级消除本级码,把表达式中所有的4*aibj连同符号一起向上跳2级消除本级码,使每条数字绳中aibjr的系数为1。(2)把负符号转换成非门符号。把每条数字绳中所有带负号的ai,bj,aibj转换成(1-ai),(1-bj),(1-aibj)使之成为正项,在表达式中增加因转换而带来的带符号的实结。(3)实结跳级。每条数字绳组中实结大于1时连同符号向上跳级,使每条数字中实结数量的绝对值最大为1。(4)用假码消除负数。做一组数值等于22n的假码数字绳组,假码数字绳组中的第一条数字绳为两个实结,用假码数字绳组加倒数数字绳组消除每条数字绳组中的负符号实结。(5)实结跳级。每条数字绳中实结数量大于1时再次跳级,使每条数字绳中的实结数量最大为1。

倒数运算的数学模型以2级数字绳组为基础建立。在2级数字绳组的基础上,可以通过合并数字绳组建立起N级数字绳组倒数运算的数字模型。

倒数运算电路的全过程是:(1)建立倒数运算的数字绳组。(2)把数字绳组中每条数字绳的运算转换成加法运算。(3)把数字绳组中的每条数字绳通过加法运算转换成标准数字绳,把每条结数饱和的数字绳通过跳级消减结转换成结数与级数相等的标准数字绳,再把级数与结数相等的数字绳通过并行跳级消减结数转换成不饱和数字绳,解码成二进制码。

举例:建立6位的倒数运算器。设,6位二进制码B的数字绳组为b6,b5,b4,b3,b2,b1,结果字绳组A由a6,a5,a4,a3,a2,a1共6条数字绳组成,其浮点码不在本电路中,由另外的浮点码接口电路表达。数学模型的推导结果为:

a6=2

=0

a5=1-b5+1

a4=b4b5+(1-b4)

a3=b5b3+(1-b3)+(1-b4)+(1-b5)

a2=b2b5+b3b4+(1-b4b5)+(1-b3)+(1-b2)

a1=(1-b5)+(1-b3)+(1-b2)+(1-b1)+(1-b5b7)

图22为6位二进码用数字绳组进行倒数运算时,运算到结果数字绳中每条数字绳为标准数字绳的原理电路图。

(十五)、数字绳组的除法运算

数字绳组的除法运算是把被除数与除数做成两个级数为2的数字绳组。先对除数做倒数运算,再用倒数运算的结果与被除数进行乘法运算。

(十六)算术运算电路接口

数字绳或数字绳组的加法、减法、乘法、倒数、除法运算的操作数都是无符号整数,同时对送入运算电路的二进制数在位数上有要求,加减运算要求小数点对齐,倒数运算要求与最高位对齐,而进行运算的数据一般是二进制码整数、定点数或浮点数时,不一定能满足运算电路的要求。当输入的二进制码操作数不满足电路的位数要求时,就需要在运算电路的前端增加输入接口,通过接口对整数、定点数或浮点数进行数据转换,先转换成满足运算要求的整数二进制码,在运算结束后再通过输出接口转换成整数、定点数或浮点数。进行算术运算的数据很多是有符号数,算术运算电路要能够进行有符号数运算,就需要在输入接口与输出接口中对数据的符号进行运算。一般来说,加减运算必须通过接口电路能进行有符号数运算,而乘法、倒数、除法运算可以做成有符号运算,也可以做成无符号运算。

在二进制码中,数据表达形式一般是整数、定点数、浮点数三种形式,算术运算电路应该同时拥有处理上述三种数据的输入接口。加法、减法、乘法运算电路应该有上述三种数据形式的输出接口,倒数与除法只需要定点数、浮点数两种输出接口。当算术运算电路的输入接口与输出接口有多种形式时,由CPU来选择并导通所使用的输入接口,由CPU来选择取数的输出接口。

1、加法电路与减法电路的输入接口

在算术运算电路中,加法或减法运算的小数点位必须对齐,可以是整数运算,也可以是整数与小数同时运算的定点运算。因此,N位的加法与减法运算应做成2N位的加法电路与减法电路,前N位为整数部分,后N位为小数部分。整数运算用前N位,定点运算前后2N位全用,浮点运算时先把浮点数转换成定点数再进行定点运算。所以,加法与减法运算电路的输入接口对整数操作数是直接输入,对定点操作数或浮点操作数要进行数据变换。

加法与减法运算的三个输入接口用三组与门开关组全部连接到运算电路的入端,由CPU的运算指令控制与门开关组开通与关闭。当运算指令是整数运算时,整数接口连接的与门开关组开通;当运算指令是定点数运算时,定点数接口开通;当运算指令是浮点数时,浮点接口连接的与门开关组开通。

加法与减法的三个输入接口中,每一个接口都用与门开关组同时连接到加法运算电路与减法运算电路的输入端,每个接口都有符号运算电路,符号运算电路控制这两组与门开关组的开通与关闭。进行加法运算时,当加法的两个操作数符号相异时,开通与减法运算连接的与门开关组;当加法的两个操作数符号相同时,开通与加法电路连接的与门开关组。

在加法与减法的三个接口电路中,定点数接口与浮点数接口要进行数据转换,把定点数或浮点数转换成符合电路要求的整数。

定点数接口的数据转换:一个定点数要么是把小数点固定在最高位之前,用n位数值表达数的大小;要么是把小数点固定在最低位之后,用-n位数值表达数的大小;定点数的数据转换是把n位数值的二进制码左移n位,把-n位数值的二进制码右移n位,移位后的二进制码是由整数与小数两部分组成,整数部分送入前N位运算电路,小数部分送入后N位运算电路。左移或右移的方法是:限定n的值最大为运算器的位数N,把从输入操作数入口送入的表达n的二进制码做成结数为N的浮标数字绳,用浮标数字绳的每一个结做为一组与门开关组的一个公共输入端,与门组中的每一个与门的另一个输入端依次连接定点数操作数的一位,与门组的输出端连接到运算电路的输入端口。当n值为正时,与门组输出端的最高位连接到前N位运算电路的输入端口,其最高位在前N位中的序号与浮标数字绳绳结自首端起的序号相同;当n为负值时,与门组输出端的最低位连接到后N位运算电路的输入端口,其最低位在前N位中的序号与浮标数字绳绳结自尾端起向首端延伸的序号相同。当n值等于m且为正值时,浮标数字绳中的第m结为实结,定点数操作数的最高位进入到前N位运算电路输入端的第m位,定点操作数最高位之后的位数依次进入到前N位运算电路的m位之后,包括依次进入到后N位运算电路中。当n值等于m且为负值时,浮标数字绳中自尾端的第m结为实结,定点数操作数的最低位进入到后N位运算电路输入端的第N-m位,定点操作数自最低位起依次进入到后N位运算电路的m位之前,包括依次进入到前N位运算电路中。

浮点数接口的数据转换

限定浮点数阶码的绝对值最大为N。一个浮点数由符号、尾数、阶符与阶码组成。浮点数接口的数据转换是把浮点数转换成整数与小数两部分,整数部分送入前N位加减运算电路,小数部分送入后N位加减运算电路。浮点数电路转换的运算过程是:(1)把尾数的最高数值与后N位运算电路的顶端对齐。(2)把阶码做成浮标数字绳。(3)用浮标数字绳的每一个结与阶符共同控制一组与门开关组对尾数进行并行平移。平移方法与定点数平移方法相同,当阶码为正值时,尾数向前N位运算电路平移,当阶码为负值时,尾数在后N位运算电路中向后平移。

在加法与减法的三种接口电路中,每种接口电路都同时连接到加法运算电路的输入端与减法运算电路的输入端,通过符号运算电路控制两个与门开关组接通电路。当加法电路的两个操作数符号相异时,符号运算电路通过控制与门开关组把两个相加的操作数送入减法运算电路中,保留第一个操作数的符号,减法电路的运算结果再进行符号运算做为结果数的符号;当符号相同时,符号运算电路通过控制与门开关组把两个相加的操作数送入加法运算电路中,保留相同的符号做为输出接口电路中的符号。当减法的两个操作数符号相异时,符号运算电路通过控制与门开关组把两个操作数送入加法运算电路中,保留第一个操作数的符号,加法电路的运算结果再进行符号运算做为结果数的符号。当符号相同时,符号运算电路控制与门开关组把两个操作数送入减法运算电路中,保留相同的符号,在减法电路的输出结果中进行符号运算做为输出接口电路中的符号。

加法运算电路与减法运算电路为双N位电路。有符号的加法运算需要同时有减法运算电路,有符号的减法运算电路需要同时有加法运算电路。有符号的加法运算与减法运算的接口电路相同,输入端接口电路由整数、定点数、浮点数三种数据形式的双操作数入口,定点数转换电路、浮点数转换电路,整数的符号运算与控制电路、定点数的符号运算与控制电路,由CPU运算指令组成的整数指令控制电路、定点数指令控制电路、浮点数指令控制电路,十二个与门开关组组成。输入端接口电路的工作流程是:由CPU指令来选择进入接口电路的操作数形式,当选择整数、定点数、浮点数中的一种形式时,指令控制电路所控制的与门开关组开通,CPU按选择的形式输入相应的两个操作数;定点数转换电路与浮点数转换电路把数据转换成整数部分与小数部分;符号运算与控制电路进行符号运算并接通加法运算电路或减法运算电路。

图23是加法与减法电路输入接口的流程原理图。

2、加法电路与减法电路的输出接口

由于加法运算与减法运算是带符号的操作数进行运算,两个加法操作数进行运算时可能进入减法运算电路,两个减法操作数进行运算时可能进入加法电路,加法与减法运算的结果只能合并到相同的输出端口。

(1)加法电路与减法电路输出端口的合并。在加法与减法的三个输入端口有三个符号运算电路并分别控制两组与门开关组接通加法电路或减法电路,因此,把三个加法操作数输入端口的运算电路控制加法电路与减法电路的信号输出端用或门合并成2个控制信号,这2个控制信号分别控制输出端口的2个与门组开关;把三个减法操作数输入端口的运算电路控制加法电路与减法电路的信号输出端用或门合并成2个控制信号,这2个控制信号分别控制输出端口的2个与门组开关;这样,加法与减法电路运算的结果通过4个与门开关组合并到一个运算结果,无论输入端口输入的是两个加法操作数还是两个减法操作数,无论是进入了加法运算电路还是进入了减法运算电路,合并后的运算结果一定是正确的运算结果。加法电路与减法电路运算结果经4个与门开关组合并后的端口为加减运算输出接口的合并端口。

(2)输出接口的符号运算电路。从加法电路输出到合并端口的数据是无符号数据,从减法电路输出到合并端口的数据是有符号数据,因此,合并端口的数据是一个有符号数据。把输入端口符号运算电路保留的第一个操作数的符号与合并端口的符号再次通过电路进行运算,得到最终结果数据的符号。

(3)进位位标志。加法运算与带符号的减法运算都有进位标志,通过输出接口输出的数据也必须有进位标志。

(3)整数与小数输出接口。合并端口的数据是一个双N位数据,前N位是整数部分,后N位是小数部分。把双N位的数据全部输出做为整数与小数输出接口,CPU点需要什么数据就取什么数据。

(4)定点数输出接口。把合并端口的双N位数据转换成定点数据。转换方法是:先把双N位的二进制码当做一条数字绳码,通过填充实结使之成为标准数字绳,再另做一条2N个结数并且实结的数量为N的标准数字绳,用第一条标准数字绳减第二条标准数字绳,结果做成浮标数字绳,把浮标数字绳解码得出的二进制码就是定点数的位数n。在进行上述运算的同时,把后N位当做一条反向数字绳,反向填充实结使之成为标准数字绳,把标准数字绳再做成浮标数字绳。当运算结果为正时,用浮标数字绳的每一个结控制一组与门开关组进行数据向右平移,平移后二进制码的最高数值位平移到后N位的最高位,就成了小数点固定到最高数值位的定点数。当数字绳相减的运算结果为负时,用浮标数字绳的每一个结控制一组与门开关组进行数据平移,平移后二进制码的最高数值位平移到后N位的最高位,就成了小数点固定到最高数值位的定点数。当数字绳的运算结果为负时,用后N位做成的浮标数字绳的每一个结控制一组与门开关组,后N位的二进制码并行左移,其后N位浮标数字绳解码出的二进制码为为定点数的位数n,符号为负,就成了当小数点固定到最低位值之后的定点数。

(5)浮点数输出接口。把合并端口的双N位数据转换成浮点数据。转换方法是:把双N位当做第一条数字绳,用填充实结的方法做成标准数字绳,把标准数字绳做成浮标数字绳,同时另做第二条结数为2N并且实结数为N的标准数字绳,用每条数字绳减第二条数字绳,相减的结果经解码后得到的二进制码为阶码,符号为阶符。用第一条浮标数字绳的2N个结分别控制2N组与门开关组进行并行左移,浮标数字绳实结控制的与门开关组就把合并端口中的二进制数据的最高低移到了2N位的最高位,移位后的双N位数据就成了浮点数的尾数。

3、乘法电路的输入接口

乘法运算对操作数小数点的位置没有要求,它可以保留二进制码左移或右移的位置。为了减少计算精度的损失,要把二进制码尽可能地输入到乘法运算电路里。乘法电路也没必要做符号运算,由CPU运算符号。因此,乘法电路的输入接口是把操作数直接或经过电路转换后接入乘法电路。当操作数是整数时,整数操作数直接接入乘法电路中;当操作数是定点数时,把小数点固定在二进制码最大数值位前的定点数操作数通过电路转换成小数点固定在二进制码最小数值位后的定点数,然后把转换后的二进制码做为整数接入乘法运算电路中,保留定点数的位数值n或-n;当操作数是浮点数时,把浮点数的尾数左移成整数,从阶码中减去左移的位数做为阶码保留。浮点数尾数左移的方法是:把尾数放入第一条结数为N的数字绳中,通过填充实结做成一条标准数字绳,把标准数字绳再做成浮标数字绳;把阶码通过编码做成第二条结数为N的标准数字绳。当浮点数的阶符为正时,第一条标准数字绳减第二条标准数字绳的运算结果解码出的二进制码为阶码,符号为阶符;当浮点数的阶符为负时,第一条标准数字绳加第二条标准数字绳的运算结果解码出的二进制码为阶码,阶符为负;保留阶码与阶符。

4、乘法电路的输出接口

一个N位的乘法运算电路,输出的二进制码最多位数是2N位整数。输出接口要有三个输出口,第一输出口是整数输出口,第二个输出口是定点数输出口,第三个输出口是浮点数输出口。当CPU通过整数乘法指令从输入端输入的两个操作数是整数时,结果从整数输出口取指。整数输出接口与乘法电路的输出接口直接连通。当输入端口输入的是定点数时,就从定点数输出端口输出数据。定点数输出端口是把乘法运算结果的整数二进制码先通过电路做成定点数,然后把乘法输入接口的定点输入接口保留的位数值与结果位数值进行有符号数相加,相加时用数字绳码进行运算。当输入端口输入的是浮点数时,就从浮点数输出端口输出数据。浮点数输出端口是把二进制整数做成浮点数,把浮点数的阶码与输入端口保罗的阶码与阶与阶符进行有符号数相加,相加时用数字绳码进行运算。乘法输出端口的运算流程是乘法输入端口运算流程的逆过程。

5、倒数电路的输入接口

数字绳的倒数运算中,设倒数电路的位数为N位,求A数的倒数时,倒数电路要求A数进入倒数电路的输入端口时,必须是一个位数为N位的整数。因此,倒数电路的输入接口就是把A数经过移位使之成为一个位数为N的整数再乘上一个逆移位数值。当A数为整数时,假设A数再移位m位其位数为N,A的表达为:(A*2m)*2-m,整数在倒数电路输入接口输入的方法就是把A左移m位后送入倒数电路,把-m保留下来。当A数是一个小数点固定在数值的最小位后的定点数,且位值为-n,把数值部分左移m位使数值部分成为位数为N位的整数并送入倒数电路,把-n-m保留下来。当A数是一个小数点固定在数值的最大位前的定点数,且位数为n时,把数值部分左移m位使数值部分成为位数为N位的整数并送入倒数电路,把n-m保留下来。当A是浮点数时,设有符号的阶码为d,把尾数部分左移N位使尾数成为位数为N的整数并送入倒数电路,把d-N保留下来。

因此,倒数运算的三个输入接口都是把输入的操作数转换成位数为N位的整数送入倒数电路,其中,整数输入接口要把-m保留下来,定点数输入接口要保留-n-m或n-m,浮点数接口要保留d-N。

6、倒数电路的输出接口

倒数运算是以A*B=22N为前提条件,因此,数字绳的倒数运算中,当A为整数且位数为N时,A数的倒数B的最终结果是:B=(1/A)*2-2N;当A表达成A=X*2y,且X是一个位数为N的整数,A数的倒数B的最终结果是:B=(1/X)*2-2a-y。显然,y是三个输入接口中保留下来的A的位数值,输出的二进制整数数值再乘上2-2n-y就是倒数电路的实际数值。

倒数电路可以有两个输出接口,一个是小数点固定在最小数值位后的定点数输出接口,一个是浮点数输出接口。小数点固定在最小数值位后的定点数输出接口是直接输出倒数电路运算结果的整数值,然后用-2n减去输入端口保留下来的位数值做为定点数的位数。浮点数输出接口是把倒数电路输出端口输出的整数再次左移,左移到输出整数的最高位与输出端口的最高位对齐,当左移的位数为h时,用-2n减去输入端口保留下来的位数值再加上h即为浮点数的阶码,运算阶码过程中产生的符号既为阶符。

7、除法电路的输入接口

除法电路是把除数通过倒数电路运算后与被除数相乘。除法电路的输入接口由被除数输入接口与除数输入接口两个接口组成,被除数输入接口与乘法电路的输入接口相同,除数的输入接口与倒数电路的输入接口相同。

8、除法电路的输出接口

除法运算实质上是被除数与除数倒数的乘法运算,因此,它的输出接口与倒数电路的输出接口相同。

设计要点

数字绳编码解码与算术运算电路进行设计时,有非常丰富的方案组合。其设计要点是:(1)根据用途确定设计指标。在单片机的CPU里设计算术电路有32位即可满足使用要求,而在计算机的CPU里设计算术电路应达到128位以保障所有的数据都能运算,高性能的CPU芯片的算术电路应能达到256位。(2)根据CPU的速度来选择不同的电路组合。单片机的CPU速度慢,应尽可能少用并行电路以减少元件数量,计算机的CPU速度快,应尽可能的使用并行电路以减少算术运算电路的级数。(3)根据CPU能集成电子元件的容量来选择方案组合。单片机CPU能提供的集成元件容量小,应全部用整数运算的算术电路,不再使用使接口电路。计算机在保障多数制的并列输入接口与输出接口的前提下,用程序来计算不同的组合方案所使用的元件数量,从而选择方案。(4)根据提供给用户的使用程序来选择方案。单片机需要用户开发使用,一般是短程序,只要无符号的整数加法、减法、乘法、倒数四个算术运算电路就行了。计算机要执行更多的功能,软件开发一般是大程序,使用要方便,就需要把加减乘除倒数的有符号算术电路做齐,并且接口功能要丰富,不仅使运算速度快,并且还要使开发软件方便。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号