数的表示1

自然界存在量的关系,数学就是研究的这些规律。这些规律从日常生活中得到,并抽象为数学的基本关系。最基本的关系比如:“1+1=2”。这里1和2就是符号,可以换成其他的任何东西,比如“啊+啊=哦”,仅仅是符号而已。各种数的表示法则仅仅是把数表示成了不同的符号而已。“01+01=10”或者如果你愿意,可以写为“11+11=01”都可以,仅仅是符号罢了。

几个符号结合可以生成新的符号,这个过程称之为运算。一套表示世界的体系必须要:体系自身无矛盾。比如一套体系规定了“哦!=呃”和“啊+啊=哦”,那么就不能规定“啊+啊=呃”。这就是形式逻辑的基本规律。

如果好好的设计这些符号(正如我们平时见到的最常见的各种形式),可以使得运算在形式上比较简单。比如:“01+01=10”就比“11+11=01”直观。这样做是为了使得人们在写的时候就比较容易,也就是说,现行的这套体系的优化目的是为了人的方便。

现在使用数字电路来实现运算。将数字电路进行抽象,得到的基本状态是:1,0;得到的基本关系就是 and or not。当然,数字电路还有其他更多逻辑上的状态,可以用其他符号表示,比如X和Z等等。并且加入放眼整个电路,模拟电路的状态更是无穷的。

但是,从目前来看,2状态电路(我指的是目前的2进制电路)技术最成熟。该电路实现加法就是Xor。(但是现在是LUT时代了(我是指针对FPGA),门的使用不在是直接的优化目标,一切逻辑都包含在了LUT里面。LUT的输入、输出及大小,以及D触发器这些基本资源的使用更为令人关注。所以,这些算法的优化目标就是使得FPGA资源更加合理利用,性能更好。)

所以就出现了各种数的表示法,这些方法不那么直观,但是会使电路在一定程度上简化。可以看到,这些表示法有一个前提:在不改变加法器结构的前提下能够进行工作的。也就是说,这些数的表示法都承认“01+01=10”(也即承认2进制下基本的加减乘除四则运算)。这些数的表示法由于承认了“01+01=10”又不是最基本的表示法,所以在某些情况下需要修正,这也就是研究的意义所在。其实可以抛开“01+01=10”这些规律独自研究,不知道是否可以看到良好的结果。

人们现在发现了D1,2C,1C,RNS,LNS等数的体系,并研究在该体系下,加法的修正形式,以及乘法等其他运算的特殊性质,力求找到在特定限制条件下具有良好特性的数系。并且已经发现了很多良好的特性。

要想设计很好的算法,就必须知道FPGA里面的资源都有啥。学习这些基本算法的目的就是学习这种方法。并且,现在FPGA设计相当巨大,不可能在全局从LUT的角度进行优化(非常费时间和精力),只能在局部采用这种优化或者在全局采用经典的方法,以期在一定程度上实现全局的优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值