FCSR原理及其VHDL語言的實(shí)現(xiàn)
2FCSR序列發(fā)生器的VHDL實(shí)現(xiàn)
以n=10為例來設(shè)計(jì)參數(shù)可變的FCSR序列發(fā)生器。
2.1功能描述及外部引腳
由圖1可知,進(jìn)位反饋移位寄存器由加法器、進(jìn)位寄存器和一組(n級)D觸發(fā)器組成。加法器實(shí)現(xiàn)FCSR的反饋運(yùn)算;進(jìn)位寄存器保存前一時(shí)刻運(yùn)算結(jié)果除2后的狀態(tài)mn-1,并為下一運(yùn)算提供輸入;n級D觸發(fā)器構(gòu)成移位寄存器,在時(shí)鐘控制下實(shí)現(xiàn)右移,依次輸出其內(nèi)部狀態(tài)。同時(shí)某些觸發(fā)器的輸出反饋回來,與進(jìn)位寄存器的輸出進(jìn)行運(yùn)算,和模2反饋至寄存器輸入端,和除2反饋至進(jìn)位寄存器。
式(1)中qi∈GF(2) ,(i=1,2,…,r-1)在實(shí)際電路中為抽頭的連接狀態(tài),決定哪一級輸出反饋至加法器,qi=0表示斷開,qi=1表示連接。
FCSR序列發(fā)生器的外部引腳定義如圖2所示。
其中,CLK為時(shí)鐘信號;RESET為置數(shù)信號;PRN為初態(tài)置數(shù)端;SEL為抽頭置數(shù)端;Q為輸出端。該FCSR序列發(fā)生器的特點(diǎn)在于可以通過設(shè)定SEL[9…0]的值來改變抽頭數(shù)、抽頭位置和發(fā)生器的有效級數(shù)n(1~10級);當(dāng)RESET為低電平時(shí),通過設(shè)定PR N[9…0]的值改變FCSR的初態(tài),從而可以改變輸出序列周期,分析各種狀態(tài)下輸出 序列的變化。
2.2可變參數(shù)部分的設(shè)計(jì)
本設(shè)計(jì)通過手動(dòng)或軟件自動(dòng)設(shè)定SEL[9…0]的值來改變抽頭數(shù)、抽頭位置和發(fā)生器的有效級數(shù)3個(gè)參數(shù),其中改變最高抽頭位置可使有效長度可變。具體電路中,由SEL[9…0]設(shè)定值作為加法器的輸入,輸出結(jié)果進(jìn)行下一步運(yùn)算,因此需要設(shè)計(jì)輸入變量較多、延遲時(shí)間較短的加法器電路。
這里的求和運(yùn)算可以等效為計(jì)算輸入變量中“1”的個(gè)數(shù)。對此有多種實(shí)現(xiàn)方案,如計(jì)數(shù)法、邏輯函數(shù)法、查表法、求和網(wǎng)絡(luò)法等。單純使用一種方法,在輸入變量較多的情況下會(huì)有占用資源太多、延遲時(shí)間太大或表達(dá)式太繁瑣等問題,因此需要綜合使用這些方法。該加法器綜合使用邏輯函數(shù)-求和網(wǎng)絡(luò)法,由1位累加器和3位串行加法器實(shí)現(xiàn)。
由于n=10,則抽頭數(shù)至多為10,可以分2組進(jìn)行求和。因此首先設(shè)計(jì)5輸入、3位輸出的累加器。用卡諾圖簡化后,寫邏輯表達(dá)式如下:
3位串行加法器的設(shè)計(jì)比較簡單,不再贅述,則10輸入變量、3位輸出的加法器電路原理圖如圖3所示。
這里求和網(wǎng)絡(luò)只有1級,不難由此擴(kuò)充成多級。該電路延遲至多為8級邏輯門的延遲時(shí)間,占用資源也較少。
2.3主程序
根據(jù)FCSR序列產(chǎn)生的原理,采用VHDL語言的混合描述方式對該邏輯進(jìn)行硬件描述。主程序l_seq如下:
其中元件例化語句中所引用的元件已經(jīng)作為組件在compONents.vhd用戶包進(jìn)行定義,在主程序中調(diào)用即可。
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理
評論