freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于fpga的des加密系統(tǒng)設計與實現(xiàn)(編輯修改稿)

2024-08-23 06:43 本頁面
 

【文章內容簡介】 Bencher來用圖形化的界面生成一個TestBencho 3:使用Xilinx ISE WebPack中集成的XST綜合工具進行邏輯綜合。 4:在布局布線這個步驟中,對FPGA來說,有四個步驟: 1) Translate一解釋設計,執(zhí)行規(guī)則檢查。 2) Map一對不同的目標器件來計算和分配資源。 3) Place and Route一對可配置邏輯塊進行布局,使用布線資源. 4) Configure一生成可以下載編程的Bit流文件。 5:在布局布線后,也可以使用與功能仿真相同的TestBench來對設計進行仿真,這稱為后仿真。后仿真結合了布局布線的因素,可以精確的反映下載后芯片內部的執(zhí)行情況,可以觀測邏輯變量的延遲情況,毛刺,冒險競爭等。 6:使用WebPack集成的IMPACT工具進行下載芯片。2. 2. 3硬件描述語言Yerilog IiDL 硬件描述語言HDL是一種用形式化方法描述數字電路和系統(tǒng)的語言。利用這種語言,數字電路系統(tǒng)的設計可以從上層到下層(從抽象到具體)逐層描述自己的設計思想,用一系列分層次的模塊來表示極其復雜的數字系統(tǒng)。然后,利用電子設計自動化(EDA)工具,逐層進行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經過自動綜合工具轉換到門級電路網表。接下去,再用專用集成電路ASIC或現(xiàn)場可編程門陣列FPGA自動布局布線工具,把網表轉換為要實現(xiàn)的具體電路布線結構[12]。 硬件描述語言HDL的發(fā)展至今己有20多年的歷史,并成功地應用于設計的各個階段:建模、仿真、驗證和綜合等。到20世紀80年代,已出現(xiàn)了上百種硬件描述語言,對設計自動化曾起到了極大的促進和推動作用。但是,這些語言一般各自面向特定的設計領域和層次,而且眾多的語言使用戶無所適從。因此,急需一種面向設計的多領域、多層次并得到普遍認同的標準硬件描述語言。20世紀80年代后期,VHDL和Verilog HDL語言適應了這種趨勢的要求,先后成為IEEE標準。 ,可以用于從算法級,門級到開關級的多種抽象層次的數字系統(tǒng)設計。 Verilog HDL是在1983年,由GDA (Gateway Design Automation)公司的PhilMoorby首創(chuàng)的。Phil Moorby后來成為VerilogXL的主要設計者和Cadence公司的第一合伙人。在1984~1985年,Phil Moorby設計出T第一個名為VerilogXL的仿真器。1986年,他對Verilog HDL的發(fā)展又作出了另一個巨大的貢獻:提出了用于快速門級仿真的XL算法。 隨著VerilogXL算法的成功,Verilog HDL語言得到迅速發(fā)展。1989年,Cadence公司收購} GDA公司,Verilog HDL語言成為Cadence公司的私有財產。1990年,Cadence公司決定公開Verilog HDL語言,于是成立了OVI (Open Verilog International)組織,負責促進Verilog HDL語言的發(fā)展。基于Verilog HDL的優(yōu)越性,IEEE于1995年制定了Verilog HDL的IEEE標準,即Verilog HDL 13641995。 2001年發(fā)布了Verilog HDL 13642001標準。在這個標準中,加入了 Verilog HDLA標準,使Verilog有了模擬設計描述的能力。 從語法結構上看,Verilog HDL語言與C語言有許多相似之處,并繼承和借鑒了C語言的多種操作符和語法結構。下面列出的是Verilog HDL硬件描述語言的一些主要特點:l 能形式化地表示電路的結構和行為。l 借用高級語言的結構和語句,例如條件語句,賦值語句和循環(huán)語句等,在VerilogHDL中都可以使用,既簡化了電路的描述,又方便了設計人員的學習和使用。l 能夠在多個層次上對所設計的系統(tǒng)加以描述,從開關級,門級,寄存器級到功能 級和系統(tǒng)級,都可以描述。設計的規(guī)??梢允侨我獾?,語言不對設計的規(guī)模施家任何限制。l Verilog HDL具有混合建模的能力,即在一個設計中各個模塊可以在不同設計層次 上建模和描述。l 基本邏輯門,例如and, or和nand等都內置在語言中。開關級結構模型,例如pmos和nmos等也被內置在語言中,用戶可以直接調用。l 用戶定義原語創(chuàng)建的靈活性。用戶定義的原語既可以是組合邏輯原語,也可以是 時序邏輯原語。Verilog HDL還具有內置邏輯函數。 Verilog HDL語言最大的特點就是易學易用,通過學習和使用,可以在最短的時間內掌握該語言。另外,該語言的功能強大,可以滿足各個層次設計人員的需要,從高層的系統(tǒng)描述到地層的版圖設計,都可以很好的支持。由于Verilog HDL巨大的優(yōu)越性,使得它廣泛流行,尤其是在ASIC設計領域,更是處于主流地位。在美國,日本等國家,Verilog HDL語言也一直是使用最為廣泛的硬件描述語言,其使用人數大大超過其他語言的使用人數。在國內,Verilog HDL的應用群體也在不斷擴大,越來越多的人使用該語言進行設計和仿真。本章小結本章先介紹了DES加密算法的基本原理,然后介紹了本系統(tǒng)開發(fā)的環(huán)境,包括硬件,硬件開發(fā)平臺EITS2003,軟件開發(fā)工具ISE WebPack和3硬件描述語言Verilog HDL。第三章DES加密系統(tǒng)設計與實現(xiàn) DES加密系統(tǒng)設計方案整個系統(tǒng)包括DES加密核心,UART通信接口和BLOCKRAM存儲模塊三大功能塊,DES加密核心即對DES算法的硬件實現(xiàn),以在合理的資源占用下實現(xiàn)盡可能高的性能為目標。而UART通信接口則負責加密核心與外界通信鏈路之間的數據吞吐。由于外界通信鏈路的速率不盡相同,如何協(xié)調加密核心與通信接口之間的數據率也是一個值得考慮的問題。FPGA內部的B1ockRAM主要起到兩方面作用:緩沖數據。2, UART與DES模塊之間的位寬轉換。 DES加密核心設計方案DES加密算法以多輪的密鑰變換輪函數和密鑰十數據運算輪函數為特征,與之相對應的硬件實現(xiàn),既可以通過輪函數的16份硬件拷貝,達到深度細化的流水線處理,實現(xiàn)性能上的最優(yōu)。也可以通過分時復用,重復調用一份輪函數的硬件拷貝,以時間換空間,從而得到硬件資源占用上的最小化。究竟選擇怎么樣的實現(xiàn)方式,根據實際硬件條件進行了選擇。1 性能優(yōu)先方案:采用循環(huán)全部打開和流水線結構來設計。循環(huán)全部打開后,實現(xiàn)全部16個輪函數的硬件級聯(lián),只要一個時鐘周期就可以完成一個數據塊的加密或解密。通過多占很大的空間來換得速度上的大幅度提高,然后再在每輪的中間加上寄存器來實現(xiàn)流水線。在第一時鐘周期,第一塊數據經過第一輪處理存入寄存器1中。在下一個時鐘周期,寄存器1中的結果經過第二輪處理存入寄存器2中。同時,第二塊數據可以經過第一輪處理存入寄存器1。這樣,多塊數據實現(xiàn)了同時處理,使得加/解密速度可以提高近16倍,確實讓性能有了大幅度的提高,但是由于實驗平臺上搭載的Spartan IIE FPGA總資源為10萬門左右,一味地追求性能無疑是不切實際的。后來的綜合驗證肯定了這一觀點[13]。2 資源優(yōu)先方案:與性能優(yōu)先方案相反,資源優(yōu)先僅硬件實現(xiàn)一套密鑰變換輪函數和密鑰+數據運算輪函數,通過反復16次調用這一硬件結構來實現(xiàn)一次DES加密運算。這在大大減少硬件開銷的同時也在性能上作出了相應的犧牲?;谛阅芎唾Y源占用的綜合考慮,采取了以資源優(yōu)先方案為基礎的實現(xiàn)形式,通過在輪函數內部設置3級流水線,提高整體處理的速度性能。將數據+密鑰輪函數和密鑰變換函數在硬件上單獨實現(xiàn),減少了相鄰流水線級間的邏輯復雜度[14]。最終采取的整體方案可以用下圖簡要表示:圖31 DES加密核心原理圖 通過設置輪計數器對所進行的輪運算進行計數,控制DATAMUX和KEYMUX兩個數據選擇器選擇進入輪函數運算的是加密中間數據還是原始輸入數據,以達到復用輪函數的目的。. 2通信接口設計方案通信接口負責為DES加密核心吞吐數據,需要根據不同的通信介質進行設計,以以太網應用為例,需實現(xiàn)相應的以太網MAC控制器以與物理層設備接口,或提供與已有以太網控制器硬件相接口的邏輯總線。但是考慮到通用性的問題,由于通信鏈路速率的不同,通信接口與DES加密核心之間很難實現(xiàn)數據傳輸和加密的同步,因此需要在兩者之間設計相應的機制。在數據跨越不同時鐘邊界時,如何穩(wěn)定可靠地傳輸數據是一個值得重視的問題,而握手或緩沖是常用的實現(xiàn)方案。、獨立時鐘操作,采用雙口RAM實現(xiàn)FIFO緩沖為解決這一問題提供了切實可行的方案??紤]實驗平臺上硬件條件的限制,現(xiàn)成可用的通信接口只能選擇UART。由于UART傳輸的低速率,無疑成為了整個系統(tǒng)性能的瓶頸,使得加密性能的實際測試無法進行。但是從功能演示和熟悉系統(tǒng)實現(xiàn)的流程上來說,UART的簡易、可操作又不失為一個不錯的選擇。因此,在本設計中,選取了UART作為通信接口[15]。UART通信接口部分的系統(tǒng)框圖如下圖所示:圖32 UART通信接口原理圖 B1ockRA11存儲模塊設計方案對FPGA內部的B1ockRAM,考慮采用8片片內B1ockRAM并行的方式,UART數據幀(8位寬度)循環(huán)串行寫入,DES模塊則采取8片并行輸入輸出的方式來達到位寬匹配的目的[16]。本設計采用時鐘獨立的雙口RAM,實現(xiàn)UART與DES加密核心之間的數據緩沖。采用片內8片8位寬度BlockRAM并行輸入輸出,實現(xiàn)與DES加密數據總線的位寬匹配。整個系統(tǒng)功能如下圖所示: 圖33系統(tǒng)功能簡圖 DES加密系統(tǒng)的實現(xiàn) 本設計采用試驗開發(fā)板EITS2003上Xilinx公司SPARTANIIE結構的XC2S100e作為算法載體,通過UART串口進行實驗板和PC的通信,將所需加(解)密的文件通過串口下載到FPGA的BLOCKRAM中,在FPGA中實現(xiàn)控制器和DES模塊以及密鑰的生成,通過控制器實現(xiàn)加、解密功能,最后將加(解)密完成的數據再次通過串口傳回PC,可以通過現(xiàn)成的DES算法程序檢驗正確性。從前面的介紹可以看到,DES算法沒有大量的復雜數學計算(如乘、帶進位的加、模等),在加/解密過程和密鑰生成過程中僅有邏輯運算和查表運算。這些特點為采用FPGA進行硬件實現(xiàn)提供了可能性和可行性。3. DES加密核心模塊的實現(xiàn)3. S盒設計通過分析發(fā)現(xiàn),S盒在整個設計中占了很大的比重。S盒性能的提高對于整個設計性能會有很大的改善,因此S盒是整個設計優(yōu)化的重點[17]。DES的8個S盒分別是一個滿足特殊性能的6~4位的變換。在VHDL或Verilog語言中,可以直接用CASE語句來實現(xiàn)。這是最簡單的實現(xiàn)方法,但是HDL語言都屬于高級語言,它們強烈依賴于編譯器的優(yōu)化能力,往往對設計者來說,涉及得越少、編程越簡單,代碼效率越不高,這對于性能考慮的實現(xiàn)來說是不可取的。在實現(xiàn)過程中通過分析工具也發(fā)現(xiàn),依賴于編譯器的實現(xiàn)不但復雜,而且占用大量的空間。這樣,S盒成了速度的瓶頸,為此,采用ROM來實現(xiàn)。XC2S100的LUT可以配置為16X 1位的ROM,把輸入的6位作為地址,對應的地址空間里存放的就是輸出的4位,從而實現(xiàn)了64位的查找表LUT,所需時間只是FPGA中CLB的傳輸時間加上傳輸線上的延時,如圖8。圖34 S盒在XC2S100e的實現(xiàn) 密鑰生成器的設計是獨立于DES輪函數運算實現(xiàn)的,采用3級流水線來與輪函數中的流水線相平衡,單輪的實現(xiàn)如圖9。 其中,3級流水線由移位寄存器(SR)和1個觸發(fā)器(FF)構成,在SR中完成兩級流水線,在FF中實現(xiàn)第三級。XC2S100的LUT中的每個查找表LUT可以用來生成1~16個移位寄存器,而且在一個單獨的可配置邏輯功能塊CLB中連接8個移位寄存器來構成一個128位的移位寄存器[18]。圖35單輪子密鑰生成在XC2S100e的實現(xiàn)3. 2. 1. 3 DES加密核心模塊的頂層框圈通過上述分析,DES加密核心模塊的頂層框圖如下: 圖36 DES加密核心模塊的頂層框圖3. 2. 2 UART通信接口模塊的實現(xiàn) RS 232的實現(xiàn)通常采用專用的UART(Universal Asynchronous Receiver and Transmitter)接口芯片或利用單片機本身所帶有的異步通信功能,但有些情況下也需要利用可編程芯片通過軟件的編制來實現(xiàn)UART的功能。在本設計中,為了方便文件的傳輸,我們也設計了基于UA RT的串口通信模塊。3. 2. 異步串口包括接收和發(fā)送兩個部分。接收部分將收到的以幀為單位的串行輸入信號轉化為并行信號供取走。發(fā)送部分則完成信號的并一串轉換。同時會給傳送的8位數據加上起始位,奇偶校驗位和停止位。異步串行通信關鍵要保證通信雙方收發(fā)同步。由于沒有時鐘線,所以雙方必須以一個固定的頻率,同步的收發(fā)數據,才能保證數據傳送的正確性[19]。異步串行通信的數據傳送格式如下圖: UART通信接口實現(xiàn)原理串口發(fā)送數據格式:1位起始位(‘0’),8位數據位,1位停止位(‘1’),空閑位(‘1’)。接收數據: 按照串口傳輸協(xié)議,檢測起始位,為防止因干擾或其它因素引起的電平跳動,以波特率16倍的頻率檢測,一旦檢測到起始位,就開始接收數據,要保證在數據位的中間取樣。對于異步接收器而言,同步的實現(xiàn)就是靠尋找起始位來作為一幀數據的開始。通常的做法是產生一個16倍(或32倍)于波特率的時鐘信號clkl6x,當 clkl6x的前后兩個脈沖沿檢測到串行輸入信號從高到低的跳變時,即表明一幀數據的開始,然后再經過8個c
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1