一種基于CPLD的偽隨機(jī)序列發(fā)生器
摘 要:介紹了一種利用EDA技術(shù),在Altera的MAX 7000S系列芯片上實(shí)現(xiàn)的偽隨機(jī)序列發(fā)生器,為產(chǎn)生低成本的電子系統(tǒng)測試信號提供了一種簡單易行的方法。 關(guān)鍵詞:EDA;VHDL;CPLD;偽隨機(jī)序列 1 引 言 EDA(Electronic Design Automation,電子設(shè)計(jì)自動(dòng)化)是以大規(guī)模可編程邏輯器件替代中小規(guī)模集成電路作為硬件載體,以EDA軟件編程的方式對可編程器件進(jìn)行電子系統(tǒng)設(shè)計(jì)的計(jì)算機(jī)輔助電路設(shè)計(jì)技術(shù)。目前已經(jīng)廣泛應(yīng)用于電子電路與系統(tǒng)的設(shè)計(jì)和產(chǎn)品的開發(fā),逐漸取代了傳統(tǒng)的手工硬件電路設(shè)計(jì)方式。設(shè)計(jì)的系統(tǒng)具有體積小、重量輕、功耗小、速度快、價(jià)格低、可靠性高、設(shè)計(jì)周期短等優(yōu)點(diǎn)。一個(gè)功能完備的EDA設(shè)計(jì)軟件加上一片普通功能的可編程邏輯芯片就可以構(gòu)成以前需幾百個(gè)集成電路才能構(gòu)成的電子系統(tǒng)。 目前常用的可編程邏輯器件有CPLD(ComplexProgrammable Logic Device,復(fù)雜可編程邏輯器件)和FPGA(Field Programmable Gate Array,現(xiàn)成可編程門陣列)。常用的EDA軟件包括VHDL,Verilog HDL,ABEL等硬件描述語言。其中,VHDL作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又受到眾多EDA工具廠家的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。許多主流EDA開發(fā)軟件使用集成設(shè)計(jì)環(huán)境,支持多種輸入方式,具有綜合、適配、仿真和在系統(tǒng)下載等功能,界面友好,操作方便,功能強(qiáng)大,并與第 三方EDA工具兼容良好。 偽隨機(jī)信號在雷達(dá)、遙控、遙測、通信加密和無線電測量系統(tǒng)領(lǐng)域有著廣泛的應(yīng)用。利用VHDL語言進(jìn)行軟件編程,通過EDA設(shè)計(jì)軟件對程序編譯、優(yōu)化、綜合、仿真、適配,最后將生成的網(wǎng)表文件配置于制定的目標(biāo)芯片中,可以實(shí)現(xiàn)不同序列長度的偽隨機(jī)信號發(fā)生器。 2 偽隨機(jī)序列的原理 圖1為4級偽隨機(jī)序列產(chǎn)生的邏輯框圖。給寄存器賦除全零外的任何二進(jìn)制序列作為初始值,當(dāng)移位時(shí)鐘脈沖上升沿到來時(shí),每級寄存器的輸出作為近鄰寄存器的輸入,實(shí)現(xiàn)數(shù)值的右移。其中,第4級與第3級的輸出模二加(異或)后移入第1級寄存器。產(chǎn)生一個(gè)長度為15個(gè)時(shí)鐘脈沖周期的二進(jìn)制偽隨機(jī)序列。 對于一個(gè)n級的線性反饋移位寄存器所產(chǎn)生的二進(jìn)制序列而言,把產(chǎn)生的最大長度序列稱為m序列,其長度N=2n-1。不同長度的m序列由不同的線性反饋結(jié)構(gòu)決定,可以用n次本原多項(xiàng)式進(jìn)行表示: 其中:Ci為第i級的反饋系數(shù),取值為1或0。 表1為部分本原多項(xiàng)式系數(shù),其中列出的整數(shù)表示反饋系數(shù)為1的級數(shù)。 此外,產(chǎn)生相同長度m序列的反饋結(jié)構(gòu)也不是唯一的,由所對應(yīng)的不同本原多項(xiàng)式?jīng)Q定,其不同本原
3 偽隨機(jī)序列發(fā)生器的VHDL實(shí)現(xiàn) 偽隨機(jī)序列發(fā)生器的外部引腳如圖2所示。CLK為時(shí)鐘脈沖,RESET為清零信號,OE為輸出使能端,當(dāng)RESET和OE都為高電平時(shí),序列跟隨著CLK的節(jié)拍一位一位的從DOUT端輸出。除此之外,該偽隨機(jī)序列發(fā)生器最大的特點(diǎn)在于,他能根據(jù)SEL端的選擇信號產(chǎn)生不同長度的M序列,對應(yīng)的級數(shù)n取值為5~20?;灸軌驖M足各種情況對不同長度偽隨機(jī)信號的需要。 根據(jù)偽隨機(jī)序列產(chǎn)生的原理,采用行為描述方式用VHDL語言對該邏輯進(jìn)行硬件描述,程序如下: 4 時(shí)序仿真 程序經(jīng)過編譯、優(yōu)化后,就要選擇合適的目標(biāo)芯片進(jìn)行綜合、管腳配置。選用Altera公司的MAX7000S系列中的EPM7128S芯片,宏單元數(shù)為128,采用基于E2PROM的在系統(tǒng)可編程結(jié)構(gòu),系統(tǒng)時(shí)鐘頻率可達(dá)178 MHz,引腳間5 ns恒定延遲,兼容IEEE標(biāo)準(zhǔn)JTAG邊界掃描測試(BST)界面。我們選用優(yōu)化效率和兼容性優(yōu)秀的綜合器Synplify對程序進(jìn)行綜合,將綜合生成的網(wǎng)表文件由MAX+Plus II進(jìn)行仿真,得到如圖3所示的結(jié)果。 從圖3中可以看出,時(shí)鐘脈沖CLK的周期為20 ns,當(dāng)模式選擇端SEL的組合信號取值為“0000”時(shí),輸出端DOUT輸出的是5級偽隨機(jī)序列,長度N=25-1=31,周期為31×20 ns=620 ns;當(dāng)SEL取值為“0001”時(shí),DOUT輸出的是6級偽隨機(jī)序列,長度為N=26-1=63,周期為63×20 ns=1.26μs。在一個(gè)序列周期(長度)內(nèi),輸出端的信號是無規(guī)律的,但是,經(jīng)過一段較長時(shí)間的觀測,信號仍然是有規(guī)律的。這就是為什么稱為“偽”隨機(jī)信號的原因。 5 結(jié) 語 本文介紹的偽隨機(jī)序列發(fā)生器,與由多個(gè)分立元件和集成塊構(gòu)成的信號發(fā)生器相比,克服了易受溫度變化和電磁干擾影響的缺點(diǎn),具有功能齊全、性能穩(wěn)定、成本低廉的特點(diǎn)??梢愿鶕?jù)需求隨時(shí)調(diào)整序列長度以及時(shí)鐘脈沖周期,具有較為廣泛的應(yīng)用功能。他既可以作為信號源單獨(dú)使用,也可以作為一個(gè)電子系統(tǒng)的測試信號部分,在系統(tǒng)相關(guān)辨識中起著非常重要的作用。
參考文獻(xiàn)
[1]潘松,等.VHDL使用教程[M].成都:電子科技大學(xué)出版社,2000.
[2]MAX7000 programmable logic device family.Ver.6.6.Altera,2003.6.
[3]QiDa,Yu Cheng.Systemidentification basedon MCUand EDA[J].Proceedings ofthe 2001International Conference on Embedded Systems[M],Beijing,2001:84-87.
[4]張登福,等.偽隨機(jī)序列及PLD實(shí)現(xiàn)在程序和系統(tǒng)加密中的應(yīng)用[J].電子技術(shù)應(yīng)用,2000,(6):12.
[5]CPLDdatasheethttp://www.dzsc.com/datasheet/CPLD_1136600.html.
[6]MAX7000Sdatasheethttp://www.dzsc.com/datasheet/MAX7000S_1018714.html.
[7]EPM7128Sdatasheethttp://www.dzsc.com/datasheet/EPM7128S_301040.html.
來源:零八我的愛