本發(fā)明涉及混沌信號產(chǎn)生技術(shù)領(lǐng)域,尤其涉及一種FPGA混沌信號發(fā)生器。
背景技術(shù):
目前報道的基于FPGA的混沌信號產(chǎn)生方法,主要是針對某一個特定混沌系統(tǒng)的設(shè)計,并且是采用設(shè)計浮點數(shù)運算單元進(jìn)行運算,這種方案的主要不足之處體現(xiàn)在以下兩個方面:
(1)方案只適用于某個特定的混沌系統(tǒng),不具有通用性,因而更換系統(tǒng)時需要重新設(shè)計,開發(fā)周期長;
(2)設(shè)計浮點數(shù)運算模塊,編程難度較大,且運算需要消耗更多的時間和占用更多的FPGA硬件資源。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種FPGA混沌信號發(fā)生器能夠適用于不同的混沌系統(tǒng),同時減少運算所需時間,降低硬件資源消耗。
本發(fā)明的一種FPGA混沌信號發(fā)生器,包括:
混沌系統(tǒng)生成單元、混沌信號生成單元和DA轉(zhuǎn)換單元;
混沌系統(tǒng)生成單元,用于通過開關(guān)的切換,生成不同的混沌系統(tǒng),包括:Lorenz系統(tǒng)、Chen系統(tǒng)、Lü系統(tǒng)、2渦卷Chua系統(tǒng)、4渦卷Chua系統(tǒng)、網(wǎng)格9渦卷Chua混沌系統(tǒng)、6維取模離散系統(tǒng)、6維正弦迭代離散系統(tǒng);
混沌信號生成單元,用于根據(jù)混沌系統(tǒng)生成單元生成的混沌系統(tǒng)中生成所需的混沌信號;
DA轉(zhuǎn)換單元,用于將混沌信號轉(zhuǎn)換為能夠在示波器中顯示的形式。
可選的,
混沌系統(tǒng)生成單元包括:
整數(shù)化處理子單元,用于對混沌系統(tǒng)進(jìn)行整數(shù)化處理,得到整數(shù)化的混沌系統(tǒng)。
可選的,
混沌信號生成單元包括:
選擇子單元,用于根據(jù)狀態(tài)機的當(dāng)前狀態(tài)選擇工作或保持原值;
狀態(tài)機的狀態(tài)包括:
S0狀態(tài):在主時鐘的上升沿,非線性項運算電路的比較器檢測到當(dāng)前狀態(tài)為S0狀態(tài),DA驅(qū)動電路的ready信號為高電平時,通過計算混沌迭代方程中的非線性項,并將計算結(jié)果賦給時序邏輯電路,同時狀態(tài)機會跳轉(zhuǎn)到S1狀態(tài);如果ready為低電平,非線性項的輸出保持原值,同時狀態(tài)機停留在當(dāng)前的S0狀態(tài);
S1狀態(tài):在主時鐘的上升沿,迭代序列運算電路的比較器檢測到當(dāng)前狀態(tài)是S1狀態(tài)時,通過計算混沌迭代方程的迭代結(jié)果,并將計算結(jié)果賦給時序邏輯電路,同時狀態(tài)機跳轉(zhuǎn)到S2狀態(tài);
S2狀態(tài):在主時鐘的上升沿,X0,Y0,Z0的運算電路比較器檢測到當(dāng)前狀態(tài)是S2狀態(tài)時,將迭代值輸出信號X、Y、Z除低Nmin位外的部分賦給X0,Y0,Z0,同時狀態(tài)機跳轉(zhuǎn)到S3狀態(tài);
S3狀態(tài):在主時鐘的上升沿,X0,Y0,Z0運算電路的比較器檢測到當(dāng)前狀態(tài)是S3狀態(tài)時,將當(dāng)前電路時序邏輯部分的輸出值通過加法器進(jìn)行加1操作,加1后的結(jié)果賦給時序邏輯電路,實現(xiàn)向上取整,同時狀態(tài)機跳轉(zhuǎn)到S4狀態(tài);
S4狀態(tài),輸出兩路混沌信號到DA的左右路通道。在主時鐘信號的上升沿,輸出電路的比較器檢測到當(dāng)前狀態(tài)是S4狀態(tài)時,將調(diào)整的組合邏輯結(jié)果賦給時序邏輯電路,同時狀態(tài)機跳轉(zhuǎn)到S5狀態(tài);
S5狀態(tài),在S5狀態(tài)下,所有運算電路的輸出都保持原值,延時一個時鐘,使輸出信號有一個穩(wěn)定的過程,在下一個主時鐘的上升沿,狀態(tài)機跳轉(zhuǎn)回S0狀態(tài)。
可選的,
在上電或復(fù)位時,對本系統(tǒng)的時序邏輯部分進(jìn)行復(fù)位,此時,時序邏輯的輸出會變成verilog代碼中設(shè)定好的復(fù)位值,時序邏輯的輸出狀態(tài)會根據(jù)主時鐘的上升沿下狀態(tài)機的狀態(tài)進(jìn)行更新。
可選的,
整數(shù)化處理子單元包括:
表示模塊,用于將混沌系統(tǒng)的參數(shù)全部用二進(jìn)制數(shù)表示;
第一轉(zhuǎn)化模塊,用于對混沌迭代方程兩端乘以將全部參數(shù)轉(zhuǎn)化成整數(shù),得到對應(yīng)的整數(shù)域混沌迭代方程;
第二轉(zhuǎn)化模塊進(jìn)行整數(shù)域混沌方程的迭代,并將每一次迭代所得到的結(jié)果全部右移Nmin位,再進(jìn)行向上取整,得到整數(shù)域混沌迭代方程。
可選的,
FPGA混沌信號發(fā)生器還包括復(fù)位單元,用于對音頻解碼芯片的相關(guān)寄存器進(jìn)行初始化,對各個存放參數(shù)和數(shù)據(jù)的寄存器復(fù)位從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
本發(fā)明的FPGA混沌信號發(fā)生器實施例中包括,混沌系統(tǒng)生成單元、混沌信號生成單元和DA轉(zhuǎn)換單元;混沌系統(tǒng)生成單元,用于通過開關(guān)的切換,生成不同的混沌系統(tǒng),包括:Lorenz系統(tǒng)、Chen系統(tǒng)、Lü系統(tǒng)、2渦卷Chua系統(tǒng)、4渦卷Chua系統(tǒng)、網(wǎng)格9渦卷Chua混沌系統(tǒng)、6維取模離散系統(tǒng)、6維正弦迭代離散系統(tǒng);混沌信號生成單元,用于根據(jù)混沌系統(tǒng)生成單元生成的混沌系統(tǒng)中生成所需的混沌信號;DA轉(zhuǎn)換單元,用于將所述混沌信號轉(zhuǎn)換 為能夠在示波器中顯示的形式。從而該FPGA混沌信號發(fā)生器能夠適用于不同的混沌系統(tǒng)。另一方面,所述混沌系統(tǒng)生成單元包括:整數(shù)化處理子單元,用于對所述混沌系統(tǒng)進(jìn)行整數(shù)化處理,得到整數(shù)化的混沌系統(tǒng)。整數(shù)化后的混沌系統(tǒng)更適用于FPGA平臺,有效減少運算時間,節(jié)省硬件資源。
具體實施方式
本發(fā)明實施例提供了一種FPGA混沌信號發(fā)生器能夠適用于不同的混沌系統(tǒng),同時減少運算所需時間,降低硬件資源消耗。
本發(fā)明的一種FPGA混沌信號發(fā)生器,包括:
混沌系統(tǒng)生成單元、混沌信號生成單元和DA轉(zhuǎn)換單元;
混沌系統(tǒng)生成單元,用于通過開關(guān)的切換,生成不同的混沌系統(tǒng),包括:Lorenz系統(tǒng)、Chen系統(tǒng)、Lü系統(tǒng)、2渦卷Chua系統(tǒng)、4渦卷Chua系統(tǒng)、網(wǎng)格9渦卷Chua混沌系統(tǒng)、6維取模離散系統(tǒng)、6維正弦迭代離散系統(tǒng);
所述混沌信號生成單元,用于根據(jù)混沌系統(tǒng)生成單元生成的混沌系統(tǒng)中生成所需的混沌信號;
DA轉(zhuǎn)換單元,用于將混沌信號轉(zhuǎn)換為能夠在示波器中顯示的形式。
該FPGA混沌信號發(fā)生器進(jìn)一步包括:
整數(shù)化處理子單元,用于對所述混沌系統(tǒng)進(jìn)行整數(shù)化處理,得到整數(shù)化的混沌系統(tǒng)。整數(shù)化后的混沌系統(tǒng)更適用于FPGA平臺,有效減少運算時間,節(jié)省硬件資源
該FPGA混沌信號發(fā)生器進(jìn)一步包括:
混沌信號生成單元包括:
選擇子單元,用于根據(jù)狀態(tài)機的當(dāng)前狀態(tài)選擇工作或保持原值;
狀態(tài)機的狀態(tài)包括:
S0狀態(tài):在主時鐘的上升沿,非線性項運算電路的比較器檢測到當(dāng)前狀態(tài)為S0狀態(tài),DA驅(qū)動電路的ready信號為高電平時,通過計算混沌迭代方程中的非線性項,并將計算結(jié)果賦給時序邏輯電路,同時狀態(tài)機會跳轉(zhuǎn)到S1狀態(tài);如果ready為低電平,非線性項的輸出保持原值,同時狀態(tài)機停留在當(dāng)前的S0狀態(tài);
S1狀態(tài):在主時鐘的上升沿,迭代序列運算電路的比較器檢測到當(dāng)前狀態(tài)是S1狀態(tài)時,通過計算混沌迭代方程的迭代結(jié)果,并將計算結(jié)果賦給時序邏輯電路,同時狀態(tài)機跳轉(zhuǎn)到S2狀態(tài);
S2狀態(tài):在主時鐘的上升沿,X0,Y0,Z0的運算電路比較器檢測到當(dāng)前狀態(tài)是S2狀態(tài)時,將迭代值輸出信號X、Y、Z除低Nmin位外的部分賦給X0,Y0,Z0,同時狀態(tài)機跳轉(zhuǎn)到S3狀態(tài);
S3狀態(tài):在主時鐘的上升沿,X0,Y0,Z0運算電路的比較器檢測到當(dāng)前狀態(tài)是S3狀態(tài)時,將當(dāng)前電路時序邏輯部分的輸出值通過加法器進(jìn)行加1操作,加1后的結(jié)果賦給時序邏輯電路,實現(xiàn)向上取整,同時狀態(tài)機跳轉(zhuǎn)到 S4狀態(tài);
S4狀態(tài),輸出兩路混沌信號到DA的左右路通道。在主時鐘信號的上升沿,輸出電路的比較器檢測到當(dāng)前狀態(tài)是S4狀態(tài)時,將調(diào)整的組合邏輯結(jié)果賦給時序邏輯電路,同時狀態(tài)機跳轉(zhuǎn)到S5狀態(tài);
S5狀態(tài),在S5狀態(tài)下,所有運算電路的輸出都保持原值,延時一個時鐘,使輸出信號有一個穩(wěn)定的過程,在下一個主時鐘的上升沿,狀態(tài)機跳轉(zhuǎn)回S0狀態(tài)。
在上電或復(fù)位時,對本系統(tǒng)的時序邏輯部分進(jìn)行復(fù)位,此時,時序邏輯的輸出會變成verilog代碼中設(shè)定好的復(fù)位值,時序邏輯的輸出狀態(tài)會根據(jù)主時鐘的上升沿下狀態(tài)機的狀態(tài)進(jìn)行更新。利用verilog HDL編寫代碼,實現(xiàn)相應(yīng)的數(shù)字電路功能,不僅適用于混沌信號發(fā)生器,也適用于視頻混沌加密系統(tǒng)。
整數(shù)化處理子單元進(jìn)一步包括:
表示模塊,用于將混沌系統(tǒng)的參數(shù)全部用二進(jìn)制數(shù)表示;
第一轉(zhuǎn)化模塊,用于對混沌迭代方程兩端乘以將全部參數(shù)轉(zhuǎn)化成整數(shù),得到對應(yīng)的整數(shù)域混沌迭代方程;
第二轉(zhuǎn)化模塊進(jìn)行整數(shù)域混沌方程的迭代,并將每一次迭代所得到的結(jié)果全部右移Nmin位,再進(jìn)行向上取整,得到整數(shù)域混沌迭代方程。
FPGA混沌信號發(fā)生器還包括復(fù)位單元,用于對音頻解碼芯片的相關(guān)寄存器進(jìn)行初始化,對各個存放參數(shù)和數(shù)據(jù)的寄存器復(fù)位。
下面以一個具體應(yīng)用中的例子對上述各單元模塊的通信關(guān)系進(jìn)行說明:
選用XILINX公司的Virtex5系列,其音頻解密器采用符合AC97標(biāo)準(zhǔn)的AD1981芯片的FPGA開發(fā)板作為硬件平臺,F(xiàn)PGA產(chǎn)生的混沌信號通過AD芯片輸出到3.5mm的耳機輸出接口中,最后通過示波器顯示輸出結(jié)果。
由于選用硬件平臺的DA芯片位寬為20比特,因而選取混沌迭代序列的位寬為[19:0],能表示的有符號數(shù)的范圍為-219~219-1。通過調(diào)節(jié)混沌系統(tǒng)的比例擴張系數(shù)K,使混沌迭代序列的數(shù)值在這個范圍內(nèi),選取合適的K值是通過采用MATLAB仿真的結(jié)果來確定的。
建立軟件開發(fā)環(huán)境。PC機安裝XILINX公司的ISE14.7開發(fā)設(shè)計軟件,選擇Virtex5系列的XC5VLX110T器件來建立工程,實現(xiàn)與硬件平臺的匹配。
設(shè)n維離散混沌系統(tǒng)迭代方程的一般形式為:
式中bi(1≤i≤n),kij(1≤i,j≤n)為方程的參數(shù),F(xiàn)1,F2,…,Fn為非線性函數(shù),x1(k),x2(k),…,xn(k)為方程第k次迭代的結(jié)果,x1(k+1),x2(k+1),…,xn(k+1)為方程第k+1次迭代的結(jié)果。
需要說明的是,在本發(fā)明中涉及到的Lorenz系統(tǒng)、Chen系統(tǒng)、Lü系統(tǒng)、2渦卷Chua系統(tǒng)、4渦卷Chua系統(tǒng)、網(wǎng)格9渦卷Chua系統(tǒng)、6維取模離散系統(tǒng)和6維正弦迭代離散系統(tǒng),都可以用(1)式的形式來表示,這些方程的具體形式在此處不再全部給出。
采用定點算法,進(jìn)行整數(shù)化處理,處理方法如下:存在Nmin,用乘以bi(1≤i≤n),kij(1≤i,j≤n),從而將上述參數(shù)全部轉(zhuǎn)化成整數(shù)。根據(jù)(1)式,得:
式中均為整數(shù)。
由于在方程兩端擴大了倍,所以要將迭代輸出值縮小倍并向上取整后再進(jìn)入下一輪迭代,得:
式中ceil表示向上取整。
根據(jù)(2)式和(3)式設(shè)計整數(shù)化混沌系統(tǒng)的數(shù)字電路,其中作為主控的狀態(tài)機電路狀態(tài)分為S0、S1、S2、S3、S4、S5共六個狀態(tài),在S0態(tài),如果DA芯片驅(qū)動電路的ready信號為高電平時,那么,非線性函數(shù)組合邏輯電路則更新非線性函數(shù)Fi(·)(1≤i≤n)的運算結(jié)果;在S1態(tài),將本輪迭代的結(jié)果賦給相應(yīng)的觸發(fā)器;在S2態(tài),將迭代輸出電路的結(jié)果右移Nmin位并賦給相應(yīng)觸發(fā)器;在S3態(tài),則將結(jié)果加1;在S4態(tài),將兩路混沌信號的數(shù)值賦給DA的左右路通道信號的輸出電路;在S5態(tài),所有電路的觸發(fā)器輸出保持原值。
Chua_4_scroll_gen模塊電路的具體實施方式
四渦卷Chua系統(tǒng)為典型實例來闡述其具體實施方式,這種實施方式對于其他混沌系統(tǒng)也同樣是適用的。
1)四渦卷Chua離散混沌系統(tǒng)的迭代方程為:
f=mx(k)+d1(|x(k)+E1|-|x(k)-E1|)
+d2(|x(k)+E2|-|x(k)-E2|)+
+d3(|x(k)+E3|-|x(k)-E3|)
(5)
在(4)式和(5)式中,T=0.0313=2-5,a=0.375=2-2+2-3,b=0.5625=2-1+2-4,m=0.1641=2-3+2-5+2-7,d1=-0.1641=-(2-3+2-5+2-7),E1=215,E2=88942,E3=154480,d2=0.1641=2-3+2-5+2-7,d3=-0.1641=-(2-3+2-5+2-7)。
2)采用定點算法,進(jìn)行整數(shù)化處理。存在Nmin,使乘以迭代方程兩 端后,上述全部參數(shù)轉(zhuǎn)化成整數(shù),其中Nmin=7。迭代方程兩端同時乘以即乘以27,得:
在(6)式和(7)式中的各個參數(shù)如下:E1=215=32768,E2=88942,E3=154480,
3)比例壓縮和向上取整。由于在方程兩端同時乘了27,所以要將迭代輸出值縮小27倍并向上取整,再進(jìn)入下一輪迭代,得:
式中ceil表示向上取整。
4)設(shè)計整數(shù)域混沌系統(tǒng)的數(shù)字電路,并通過FPGA開發(fā)平臺來實現(xiàn),各個子電路均由組合邏輯及D觸發(fā)器兩部分組成,具體實施方式如下:
對于Chua_4_scroll_gen模塊的主控狀態(tài)機電路。輸出為當(dāng)前的狀態(tài),作為其他運算電路的控制信號,其中狀態(tài)機的狀態(tài)分為6個,它們分別是S0、S1、S2、S3、S4、S5。
對于產(chǎn)生非線性函數(shù)f的電路,兩個比較器和與門構(gòu)成多路選擇器的控制電路,組合邏輯1的輸出為f函數(shù)的運算結(jié)果,當(dāng)滿足狀態(tài)機電路輸出為S0且ready為高電平這一條件時,多路選擇器將選擇運算結(jié)果作為D觸發(fā)器的輸入,在主時鐘clk的上升沿將輸入更新到輸出。如上述條件不滿足,多路選擇器將選擇D觸發(fā)器的輸出作為它的輸入,此時,D觸發(fā)器的輸出,即整個非線性函數(shù)電路的輸出將保持原值。
對于迭代方程X、Y、Z的運算電路。其中組合邏輯2、3、4輸出分別是X、Y、Z的運算結(jié)果,當(dāng)狀態(tài)機輸出S1時,在主時鐘clk上升沿將本輪迭代的結(jié)果X、Y、Z分別賦給相應(yīng)的D觸發(fā)器,在狀態(tài)機輸出為其它狀態(tài)時,運算電路的D觸發(fā)器輸出保持原值。
對于實現(xiàn)對X、Y、Z信號的右移操作和向上取整的電路,當(dāng)狀態(tài)機電路輸出為S2時,在主時鐘clk的上升沿將X、Y、Z的26到7位分別輸出給X0、Y0、Z0,以實現(xiàn)右移操作,在狀態(tài)機電路的輸出為S3時,X0、Y0、Z0分別加1,結(jié)果賦給相應(yīng)的D觸發(fā)器。在除S2和S3以外的其他狀態(tài),該部分電路的D觸發(fā)器的輸出保持原值。
對于輸出DA的左右路通道信號的電路。在狀態(tài)機輸出為S4時,多路選擇器分別將X0、Y0發(fā)送到D觸發(fā)器的輸入,在主時鐘clk的上升沿,將結(jié)果賦給相應(yīng)的D觸發(fā)器。在除S4以外的其他狀態(tài),該部分電路的D觸發(fā)器的輸出保持原值。
多功能FPGA混沌信號發(fā)生器的硬件實現(xiàn)結(jié)果,將DA口的輸出與示波器的輸入相連接,通過多路開關(guān)的切換,在示波器上分別顯示8個系統(tǒng)的混沌吸引子相圖。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。