原创 由简单的加法器揭秘FPGA底层实现

2011-7-22 12:58 3494 11 13 分类: FPGA/CPLD

近日在用QuartusII做时序仿真的时候突然发现了一个奇妙的事情,仔细研究后发现FPGA电路的实现原来还有一定的奥秘。

首先,用verilogQuartusII上做了个简单的两8bit有符号输入、一路9bit有符号输出的加法器。代码如下:

verilog_adder.jpg

需要注意的是:只有当输入输出数据都是signed类型,或者说加法运算的加数与被加数都是signed类型时,“+”加法运算才算是有符号加法。简单介绍下有符号加法的运算,以4bit为例,如:

1111 + 0011 = 10010 ——直接的二进制加法

1111 + 0011 = 0010 ——4bit的补码运算,对应的十进制数相加:

-1 + 3 = 2

有符号加法:

数值相加:1111 + 0011 = 10010

符号位相加:1+0=1

符号位运算:1+1=0

结果输出:1111 + 0011 = 00010

做好这个简单的有符号加法器之后,便直接用QuartusII自带的仿真器对其进行仿真:

adder仿真1.jpg

仿真数据我们也不需要做的太复杂,固定加数11,加数2自加。

好的,这个时候我们看到上图中OUT的输出大体数据都是正确的,但在两个数中间有些毛刺!大多数人都认为这是竞争与冒险,觉得都很正常……的确,这是正常的现象,而且这样的结果并没有错。

我们将毛刺放大后,便会发现其中的奥秘了……

adder仿真2.jpg

我们可以发现在78两个正确结果中间,毛刺的数值是310。大多数人的第一反应肯定和我一样,认为这是随机的现象,这几个数并没有什么含义。实际则不然!

我们将数值转换成bit形式:

adder仿真3.jpg

可以惊奇地发现,从78的变化过程是这样的0111-0011-0001-0000-1000,这类似于格雷码,是1bit变化的模式!(不仅是78的变化,凡是有“毛刺”的地方其实都是这样的变化过程)

我们再将加法器的中间变量仿真出来看看:

adder仿真4.jpg

可以看出,当做完加法后的结果OUTreg并没有出现毛刺,而直到OUT输出才出现这样的变化,可见寄存器的最后输出是呈现1bit变化的格雷码形式的。

文章评论2条评论)

登录后参与讨论

用户1031924 2015-6-16 00:09

语言描述有几种: 你这是行为级描述, 别人那是门级描述, 其实都要转到门级描述,只不过你那里呢,综合软件帮你完成了剩下的工作了。

用户1737382 2014-5-5 21:42

这说明了什么呢?我在学习FPGA的时候就对加法器设计,乘法器设计等有点疑惑,看到很多人花很长程序最后就为了实现个加法或乘法,而我在程序中直接用+、*就能搞定,这怎么解释呢?
相关推荐阅读
jlx_cuc 2014-06-06 18:19
你真的会socket编程吗(1)
最近的项目都围绕着TCP socket在进行着,VC下的socket,Linux下的socket,感觉很简单,但是却发现其实下面的几个同事对于socket这个东西还只是“会”,但并不一定懂。 ...
jlx_cuc 2014-05-16 18:44
操作系统-读书笔记(1)
最近在业余阅读时找到一本《自己动手编写操作系统》觉得不错,视角很新颖,是有关操作系统书籍中为数不多的看了不想睡觉的读本。   由于这本书的出版时间较早,书中引导盘还使用的是软盘,所以在跟随...
jlx_cuc 2014-05-08 17:13
“改变”后的一丝体会
有两个月没写博客了,现在正是开学之际,有必要对前面两个月的工作做做记录。   经历过从北京到苏州的工作地点转换,生活和工作上的体会和收获颇丰。到苏州来以后会觉得,原来的一些看法还是太过狭隘...
jlx_cuc 2014-05-08 17:13
最终我又不要脸的回来了——成为一名“管理者”后的心得
之前的很长一段时间都没再更新过这个博客,一直在EDN潜水,一直在做伸手党。原因有两个,一个是忙,一个是懒。 最终我还是不要脸的回来了。还是想以后好好把这个博客经营下去,也好等咱们的娃长大了给它...
jlx_cuc 2013-07-11 17:13
【博客大赛】写给“即将入学”的硕士研究生们
原本题目定的是《写给即将入学的硕士研究生们》,后来想了想便加上了双引号。先来说说这个双引号。   早在一个多月前全国考研的最后结果便出来了,对于考上研的同学们来说,马上就要开始自己的研究生...
jlx_cuc 2013-04-08 23:22
【博客大赛】老罗和他的锤子之我的见解
事先说明,个人感觉我的观点还算是中立观点,并不是要感叹老罗和锤子有多好,也不想批评它们是否一无是处。只是想在时隔这么就没来EDN,恰巧又遇到锤子的发布这个时间点,发表些个人的感想和见解。 ...
我要评论
2
11
关闭 站长推荐上一条 /2 下一条