用電路實(shí)現pascal三角形運算
Pascal三角形,即(a-b)n展開(kāi)項系數,是一個(gè)經(jīng)典的數學(xué)問(wèn)題,然而它在通信、頻率補償、版圖布局布線(xiàn)優(yōu)化等很多方面都有廣泛的應用。在一個(gè)小數分頻項目中,需要構建一個(gè)四級的pascal三角形來(lái)進(jìn)行相位補償,如圖1所示,第二個(gè)累加器的溢出必須通過(guò)第一個(gè)微分控制分頻比,第三個(gè)累加器的溢出必須通過(guò)第二個(gè)微分控制分頻比,依此類(lèi)推。第二個(gè)累加器使分頻比變?yōu)镹+1、N-1,第三個(gè)累加器將分頻比變?yōu)镹+1、N-2、N+1,第四個(gè)累加器的分頻比序列為N+1、N-3、N+3、N-1,正如圖2所示該序列構成一個(gè)pascal三角形,每行的總和為零。依照這個(gè)規律可以設計實(shí)現pascal 三角形運算的通用電路。
Pascal三角形的數學(xué)描述
pascal三角形通常用三角形的方式來(lái)表示,如圖2所示,也可以用一個(gè)二維的下三角矩陣來(lái)描述,如圖3所示。
矩陣a[n,n]可以用下面的公式來(lái)描述。
a[i, j]=a[i, j-1]+(-1)a[i+1, j] (式1)
(a[n, 1]=0,a[n, 2]=a[n, 3]=...=a[n, n]=1)
i≥1,j≥2。
矩陣中第一列的0是為了方便電路實(shí)現而人為加上去的。將此二維矩陣表達式(即式1)變成含有時(shí)間的一維方程。
a[i]j=a[i]j-1+(-1)a[i+1]j (式2)
i,j均大于1,a[n]2 =a[n]3=...a[n]n=1。下標表示時(shí)間,a[n,1]=0表示剛開(kāi)始整個(gè)電路的清零信號,其余第一
列的0表示對應pascal三角形的和為0,最后一行的1表示pascal三角形每一行對應的輸入端有輸入值1時(shí),產(chǎn)生的立即數為1。
此外,式2具有疊加性,可以把pascal三角形中的一行加上其余任意一行或者幾行,實(shí)現任意時(shí)鐘周期的延時(shí)。
Pascal三角形的基本電路
根據上面一維含時(shí)公式,先要構建補碼電路,然后是一個(gè)加法電路,最后是一個(gè)延時(shí)電路。
假設一個(gè)數組a[n:0]表示數的各位,a[0]為最低位,對各位取反,然后最低位加1,得到一個(gè)新的數組b[n:0],這個(gè)數組最低位為b[0],對應的邏輯關(guān)系是:
其余位按照這個(gè)規律依此類(lèi)推,邏輯圖如圖4所示。
采用通用的全加器,邏輯表達式為:
示意圖參見(jiàn)圖5。其中CI為上一級的進(jìn)位,A、B為本級輸入信號,S為全加和,CO是本級進(jìn)位。
延時(shí)器采用帶清零的D觸發(fā)器來(lái)實(shí)現,見(jiàn)圖6。CLOCK為時(shí)鐘信號,CLEAR為清零信號,D是數據輸入信號,Q是原量輸出
。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY
評論