用电路实现pascal三角形运算
电路设计
首先构建一个4级pascal三角形电路,其中CLOCK是时钟信号,IN1、IN2、IN3、IN4分别对应于pascal三角形的前4行,CLEAR是清零信号。IN1、IN2、IN3、IN4输入之前将触发器清零,防止输出不定态。D0、D1、D2、D3是从低到高的四位输出,SIGN是符号位,这五位构成输出。值得注意的是,IN4经过与自己直接相连的D触发器产生的数只有一位,然而它的补码需要4位,只好在高位加零,这样补码电路就可以简化,图7就是经过简化的电路图。为了增加电路的直观性,这里省略了电路中所有D触发器的时钟信号和清零信号,所有D触发器的清零信号和时钟信号分别连在一起。
真值表
IN4
|
IN3
|
IN2
|
IN1
|
CP1
|
CP2
|
CP3
|
CP4
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
-1
|
0
|
0
|
0
|
0
|
1
|
1
|
2
|
-1
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
-2
|
1
|
0
|
0
|
1
|
0
|
1
|
2
|
-2
|
1
|
0
|
0
|
1
|
1
|
0
|
2
|
-3
|
1
|
0
|
1
|
0
|
0
|
0
|
1
|
-3
|
3
|
-1
|
1
|
0
|
0
|
1
|
2
|
-3
|
3
|
-1
|
1
|
0
|
1
|
0
|
2
|
-4
|
3
|
-1
|
1
|
0
|
1
|
1
|
3
|
-4
|
3
|
-1
|
1
|
1
|
0
|
0
|
2
|
-5
|
4
|
-1
|
1
|
1
|
0
|
1
|
3
|
-5
|
4
|
-1
|
1
|
1
|
1
|
0
|
3
|
-6
|
4
|
-1
|
1
|
1
|
1
|
1
|
4
|
-6
|
4
|
-1
|
电路的验证与扩展
取IN1、IN2、IN3、IN4从0001到1111,并且给每组值以足够的变化周期,可以得到下面的真值表。在viewlogic用XILINX公司的XC4000库进行模拟,除了可以忽略的毛刺和初始时无关紧要的不定态之外,得到的波形图与真值表完全一致,其中CP1、CP2、CP3、CP4分别对应于第1、2、3、4时钟,周期波形图如图8所示。
图8 波形图
三级的电路得到验证之后,根据同样的原理,可以在四级的基础上进行任意级的构建。
小结
本文给出了pascal三角形运算电路的设计思想与实现方法,以及在viewlogic下的验证,并且还可以根据需要进行任意级的扩展。Pascal三角形在版图布局布线优化等方面的具体应用可以参考有关文献,在此不再赘述。
DIY机械键盘相关社区:机械键盘DIY
评论