版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 早期FPGAFPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用基于查找表的基于查找表的FPGA的基本結(jié)構(gòu)及邏輯實現(xiàn)原理的基本結(jié)構(gòu)及邏輯實現(xiàn)原理 FPGA的配置應(yīng)用的配置應(yīng)用 基于乘積項的基于乘積項的FPGA的基本結(jié)構(gòu)及邏輯實現(xiàn)原理的基本結(jié)構(gòu)及邏輯實現(xiàn)原理 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用基于查找表的基于查找表的FPGA的基本結(jié)構(gòu)及邏輯實現(xiàn)原理的基本結(jié)構(gòu)及邏輯實現(xiàn)原理 查找表(查找表(Look Up TableLook Up Table,LUTLUT)本質(zhì)上就是一個)本質(zhì)上就是一個RAMRAM。目前。目前FPGAFPGA中中多使用多使用4 4輸入的輸入的LUTLU
2、T,所以每一個,所以每一個LUTLUT可以看成一個有可以看成一個有4 4位地址線的位地址線的161161的的RAMRAM。當(dāng)用戶通過原理圖或。當(dāng)用戶通過原理圖或HDLHDL語言描述了一個邏輯電路以后,語言描述了一個邏輯電路以后,F(xiàn)PGAFPGA開開發(fā)軟件會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入發(fā)軟件會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAMRAM。這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。出地址對應(yīng)的內(nèi)容,然后輸出即可。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用基于
3、乘積項的基于乘積項的FPGA的基本結(jié)構(gòu)及邏輯實現(xiàn)原理的基本結(jié)構(gòu)及邏輯實現(xiàn)原理 這種這種FPGA的結(jié)構(gòu)可分為三塊:宏單元的結(jié)構(gòu)可分為三塊:宏單元(Macrocell)、可編程連線()、可編程連線(PIA)和)和I/O控制塊。控制塊。宏單元是器件的基本結(jié)構(gòu),由它來實現(xiàn)基本的邏輯宏單元是器件的基本結(jié)構(gòu),由它來實現(xiàn)基本的邏輯功能;可編程連線負責(zé)信號傳遞,連接所有的宏單功能;可編程連線負責(zé)信號傳遞,連接所有的宏單元;元;I/O控制塊負責(zé)輸入輸出的電氣特性控制,比如控制塊負責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出,擺率控制,三態(tài)輸出等??梢栽O(shè)定集電極開路輸出,擺率控制,三態(tài)輸出等。 INPUT
4、/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局是全局時鐘、清零和輸出使能信號,這時鐘、清零和輸出使能信號,這幾個信號有專用連線與器件中每幾個信號有專用連線與器件中每個宏單元相連,信號到每個宏單個宏單元相連,信號到每個宏單元的延時相同并且延時最短。元的延時相同并且延時最短。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 FPGA的常用設(shè)計方法包括的常用設(shè)計方法包括“自頂向下自頂向下”和和“自下而上自下而上”,目前大規(guī)模目前大規(guī)模FPGA設(shè)計一般選擇設(shè)計一般選擇“自頂向下自頂向下”的設(shè)計方法。的設(shè)計方法。 所謂所謂“自頂向下自頂向下”設(shè)計方法設(shè)計方法, 簡單地說簡單地說,就是采
5、用可完全獨立于芯片廠商及就是采用可完全獨立于芯片廠商及其產(chǎn)品結(jié)構(gòu)的描述語言其產(chǎn)品結(jié)構(gòu)的描述語言,在功能級對設(shè)計產(chǎn)品進行定義在功能級對設(shè)計產(chǎn)品進行定義, 并結(jié)合功能仿真技術(shù)并結(jié)合功能仿真技術(shù),以以確保設(shè)計的正確性確保設(shè)計的正確性,在功能定義完成后在功能定義完成后,利用邏輯綜合技術(shù)利用邏輯綜合技術(shù),把功能描述轉(zhuǎn)換成某把功能描述轉(zhuǎn)換成某一具體結(jié)構(gòu)芯片的網(wǎng)表文件一具體結(jié)構(gòu)芯片的網(wǎng)表文件,輸出給廠商的布局布線器進行布局布線。布局布輸出給廠商的布局布線器進行布局布線。布局布線結(jié)果還可反標回同一仿真器線結(jié)果還可反標回同一仿真器, 進行包括功能和時序的后驗證進行包括功能和時序的后驗證,以保證布局布線以保證布局
6、布線所帶來的門延時和線延時不會影響設(shè)計的性能。所帶來的門延時和線延時不會影響設(shè)計的性能。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用第一步:按照第一步:按照“自頂向下自頂向下”的設(shè)計方法進行系統(tǒng)劃分。的設(shè)計方法進行系統(tǒng)劃分。 第二步:輸入第二步:輸入VHDL/Verilog HDL代碼代碼 第三步:將以上的設(shè)計輸?shù)谌剑簩⒁陨系脑O(shè)計輸入編譯成標準的入編譯成標準的VHDL/Verilog HDL文件,文件,然后將文件調(diào)入然后將文件調(diào)入HDL仿真仿真軟件進行功能仿真軟件進行功能仿真 第四步:利用綜合器對源代碼進行綜合優(yōu)化處理,生成門級描述的網(wǎng)表文件 第五步:如果整個設(shè)計超出器件的宏單元或I/O單元資源,可以將設(shè)計
7、劃分到多片同系列的器件中。 第六步:將試配器產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標芯片F(xiàn)PGA中 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 FPGAFPGA是近幾年集成電路中發(fā)展最快的產(chǎn)品。本章主要對是近幾年集成電路中發(fā)展最快的產(chǎn)品。本章主要對FPGAFPGA的發(fā)展歷的發(fā)展歷程、結(jié)構(gòu)原理和設(shè)計方法與流程做了介紹。隨著可編程邏輯器件的高速發(fā)展,程、結(jié)構(gòu)原理和設(shè)計方法與流程做了介紹。隨著可編程邏輯器件的高速發(fā)展,可編程邏輯器件將進一步擴大其領(lǐng)地。據(jù)可編程邏輯器件將進一步擴大其領(lǐng)地。據(jù)IC InsightsIC Insights的數(shù)據(jù)顯示,可編程的數(shù)據(jù)顯示,可編程邏輯器件市場從邏輯器件市場從19991
8、999年的年的2929億美元增長到億美元增長到20042004的的5656億美元,幾乎翻了一番。億美元,幾乎翻了一番??删幊踢壿嬈骷⒗^續(xù)向著更高密度和更大容量方向邁進可編程邏輯器件將繼續(xù)向著更高密度和更大容量方向邁進。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用VHDL的模塊組織的模塊組織 基本的數(shù)據(jù)類型及常量、變量、信號基本的數(shù)據(jù)類型及常量、變量、信號 運算符及表達式運算符及表達式 VHDL基本語句基本語句 典型電路的設(shè)計典型電路的設(shè)計 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用VHDL的模塊組織的模塊組織 在應(yīng)用在應(yīng)用VHDLVHDL描述數(shù)字系統(tǒng)結(jié)構(gòu)時,我們使用實體(描述數(shù)字系統(tǒng)結(jié)構(gòu)時,我
9、們使用實體(entityentity)- -結(jié)構(gòu)結(jié)構(gòu)體體( architecture )( architecture )結(jié)構(gòu)。結(jié)構(gòu)。 實體描述了數(shù)字系統(tǒng)的輸入輸出接口,同時還定義了一些全局常量實體描述了數(shù)字系統(tǒng)的輸入輸出接口,同時還定義了一些全局常量以及與其他電路(程序模塊或邏輯圖模塊)之間必要連接的拓撲結(jié)構(gòu)。以及與其他電路(程序模塊或邏輯圖模塊)之間必要連接的拓撲結(jié)構(gòu)。但在實體中,我們并不對電路的邏輯做任何描述,可將其看成是一個所但在實體中,我們并不對電路的邏輯做任何描述,可將其看成是一個所謂的邏輯謂的邏輯“黑盒子黑盒子”。很明顯,。很明顯,VHDLVHDL遵循遵循EDAEDA解決方案中自頂
10、向下的設(shè)解決方案中自頂向下的設(shè)計原則,并能夠保持良好的接口兼容性。計原則,并能夠保持良好的接口兼容性。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用基本的數(shù)據(jù)類型及常量、變量、信號基本的數(shù)據(jù)類型及常量、變量、信號 數(shù)據(jù)類型 VHDL標準數(shù)據(jù)類型包括整數(shù)(INTEGER)、實數(shù)(REAL)、位(BIT)、位矢量(BIT_VECTOR)、標準邏輯(STD_LOGIC)、標準邏輯矢量(STD_LOGIC_VECTOR)、布爾量(BOOLEAN)、字符(CHARACTER)、字符串(STRING)及時間(TIME)類型。 為了給設(shè)計者提供自由度和靈活性,VHDL語言允許用戶自定義數(shù)據(jù)類型,命令為:TYPE 數(shù)據(jù)類型名
11、 ,數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 常量 常量在設(shè)計中不會發(fā)生變化,可以增加程序的可讀性,書寫格式為: CONSTANT 常量名 ,常量名 :數(shù)據(jù)類型 := 表達式; 例如:CONSTANT WAIT:TIME:= 20ns; CONSTANT LEN:INTEGER:= 16; 變量 變量作用是對數(shù)據(jù)進行暫時存儲,書寫格式為: VARIABLE 變量名 ,變量名:數(shù)據(jù)類型 := 表達式; 例如:VARIABLE rd_en : STD_LOGIC : = 1; VARIABLE cnt: INTEGER ; 在變量說明中,可以直接賦給變量初始值,也可以不賦初始值,如果沒賦初始值,它默認為變量
12、數(shù)據(jù)類型的最小值。 信號 在電路中,連線將元器件連接起來組成系統(tǒng),在VHDL語言中,信號就起著連線的作用,書寫格式為: SIGNAL 信號名 ,信號名:數(shù)據(jù)類型 := 表達式; 例如: SIGNAL wr_en : STD_LOGIC: = 0; SIGNAL num1 , num2 : STD_LOGIC_VECTOR( 7downto 0 ); FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用運算符及表達式運算符及表達式 VHDL基本語句基本語句 典型電路的設(shè)計典型電路的設(shè)計 VHDL語言的運算符有四類:邏輯運算符、算術(shù)運算符、并置運算符和關(guān)系運算符 傳統(tǒng)的設(shè)計方式,設(shè)計者在他的CAD工作站上以基本的電路組件
13、來組織并構(gòu)成一個完整的邏輯功能,這些最基本的電路組件如AND邏輯門、OR邏輯門或緩存器在CAD工作站的屏幕中以線條和圖案來表示,每個組件都必須清楚定義輸出入信號和功能。在VHDL的語言中,這種所謂的SYMBOL不復(fù)存在,VHDL以實體的描述來表示一個傳統(tǒng)線路中的SYMBOL。 本節(jié)中主要通過例子程序使讀者初步理解VHDL的語法構(gòu)成,書中介紹的是一個加法器完整的VHDL語句描述,包括注釋、庫文件說明、實體、結(jié)構(gòu)體、進程語句、條件語句、例化語句等。2個4位輸入信號a和b,進位輸入cin,輸出4位結(jié)果sum,輸出向下一極進位信號cout,整個程序都由組合邏輯實現(xiàn)。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用Ver
14、ilog HDL的模塊組織的模塊組織 基本的數(shù)據(jù)類型及常量、變量、信號基本的數(shù)據(jù)類型及常量、變量、信號 運算符及表達式運算符及表達式 Verilog HDL基本語句基本語句 典型電路的設(shè)計典型電路的設(shè)計 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 這一章我們主要學(xué)習(xí)了一些這一章我們主要學(xué)習(xí)了一些HDLHDL語言的基本語法與我們以往學(xué)習(xí)的語言的基本語法與我們以往學(xué)習(xí)的C C語語言等、言等、PASCALPASCAL等都有相似之處,要注意的是在學(xué)習(xí)中要有意識地把等都有相似之處,要注意的是在學(xué)習(xí)中要有意識地把HDLHDL語言語言的語句與硬件結(jié)構(gòu)模塊聯(lián)系起來,通過理解物理意義,牢牢掌握。的語句與硬件結(jié)構(gòu)模塊聯(lián)系起來,
15、通過理解物理意義,牢牢掌握。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用與運算與運算 或運算或運算 異或運算異或運算 與非運算與非運算 2 2選選1 1多路選擇器多路選擇器 兩位比較器兩位比較器 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用D D觸發(fā)器觸發(fā)器 T T觸發(fā)器觸發(fā)器 J-KJ-K觸發(fā)器觸發(fā)器 時序器件時序器件移位寄存器移位寄存器 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 4 4位加法器位加法器 逐位進位加法器逐位進位加法器 超前進位加法器超前進位加法器進位選擇加法器進位選擇加法器 輸入數(shù)據(jù)同比特位進行運算時,都要等待前一比特的進位信號狀態(tài)完成(建議:用在位數(shù)不超過16位的加法器)。對于多位逐位進
16、位加法器來說,也可采用流水方式改善性能。 輸入數(shù)據(jù)同比特位進行運算時,不需要等待前一比特的進位信號。實現(xiàn)速度比較快,但資源占用也比較大。建議使用在16位加法器上比較合適。對于位數(shù)較多的也可采用流水方式。 由三個加法器組成,一個計算低字節(jié);兩個計算高字節(jié)。計算高字節(jié)的加法器一個令進位為1,另一個令進位為0。三部分同時計算,最后,低字節(jié)的進位選擇是哪一個高字節(jié)器的輸出。對于位數(shù)較多的加法器,性能的提高比較明顯,但資源相對占用較多。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 4 4位計數(shù)器位計數(shù)器 逐位進位計數(shù)器逐位進位計數(shù)器 格雷碼逐位計數(shù)器格雷碼逐位計數(shù)器 流水式超前進位計數(shù)器流水式超前進位計數(shù)器 逐位進位
17、計數(shù)器的特點是:每一位都要等前一位的進位輸出有效后才開始變化,每一位模塊之間用進位信號連接起來(推薦使用長度不超過16位)。 應(yīng)用逐位進位計數(shù)器的原理,并在其基礎(chǔ)上加以改進,因為采用格雷碼進行計數(shù),每個狀態(tài)變化時,只有1位信號發(fā)生改變,減少了毛刺現(xiàn)象的發(fā)生。 應(yīng)用超前進位計數(shù)器的基本原理加以改進,使用流水技術(shù),減少了進位信號的傳輸延時,大大提高了系統(tǒng)效率。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 4 4位乘法器位乘法器 組合邏輯實現(xiàn)的乘法器組合邏輯實現(xiàn)的乘法器 移位相加乘法器移位相加乘法器 查找表乘法器查找表乘法器 移位相加乘法器實現(xiàn)簡單,它的基本設(shè)計思想就是采用一種稱之為迭代的方式,根據(jù)乘數(shù)的每一位是
18、否為1進行計算,若為1則將被乘數(shù)移位相加,這種實現(xiàn)方式使得在乘法計算中,每算出一乘積項就加到乘積中,此時的積稱作部分積。通過對部分積的逐步移位完成乘積項與乘數(shù)的位對齊相加,直至得出結(jié)果。這種方法硬件資源耗用較少,但一個4位乘法需要4個周期才能得到結(jié)果,速度比較慢,也可采用這種思想,用全邏輯實現(xiàn),但延時較大。因此,在高速的應(yīng)用系統(tǒng)中,一般不采用該方法。 查找表乘法器的基本設(shè)計思路就是將乘積直接存放在存儲器中,將操作數(shù)(乘數(shù)和被乘數(shù))作為地址訪問存儲器,得到的輸出數(shù)據(jù)就是乘法運算的結(jié)果。 加法器樹乘法器加法器樹乘法器 加法器樹結(jié)合了移位相加乘法器和查找表乘法器的優(yōu)點。事實上,從下面的示意圖可看出,
19、它采用了并行處理的架構(gòu),所以其速度快,由于主要采用與門邏輯實現(xiàn)邏輯功能,所以其資源耗費也較少。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 數(shù)字系統(tǒng)往往由數(shù)據(jù)通路和控制通路組成,本章主要數(shù)字系統(tǒng)往往由數(shù)據(jù)通路和控制通路組成,本章主要從從RTLRTL級對組成數(shù)字系統(tǒng)的基本模塊進行講解,可以說掌級對組成數(shù)字系統(tǒng)的基本模塊進行講解,可以說掌握了這部分內(nèi)容,就可以完成一些簡單的數(shù)字系統(tǒng)的設(shè)握了這部分內(nèi)容,就可以完成一些簡單的數(shù)字系統(tǒng)的設(shè)計了。計了。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用對于靜態(tài)同步設(shè)計,對于靜態(tài)同步設(shè)計, 我們稱一個系統(tǒng)是同步的,假若:我們稱一個系統(tǒng)是同步的,假若: 1.1.每個
20、邊緣敏感部件的時鐘輸入是一次時鐘輸入的某個函數(shù);并且仍是象每個邊緣敏感部件的時鐘輸入是一次時鐘輸入的某個函數(shù);并且仍是象一次時鐘那樣的時鐘信號。一次時鐘那樣的時鐘信號。 2.2.所有存儲元件(包括計數(shù)器)都是邊緣敏感的,在系統(tǒng)中沒有電平敏感所有存儲元件(包括計數(shù)器)都是邊緣敏感的,在系統(tǒng)中沒有電平敏感存儲元件。存儲元件。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用基本的同步部件基本的同步部件 同步清除同步清除D D型觸發(fā)器型觸發(fā)器 構(gòu)成同步基本部件基礎(chǔ)的是邊緣敏感D型觸發(fā)器。其基本性質(zhì)為,在時鐘CLK輸入的上升邊之后,D輸入端的邏輯值出現(xiàn)在Q輸出端,而其補值出現(xiàn)在Q非輸出端。這一過程就是取樣過程。 我們希望
21、FPGA有一個性能,即全局復(fù)位,這是一個測試要求。在FPGA的同步設(shè)計中應(yīng)避免使用異步清除D型觸發(fā)器(它破壞了同步系統(tǒng)的兩個條件),應(yīng)代之以同步清除。這樣就產(chǎn)生了第一個新的基本部件:帶同步清除的D型觸發(fā)器 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 T T型觸發(fā)器型觸發(fā)器 E E型觸發(fā)器型觸發(fā)器 最有用的存儲單元之一是一種鎖存器,它能夠保持一個數(shù)據(jù)直到通知它鎖存另一數(shù)據(jù)時為止,稱為E型觸發(fā)器。它有一個從其輸出端到其輸入端的反饋環(huán)路,使其能保持數(shù)據(jù)長達若干個時鐘周期。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 R R型觸發(fā)器型觸發(fā)器 同步同步RSRS觸發(fā)器觸發(fā)器 請求(R型)觸發(fā)器是唯一具有一個異步電平敏感輸入的,后者用
22、于應(yīng)答信號。同步清除用于全局復(fù)位,如在測試中用,它有兩種結(jié)構(gòu)。 同步RS觸發(fā)器有兩個清除端,一個本地清除R和一個全局清除GC。當(dāng)復(fù)位端R和置位端S都為高電平時,沒有不確定狀態(tài)。在同步RS觸發(fā)器復(fù)位優(yōu)先于置位。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 狀態(tài)的無條件執(zhí)行狀態(tài)的無條件執(zhí)行 在所有標準部件中最重要的是同步二進制計數(shù)器(在所有標準部件中最重要的是同步二進制計數(shù)器(SBCSBC), SBC, SBC有許多用途,其中一種有許多用途,其中一種即狀態(tài)產(chǎn)生即狀態(tài)產(chǎn)生. . 通常用單狀態(tài)譯碼器完成狀態(tài)的無條件執(zhí)行,此譯碼器連接在主計數(shù)器上。下圖所示為實現(xiàn)這一原理的連續(xù)平均電路。它順序取16項數(shù)據(jù),并輸出其和。
23、每16項數(shù)據(jù)之和鎖存于輸出寄存器,并將累加器清除。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 狀態(tài)的有條件執(zhí)行狀態(tài)的有條件執(zhí)行 在所有標準部件中最重要的是同步二進制計數(shù)器(在所有標準部件中最重要的是同步二進制計數(shù)器(SBCSBC), SBC, SBC有許多用途,其中一種有許多用途,其中一種即狀態(tài)產(chǎn)生即狀態(tài)產(chǎn)生. . 在根據(jù)無條件執(zhí)行狀態(tài)序列原則設(shè)計的電路中,轉(zhuǎn)移僅限于用以實現(xiàn)非二進制的無條件轉(zhuǎn)移類型是。其它各種電路要求用有條件轉(zhuǎn)移或有條件執(zhí)行一狀態(tài)序列。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 用不良設(shè)計方法設(shè)計的中央時鐘產(chǎn)生器,可以用等效的同步式電路取代。后者即中央允許產(chǎn)生器。這一設(shè)計中采用了本章介紹的所有設(shè)計方
24、法。圖4-27中示出的簡單允許產(chǎn)生器能夠推廣到和任何有條件或無條件狀態(tài)的執(zhí)行相結(jié)合。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 雖然本章中作為單元電路介紹的同步清除在功能上,在某些情況下,等效于異步雖然本章中作為單元電路介紹的同步清除在功能上,在某些情況下,等效于異步清除,但是當(dāng)一電路有全局復(fù)位功能時優(yōu)先選用同步清除的理由如下:清除,但是當(dāng)一電路有全局復(fù)位功能時優(yōu)先選用同步清除的理由如下: 1 1、某些電路具有自己的同步清除功能??梢詫⑵溆糜谌智宄?,以節(jié)省資源。、某些電路具有自己的同步清除功能??梢詫⑵溆糜谌智宄怨?jié)省資源。 2 2、混合使用全局異步清除和局部同步清除會使電路功能混亂,導(dǎo)致產(chǎn)生異常情
25、況。、混合使用全局異步清除和局部同步清除會使電路功能混亂,導(dǎo)致產(chǎn)生異常情況。 3 3、在許多情況下,采用同步清除的電路比異步的占用較少空間。、在許多情況下,采用同步清除的電路比異步的占用較少空間。 4 4、使、使RAMRAM和寄存器列一類電路元件,初始化時,要求在連續(xù)幾個時鐘周期中清除,和寄存器列一類電路元件,初始化時,要求在連續(xù)幾個時鐘周期中清除,這意味著同步清除。這意味著同步清除。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 同步設(shè)計的最重要求之一是將時鐘歪斜減小到可以接受的程度。假設(shè)時鐘緩沖同步設(shè)計的最重要求之一是將時鐘歪斜減小到可以接受的程度。假設(shè)時鐘緩沖符合第三章中的規(guī)則,則還有另外兩種設(shè)計方法可
26、以采用。符合第三章中的規(guī)則,則還有另外兩種設(shè)計方法可以采用。 第一種情況是從一第一種情況是從一D D型觸發(fā)器的型觸發(fā)器的Q Q輸出端直接饋給另一觸發(fā)器的輸出端直接饋給另一觸發(fā)器的 D D輸入端時,延輸入端時,延遲不足以滿足第二個遲不足以滿足第二個D D型觸發(fā)器對保持時間的要求。解決方法是使用一個低驅(qū)動強度型觸發(fā)器對保持時間的要求。解決方法是使用一個低驅(qū)動強度的源的源D D型觸發(fā)器,并且不加緩沖。高的相對扇出有助于改進保持時間。型觸發(fā)器,并且不加緩沖。高的相對扇出有助于改進保持時間。 第二種設(shè)計方法是在各個受時鐘控制的部件之后分別接入緩沖器,并在兩個緩第二種設(shè)計方法是在各個受時鐘控制的部件之后分
27、別接入緩沖器,并在兩個緩沖輸出端之間接一平衡網(wǎng)絡(luò)。若兩支路由于某種原因不平衡,則有一小電流通過網(wǎng)沖輸出端之間接一平衡網(wǎng)絡(luò)。若兩支路由于某種原因不平衡,則有一小電流通過網(wǎng)絡(luò),從而消除時鐘歪斜。絡(luò),從而消除時鐘歪斜。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 互相同步的系統(tǒng)互相同步的系統(tǒng) 互相異步的系統(tǒng)互相異步的系統(tǒng) 握手發(fā)送數(shù)據(jù)的安全性握手發(fā)送數(shù)據(jù)的安全性 同步系統(tǒng)的異步輸入同步系統(tǒng)的異步輸入 亞穩(wěn)定性亞穩(wěn)定性 微處理器存儲器映射中的微處理器存儲器映射中的FPGA FPGA FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 互相同步的系統(tǒng)互相同步的系統(tǒng) 我們要討論的第一種接口是普通的互相同步的兩個同步系統(tǒng)的接口。為了滿足這一類
28、的條件,兩系統(tǒng)必須有一公共外部時鐘。用允許標志如圖所示,通知在兩系統(tǒng)之間傳送數(shù)據(jù)。允許信號在時鐘上升沿后經(jīng)過時鐘至Q端的傳播時間變?yōu)橛行?,并保持有效至下一個時鐘上升沿之后時鐘至Q端的時間。故它包含一有效時鐘邊緣。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 互相異步的系統(tǒng)互相異步的系統(tǒng) 更為常見的一類異步接口是互相異步的兩個內(nèi)部同步的系統(tǒng)之間的接口。這時,重要的是,按照同步設(shè)計原理,處理請求的信號交換(握手)功能需要采用R型觸發(fā)器,其應(yīng)用示于圖中。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 同步系統(tǒng)的異步輸入同步系統(tǒng)的異步輸入 本節(jié)討論一同步系統(tǒng)處理獨立的異步輸入的方法。若FPGA只要求對單個異步到達的事件起響應(yīng),則存
29、儲立即式請求觸發(fā)器,如圖所示的電路,比同步R型觸發(fā)器更簡單。它由一D型觸發(fā)器構(gòu)成,其D輸入端接到邏輯“1”上,異步輸入連接到其時鐘端。D型觸發(fā)器用于此目的比異步RS觸發(fā)器更適合,因為自邊緣敏感D型觸發(fā)器來的請求,在收到之后幾乎立刻就被接收系統(tǒng)用上節(jié)所述方法消除。另一方面,電平敏感異步RS觸發(fā)器則要求輸入端上的激勵(它可能是邏輯電平的階躍變化)去掉才行。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 握手發(fā)送數(shù)據(jù)的安全性握手發(fā)送數(shù)據(jù)的安全性 一般說來,圍繞握手過程的保護措施愈多,數(shù)據(jù)完整性愈大,但是系統(tǒng)性能愈低。當(dāng)通過一異步接口發(fā)送數(shù)據(jù)時,數(shù)據(jù)錯誤概率可以小到忽略不計,但是要以系統(tǒng)帶寬作為代價。 FPGA設(shè)計與
30、應(yīng)用設(shè)計與應(yīng)用 微處理器存儲器映射中的微處理器存儲器映射中的FPGA FPGA 使FPGA和一微處理器通信的簡單方法是把它放在微處理器的存儲器映射中。微處理器,利用片選和寫允許(WE)控制線,記入數(shù)據(jù)或查詢數(shù)據(jù)位置,就好像FPGA是RAM。WE的上升沿使數(shù)據(jù)存儲在FPGA輸入端的電平敏感鎖存器中,同時使一異步式請求觸發(fā)器置位。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 亞穩(wěn)定性亞穩(wěn)定性 用于對輸入數(shù)據(jù)流取樣的邊緣敏感觸發(fā)器,只要在有效時鐘邊緣的兩邊的臨界建立和保護時間中保持穩(wěn)定則將正確地鎖存數(shù)據(jù)。若在此期間輸入數(shù)據(jù)改變,則輸出將不能預(yù)測,產(chǎn)生所謂亞穩(wěn)定現(xiàn)象。觸發(fā)器在回到一邏輯狀態(tài)之前可能進入高電平和低電平
31、之間的幾種亞穩(wěn)定序列之一,如圖所示。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 當(dāng)數(shù)字系統(tǒng)的復(fù)雜度進一步提高,數(shù)據(jù)流的速度要求進一步提升時,當(dāng)數(shù)字系統(tǒng)的復(fù)雜度進一步提高,數(shù)據(jù)流的速度要求進一步提升時,ICIC設(shè)計設(shè)計者就要很謹慎的考慮數(shù)字系統(tǒng)的時序問題,在對數(shù)字系統(tǒng)的定時關(guān)系進行準確的者就要很謹慎的考慮數(shù)字系統(tǒng)的時序問題,在對數(shù)字系統(tǒng)的定時關(guān)系進行準確的分析的基礎(chǔ)上掌握好同步技術(shù)是高水平的分析的基礎(chǔ)上掌握好同步技術(shù)是高水平的ICIC設(shè)計者所必需的,也值得每個設(shè)計者所必需的,也值得每個FPGAFPGA設(shè)設(shè)計者研讀。計者研讀。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 m m序列的產(chǎn)生和性質(zhì)序
32、列的產(chǎn)生和性質(zhì) 對具體某一信號的連續(xù)存儲對具體某一信號的連續(xù)存儲 m序列是最常用的一種偽隨機序列,它是最長線性反饋移位寄存器序列的簡稱,是由帶線性反饋的移位寄存器產(chǎn)生的序列,并且具有最長周期。 在實際設(shè)計中,如密碼門、ATM提款機一類需要手動輸入信息的地方,需要將某一具體信號進行連續(xù)存儲,常會使用到這種移位寄存器。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 幾種實際應(yīng)用的計數(shù)器電路。幾種實際應(yīng)用的計數(shù)器電路。 (1 1) 跟蹤并計算某一信號出現(xiàn)的次數(shù)跟蹤并計算某一信號出現(xiàn)的次數(shù) (2 2) 作控制信號的條件作控制信號的條件 有時某些控制信號是根據(jù)計數(shù)器的某種狀態(tài)的出現(xiàn)而發(fā)生改變,有時某些控制信號是根據(jù)計數(shù)
33、器的某種狀態(tài)的出現(xiàn)而發(fā)生改變,計數(shù)器負責(zé)跟蹤另外一個信號,例如移位寄存器在先動作一拍的前計數(shù)器負責(zé)跟蹤另外一個信號,例如移位寄存器在先動作一拍的前提下才進行下一步的操作,或在動作幾拍,或在另一個信號出現(xiàn)幾提下才進行下一步的操作,或在動作幾拍,或在另一個信號出現(xiàn)幾次的情況下改變以前的動作狀態(tài)等情況。計數(shù)器在這種情況下起到次的情況下改變以前的動作狀態(tài)等情況。計數(shù)器在這種情況下起到了過渡性作用。了過渡性作用。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 狀態(tài)機可以認為是組合邏輯和寄存器邏輯的特殊組合,它一般包括兩狀態(tài)機可以認為是組合邏輯和寄存器邏輯的特殊組合,它一般包括兩個部分:組合邏輯部分和寄存器部分。寄存器用
34、于存儲狀態(tài),組合電路用個部分:組合邏輯部分和寄存器部分。寄存器用于存儲狀態(tài),組合電路用于狀態(tài)譯碼和產(chǎn)生輸出信號。狀態(tài)機的下一個狀態(tài)及輸出,不僅與輸入信于狀態(tài)譯碼和產(chǎn)生輸出信號。狀態(tài)機的下一個狀態(tài)及輸出,不僅與輸入信號有關(guān),而且還與寄存器當(dāng)前所處的狀態(tài)有關(guān)。號有關(guān),而且還與寄存器當(dāng)前所處的狀態(tài)有關(guān)。 狀態(tài)機有狀態(tài)機有3 3種表示方法:狀態(tài)圖、狀態(tài)表和流程圖。這種表示方法:狀態(tài)圖、狀態(tài)表和流程圖。這3 3種表示方法是種表示方法是等價的,相互之間可以轉(zhuǎn)換。其中狀態(tài)圖是最常用的一種表示方式。等價的,相互之間可以轉(zhuǎn)換。其中狀態(tài)圖是最常用的一種表示方式。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 存儲器是數(shù)字系統(tǒng)的重
35、要組成部分,數(shù)據(jù)處理單元的處理結(jié)果需要存存儲器是數(shù)字系統(tǒng)的重要組成部分,數(shù)據(jù)處理單元的處理結(jié)果需要存儲,許多處理單元的初始化數(shù)據(jù)也需要存放在存儲器中。存儲器還可以完儲,許多處理單元的初始化數(shù)據(jù)也需要存放在存儲器中。存儲器還可以完成一些特殊的功能,如多路復(fù)用、速率變換、數(shù)值計算、脈沖成形、特殊成一些特殊的功能,如多路復(fù)用、速率變換、數(shù)值計算、脈沖成形、特殊序列產(chǎn)生以及數(shù)字頻率合成等等。序列產(chǎn)生以及數(shù)字頻率合成等等。 基本的存儲器類型有基本的存儲器類型有RAMRAM、FIFOFIFO、ROMROM這三種,由于通常的設(shè)計軟件這三種,由于通常的設(shè)計軟件提供相應(yīng)的宏單元,設(shè)計者可以通過手工編程和利用宏模
36、塊這二種方式來提供相應(yīng)的宏單元,設(shè)計者可以通過手工編程和利用宏模塊這二種方式來設(shè)計各種類型的存儲器。設(shè)計各種類型的存儲器。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 圖圖中中所示為一種門禁系統(tǒng)的原理所示為一種門禁系統(tǒng)的原理圖,其中的控制單元實際上是一圖,其中的控制單元實際上是一個可以控制各個組件的狀態(tài)機。個可以控制各個組件的狀態(tài)機。它包括了一個它包括了一個1212輸入鍵盤(數(shù)字輸入鍵盤(數(shù)字0 09 9、ENTENT、CLRCLR),只有一個),只有一個3 3個個數(shù)字的組合才能打開門。用戶在數(shù)字的組合才能打開門。用戶在輸入輸入3 3個數(shù)字的密碼后還要按下個數(shù)字的密碼后還要按下ENTENT鍵,指示輸入的完成
37、。鍵,指示輸入的完成。CLRCLR鍵鍵可以清除用戶錯誤輸入的數(shù)據(jù),可以清除用戶錯誤輸入的數(shù)據(jù),但必須在按下但必須在按下ENTENT鍵之前。正確的鍵之前。正確的密碼存儲在密碼存儲在1212位的位的DIPDIPswitchswitch中。中。系統(tǒng)最多可以允許系統(tǒng)最多可以允許3 3次輸入錯誤,次輸入錯誤,如果第如果第4 4次輸入錯誤,系統(tǒng)會自動次輸入錯誤,系統(tǒng)會自動報警。只有報警。只有MASTERMASTERRESETRESET信號可信號可以清除報警狀態(tài),而且該信號同以清除報警狀態(tài),而且該信號同時也可以開門,它和正確輸入密時也可以開門,它和正確輸入密碼的作用是一樣的。碼的作用是一樣的。 FPGA設(shè)計
38、與應(yīng)用設(shè)計與應(yīng)用 通過對經(jīng)典實例的分析,可以了解硬件設(shè)計中一些基本模塊如何通過通過對經(jīng)典實例的分析,可以了解硬件設(shè)計中一些基本模塊如何通過FPGAFPGA得到實現(xiàn)。但僅僅掌握上述模塊的實現(xiàn)是遠遠不能滿足電子設(shè)計需求的,得到實現(xiàn)。但僅僅掌握上述模塊的實現(xiàn)是遠遠不能滿足電子設(shè)計需求的,更重要的是掌握設(shè)計方法:靈活運用更重要的是掌握設(shè)計方法:靈活運用FPGAFPGA設(shè)計流程開展設(shè)計,區(qū)別流程中各設(shè)計流程開展設(shè)計,區(qū)別流程中各個部分的聯(lián)系與區(qū)別;養(yǎng)成良好的硬件描述語言編碼風(fēng)格,了解硬件描述語個部分的聯(lián)系與區(qū)別;養(yǎng)成良好的硬件描述語言編碼風(fēng)格,了解硬件描述語言與電路的對應(yīng)關(guān)系,提高設(shè)計的可維護性、可調(diào)試
39、性;建立硬件意識,區(qū)言與電路的對應(yīng)關(guān)系,提高設(shè)計的可維護性、可調(diào)試性;建立硬件意識,區(qū)分分FPGAFPGA設(shè)計編碼與軟件設(shè)計編碼,軟件設(shè)計編碼目的是為描述邏輯流程,設(shè)計編碼與軟件設(shè)計編碼,軟件設(shè)計編碼目的是為描述邏輯流程,F(xiàn)PGAFPGA設(shè)計編碼是描述電路結(jié)構(gòu)。模塊設(shè)計是設(shè)計編碼是描述電路結(jié)構(gòu)。模塊設(shè)計是FPGAFPGA設(shè)計的根本,熟練掌握模設(shè)計的根本,熟練掌握模塊設(shè)計能夠為進一步利用塊設(shè)計能夠為進一步利用FPGAFPGA完成電子設(shè)計打好堅實的基礎(chǔ)。完成電子設(shè)計打好堅實的基礎(chǔ)。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 FPGA FPGA的配置與編程是將用戶經(jīng)過軟件的配置與編程
40、是將用戶經(jīng)過軟件設(shè)計與仿真驗證的功能電路寫入實際的設(shè)計與仿真驗證的功能電路寫入實際的FPGAFPGA芯片中的過程。所有的芯片中的過程。所有的FPGAFPGA芯片都需芯片都需要經(jīng)過配置與編程才能實現(xiàn)用戶需要的功要經(jīng)過配置與編程才能實現(xiàn)用戶需要的功能。能。 FPGA FPGA上上nCONFIGnCONFIG的低到高變化表示的低到高變化表示配置過程的開始。配置過程包括三個配置過程的開始。配置過程包括三個階段:復(fù)位、配置和初始化。當(dāng)階段:復(fù)位、配置和初始化。當(dāng)nCONFIGnCONFIG為低時候,器件處于復(fù)位狀態(tài)。為低時候,器件處于復(fù)位狀態(tài)。當(dāng)器件結(jié)束復(fù)位狀態(tài)時,當(dāng)器件結(jié)束復(fù)位狀態(tài)時,nCONFIGn
41、CONFIG必須必須處于邏輯高電平,使器件釋放漏極開處于邏輯高電平,使器件釋放漏極開路的路的nSTATUSnSTATUS管腳。一旦管腳。一旦nSTATUSnSTATUS被釋被釋放,它就會被上拉電阻拉到高電平,放,它就會被上拉電阻拉到高電平,此時此時FPGAFPGA準備好開始接收配置數(shù)據(jù)。準備好開始接收配置數(shù)據(jù)。從配置開始之前到配置結(jié)束,所有的從配置開始之前到配置結(jié)束,所有的用戶用戶I/OI/O管腳都處于高阻態(tài)。管腳都處于高阻態(tài)。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用Xillinx FPGAXillinx FPGA配置方式共有:配置方式共有:JTAGJTAG或邊界掃描方式或邊界掃描方式(JTAG or
42、Boundary Scan (JTAG or Boundary Scan Mode)Mode)、SelectMAP/Slave-ParallelSelectMAP/Slave-Parallel方式、主動串行方式(方式、主動串行方式(Master-serial ModeMaster-serial Mode)、)、Slave-serialSlave-serial方式和編程器配置方式(方式和編程器配置方式(Standalone Programmer ModeStandalone Programmer Mode)。在選擇配)。在選擇配置方式之前應(yīng)該了解置方式之前應(yīng)該了解Xillinx Xillinx
43、公司各公司各FPGAFPGA系列具備的配置方式,各系列具備的配置方式,各FPGAFPGA器件系列對器件系列對配置方式支持情況如下表所示配置方式支持情況如下表所示 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用FPGAFPGA器件的配置對于電子系統(tǒng)設(shè)計者而言較為重要的內(nèi)容,但器件的配置對于電子系統(tǒng)設(shè)計者而言較為重要的內(nèi)容,但常常被忽視。各種型號常常被忽視。各種型號FPGAFPGA數(shù)據(jù)手冊及對數(shù)據(jù)手冊及對FPGAFPGA的配置,的配置,F(xiàn)PGAFPGA廠商的廠商的官方網(wǎng)站有更為詳細的介紹,建議讀者通過本節(jié)閱讀先對官方網(wǎng)站有更為詳細的介紹,建議讀者通過本節(jié)閱讀先對FPGAFPGA器件器件配置產(chǎn)生大致的認識,再根據(jù)被配
44、置配置產(chǎn)生大致的認識,再根據(jù)被配置FPGAFPGA器件的具體型號選擇相關(guān)器件的具體型號選擇相關(guān)文檔仔細閱讀,使本節(jié)內(nèi)容及文檔仔細閱讀,使本節(jié)內(nèi)容及FPGAFPGA公司相關(guān)文檔相互配置指導(dǎo)您的公司相關(guān)文檔相互配置指導(dǎo)您的工程實踐。工程實踐。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 3DES 3DES是是DESDES的一個更安全的變形。的一個更安全的變形。DESDES算法運算的流程如圖所示。其中算法運算的流程如圖所示。其中S S盒是盒是3DES3DES(DESDES)算法的心臟,靠它實現(xiàn)非線性變換。)算法的心臟,靠它實現(xiàn)非線性變換。 3DES算法可以描述如下:設(shè)ek(x)和dk
45、(x)分別表示用DES算法對64位的位串加密和解密,密鑰為K;64位的密文c是通過執(zhí)行下面的運算得到的: 其中K1、K2、K3是56位的DES密鑰。從密文c導(dǎo)出明文x的3DES的解密過程是加密過程的反過程,其描述如下: FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 為了獲得更高的安全性,三個密鑰應(yīng)該是互不相同的。這樣,本質(zhì)上就相當(dāng)于用一個長為168位的密鑰進行加密。多年來,它在對付強力攻擊時是比較安全的。對安全性需要不那么高的數(shù)據(jù),K1可以等于K3。在這種情況下,密鑰的有效長度為112位。 在通常使用的所有64位的分組密鑰中,3DES是最安全的;但是,如果用軟件來實現(xiàn),它也是這些分組密鑰中最慢的。通過硬件設(shè)計
46、,3DES的性能勝過大多數(shù)其它用軟件實現(xiàn)的分組密鑰 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 流水電路構(gòu)架流水電路構(gòu)架 控制電路控制電路 密鑰生成模塊密鑰生成模塊 DES算法運算電路算法運算電路 SBOX的設(shè)計與實現(xiàn)的設(shè)計與實現(xiàn) 3DES(DES)算法沒有大量的復(fù)雜數(shù)學(xué)計算(如乘、帶進位的加、模等),在加/解密過程和密鑰生成過程中僅有邏輯運算和查表運算。這些特點為采用FPGA進行高速設(shè)計提供了契機。由于3DES算法本質(zhì)上就是三次DES算法的運算,所以只要了解DES算法的設(shè)計過程,也就了解了3DES算法的設(shè)計過程。因此,下面就介紹一下DES算法的設(shè)計過
47、程 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 流流水水電電路路構(gòu)構(gòu)架架 由于DES算法中每個分組需經(jīng)過16輪運算,如果采用順序電路構(gòu)架則每過16輪運算才能得到一個加密分組,大大降低了加密效率。因此如圖所示,高速DES運算電路采用流水結(jié)構(gòu),16步迭代設(shè)計16個運算模塊,分別稱作LUN1、LUN2、LUN16,數(shù)據(jù)在各模塊間流水運算。當(dāng)系統(tǒng)對第i個輸入的數(shù)據(jù)元素進行第j段運算的同時,還可以對第i+1個數(shù)據(jù)進行第j-1段的運算,對第i+2個輸入的數(shù)據(jù)元素進行第j-2段的運算,以此提高系統(tǒng)的運算效率。 隨著的增加,分組的平均流水線操作時間 大大減少,加密效率
48、大大提高FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 控控制制電電路路 如圖所示,控制電路是整個系統(tǒng)的控制中心,可以采用移位寄存器或計數(shù)器加譯碼電路構(gòu)成,為減少信號毛刺,提高電路運算的穩(wěn)定性與工作速度。這里選用一個17bits的串入并出移位寄存器,其中16bits用于生成算法的每輪運算的使能信號,另外1bit用于生成指示加密輸出的ready信號 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 密密鑰鑰生生成成模模塊塊 如圖所示,與流水構(gòu)架DES運算電路的工作時序相對應(yīng),其16步迭代運算所需子密鑰必須同時生成。密鑰生成
49、模塊由選擇控制電路PC-1、選擇輸出、壓縮置換電路PC-2構(gòu)成。該部分的輸入是64bits初始密鑰,輸出為每次迭代運算用的子密鑰,使能控制信號、模式控制信號。 64bits初始密鑰經(jīng)過置換選擇PC-1去除校驗位并被分離成左右兩部分,各28bits,在模式控制信號(加密或脫密)及內(nèi)部狀態(tài)機信號控制下,根據(jù)移位表,選擇輸出,經(jīng)壓縮置換PC-2同時形成各步迭代所需運算子密鑰 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 DES算法算法運算運算電路電路 如圖所示為DES算法運算模塊的電路構(gòu)架,虛線框內(nèi)所示為單輪運算。電路由初始置換電路IP、4個32位的寄存器,擴
50、展置換E處理電路、S盒數(shù)據(jù)代替電路、P盒置換電路及末置換IP-1電路構(gòu)成 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 DES算法高速運算電路模型設(shè)計算法高速運算電路模型設(shè)計 SBOX的設(shè)計的設(shè)計與實現(xiàn)與實現(xiàn) S盒是DES算法的關(guān)鍵步驟,所有其它的運算都是線性的,而S盒是一個復(fù)雜的非線性函數(shù),正是經(jīng)過S盒的非線性變換才使明文得到了很好的混亂,從而具有較強的安全性。在硬件實現(xiàn)時,S盒實現(xiàn)具有一定難度,其設(shè)計實現(xiàn)的好壞是影響算法整體加脫密速度的主要因素。在算法設(shè)計過程中,從資源的角度出發(fā),應(yīng)盡可能的減少FPGA器件中邏輯單元、嵌入式陣列塊及嵌入式單元的耗用,但這可能以降低系統(tǒng)速度為代價。從速度的角度出發(fā),應(yīng)最大限
51、度地提高系統(tǒng)處理速度,但這樣往往需要較多資源。因此,在大多數(shù)情況下這兩種選擇是矛盾的。 使用verilog語言建立S盒電路模型,有兩種方法可供選擇:一種方法是使用verilog語言中的多重選擇語句CASE,直接進行電路的行為描述;另一種方法是采用開發(fā)工具中提供的庫函數(shù),使用器件內(nèi)部的EAB實現(xiàn)。在建立S盒的電路模型時,必須充分考慮選用器件的內(nèi)部結(jié)構(gòu),采用恰當(dāng)?shù)男问竭M行表達,做到既能節(jié)省器件資源又能提高算法運算效率,本例中選用前一種方式。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 3DES卡結(jié)構(gòu)設(shè)計卡結(jié)構(gòu)設(shè)計 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用
52、3DES卡結(jié)構(gòu)設(shè)計卡結(jié)構(gòu)設(shè)計 安全卡的硬件系統(tǒng)結(jié)構(gòu)設(shè)計在解決高速數(shù)據(jù)傳輸問題中起著極為重要的作用,同時在減小設(shè)計難度和提高可靠性方面也有很大作用。3DES算法的FPGA硬件化是實現(xiàn)高速安全處理的必要條件。但是,若硬件結(jié)構(gòu)設(shè)計不合理,即使3DES算法芯片速度再高也不能實現(xiàn)高速加密系統(tǒng)。缺乏針對高速硬件系統(tǒng)結(jié)構(gòu)分析和研究將會產(chǎn)生性能不高的問題出現(xiàn)。因此,要想實現(xiàn)3DES卡的高性能,減小設(shè)計難度和提高可靠性就必須對硬件系統(tǒng)結(jié)構(gòu)進行深入的分析和設(shè)計。一般PCI總線安全卡由嵌入式CPU為核心的管理子系統(tǒng)、PCI橋、安全專用芯片、控制ASIC芯片、安防措施、數(shù)據(jù)緩沖存儲電路、網(wǎng)絡(luò)接口、USB、RS232口
53、等組成。但是,影響實時安全處理速度的關(guān)鍵因素主要是嵌入式CPU、PCI橋、安全專用芯片、數(shù)據(jù)緩沖存儲電路這四部分的性能和它們之間的組合關(guān)系。因此,我們就以這四部分之間的組合關(guān)系為結(jié)構(gòu)歸類對象,對高速PCI安全卡硬件系統(tǒng)結(jié)構(gòu)進行分析和歸類,歸納為種典型結(jié)構(gòu)。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 如圖所示典型結(jié)構(gòu)1的主要組成部件是:嵌入式CPU基本系統(tǒng)、PCI橋、安全專用芯片、雙端口SRAM。 數(shù)據(jù)主要路徑是:放在計算機內(nèi)存的數(shù)據(jù)經(jīng)PCI總線寫入雙端口SRAM中,卡上CPU把數(shù)據(jù)讀出并交給安全專用芯片處理,然后卡上CPU再把處理后的數(shù)
54、據(jù)寫入雙端口SRAM中,再經(jīng)PCI總線提交給計算機系統(tǒng)處理。對于協(xié)議信息和安全管理信息,卡上CPU不把此類數(shù)據(jù)送給安全芯片,而是直接處理并給計算機系統(tǒng)返回相關(guān)信息。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 數(shù)據(jù)主要路徑是:放在微機系統(tǒng)內(nèi)存的數(shù)據(jù)經(jīng)PCI總線寫入雙端口SRAM中,卡上CPU只讀出協(xié)議信息和管理信息,直接處理并給微機系統(tǒng)返回相關(guān)信息。而安全芯片也作為能獨立執(zhí)行的智能控制器從雙端口SRAM中讀出數(shù)據(jù)并進行處理,然后把處理后的數(shù)據(jù)重新寫入雙端口SRAM中,再經(jīng)PCI總線提交給微機系統(tǒng)處理。 FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種P
55、CI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 數(shù)據(jù)主要路徑是:放在微機系統(tǒng)內(nèi)存的數(shù)據(jù)經(jīng)PCI總線寫入輸入FIFO中,卡上CPU把數(shù)據(jù)讀出并交給安全芯片處理,然后卡上CPU再把處理后的數(shù)據(jù)寫入輸出FIFO中,再經(jīng)PCI總線提交給微機系統(tǒng)處理。對于協(xié)議信息和安全管理信息,卡上CPU不把此類數(shù)據(jù)送給安全芯片,而是直接處理并給微機系統(tǒng)返回相關(guān)信息。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 數(shù)據(jù)主要路徑是:放在微機系統(tǒng)內(nèi)存的數(shù)據(jù)經(jīng)PCI總線寫入輸入FIFO中,卡上CPU只讀出協(xié)議信息和安全管理信息,直接處理并通過輸出FIFO給微機
56、系統(tǒng)返回相關(guān)信息。而安全專用芯片也作為能獨立執(zhí)行的智能控制器從輸入FIFO中讀出數(shù)據(jù)并進行處理,然后把處理后的數(shù)據(jù)重新寫入輸出FIFO中,再經(jīng)PCI總線提交給微機系統(tǒng)處理。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 接收數(shù)據(jù)主要路徑是:發(fā)方來的數(shù)據(jù)從網(wǎng)絡(luò)接口放在網(wǎng)絡(luò)輸入數(shù)據(jù)緩沖(FIFO)中,卡上CPU讀出數(shù)據(jù)并進行識別,對安全協(xié)議信息和安全管理信息,直接處理;對報文信息,卡上CPU把它們交給安全專用芯片進行處理,然后CPU再把處理后的數(shù)據(jù)寫入輸出FIFO中,再經(jīng)PCI總線提交給微機系統(tǒng)處理。發(fā)送數(shù)據(jù)主要路徑是:本地微機把要處理的數(shù)據(jù)經(jīng)P
57、CI總線寫入輸入FIFO中,卡上CPU把數(shù)據(jù)讀出并交給安全專用芯片進行處理,然后CPU再把處理后的數(shù)據(jù)寫入網(wǎng)絡(luò)輸出數(shù)據(jù)緩沖中,經(jīng)網(wǎng)絡(luò)發(fā)到目的端;對于協(xié)議信息和安全管理信息,卡上CPU不把此類數(shù)據(jù)送給安全芯片,而是直接處理并給本地微機返回相關(guān)信息,或者通過卡上的網(wǎng)絡(luò)接口發(fā)到目的端。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 6種種PCI安全卡典型結(jié)構(gòu)性能分析和比較安全卡典型結(jié)構(gòu)性能分析和比較 接收數(shù)據(jù)主要路徑是:發(fā)方來的數(shù)據(jù)從網(wǎng)絡(luò)接口放在網(wǎng)絡(luò)輸入數(shù)據(jù)緩沖(FIFO)中,卡上CPU只讀出報頭數(shù)據(jù)并進行識別,對安全協(xié)議信息和安全管理信息,直接處理;對安全報文信息,CPU通知安全專用芯片讀出并進行處理,然后安全專用
58、芯片直接把處理后的明文數(shù)據(jù)寫入輸出FIFO中,再經(jīng)PCI總線提交給微機系統(tǒng)處理。發(fā)送數(shù)據(jù)主要路徑是:本地微機把要處理的明文數(shù)據(jù)經(jīng)PCI總線寫入輸入FIFO中,卡上CPU只讀出報頭數(shù)據(jù)并進行識別,對明文報文信息,由安全專用芯片讀出并進行處理,然后安全專用芯片直接把處理后的數(shù)據(jù)寫入網(wǎng)絡(luò)輸出數(shù)據(jù)緩沖中,卡上CPU把有關(guān)報頭信息加在數(shù)據(jù)前面,經(jīng)網(wǎng)絡(luò)發(fā)到目的端;對于協(xié)議信息和安全管理信息,卡上CPU直接處理并給本地微機返回相關(guān)信息,或者通過卡上的網(wǎng)絡(luò)接口發(fā)到目的端。FPGA設(shè)計與應(yīng)用設(shè)計與應(yīng)用 數(shù)字邏輯的門類千變?nèi)f化,但就其本質(zhì)而言,只有組合邏輯和時序邏輯兩大類。數(shù)字邏輯的門類千變?nèi)f化,但就其本質(zhì)而言,
59、只有組合邏輯和時序邏輯兩大類。它們在復(fù)雜數(shù)字系統(tǒng)的設(shè)計中,各自承擔(dān)著自己的責(zé)任。一般情況下組合邏輯可以它們在復(fù)雜數(shù)字系統(tǒng)的設(shè)計中,各自承擔(dān)著自己的責(zé)任。一般情況下組合邏輯可以用來完成簡單的邏輯功能,如多路器、與或非邏輯運算、加法和乘法等算術(shù)運算。用來完成簡單的邏輯功能,如多路器、與或非邏輯運算、加法和乘法等算術(shù)運算。而時序邏輯則可以用來產(chǎn)生與運算過程有關(guān)的(按時間節(jié)拍)多個控制信號序列包而時序邏輯則可以用來產(chǎn)生與運算過程有關(guān)的(按時間節(jié)拍)多個控制信號序列包括存儲運算的結(jié)果和取出存儲器中的數(shù)據(jù)。在用可綜合的硬件描述語言設(shè)計的復(fù)雜括存儲運算的結(jié)果和取出存儲器中的數(shù)據(jù)。在用可綜合的硬件描述語言設(shè)計的復(fù)雜運算邏輯系統(tǒng)中,往往用同步狀態(tài)機來產(chǎn)生與時鐘節(jié)拍密切相關(guān)(同步)的多個控運算邏輯系統(tǒng)中,往往用同步狀態(tài)機來產(chǎn)生與時鐘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西玉林高中2024年高考考前信息卷高考數(shù)學(xué)試題
- 鹽城師范學(xué)院《文字設(shè)計》2021-2022學(xué)年第一學(xué)期期末試卷
- 鹽城師范學(xué)院《田徑一》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024幼師的實習(xí)合同范文
- 2024大型商場租賃合同
- 2024弱電系統(tǒng)施工合同范本
- 2024北京技術(shù)合同備案及減免稅流程
- 鹽城師范學(xué)院《矢量圖形處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 2025年中國制藥行業(yè)市場集中度、企業(yè)競爭格局分析報告-智研咨詢發(fā)布
- 鹽城師范學(xué)院《軟件測試技術(shù)》2021-2022學(xué)年期末試卷
- 機器學(xué)習(xí) 課件 第10、11章 人工神經(jīng)網(wǎng)絡(luò)、強化學(xué)習(xí)
- 北京市人民大學(xué)附屬中學(xué)2025屆高二生物第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 俯臥位心肺復(fù)蘇
- 書籍小兵張嘎課件
- 氫氣中鹵化物、甲酸的測定 離子色譜法-編制說明
- 2024秋期國家開放大學(xué)??啤稒C械制圖》一平臺在線形考(形成性任務(wù)四)試題及答案
- 2024年經(jīng)濟師考試-中級經(jīng)濟師考試近5年真題集錦(頻考類試題)帶答案
- 2024年黑龍江哈爾濱市通河縣所屬事業(yè)單位招聘74人(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 私募基金管理人-廉潔從業(yè)管理準則
- 房地產(chǎn)估價機構(gòu)內(nèi)部管理制度
- 藝術(shù)哲學(xué):美是如何誕生的學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論