畢業(yè)論文-在計算機并行口的控制下利用FPGA實現(xiàn)對FLASH存儲器的操作_第1頁
畢業(yè)論文-在計算機并行口的控制下利用FPGA實現(xiàn)對FLASH存儲器的操作_第2頁
畢業(yè)論文-在計算機并行口的控制下利用FPGA實現(xiàn)對FLASH存儲器的操作_第3頁
畢業(yè)論文-在計算機并行口的控制下利用FPGA實現(xiàn)對FLASH存儲器的操作_第4頁
畢業(yè)論文-在計算機并行口的控制下利用FPGA實現(xiàn)對FLASH存儲器的操作_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、本科畢業(yè)設計說明書1 引言1.1 背景意義本課題主要研究通過計算機并行口的控制實現(xiàn)對flash存儲器的操作。目前,在實驗室和工業(yè)應用的各種控制系統(tǒng)中,串口是常用的計算機與外部控制系統(tǒng)之間的數(shù)據(jù)傳輸通道。由于串行通信方便易行,所以應用廣泛。但是使用串行通信,在實時性、速度、數(shù)據(jù)量等方面受到限制。而計算機的并行端口傳輸數(shù)據(jù)時是一次性傳送8個位(一個字節(jié))或更多,由于傳輸量較大,因此數(shù)據(jù)的傳輸速度要比串口快,在許多必須講究傳輸速度的控制系統(tǒng)里,用pc并行端口與之連接就是一個很好的解決方案1。目前,對flash存儲器的操作多是采用usb接口,usb接口也的確是一種較為理想的接口,但通訊協(xié)議較為復雜,要

2、求硬件開發(fā)人員對操作系統(tǒng)(軟件)知識的了解較全面,硬件開發(fā)人員既要編寫固件的usb接口程序,同時還要編寫操作系統(tǒng)的usb驅(qū)動程序 2。與usb接口相比,spp并口的通訊協(xié)議非常簡便,只要熟悉標準并口操作的人稍微了解spp并口資料即可。無須專門開發(fā)驅(qū)動程序,直接對硬件層編程即可,當然也可以利用操作系統(tǒng)(軟件)提供的標準函數(shù)來實現(xiàn)3。spp并口本身就是計算機的標準接口之一,不需要另外添加別的接口卡,也不需要打開計算機機箱,直接插拔標準的并口通訊電纜線即可,跟以前使用標準并口的打印機一樣,方便省事。1.2 計算機并口的發(fā)展及現(xiàn)狀并行接口簡稱并口,也就是lpt接口,是采用并行通信協(xié)議的擴展接口。并口的

3、數(shù)據(jù)傳輸率比串口快8倍,標準并口的數(shù)據(jù)傳輸率為1mbps,一般用來連接打印機、掃描儀等4。所以并口又被稱為打印口。最初的并口設計是單向傳輸數(shù)據(jù)的,也就是說數(shù)據(jù)在某一時刻只能實現(xiàn)輸入或者輸出。后來ibm又開發(fā)出了一種被稱為spp(standard parallel port)的雙向并口技術(shù),它可以實現(xiàn)數(shù)據(jù)的同時輸入和輸出,這樣就將原來的半互動并口變成了真正的雙方互動并口; intel、 xircom 及zenith于1991年共同推出了epp(enhanced parallel port,增強型并口),允許更大容量數(shù)據(jù)的傳輸(5001000byte/s),其主要是針對要求較高數(shù)據(jù)傳輸速度的非打印

4、機設備,例如存儲設備等;緊接著epp的推出,1992年微軟和惠普聯(lián)合推出了被稱為ecp(extended capabilities port)的新并口標準,和epp不同,ecp是專門針對打印機而制訂的標準;發(fā)布于1994年的ieee 1284涵蓋了epp和ecp兩個標準,但需要操作系統(tǒng)和硬件都支持該標準,這對現(xiàn)在的硬件而言已不是什么問題了。目前我們所使用的并口都支持epp和ecp這兩個標準,而且我們可以在cmos當中自己設置并口的工作模式5。1.3 可編程邏輯器件的發(fā)展及現(xiàn)狀計算機與微電子技術(shù)的飛速發(fā)展更加加速了電子設計自動化eda(electronic design automation)和

5、可編程邏輯器件pld(programmable logic device)的發(fā)展。先進的eda工具已經(jīng)從傳統(tǒng)的自下而上的設計方法改變?yōu)樽皂斚蛳碌脑O計方法,以硬件描述語言hdl(hardware description language)來描述系統(tǒng)級設計,并支持系統(tǒng)仿真和高層次綜合。asic(application specific integrated circuit)的設計與制造僅在實驗室就可以完成,這都是由于pld器件的出現(xiàn)及功能強大的eda軟件的支持?,F(xiàn)在應用最廣泛的高密度pld器件主要是現(xiàn)場可編程門陣列fpga(field programmable gate array)和復雜可編程邏

6、輯器件cpld 。目前,fpga/cpld己經(jīng)應用于很多領域。在通信方面fpga器件已經(jīng)成功的應用在高速信號處理系統(tǒng)、超高速數(shù)據(jù)采集系統(tǒng)、通信接口芯片、各種濾波器(如:有限沖擊響應濾波器(fir)、無限沖擊響應濾波器(iir)、數(shù)字濾波器和時空碼編碼器等電路設計中。在國防、航天領域,也有許多方面應用了fpga。在飛機動力綜合測試系統(tǒng)中,測量飛機啟動發(fā)電性能參數(shù)方面,應用fpga實現(xiàn)鍵盤接口;雷達測距機中采用fpga器件實現(xiàn)了數(shù)據(jù)處理和測距機主回路兩大部分;在工業(yè)自動化領域fpga的應用更為廣泛。應用fpga實現(xiàn)激光選取燒結(jié)成型(sls)控制系統(tǒng)提高了控制系統(tǒng)的集成度、可靠性及系統(tǒng)的可重構(gòu)性;在

7、時隙交換控制器中,利用fpga器件來完成話音時隙的交換從而達到用戶通話的目的;目前,在計算機硬件結(jié)構(gòu)方面的eda實驗也取得了許多成功。如異步先進先出堆棧(fifo)、直接存儲器存取(dma)控制器。在dma控制器中利用格雷碼對地址進行編碼,采用vhdl語言進行電路設計,并通過了軟件仿真和硬件實現(xiàn)。在我國,fpga器件已經(jīng)大量應用到產(chǎn)品的研制和最終產(chǎn)品中,在降低產(chǎn)品成本的基礎上極大地縮短了產(chǎn)品上市時間,產(chǎn)生了巨大的經(jīng)濟效益6。 1.4 flash memory 在數(shù)據(jù)存儲方面的應用現(xiàn)狀flash memory中文名稱為快閃記憶體,flash memory或是flash rom,是目前最新的一種r

8、om形式(不過其內(nèi)部材料已和最早的rom大相徑庭),是1980年代由英特爾公司推出,主要用以替代eeprom,做系統(tǒng)程式儲存及記錄(code storage)。著重在指令的快速讀取及對系統(tǒng)的開機管理。快閃記憶體并不需要不斷充電來維持其中的數(shù)據(jù),但是每當數(shù)據(jù)更新時必須以blocks為單位加以覆寫,而非一個byte、一個byte寫入,block 的大小從256kb到20mb不等。flash memory的物理特性與常見的內(nèi)存有根本性的差異:目前各類ddr、sdram或者rdram都屬于揮發(fā)性內(nèi)存,只要停止電流供應內(nèi)存中的數(shù)據(jù)便無法保持,因此每次電腦開機都需要把數(shù)據(jù)重新載入內(nèi)存;閃存則是一種不揮發(fā)性

9、(non-volatile)內(nèi)存,在沒有電流供應的條件下也能夠長久地保持數(shù)據(jù),其存儲特性相當于硬盤,這項特性正是閃存得以成為各類便攜型數(shù)字設備的存儲介質(zhì)的基礎??扉W記憶體由eeprom演化而來,但是價格較便宜且位元密度較高,所以會成為eeprom的替代品。目前快閃記憶體多用于pc card記憶卡,主機板和smart card。近年來,隨著寫入速度、高容量及單位位元價格下降等因素考量,對聲音、影像等資料(例如mp3)的儲存也成為快閃記憶體技術(shù)發(fā)展的另一主流8。1.5 本說明書的主要內(nèi)容本文主要說明的內(nèi)容:1、闡述了本課題的電路設計思想;2、闡述了系統(tǒng)的硬件電路結(jié)構(gòu)、邏輯控制模塊的設計及其功能實現(xiàn)

10、;3、闡述了vhdl語言編寫k9f1g08的讀、頁編程、塊擦除等操作時序的詳細過程; 4、闡述了maxplux和protel等軟件設計平臺的發(fā)展及應用。2 總體電路設計本系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2.1所示: 控制數(shù)據(jù)/命令數(shù)據(jù)數(shù)據(jù)計算機并行接口(spp)接口電路控制狀態(tài)數(shù)據(jù)/命令控制狀態(tài)fpga器件flash存儲器狀態(tài)圖2.1 系統(tǒng)硬件結(jié)構(gòu)框圖本系統(tǒng)是計算機通過并行接口控制可編程邏輯器件fpga來實現(xiàn)對flash存儲器的塊擦除、頁編程、讀數(shù)據(jù)等操作。在進行塊擦除操作時,計算機通過并行接口(spp模式)向可編程邏輯器件fpga發(fā)送指令,fpga接收到指令后對flash存儲器進行塊擦除操作,并將狀態(tài)

11、返回計算機并行接口。在進行頁編程操作時,可編程邏輯器件fpga接收到計算機并行接口發(fā)出的指令后,立即對flash存儲器進行頁編程操作,先寫入命令,再寫入要編程的地址,然后將數(shù)據(jù)發(fā)送到flash存儲器中。在進行讀取數(shù)據(jù)操作時,可編程器件fpga首先接收到計算機并行口發(fā)出的指令,然后對flash存儲器進行讀取數(shù)據(jù)操作,先寫入命令,再寫入要讀取的地址,然后開始輸出數(shù)據(jù),并將狀態(tài)返回計算機并行接口。2.1 計算機并行接口電路模塊設計在系統(tǒng)中,計算機并行接口電路模塊(見圖2.2)的主要作用是連接flex10k10 芯片和計算機并口。電路中的電阻和電容組成了一階無源rc低通濾波電路,其基本功能就是:只允許

12、一定頻率范圍內(nèi)的信號通過電子電路,而對不需要的頻率分量則盡可能加以抑制或消弱。另外,當計算機并行接口進行帶電拔插時,連接在計算機并行接口和fpga芯片間的電阻可以防止芯片被燒壞,起到了保護電路的作用。圖2.2 計算機并行接口電路2.2 電壓轉(zhuǎn)換模塊設計2.2.1 直流穩(wěn)壓電源模塊設計在系統(tǒng)中,fpga的工作電壓為 5伏,通過一個變壓器將220v交流電變壓到15v。并將變壓器輸出的15v交流電壓整流、濾波,產(chǎn)生的不穩(wěn)定直流電壓從穩(wěn)壓器的輸入端輸入,在固定式三端集成穩(wěn)壓集成芯片7805的輸出端就可得到穩(wěn)定的5v直流電壓輸出。正常工作時,穩(wěn)壓器輸入、輸出電壓差為23v,電容用來實現(xiàn)頻率補償。該固定式

13、三端集成穩(wěn)壓集成電路7805最大輸入電壓為35v,輸入輸出差值要保持2v以上,該電路中穩(wěn)壓器的直流輸入電壓為+12v,輸出值為+5v。因此,此電源滿足系統(tǒng)設計要求。具體穩(wěn)壓電路設計見圖2.3。圖2.3 直流穩(wěn)壓電源模塊三端穩(wěn)壓器7805在使用時芯片極易發(fā)熱發(fā)燙,因此,使用時要注意散熱問題。2.2.2 基于tps70351的電壓調(diào)節(jié)器設計在電路中,flash存儲芯片工作電壓為3.3伏,所以需要通過tps70351 把5伏電壓轉(zhuǎn)化為3.3伏,以提供給flash存儲器使用。具體的電壓轉(zhuǎn)換模塊如下所示:圖2.4 基于tps70351的電壓調(diào)節(jié)器tps70351是新一代的集成電路穩(wěn)壓器,是一個自耗很低的

14、微型片上系統(tǒng),具有極低的自有噪音和較高的電源紋波抑制,因此,很適合作為每一塊電路板或每一片重要芯片(如fpga、dsp)供電的電壓調(diào)節(jié)器。正因為此原因,在本系統(tǒng)的設計中采用tps70351作為flash存儲器供電的電壓調(diào)節(jié)器。2.3 flash存儲器電路模塊設計圖2.5 flash存儲芯片k9f1g08電路模塊本存儲器的電路設計部分采用的是三星公司的閃存芯片k9f1g08u0m。它有128m8bit的存儲容量(見圖2.6),采用nand閃存技術(shù)工藝完成。自身工作電壓是2.7v3.6v,由于其低功耗、大容量、數(shù)據(jù)訪問速度高, flash存儲芯片的工作電壓由tps70351芯片組成的電壓調(diào)節(jié)器提供

15、(其具體實現(xiàn)過程詳見:基于tps70351的電壓調(diào)節(jié)器設計)。k9f1g08uom是一種可以進行電擦寫,并在掉電后信息不丟失的存儲器,同時該存儲器還具有不揮發(fā)、功耗低、擦寫速度快等特點,因而可廣泛應用于外部存儲領域,如個人計算機和、數(shù)碼照相機等。但隨著閃存應用的逐漸廣泛,對閃存芯片容量的要求也越來越高,原來的單片容量已經(jīng)不能再滿足人們的要求了。而 k9f1g08uom的出現(xiàn)則恰好彌補了這一不足。k9f1g08uom是三星公司開發(fā)的目前單片容量較大的閃存芯片,它的單片容量高達128,同時還提供有4額外容量9。2.4 fpga外圍電路模塊設計2.4.1 fpga程序下載模塊設計本課題中fpga器件

16、采用altera公司的flex10k10芯片,flex 10k是altera公司研制的第一個嵌入式的pld,它具有高密度、低成本、低功率等特點,是當今altera產(chǎn)品中應用前景最好的器件系列之一10。flex10k10芯片配置方式主要分為兩大類:主動配置方式和被動方式。主動配置方式由fpga器件引導配置操作過程,它控制著外部存儲器和初始化過程;而被動配置方式由外部計算機或控制器控制配置過程。根據(jù)數(shù)據(jù)線的多少又可以將fpga器件配置方式分為并行配置和串行配置兩類。經(jīng)過不同組合就得到四種配置方式:主動串行配置(as)、被動串行(ps)、被動并行同步(pps)、被動并行異步(ppa) 10 。圖2.

17、7 fpga下載電路模塊在本系統(tǒng)中使用的方式為被動串行配置方式(ps)如圖2.7,在被動串行配置(ps)方式中,由byteblaster、flex下載電纜或微處理器產(chǎn)生一個由低到高的跳變送到nconfig引腳,然后微處理器或編程硬件將配置數(shù)據(jù)送到data0引腳,該數(shù)據(jù)鎖存至conf_done變?yōu)楦唠娢?,它是先將每字?jié)的最低位lsb送到flex10k器件。conf_done變?yōu)楦唠娢缓?,dclk必須多余的10個周期來初始化該器件,器件的初始化是由下載電纜自動執(zhí)行的。在ps方式中沒有握手信號,所以配置時鐘的工作頻率必須低于10mhz 11 。2.4.2 fpga時鐘模塊設計晶振是晶體振蕩器的簡稱。

18、在本系統(tǒng)中晶振的作用是為系統(tǒng)提供基本的時鐘信號, 即在電路產(chǎn)生震蕩電流。在本系統(tǒng)中晶振大小采用10mhz。其具體連接方法如圖2.8所示:圖2.8 fpga時鐘模塊3 fpga邏輯設計圖3.1 fpga內(nèi)部邏輯電路本系統(tǒng)中fpga邏輯設計是整個設計的重點,其內(nèi)部邏輯電路如圖3.1所示。fpga邏輯設計共分兩塊,其中erasetest是fpga邏輯設計的主體部分,flash存儲器的讀、頁編程、塊擦除等操作的功能主要是由該部分實現(xiàn),利用vhdl語言編寫出flash存儲器的讀、頁編程、塊擦除等操作時序的程序,通過下載線下載到eprom中, fpga上電后從eprom中自動下載程序。就可以通過上位機程序

19、來控制flash的讀、頁編程、塊擦除等操作。sn245在這里主要起到保護電路、調(diào)節(jié)數(shù)據(jù)流向的作用,當fpga對存儲器進行塊擦除操作(即oe為低電平)時,數(shù)據(jù)從indata7.0 輸入,在outdata7.0輸出。當fpga對存儲器進行讀操作oe為高電平時,器件處于高阻狀態(tài)。 sn245的程序具體實現(xiàn)詳見附錄4。3.1 塊擦除程序設計flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內(nèi)進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦除。圖3.2 塊擦除操作時序圖本系統(tǒng)中的塊擦除程序是基于flash存儲芯片的塊擦除時序

20、規(guī)則,利用vhdl語言編寫出來的。flash存儲芯片的塊擦除時序詳見圖3.2,vhdl語言編寫程序時嚴格按照此時序規(guī)則進行。利用vhdl語言編寫塊擦除程序的具體流程如圖3.3所示:開 始寫60h寫塊地址寫d0h讀狀態(tài)寄存器i/o6=1?或r/b=1?noyesi/o0=0?no擦除成功擦除失敗yes圖3.3 塊擦除程序流程圖vhdl語言編寫出來的塊擦除程序利用max+plus平臺進行編譯仿真,并給出仿真結(jié)果(部分)如下:圖3.4 塊擦除操作仿真圖在進行塊擦除操作時,首先寫入命令。將ale置低,cle置高,we置低,re置高,此時flash存儲器的寫命令功能被啟用。再由fpga的數(shù)據(jù)引腳輸出“0

21、1100000”(60h),最后再將ale置低,cle置低,we置高,re置高,結(jié)束寫命令。接下來要寫地址。將ale置高,cle置低,we置低,re置高,這時fpga的數(shù)據(jù)引腳開始輸出第一個周期地址,第一個寫地址結(jié)束。再依次輸入,fpga每輸入四個控制信號,就相應輸入一個地址(在塊擦除操作中,僅僅兩個行地址周期被使用)。最后將we置高,結(jié)束寫地址。然后寫d0h。將ale置低,cle置高,we置低,re置高,此時fpga的數(shù)據(jù)引腳開始輸出“11010000”(d0h),輸出結(jié)束后將we置高,結(jié)束寫d0h操作。其具體程序?qū)崿F(xiàn)詳見附錄5。3.2 頁編程程序設計本系統(tǒng)中vhdl語言編寫出來的頁編程程序

22、是嚴格按照flash存儲芯片的頁編程時序規(guī)則編寫的,flash存儲芯片的頁編程時序規(guī)則如下:圖3.5 頁編程時序圖本系統(tǒng)中利用vhdl語言編寫的頁編程程序流程圖如下所示:開 始寫80 h寫地址寫數(shù)據(jù)讀狀態(tài)寄存器i/o=1? 或r/b=1?編程錯誤noi/o=1寫00h寫地址寫30h等待tr驗證數(shù)據(jù)編程失敗編程成功通過失敗no圖3.6 頁編程程序流程圖vhdl語言編寫的頁編程程序經(jīng)過max+plus平臺進行編譯仿真,得出的時序仿真圖(部分)如下:圖3.7 頁編程時序仿真在頁編程時,先要寫入命令。ale置低,cle置高,we置低,re置高,此時flash存儲器的寫命令功能被啟用。這一點和塊擦除操作

23、中的寫入命令是相同的,再由計算機的數(shù)據(jù)引腳輸出命令“10000000”(80h) ,然后將we置高。結(jié)束寫命令。接下來要寫地址。ale置高,cle置低,we置低,re置高,這時fpga的數(shù)據(jù)引腳開始輸出第一個周期地址,第一個寫地址結(jié)束。再依次輸入,fpga每輸入四個控制信號,就相應輸入一個地址(頁編程需要四個地址周期跟隨指令要求輸入),結(jié)束寫地址。最后寫入數(shù)據(jù)。將ale置低,cle置低,we置低,re置高,這時fpga的數(shù)據(jù)引腳開始輸出一個數(shù)據(jù),再將we置高,結(jié)束寫數(shù)據(jù)。具體程序詳見附錄6。3.3 讀操作程序設計讀操作程序也是利用vhdl語言進行編寫的,其編寫是以flash存儲芯片k9f1g0

24、8u0m的讀操作時序作為規(guī)則,并嚴格按照此規(guī)則進行的。圖3.8 讀操作時序圖讀操作程序編寫的流程圖如下:開 始寫00h寫地址寫30h讀數(shù)據(jù)頁讀取完畢ecc產(chǎn)生驗證ecc失敗通過回到錯誤圖3.9 讀操作流程圖vhdl語言編寫的讀操作程序經(jīng)過max+plus平臺進行編譯仿真,得出的時序仿真圖(部分)如下:圖3.10 讀操作仿真圖(部分)在讀操作中,首先也要寫入命令。將ale置低,cle置高,we置低,re置高。這一點和塊擦除操作中的寫入命令是相同的。再由fpga的數(shù)據(jù)引腳輸出“00000000”(00h) ,最后由四個控制端輸出信號0010,結(jié)束寫入命令。接下來是寫地址。讀操作中的寫地址也和頁編程

25、操作中的寫地址大致相同,只是在讀操作中的寫地址結(jié)束后又寫入了一個命令30h.。在讀數(shù)據(jù)時,將ale置低,cle置低,we置高,re置低,這時fpga的數(shù)據(jù)引腳讀出數(shù)據(jù),結(jié)束讀數(shù)據(jù)操作。具體程序詳見附錄7。4 上位機介紹在本系統(tǒng)中采用的是計算機并行接口的spp模式,標準并行端口(spp)采用的是雙向數(shù)據(jù)線,在大約1ms的時間內(nèi)可以完成包括握手聯(lián)絡在內(nèi)的一個字節(jié)的數(shù)據(jù)傳送,即完成了并行傳輸功能,而且可以實現(xiàn)快速轉(zhuǎn)向,因此它很適合用于像磁盤、磁帶驅(qū)動器等需要進行雙向數(shù)據(jù)傳輸?shù)脑O備。 spp標準并行接口有三個寄存器,分別為數(shù)據(jù)寄存器,狀態(tài)寄存器和控制寄存器(通常稱為數(shù)據(jù)端口,狀態(tài)端口,控制端口)。三個

26、寄存器的地址分別為378h、379h和37ah。表4.1 并口寄存器定義地址端口名稱方向基地址0spp數(shù)據(jù)端口寫基地址1epp狀態(tài)端口讀基地址2epp控制端口寫基地址3epp地址端口讀/寫基地址4epp地址端口讀/寫基地址5epp數(shù)據(jù)端口讀/寫基地址6未定義(32位傳輸)讀/寫基地址7未定義(32位傳輸)讀/寫spp硬件是由8條數(shù)據(jù)線,4條控制線和5條狀態(tài)線所組成,它們分別對應三個不同的寄存器來進行數(shù)據(jù)的讀、寫操作??刂萍拇嫫鳎ǖ刂?7ah)通過計算機并行接口發(fā)送控制信號,fpga接收到控制信號后進行讀操作,并向計算機并行接口的狀態(tài)寄存器(地址379h)發(fā)送握手信號,當握手信號為高電平時,表示

27、等待;當握手信號為低電平時,表示可以接收。本系統(tǒng)中上位機的操作軟件界面如圖4.1所示:圖4.1 操作軟件界面5 本系統(tǒng)設計中涉及的工具與語言5.1 max+plusii開發(fā)系統(tǒng)簡介max+plusii是美國altera公司自行設計的一種用于硬件設計的工具軟件,其全稱為multiple array matrix and programmable logic user systems ii。該軟件提供了一整套完全集成化的可用于數(shù)字電路設計的可編程邏輯設計環(huán)境,包括設計輸入、設計處理、設計校驗和芯片編程的全部功能。max+plusii有四種編輯的輸入方式,原理圖輸入和文本輸入(采用硬件描述語言)是最

28、常用的兩種輸入方式。還可以用波形編輯或模塊輸入。具體采用哪種需要根據(jù)具體的設計方案來確定。如果采用原理圖的方法設計電路,使用圖形編輯器是很方便的,電路的功能看起來一目了然。在一些大的復雜系統(tǒng)中,還可以采用圖形編輯器和文本編輯器混合輸入的方法。系統(tǒng)中的某個模塊在工程文件中用圖形來表示,而該模塊的內(nèi)容可使用文本編輯器用vhdl語言進行設計,設計完成后編譯整個工程文件。無論使用哪一種輸入方式,都配置了編輯、編譯、仿真模擬、設計綜合和芯片編程等功能。max+plusii還提供了使用圖形及利用元件庫進行電路原理圖編輯的功能。其中,編譯器是系統(tǒng)的核心,它為用戶提供了強有力的邏輯綜合與最小化的功能,經(jīng)過優(yōu)化

29、后的程序代碼使用戶能比較容易的將設計集成到器件中。max+plusii支持多樣化的硬件描述語言hdl(hardware description language),包括vhdl、veriloghdl、ahdl等。同時也具有開放性,可與其他工業(yè)標準的設計輸入、綜合與校驗工具鏈接13。5.2 protel軟件簡介protel軟件是portel公司推出的電路行業(yè)的cad軟件,它當之無愧地排在眾多eda軟件的前面,是電路設計者的首選軟件。早期的protel主要作為印刷板自動布線工具使用,運行在dos環(huán)境,對硬件的要求很低,在無硬盤286機的1m內(nèi)存下就能運行。它的功能較少,只有電原理圖繪制與印刷板設計

30、功能,印刷板自動布線的布通率也低?,F(xiàn)在的protel已發(fā)展到protel99/2000/2002/2003/2006,是個龐大的eda軟件,完全安裝有200多mb,它工作在windows win9x/me/nt/2000/xp環(huán)境下,是個完整的全方位電路設計系統(tǒng),它包含了電原理圖繪制、模擬電路與數(shù)字電路混合信號仿真、多層印刷電路板設計(包含印刷電路板自動布線)、可編程邏輯器件設計、圖表生成、電路表格生成、支持宏操作等功能,并具有client/server (客戶/服務器)體系結(jié)構(gòu),同時還兼容一些其它設計軟件的文件格式,如orcad、pspice、excel等。使用多層印制線路板的自動布線,可實

31、現(xiàn)高密度pcb的100布通率12。5.3 vhdl語言簡介vhdl的英文全名very-high-speed integrated circuit hardwaredescription language,誕生于1982年。1987年底,vhdl被ieee和美國國防部確認為標準硬件描述語言 。1993年,ieee對vhdl進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展vhdl的內(nèi)容,公布了新版本的vhdl,即ieee標準的1076-1993版本,(簡稱93版)?,F(xiàn)在,vhdl和verilog作為ieee的工業(yè)標準硬件描述語言,又得到眾多eda公司的支持,在電子工程領域,已成為事實上的通用硬件描

32、述語言。vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。vhdl的程序結(jié)構(gòu)特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設計就可以直接調(diào)用這個實體。這種將設計實體分成內(nèi)外部分的概念是vhdl系統(tǒng)設計的基本點。應用vhdl進行工程設計的優(yōu)點是多方面的。系統(tǒng)指標設計輸入(vhdl與電路圖混合)編譯時序分析裝載

33、芯片系統(tǒng)調(diào)試功能仿真最終產(chǎn)品圖3.11 vhdl的設計流程在從事設計進行編寫vhdl代碼之前,必須先對設計目的和要求有一個明確的認識。例如,明確定義信號建立時間、時鐘輸出時間、最大系統(tǒng)工作頻率、關鍵的路徑等這些要求,然后再選擇適當?shù)脑O計方式和相應的器件結(jié)構(gòu),進行設計的綜合;然后利用vhdl語言進行設計描述,選擇合適的設計方式編寫設計代碼;再用vhdl仿真器對vhdl源代碼進行功能仿真,我所用的是max+plus ii系統(tǒng)軟件;最后對源代碼進行編譯,沒有錯誤后就可以進行時序仿真。在成功地完成了設計描述、編譯和時序仿真之后,則可以對器件進行編程并繼續(xù)進行系統(tǒng)設計的其他工作14。具體流程圖如圖3.1

34、1所示。結(jié) 論系統(tǒng)的硬件方面,利用rotel99來繪制電路圖和pcb版圖;軟件方面,基于max+plus ii開發(fā)軟件,利用vhdl硬件描述語言以及原理圖的輸入方式來設計數(shù)字邏輯電路的過程和方法,最后將程序下載至實驗板,實現(xiàn)了設計要求。本課題作為一次完整的設計經(jīng)歷,從軟件繪制原理圖,到pcb制作,最后實現(xiàn)實驗板的硬件實物。對于我來說是一次充實而圓滿的畢業(yè)設計。從始至終,所用到的一些理論知識是我們在課本中無法領悟的,加之實踐中又遇到許多不可預測的問題,這對我們來說是一次從理論到實踐的飛躍。在本系統(tǒng)中上位機程序采用的是原有程序,這就成為系統(tǒng)設計中的不足之處??删幊踢壿嬈骷钠占笆乾F(xiàn)代數(shù)字設計的革命

35、,它真正實現(xiàn)了硬件設計軟件化的目標,大大簡化了設計流程及復雜程度。本設計讓我真正體會到了即使是一個看似簡單的設計,也需要不斷的完善,不斷的學習。附錄1 原理圖附錄2 pcb版圖附錄3 實物圖附錄4 sn245library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity sn245 is port ( indata: in std_logic_vector(7 downto 0);oe: in std_logic;outdata: out s

36、td_logic_vector(7 downto 0) );end sn245;architecture behavioral of sn245 isbeginoutdata z);end behavioral;附錄5 塊擦除程序-main process / erase flash- main :process(fosc,glrn,start) begin if glrn=0 thenf_ale=0;f_cle=0;f_we=1;f_re=1;f_rdfifo=1;ce=1;f_finish=1;f_countbyte=00000000000; -2k bytef_countp=000000

37、; -64 pagef_countb=0000000000; -2k blockclk_delay=0000000000;high_delay=0000000000;e_state = er0;r_state = rd0; f_rxdcount=000000;f_data=00000000; flag=0;instate=1;elsif fosc event and fosc=1 then instate=0; if erase=0 then cef_cle = 1;f_data=01100000; -write 0x60h commande_state f_we = 0;e_state f_

38、we = 1;e_state f_cle=0;f_ale=1;f_data(5 downto 0) = 000000;f_data(7 downto 6) = f_countb(1 downto 0); -row address1e_state f_we = 0;e_state f_we = 1;e_state f_data = f_countb(9 downto 2); -row address2e_state f_we = 0;e_state f_we = 1;e_state f_ale = 0;f_cle = 1;f_data = 11010000;-write 0xd0h comman

39、de_state f_we = 0;e_state f_we = 1;e_state f_cle=0;rb_delay=1111;e_state rb_delay=rb_delay-1;e_state if rb_delay=0000 thene_state = er15;elsee_state if f_rb=1 thene_state = er16;elsee_state f_countb=f_countb+1;e_state if f_countb=0000000000 thenf_finish=0;e_state = er17;else e_state e_state = er0;en

40、d case;end if; end if;end process main;附錄6 頁編程程序if start=0 then - once start = 0,can samplecef_cle = 1;f_data=10000000; -write 0x80h commandw_state f_we = 0;w_statef_we = 1;w_state f_ale=1;f_cle=0;f_data=00000000; -write 0x00h addressw_state f_we = 0;w_state f_we = 1;w_state f_we = 0;w_statef_we = 1

41、;w_state -col addressf_data(5 downto 0)=f_countp;f_data(7 downto 6)=f_countb(1 downto 0);w_state f_we = 0;w_state f_we = 1;w_state -row address;f_data=f_countb(9 downto 2);w_state f_we = 0;w_state f_we = 1;w_state f_ale=0;w_state if offset=0 thenw_state = wr15;elsef_rdfifo=0;w_state f_rdfifo=1;w_sta

42、te f_data=fifod;w_state f_addrb=f_addrb+1;f_we =0;w_state f_we = 1;f_countbyte=f_countbyte+1;w_state if f_countbyte=00000000000 then w_state = wr19;elsew_state f_cle=1;f_data=00010000;-write 0x10h commandw_state f_we=0;w_state f_we = 1;w_state f_cle=0;rb_delay=1111;w_state rb_delay=rb_delay-1;w_stat

43、e if rb_delay=0000 thenw_state = wr25;elsew_state if f_rb=1 thenw_state = wr26;elsew_state f_countp=f_countp+1;w_state if f_countp=000000 thenf_countb=f_countb+1;end if;w_state if f_countb=1111111111 thenw_state = wr28;elsew_statew_state=wr0;end case;end if;附錄7 讀操作程序architecture behavior of d1 issig

44、nal f_ale : std_logic;signal f_cle: std_logic;signal f_we : std_logic;signal f_re : std_logic;signal clk_delay: std_logic_vector(9 downto 0);signal high_delay : std_logic_vector(9 downto 0);signal f_rb : std_logic;signal f_rdfifo: std_logic;signal f_rbcount: std_logic_vector(3 downto 0);signal f_rxdcount: std_logic_vector(5 downto 0);signal f_countbyte : std_logic_vector(10 downto 0); -2k countsignal f_data: std_logic_vector(7 downto 0); signal f_countp: std_logic_vector(5 downto 0); -pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論