基于FPGA的AGWN信號生成器
2.2 疊加電路設(shè)計與實現(xiàn)
根據(jù)中心極限定理,對于若干個獨立同分布的隨機(jī)變量,其和的極限分布是標(biāo)準(zhǔn)正態(tài)分布。這樣將產(chǎn)生的8個序列疊加將產(chǎn)生符合高斯特性的序列。發(fā)生器串行輸出的實部,虛部8個獨立的碼相異或。即每8個一位二進(jìn)制數(shù)相異或。
2.3 乘法系數(shù)電路的設(shè)計與實現(xiàn)
2.3.1 設(shè)計思想
乘法器設(shè)計是FPGA設(shè)計中的一個難點,有很多種算法來實現(xiàn)它??梢圆捎靡莆患訉崿F(xiàn),在GF(28)域上乘法是這樣進(jìn)行的:乘以2相當(dāng)于將該8位二進(jìn)制數(shù)向高位移一位,如果此8位二進(jìn)制數(shù)的最高位為1,則需要將移位結(jié)果異或8位二進(jìn)制數(shù)00000001。還有一種方法就是,在代碼中直接將乘法寫成*,讓綜合工具自己去綜合出可用的硬件電路。本文采用綜合工具自帶的模塊電路。
2.3.2 電路實現(xiàn)
設(shè)計對時序要求較嚴(yán)格。乘法器電路必須用到三個寄存器以用來保存加法器串行輸出的連續(xù)8個PN碼,乘法系數(shù)和乘積。
在reset之后,PN序列發(fā)生電路已經(jīng)產(chǎn)生第一個輸出碼,同時加法器也將結(jié)果運算出來,但這時乘數(shù)寄存器中只有最低位是有用的剛傳進(jìn)來的一位碼,其他位還是無用信號,只有到了8個時鐘信號之后,乘數(shù)寄存器中才保存了8個連續(xù)的有用的PN碼,這時必須很快地進(jìn)行乘法運算并將結(jié)果保存在乘積寄存器中,第9個時鐘信號到來時乘法運算必須進(jìn)行完畢,空閑出來的乘數(shù)寄存器用來寄存后面的8個連續(xù)的PN碼,然后一直這樣循環(huán)工作。8個乘數(shù)寄存器保存PN碼時鐘信號后,立即進(jìn)行乘法運算并保存乘積,這就要求乘積寄存器空出來,為了空出乘積寄存器,第8個時鐘到來時必須將乘積寄存器中的數(shù)據(jù)一位一位串行輸出。乘積寄存器中有16位二進(jìn)制數(shù),這就要求一個時鐘信號的2倍頻信號作為乘積寄存器串行輸出的時鐘信號?;谝陨蠁栴}的考慮,乘法電路用綜合工具自己生成的8位乘法器,該模塊電路中還要用到一個2倍頻電路,這也用綜合工具自帶的模塊電路。本文引用地址:http://www.ex-cimer.com/article/191846.htm
3 綜合、仿真結(jié)果
在QuartusⅡ集成了多種設(shè)計輸入方式,并可使用Assignment Editor(分配編輯器)方便地設(shè)定管腳約束和時序約束,正確地使用時序約束可以得到設(shè)計的詳細(xì)時序報告,便于分析設(shè)計是否滿足時序要求。在整個設(shè)計流程中,完成了設(shè)計輸入以及成功綜合、布局布線,只能說明設(shè)計符合一定的語法規(guī)范,但其是否滿足設(shè)計者的功能要求并不能保證,這需要通過仿真進(jìn)行驗證。
3.1 功能仿真
功能仿真(前仿真),不帶時延信息,對電路物理行為進(jìn)行仿真,速度較快。
圖2是對頂層模塊(AGWN模塊)進(jìn)行功能仿真后在不同時段的波形。由圖中可以看出,輸出序列具有隨機(jī)性。
圖3~圖5分別是對各個分模塊進(jìn)行前仿真后的波形圖。圖3是8個PN序列發(fā)生器的仿真波形圖。
評論