基于FPGA的漢明碼譯碼器的畢業(yè)設(shè)計(jì)_第1頁(yè)
基于FPGA的漢明碼譯碼器的畢業(yè)設(shè)計(jì)_第2頁(yè)
基于FPGA的漢明碼譯碼器的畢業(yè)設(shè)計(jì)_第3頁(yè)
基于FPGA的漢明碼譯碼器的畢業(yè)設(shè)計(jì)_第4頁(yè)
基于FPGA的漢明碼譯碼器的畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 PAGE36 / NUMPAGES40交通大學(xué)信息工程學(xué)院畢 業(yè) 設(shè) 計(jì) (論 文)題 目 基于FPGA的漢明碼譯碼器的設(shè)計(jì) 學(xué)生 蘆 斌 專業(yè)班級(jí) 信息工程09-2 指導(dǎo)教師 徐 佳 職 稱 講 師 所在單位 電氣工程系信息工程教研室 教研室主任 石桂名 完成日期 2013年 6 月 28 日摘要在數(shù)字通訊的系統(tǒng)中,數(shù)字信號(hào)在傳輸?shù)倪^(guò)程中容易受到干擾,造成碼元波形破壞,使得接收端接收到的信號(hào)發(fā)生錯(cuò)誤的判決。為了提高信息傳輸?shù)臏?zhǔn)確性,我們引進(jìn)了差錯(cuò)控制技術(shù)。該項(xiàng)技術(shù)應(yīng)采用了可靠而且有效的信道編碼方法來(lái)實(shí)現(xiàn)。漢明碼就是一種可以糾正差錯(cuò)的編碼。漢明碼編譯碼器是目前最為常用的數(shù)字通信部器件之一,它

2、被廣泛地應(yīng)用在網(wǎng)絡(luò)傳輸、存儲(chǔ)器校驗(yàn)糾錯(cuò)以與數(shù)據(jù)安全中。本課題是基于FPGA的漢明碼譯碼器的設(shè)計(jì),使用Verilog語(yǔ)言來(lái)實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)。通過(guò)理解漢明碼譯碼原理的基礎(chǔ)上,設(shè)計(jì)出了漢明碼的譯碼器,并且寫出了譯碼源程序,還通過(guò)QuartusII軟件實(shí)現(xiàn)仿真。本次設(shè)計(jì)首先介紹了EDA的硬件描述語(yǔ)言Verilog和仿真調(diào)試軟件QuartusII,然后介紹了FPGA的發(fā)展歷程和產(chǎn)品特性,借此選出合適的FPGA的芯片,最后介紹了漢明碼。通過(guò)了解漢明碼的理論知識(shí)來(lái)掌握漢明碼的譯碼原理,然后經(jīng)過(guò)理解和分析設(shè)計(jì)出實(shí)現(xiàn)漢明碼譯碼的算法,并且使用Verilog語(yǔ)言在QuartusII軟件里完成了基于FPGA的

3、漢明碼譯碼器的編程和仿真實(shí)現(xiàn)。同時(shí)根據(jù)需要,選擇了合適的FPGA的芯片和外圍元器件,設(shè)計(jì)出外圍硬件的原理圖,將理論和實(shí)踐結(jié)合起來(lái)。關(guān)鍵詞:漢明碼 譯碼器 FPGAVerilog語(yǔ)言 QuartusIIABSTRACTIn digital communication systems, digital signal during transmission is easy to be disturbed, resulting in destruction of the symbol waveform, so that the receiver receives the signal error oc

4、curred judgment. In order toimprove the accuracy of information, we introduce error controltechniques.Thetechnology usesareliable and effective methodof channel codingtoachieve.Hamming code is a kind of code which is able to correct errors. Hamming code codes is one kind of the most commonly used de

5、vices in digital communications, which is widely used in network transmission, memory parity error correction and data security. The design of Hamming code codec in this project, this passage realized decode of hamming with language of verilog. Based on the theory of introduction of decode of hammin

6、g, this passage designed decoder of hamming. The source program wad written by verilog language. The soft of QuartusIIsimulated and tested the program.It requires basic theoretical knowledge of hamming code, and learn how to use the simulation and debugging software QuartusII as well as the hardware

7、 description language Verilog,and understand the various features of Hamming codes to master the peinciple of coding and decoding, then to understand and analyze,design its algorithm implementation, and complete the Verilog language programming and simulation on FPGA-based software QuartusII; in the

8、 meantime, according to its requirement, select a FPGA chip and external components, finally create the hardware entity, combine the theory with practice.Keywords:HammingDecoderFPGAVerilog languageQuartusII 目 錄TOC o 1-3 h z uHYPERLINK l _Toc2961125071 前言1HYPERLINK l _Toc2961125081.1 選題背景1HYPERLINK l

9、 _Toc2961125091.2 本課題的研究意義2HYPERLINK l _Toc2961125101.3 本課題研究目標(biāo)與主要任務(wù)2HYPERLINK l _Toc2961125111.4 本課題可行性分析3HYPERLINK l _Toc2961125232EDA的基礎(chǔ)知識(shí)與集成運(yùn)行環(huán)境4HYPERLINK l _Toc2961125242.1 EDA概念4HYPERLINK l _Toc2961125252.2 Quartus的軟件介紹5HYPERLINK l _Toc2961125262.3 Verilog的簡(jiǎn)介8HYPERLINK l _Toc2961125162.3.1 Ver

10、ilog的主要功能10HYPERLINK l _Toc2961125172.3.2 Verilog的基礎(chǔ)語(yǔ)法10HYPERLINK l _Toc2961125172.3.3 Verilog的語(yǔ)言優(yōu)勢(shì)13HYPERLINK l _Toc2961125133 FPGA的簡(jiǎn)介14HYPERLINK l _Toc2961125143.1 FPGA的發(fā)展歷程14HYPERLINK l _Toc2961125153.2 FPGA的產(chǎn)品特性與發(fā)展現(xiàn)狀14HYPERLINK l _Toc2961125183.3 FPGA的發(fā)展趨勢(shì)15HYPERLINK l _Toc2961125183.4FPGA的硬件介紹1

11、7HYPERLINK l _Toc2961125274 漢明碼譯碼系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)19HYPERLINK l _Toc2961125284.1 漢明碼的原理19HYPERLINK l _Toc2961125374.1.1 漢明碼的定義19HYPERLINK l _Toc2961125374.1.2漢明碼的監(jiān)督矩陣H21HYPERLINK l _Toc2961125374.1.3漢明碼的生成矩陣G22HYPERLINK l _Toc2961125374.1.4漢明碼的校正子(伴隨式)S22HYPERLINK l _Toc2961125294.2漢明碼的譯碼器設(shè)計(jì)24HYPERLINK l _T

12、oc2961125304.2.1 譯碼器的流程圖設(shè)計(jì)25HYPERLINK l _Toc2961125314.2.2 譯碼器的代碼設(shè)計(jì)25HYPERLINK l _Toc2961125324.2.3 譯碼器的仿真,調(diào)試與分析27HYPERLINK l _Toc2961125294.3基于FPGA的漢明碼譯碼器硬件設(shè)計(jì)30HYPERLINK l _Toc296112549結(jié)論32HYPERLINK l _Toc296112550辭33HYPERLINK l _Toc296112551參考文獻(xiàn)34HYPERLINK l _Toc296112549附錄351 前 言1.1 選題的背景隨著現(xiàn)代通信技術(shù)

13、的迅速發(fā)展,其應(yīng)用的領(lǐng)域已滲入到社會(huì)生活的各個(gè)方面,用戶對(duì)通信系統(tǒng)的質(zhì)量和對(duì)通信系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃耘c有效性的要求也越來(lái)越高,通信系統(tǒng)需要具備更高的可靠性、高效率、低復(fù)雜性來(lái)適應(yīng)發(fā)展的需求4。通信的根本任務(wù)是傳遞信息,其中準(zhǔn)確地傳輸數(shù)字信號(hào)是數(shù)字通信的一個(gè)重要的環(huán)節(jié)。在實(shí)際應(yīng)用中,傳輸數(shù)據(jù)的無(wú)線信道是非常復(fù)雜的。在傳輸數(shù)字信號(hào)時(shí),由于信道的時(shí)變性、衰減性、帶寬資源有限性以與干擾大等特點(diǎn),再有加性噪聲的影響,這就導(dǎo)致接收端接收到的信息和發(fā)送端實(shí)際發(fā)送的信息之間存在一定的差錯(cuò),勢(shì)必會(huì)造成接收端接收到的信號(hào)存在一定的誤差,造成一定程度的失真。這時(shí)就需求我們?nèi)ふ乙环N辦法,能夠在確保通信系統(tǒng)的可靠性與

14、高效性的基礎(chǔ)上來(lái)減少數(shù)據(jù)傳輸過(guò)程中的誤比特率。信道編碼就是減少數(shù)字信號(hào)誤比特率的主要手段之一。信源發(fā)送設(shè)備傳輸媒介(信道)接收設(shè)備信宿干擾圖1-1 通訊系統(tǒng)的組成在實(shí)際的應(yīng)用中,衡量一個(gè)通信系統(tǒng)的優(yōu)劣,其中的有效性和可靠性是兩個(gè)最重要的指標(biāo),同時(shí)它們也是通信技術(shù)設(shè)計(jì)的重要組成部分。然而,從信息傳輸角度來(lái)考慮,既要提高通信系統(tǒng)的有效性(即傳輸速率),又要提高通信系統(tǒng)的可靠性,這樣往往是相互矛盾的。為了提高可靠性,可以在二進(jìn)制信息序列中以受控的方式引入一些冗余碼元(即監(jiān)督碼元),使他們滿足一定的約束關(guān)系,以期達(dá)到檢錯(cuò)和糾錯(cuò)的目的。但是,由于添加了冗余碼元(監(jiān)督碼元),導(dǎo)致傳輸信息的速率下降;同時(shí),

15、為了提高效率,信號(hào)以簡(jiǎn)潔、快速的方式傳輸,這樣在遭受到干擾和噪聲時(shí),其自我保護(hù)能力大大下降,從而降低了傳輸?shù)目煽啃浴S谑?,在?shí)際通信的應(yīng)用中,采取比較折中的方式,可在確??煽啃灾笜?biāo)達(dá)到系統(tǒng)要求的前提下,盡可能的提高傳輸速率1 ;抑或在滿足一定有效性的指標(biāo)下,盡量提高傳輸?shù)目煽啃浴Mㄐ偶夹g(shù)設(shè)計(jì)一直致力于提高信息傳輸?shù)挠行院涂煽啃?,其中保證通信的可靠性是現(xiàn)代數(shù)字通信系統(tǒng)需要解決的首要問(wèn)題。信道編碼技術(shù)正是用來(lái)改善通信可靠性問(wèn)題的主要技術(shù)手段之一。在實(shí)際應(yīng)用中,一個(gè)通信系統(tǒng)一般包含信道編碼和信道譯碼兩個(gè)模塊2 。 信道編碼的主要目的是為了降低誤比特率,提高數(shù)字通信的可靠性,其方法是在二進(jìn)制信息序列

16、中添加一些冗余碼元(監(jiān)督碼元),與信息碼元一起組成被傳輸?shù)拇a字。這些冗余碼元是以受控的方式引入,它們與信息碼元之間有著相互制約的關(guān)系。在信道中傳輸該碼字,如果錯(cuò)誤了發(fā)生,信息碼元和冗余碼元之間相互制約的關(guān)系就將會(huì)被破壞 1。那么,在接收端對(duì)接收到的信息序列按照既定的規(guī)則校驗(yàn)碼字各碼元間的約束關(guān)系,從而達(dá)到檢錯(cuò)、糾錯(cuò)的目的。通過(guò)信道編碼這種方法,能夠有效的在接收端克服信號(hào)在無(wú)線信道中傳輸時(shí)受到噪聲和干擾產(chǎn)生的影響。信道譯碼也就是信道編碼的逆過(guò)程,即接收端將接收信息序列按照既定約束關(guān)系,同時(shí)去掉比特流在傳播的過(guò)程中混入的噪聲干擾和添加的冗余,恢復(fù)為比較完整、可靠的信息的過(guò)程。信道編碼涉與到的容也十

17、分廣泛,前身糾錯(cuò)編碼(FEC)、線性分組碼(漢明碼、循環(huán)碼)、理德-所羅門碼(RS碼)、FIRE碼、交織碼、卷積碼、TCM編碼、Turbo碼等都是信道編碼的研究疇11。漢明碼是信道編碼比較好的選擇。漢明碼是漢明于1950年提出的,是具有糾正一位錯(cuò)誤能力的線性分組碼。漢明碼是在原編碼的基礎(chǔ)上附加一部分代碼,使其能滿足糾錯(cuò)碼的條件6。它的突出特點(diǎn)是:編譯碼電路簡(jiǎn)單,易于硬件的實(shí)現(xiàn);用軟件實(shí)現(xiàn)編譯碼算法時(shí),軟件的效率高;而且性能也比較好。由于漢明碼的抗干擾能力較強(qiáng),至今仍是應(yīng)用比較廣泛的一類碼。1.2 本課題的研究意義本次課程設(shè)計(jì)的任務(wù)就是基于FPGA,利用EDA的技術(shù)在Quartus II軟件下用

18、Verilog語(yǔ)言來(lái)實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)和仿真。漢明碼是一個(gè)在原有數(shù)據(jù)中插入若干校驗(yàn)碼來(lái)進(jìn)行錯(cuò)誤檢查和糾正的編碼技術(shù),在原編碼的基礎(chǔ)上附加了一部分代碼,使其滿足糾錯(cuò)碼的條件。漢明碼的編碼與譯碼是通信領(lǐng)域的一個(gè)重要研究容。與一般的編碼相比漢明碼具有比較高效率,同時(shí)也是分組碼的典型代表,是深入研究其他分組碼的基礎(chǔ),也是研究其他非分組碼(如循環(huán)碼)的基礎(chǔ)。EDA(Electronic Design Automation)技術(shù)是隨著集成電路和計(jì)算機(jī)技術(shù)飛速發(fā)展而應(yīng)運(yùn)而生的一種高級(jí)、快速、有效的電子設(shè)計(jì)自動(dòng)化工具17。EDA的主要特征是使用硬件描述語(yǔ)言Verilog來(lái)完成設(shè)計(jì),這在電子設(shè)計(jì)領(lǐng)域里受到廣

19、泛的接受。EDA技術(shù)的發(fā)展和推廣應(yīng)用,對(duì)高校電子技術(shù)課程的教學(xué)思想、教學(xué)方法和教學(xué)目標(biāo)產(chǎn)生了深遠(yuǎn)的影響,是電子、信息、通信、電氣等電類相關(guān)專業(yè)的基礎(chǔ)學(xué)科。本課題利用EDA來(lái)實(shí)現(xiàn),與實(shí)際聯(lián)系很大,對(duì)將來(lái)從事實(shí)際工作和相關(guān)研究具有很大幫助。同時(shí),選擇FPGA的芯片和外圍元器件,設(shè)計(jì)出硬件的原理圖,將理論和實(shí)踐結(jié)合起來(lái),對(duì)以后的實(shí)際工作提供很多的經(jīng)驗(yàn)。1.3 本課題研究目標(biāo)與主要任務(wù)(1)研究目標(biāo):本論文是基于FPGA的漢明碼譯碼器的設(shè)計(jì)。主要研究漢明碼編、譯碼的原理和方法,基于FPGA使用EDA開(kāi)發(fā)軟件Quartus II上實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)。通過(guò)對(duì)漢明碼的學(xué)習(xí),使用硬件描述語(yǔ)言Verilog

20、設(shè)計(jì)出了漢明碼的譯碼器,并且寫出了源程序,最后通過(guò)Quartus II軟件的仿真實(shí)現(xiàn)。滿足電路簡(jiǎn)單,成本低,開(kāi)發(fā)周期短,執(zhí)行速度高,升級(jí)方便等特點(diǎn)。(2)主要任務(wù):本次設(shè)計(jì)要求學(xué)會(huì)使用仿真調(diào)試軟件Quartus II和硬件描述語(yǔ)言Verilog,還要求學(xué)習(xí)漢明碼的理論知識(shí),了解漢明碼的各種特點(diǎn),掌握漢明碼的譯碼原理。通過(guò)分析設(shè)計(jì)出實(shí)現(xiàn)譯碼的算法,并且使用Verilog語(yǔ)言在Quartus II軟件里完成了基于FPGA的漢明碼譯碼器的編程和仿真實(shí)現(xiàn)。同時(shí)根據(jù)需要,選擇合適的FPGA的芯片和外圍元器件,設(shè)計(jì)外圍硬件的原理圖,將理論和實(shí)踐結(jié)合起來(lái)。1.4 本課題可行性的分析本課題以理論研究和實(shí)驗(yàn)分析

21、相結(jié)合的方式進(jìn)行。課題首先在理論上是可行的,漢明碼是1950年由漢明首先構(gòu)造的,目前漢明碼在中小型計(jì)算機(jī)中普遍采用,其技術(shù)已經(jīng)成熟。漢明碼接收碼組漢明碼譯碼器系統(tǒng)正確的漢明碼信息碼圖1-2 譯碼流程圖在實(shí)際操作方面,我們可以借鑒科學(xué)工作者已得出的結(jié)論,另外其跨專業(yè)的技術(shù)不多,所以也很少給設(shè)計(jì)帶來(lái)不便。在實(shí)際設(shè)計(jì)方面,我們可以利用學(xué)校的圖書資料和網(wǎng)上資源,利用EDA開(kāi)發(fā)軟件Quartus II,使用硬件描述語(yǔ)言Verilog來(lái)對(duì)漢明碼譯碼器進(jìn)行設(shè)計(jì),觀察其可行性,并對(duì)結(jié)果進(jìn)行分析。2 EDA的基礎(chǔ)知識(shí)與集成運(yùn)行環(huán)境HYPERLINK l _Toc2961125242.1 EDA概念EDA(Ele

22、ctronic Design Automation)即電子設(shè)計(jì)自動(dòng)化,是以微電子技術(shù)為物理層面,現(xiàn)代電子設(shè)計(jì)為靈魂,計(jì)算機(jī)軟件技術(shù)為手段,最終形成集成電子系統(tǒng)或?qū)S眉呻娐沸酒珹SIC(Application Specific Integrated Circuit)為目的的一門新興技術(shù)17。在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的?,F(xiàn)在對(duì)EDA的概念或圍用得很寬,包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用1。利用EDA工具,電子設(shè)計(jì)師可以從概念、算

23、法、協(xié)議等開(kāi)始設(shè)計(jì)電子系統(tǒng),大量的工作可以通過(guò)計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過(guò)程都在計(jì)算機(jī)上自動(dòng)處理完成。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門中廣泛使用。例如在飛機(jī)制造過(guò)程中,從設(shè)計(jì)、性能測(cè)試與特性分析直到飛行模擬,都可能涉與到EDA技術(shù)。本次畢業(yè)設(shè)計(jì)實(shí)現(xiàn)的核心技術(shù)即為EDA相關(guān)技術(shù)。本文所指的EDA技術(shù),主要針對(duì)電子電路設(shè)計(jì)、PCB設(shè)計(jì)和IC設(shè)計(jì)。EDA技術(shù)是現(xiàn)代電子設(shè)計(jì)技術(shù)的核心。EDA技術(shù)就是依靠功能強(qiáng)大的電子計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言(如Verilog)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成

24、邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化和仿真,直至下載到可編程邏輯器件CPLD/FPGA或?qū)S眉呻娐稟SIC芯片中,進(jìn)行特定芯片的適配編譯、邏輯映射和編程下載等工作,實(shí)現(xiàn)既定的電子電路設(shè)計(jì)功能。EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本設(shè)計(jì)方法是:設(shè)計(jì)人員按照“自頂向下”的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語(yǔ)言(HDL)完成系統(tǒng)行為級(jí)的設(shè)計(jì),最后通過(guò)綜合器和適配器來(lái)生成最終的目標(biāo)器件,這樣的設(shè)計(jì)方法被稱為高層次的電子設(shè)計(jì)方法7。EDA技術(shù)的優(yōu)勢(shì)15:(1)采用硬件描述語(yǔ)言,便于復(fù)雜的系統(tǒng)設(shè)計(jì)(2)擁有強(qiáng)大的

25、系統(tǒng)建模和電路仿真功能(3)擁有自主知識(shí)產(chǎn)權(quán)(4)開(kāi)發(fā)技術(shù)的標(biāo)準(zhǔn)化和規(guī)化(5)全方位地利用計(jì)算機(jī)的自動(dòng)設(shè)計(jì)、仿真和測(cè)試(6)對(duì)設(shè)計(jì)者的硬件知識(shí)和經(jīng)驗(yàn)要求低。EDA設(shè)計(jì)的實(shí)現(xiàn)目標(biāo):(1)印刷電路板設(shè)計(jì);(2)集成電路(IC或ASIC)設(shè)計(jì);(3)可編程邏輯器件(FPGA/CPLD)設(shè)計(jì);(4)混合電路設(shè)計(jì)。EDA設(shè)計(jì)的常用軟件和設(shè)計(jì)工具層出不窮,目前進(jìn)入我國(guó)并具有廣泛影響的EDA軟件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim

26、,ISE等等。這些工具都有較強(qiáng)的功能,一般可用于幾個(gè)方面,例如很多軟件都可以進(jìn)行電路設(shè)計(jì)與仿真,同進(jìn)還可以進(jìn)行PCB自動(dòng)布局布線,還可以輸出多種網(wǎng)表文件,與第三方軟件接口。EDA工具在EDA技術(shù)應(yīng)用中占據(jù)極其重要的位置,EDA的核心是利用計(jì)算機(jī)完成電子設(shè)計(jì)全過(guò)程自動(dòng)化,因此,基于計(jì)算機(jī)環(huán)境的EDA軟件的支持是必不可少的。EDA工具大致可以分為以下5個(gè)模塊:設(shè)計(jì)輸入編輯器;HDL綜合器;仿真器;適配器(或布局布線器);下載器7。當(dāng)然這種分類不是絕對(duì)的,現(xiàn)在往往把各EDA工具集成在一起,如MAX+PLUS、Quartus等。HYPERLINK l _Toc2961125252.2 Quartus的

27、軟件介紹Quartus是Altera公司提供的FPGA/CPLD集成開(kāi)發(fā)軟件,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。Quartus在21世初被推出,是Altera老一代FPGA/CPLD集成開(kāi)發(fā)軟件MAX+plus II的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在Quartus上可以完成設(shè)計(jì)輸入、布新布局(適配)、HDL綜合、仿真和選擇以與硬件測(cè)試等流程,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、處理和器件編程。 Quartus提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需求,也是單片機(jī)可編程系統(tǒng)(SoPC)設(shè)計(jì)的綜合環(huán)境和SoPC開(kāi)發(fā)的基本設(shè)計(jì)工具,并為A

28、ltera DSP開(kāi)發(fā)包運(yùn)行系統(tǒng)模型的設(shè)計(jì)提供了集成綜合環(huán)境。Quartus設(shè)計(jì)完全支持VHDL、Verilog的設(shè)計(jì)流程,其部嵌有VHDL、Verilog邏輯綜合器。Quartus可利用第三方的綜合工具(如Leonardo Spectrum、Synplify Pro、FPGA Complier II),并能直接調(diào)用這些工具。同時(shí),Quartus具備仿真功能,同時(shí)支持第三方的仿真工具(如Model Sin)。此外, Quartus與MATLAB和DSP Builder結(jié)合,可用于進(jìn)行基于FPAG的DSP系統(tǒng)開(kāi)發(fā)。 用Quartus II軟件進(jìn)行設(shè)計(jì)開(kāi)發(fā)的流程圖2-1所示:設(shè)計(jì)輸入編譯修改設(shè)計(jì)編

29、程下載仿真與定時(shí)分析在線測(cè)試圖2-1 Quartus II軟件設(shè)計(jì)開(kāi)發(fā)流程圖其開(kāi)發(fā)步驟為:(1)設(shè)計(jì)輸入:設(shè)計(jì)輸入就是設(shè)計(jì)者將所設(shè)計(jì)的電路或系統(tǒng)以開(kāi)發(fā)軟件要求的某種形式表達(dá)出來(lái),并送入計(jì)算機(jī)的過(guò)程。通常有原理圖輸入、HDL文本輸入、EDIF網(wǎng)表輸入、波形輸入等幾種輸入方式。(2)編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯方式和編譯策略,如器件的選擇、邏輯綜合方式的選擇等;然后根據(jù)設(shè)定的參數(shù)和策略對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合、器件適配,并產(chǎn)生報(bào)告文件、延時(shí)信息文件與編程文件,供分析、仿真和編程使用。(3)仿真與定時(shí)分析:仿真和定時(shí)分析均屬于設(shè)計(jì)校驗(yàn),其作用是測(cè)試設(shè)計(jì)的邏輯功能和延時(shí)特性。仿真包括功能仿真和

30、時(shí)序仿真。定時(shí)分析器可通過(guò)三種不同的分析模式分別對(duì)傳播延時(shí)、時(shí)序邏輯性能和建立或保持時(shí)間來(lái)進(jìn)行分析。(4)編程與驗(yàn)證:用得到的編程文件通過(guò)編程電纜配置PLD,加入實(shí)際激勵(lì),進(jìn)行在線測(cè)試。在測(cè)試過(guò)程中,會(huì)對(duì)包括語(yǔ)法檢查和設(shè)計(jì)規(guī)則檢查、邏輯綜合與化簡(jiǎn)、邏輯適配、布局與布線等工作進(jìn)行檢查,如果出現(xiàn)錯(cuò)誤,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重新測(cè)試。Quartus II軟件的工作環(huán)境如圖2-2所示:工具按鈕層次結(jié)構(gòu)顯示信息提示窗口工作區(qū)菜單欄圖2-2 Quartus II管理器窗口圖2-3 Quartus II工具欄表2-1 工具欄各按鈕的基本功能:建立一個(gè)新的圖形、文本、波形或是符號(hào)文件。

31、:打開(kāi)一個(gè)文件,啟動(dòng)相應(yīng)的編輯器。:保存當(dāng)前文件。:打印當(dāng)前文件或窗口容。:將選中的容剪切到剪貼板。:將選中的容復(fù)制到剪貼板。:粘貼剪貼板的容到當(dāng)前文件中。:撤銷上次的操作。:?jiǎn)螕舸税粹o后再單擊窗口的任何部位,將顯示相關(guān)幫助文檔。:打開(kāi)層次顯示窗口或?qū)⑵鋷е燎芭_(tái)。:打開(kāi)平面圖編輯器或?qū)⑵鋷е燎芭_(tái)。:打開(kāi)編譯器窗口或?qū)⑵鋷е燎芭_(tái)。:打開(kāi)仿真器窗口或?qū)⑵鋷е燎芭_(tái)。:打開(kāi)時(shí)序分析器窗口或?qū)⑵鋷е燎芭_(tái)。:打開(kāi)編程器窗口或?qū)⑵鋷е燎芭_(tái)。:指定工程名。:將工程名設(shè)置為和當(dāng)前文件名一樣。:打開(kāi)當(dāng)前工程的頂層設(shè)計(jì)文件或?qū)⑵鋷е燎芭_(tái)。:保存所有打開(kāi)的編譯器輸入文件,并檢查當(dāng)前工程的語(yǔ)法和其他基本錯(cuò)誤。:保存工程

32、所有打開(kāi)的設(shè)計(jì)文件,并啟動(dòng)編譯器。:保存工程所有打開(kāi)的仿真器輸入文件,并啟動(dòng)仿真器。圖2-4 Quartus II編輯輸入原理圖界面Quartus II 的優(yōu)點(diǎn):該軟件界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,是先進(jìn)的EDA工具軟件。該軟件具有開(kāi)放性、與結(jié)構(gòu)無(wú)關(guān)、多平臺(tái)、完全集成化、豐富的設(shè)計(jì)庫(kù)、模塊化工具等特點(diǎn),支持原理圖、VHDL、Verilog HDL以與AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,部嵌有綜合器以與仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。Quartus II可以在XP、

33、Linux以與Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)外,還提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II對(duì)軟硬器件的支持: Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列等,支持MAX7000/MAX3000等乘積項(xiàng)器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/Mega

34、 Function宏功能模塊庫(kù),用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。此外,Quartus II 通過(guò)和DSP Builder工具與Matlab和Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開(kāi)發(fā),系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開(kāi)發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開(kāi)發(fā)平臺(tái)。Quartus II對(duì)第三方EDA工具的支持:對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開(kāi)發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,

35、其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、Exemplar Logic、Mentor Graphics、Synopsys和Synplicity等EDA供應(yīng)商的開(kāi)發(fā)工具相兼容。改進(jìn)了軟件的Logic Lock模塊設(shè)計(jì)功能,增添了Fast Fit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,并且提升了調(diào)試能力。QuartusII設(shè)計(jì)軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,可以很輕松地滿足特定設(shè)計(jì)的需要。它是可編程片上系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境,擁有FPGA和CPLD設(shè)計(jì)的所有階段的解決方案。與其它EDA軟件相比較Quartus II軟件的特點(diǎn)主要包括:(1)可利用原理圖、結(jié)構(gòu)框圖

36、、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件。(2)芯片(電路)平面布局連線編輯。(3)Logic Lock增量設(shè)計(jì)方法,使用戶可建立并優(yōu)化系統(tǒng),然后添加對(duì)原始系統(tǒng)的性能影響較小或無(wú)影響的后續(xù)模塊。(4)功能強(qiáng)大的邏輯綜合工具。(5)完備的電路功能仿真與時(shí)序邏輯分析。(6)定時(shí)和時(shí)序分析與關(guān)鍵路徑延時(shí)分析。(7)使用Signal Tap II邏輯分析工具進(jìn)行嵌入式的邏輯分析。(8)支持軟件源文件的添加和創(chuàng)建,并將它們起來(lái)生成編程文件。(9)使用組合編譯方式可一次完成整體設(shè)計(jì)流程。(10)自動(dòng)定位編譯的錯(cuò)誤。(11)高效的編程與驗(yàn)證工具。(12)可讀入標(biāo)準(zhǔn)的E

37、DIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。(13)能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。HYPERLINK l _Toc2961125262.3 Verilog的簡(jiǎn)介QuartusII設(shè)計(jì)軟件經(jīng)常使用VerilogHDL和VHDL這兩種硬件描述語(yǔ)言來(lái)進(jìn)行設(shè)計(jì),同時(shí)VerilogHDL和VHDL也是目前世界上最流行的兩種硬件描述語(yǔ)言(HDL:HardwareDescriptionLanguage),均為IEEE標(biāo)準(zhǔn),被廣泛地應(yīng)用于基于可編程邏輯器件的項(xiàng)目開(kāi)發(fā)。二者都是在20世紀(jì)80年代中期開(kāi)發(fā)出來(lái)的,前者由GatewayDesignAutomati

38、on公司(該公司于1989年被Cadence公司收購(gòu))開(kāi)發(fā),后者由美國(guó)軍方所研發(fā)。Verilog HDL是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首創(chuàng)的,最初只是設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開(kāi)發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorby推出它的第三個(gè)商用仿真器Verilog-XL,獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣和應(yīng)用。1989年CADENCE公司收購(gòu)了GDA公司,使得Verilog HDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開(kāi)發(fā)表了Verilog HDL,并成立LV

39、I組織以促進(jìn)Verilog HDL成為IEEE標(biāo)準(zhǔn),即IEEE Standard 1364-1995。Verilog HDL在語(yǔ)言描述風(fēng)格上傳承了上一代硬件描述語(yǔ)言的解釋風(fēng)格,所以描述的器件在編譯和綜合時(shí)適應(yīng)能力強(qiáng),系統(tǒng)可以自動(dòng)優(yōu)化。雖然對(duì)應(yīng)語(yǔ)言的解讀性能較弱,但是仿真以后的糾錯(cuò)能力強(qiáng)。Verilog HDL在模型上注重結(jié)構(gòu)和數(shù)據(jù)的解釋,所以得到EDA生產(chǎn)廠商的喜愛(ài),Verilog HDL成為了一種開(kāi)放的商業(yè)EDA語(yǔ)言。Verilog HDL既是一種行為描述的語(yǔ)言也是一種結(jié)構(gòu)描述的語(yǔ)言。這也就是說(shuō),既可以用電路的功能描述也可以用元器件和它們之間的連接來(lái)建立所設(shè)計(jì)電路的Verilog HDL模型

40、。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類型共有以下五種:(1)系統(tǒng)級(jí)(system):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。(2)算法級(jí)(algorithm):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。(3)RTL級(jí)(Register Transfer Level):描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。(4)門級(jí)(gate-level):描述邏輯門以與邏輯門之間的連接的模型。(5)開(kāi)關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以與它們之間連接的模型。VerilogHDL常用于從算法級(jí)、門級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系

41、統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在一樣描述中顯示進(jìn)行時(shí)序建模14。VerilogHDL語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以與包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語(yǔ)言。此外,VerilogHDL語(yǔ)言提供了編程語(yǔ)言接口,通過(guò)該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問(wèn)設(shè)計(jì),包括模擬的具體控制和運(yùn)行。VerilogHDL語(yǔ)言不僅定義了語(yǔ)法,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的模擬、仿真語(yǔ)義。因此,用這種語(yǔ)言編寫的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語(yǔ)言從C編

42、程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,VerilogHDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)已經(jīng)足夠了。HYPERLINK l _Toc2961125162.3.1 Verilog的主要功能作為一種硬件描述語(yǔ)言,Verilog HDL可以直接描述硬件結(jié)構(gòu),也可以通過(guò)描述系統(tǒng)行為來(lái)實(shí)現(xiàn)建模。Verilog HDL的主要特點(diǎn)和功能有以下幾點(diǎn):(1) 描述基本邏輯門,如and、or等基本邏輯門都置在語(yǔ)言中,可以直接調(diào)用。(2) 描述基本開(kāi)關(guān)模型,如nmos、pmos和coms等基本開(kāi)關(guān)都可以直接調(diào)用。(3) 允

43、許用戶定義基元(UDP),這種方式靈活有效,用戶定義的基元既可以是組合邏輯也可以是時(shí)序邏輯。(4) Verilog HDL中有兩種數(shù)據(jù)類型,線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件。(5) 能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。(6) 設(shè)計(jì)的規(guī)??梢允侨我獾模Z(yǔ)言不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制。(7) Verilog HDL語(yǔ)言的描述能力可以通過(guò)使用編程接口(PLI)進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問(wèn)Verilog HDL模塊信息,允許設(shè)計(jì)者與模擬器交互的例程集合。(8) 設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開(kāi)關(guān)級(jí)、門級(jí)、寄存

44、器傳送級(jí)(RTL)到算法級(jí),報(bào)括進(jìn)程和隊(duì)列級(jí)。(9) 能夠使用置開(kāi)關(guān)級(jí)原語(yǔ),在開(kāi)關(guān)級(jí)對(duì)設(shè)計(jì)進(jìn)行完整建模。(10) 同一語(yǔ)言可用于生成模擬激勵(lì)和指定測(cè)試的驗(yàn)證的約束條件。(11) Verilog HDL不僅能夠在RTL上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)和算法級(jí)的行為上進(jìn)行設(shè)計(jì)描述。(12) 能夠使用門和模塊實(shí)例化語(yǔ)句在結(jié)構(gòu)級(jí)上進(jìn)行結(jié)構(gòu)描述。(13) Verilog HDL具有混合方式建模的能力,即設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。(14) Verilog HDL具有置算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。(15) 用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。(16) 通過(guò)命名的事件

45、來(lái)觸發(fā)其它過(guò)程里的激活行為或停止行為。(17) 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu),并且提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。HYPERLINK l _Toc2961125172.3.2 Verilog的基礎(chǔ)語(yǔ)法Verilog的設(shè)計(jì)初衷是成為一種基本語(yǔ)法與C語(yǔ)言相近的硬件描述語(yǔ)言。這是因?yàn)镃語(yǔ)言在Verilog設(shè)計(jì)之初,已經(jīng)在許多領(lǐng)域中得到廣泛應(yīng)用,C語(yǔ)言的許多語(yǔ)言要素已經(jīng)被許多人所習(xí)慣。一種與C語(yǔ)言相似的硬件描述語(yǔ)言,可以讓電路設(shè)計(jì)人員更容易學(xué)習(xí)和接受。不過(guò),Verilog與C語(yǔ)言還是存在許多差別。另外,作為一種與普通計(jì)算機(jī)編程語(yǔ)言不同的硬件描述語(yǔ)言,它還具有一些獨(dú)特的語(yǔ)言要素

46、,例如向量形式的線網(wǎng)和寄存器、過(guò)程中的非阻塞賦值等??偟膩?lái)說(shuō),具備C語(yǔ)言的設(shè)計(jì)人員將能夠很快掌握 7。Verilog的基本設(shè)計(jì)單元是“模塊”(block)。一個(gè)模塊是由兩部分組成:一部分描述接口信息,另一部分描述邏輯功能,即定義輸入是如何影響輸出的。根據(jù)常見(jiàn)的VerilogHDL程序可以總結(jié)出以下特征14:(1) VerilogHDL程序是由模塊所構(gòu)成的。每個(gè)模塊的容都是嵌在module和 endmodule這兩個(gè)語(yǔ)句之間的,每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。(2) 每個(gè)模塊首先要進(jìn)行端口定義,并說(shuō)明輸入(input)和輸出(output),然后對(duì)模塊的功能進(jìn)行邏輯描述。(3)

47、 VerilogHDL程序的書寫格式自由,一行可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分多行寫。(4) 除了endmodule語(yǔ)句外,每個(gè)語(yǔ)句的最后必須要加分號(hào)。(5) 可以用/* */和/ / 對(duì)Verilog HDL程序的任何部分作注釋。由此我們可以得出VerilogHDL語(yǔ)言的基礎(chǔ)語(yǔ)法有以下幾點(diǎn)14:首先,VerilogHDL程序是由模塊構(gòu)成的。VerilogHDL結(jié)構(gòu)完全嵌在module和endmodule聲明語(yǔ)句之間,每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。每個(gè)Verilog程序包括4個(gè)主要部分:端口定義,I/0說(shuō)明,信號(hào)類型聲明和功能描述。在編寫VerilogHDL程序時(shí)還需要常量

48、,參數(shù)(Parameter)型和變量。在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量。參數(shù)型數(shù)據(jù)是一種常數(shù)型的數(shù)據(jù),用參數(shù)來(lái)定義常量,即用參數(shù)來(lái)定義一個(gè)標(biāo)識(shí)符代表一個(gè)常量,稱為符號(hào)常量。采用標(biāo)識(shí)符來(lái)代表一個(gè)常量,這樣可提高程序的可讀性和可維護(hù)性。參數(shù)型常數(shù)經(jīng)常用于定義延遲時(shí)間和變量寬度。變量是在程序運(yùn)行過(guò)程中其值是可以改變的量,在Verilog HDL中變量的數(shù)據(jù)類型有很多種,我們這里主要介紹三種:wire型變量、reg型變量和memory型變量。wire型表示結(jié)構(gòu)(例如門)之間的物理連接。wire型的變量不能儲(chǔ)存值,而且它必須受到驅(qū)動(dòng)器或連續(xù)賦值語(yǔ)句assign 的驅(qū)動(dòng)。如果沒(méi)有驅(qū)動(dòng)器連接到w

49、ire型變量上,則該變量就是高阻態(tài)。wire型數(shù)據(jù)常用來(lái)表示以assign關(guān)鍵字指定的組合邏輯信號(hào)。Verilog程序模塊中輸入輸出信號(hào)類型缺省時(shí)將自動(dòng)定義為wire型。wire型信號(hào)可以用作任何方程式的輸入,也可以用作“assign”語(yǔ)句或?qū)嵗妮敵?。reg型是寄存器數(shù)據(jù)類型的關(guān)鍵字。寄存器是數(shù)據(jù)儲(chǔ)存單元的抽象。通過(guò)賦值語(yǔ)句可以改變寄存器的值,其作用相當(dāng)于改變觸發(fā)器存儲(chǔ)器的值。reg型數(shù)據(jù)常用來(lái)表示always模塊的指定信號(hào),常代表觸發(fā)器。reg類型數(shù)據(jù)的缺省初始值為不定值x。memory型是通過(guò)擴(kuò)展reg型數(shù)據(jù)的地址圍來(lái)生成的。由于Verilog HDL通過(guò)對(duì)reg型變量建立數(shù)組來(lái)對(duì)存

50、儲(chǔ)器建模,可以描述RAM型存儲(chǔ)器,ROM存儲(chǔ)器和reg文件。數(shù)組中的每一個(gè)單元通過(guò)一個(gè)數(shù)組索引進(jìn)行尋址。但在Verilog語(yǔ)言中沒(méi)有多維數(shù)組存在,所以就需要memory型來(lái)生成。其次,在編寫VerilogHDL程序是還需要各種的運(yùn)算符。有算術(shù)運(yùn)算符(+,%等),位運(yùn)算符(&, 等),邏輯運(yùn)算符(&,| 等),關(guān)系運(yùn)算符( 等),等式運(yùn)算符(= =,!= 等),移位運(yùn)算符( 等),位拼接運(yùn)算符,縮減運(yùn)算符等14。在程序編寫的公式中如果用到多個(gè)運(yùn)算符,這時(shí)就需要按照每種運(yùn)算符的優(yōu)先級(jí)順序來(lái)進(jìn)行運(yùn)算。每種運(yùn)算符的優(yōu)先級(jí)別各不一樣,優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí)。其中邏輯非運(yùn)算符的優(yōu)先

51、級(jí)最高,邏輯或運(yùn)算符的優(yōu)先級(jí)最低。下表為各運(yùn)算符的優(yōu)先級(jí)別:! / %+ = = ! = = = = ! = =& |&| |高低優(yōu)先級(jí)別圖2-5 各運(yùn)算符的優(yōu)先級(jí)別最后,在編寫VerilogHDL程序是還需要各種的語(yǔ)句。(1)賦值語(yǔ)句有兩種,一種是非阻塞賦值(non_blocking)(如),同一個(gè)always塊的賦值語(yǔ)句操作可以同時(shí)進(jìn)行,只有塊結(jié)束后才完成賦值操作,b的值不會(huì)立即改變。還有一種是阻塞賦值(blocking)(如b=a),同一block,后一語(yǔ)句的執(zhí)行必須等到前一語(yǔ)句執(zhí)行完才能執(zhí)行,賦值語(yǔ)句執(zhí)行完后,塊才結(jié)束,b的值在賦值語(yǔ)句執(zhí)行完后立刻就改變。(2)條件語(yǔ)句常用的也是兩種,

52、一種是if-else語(yǔ)句,if語(yǔ)句用來(lái)判定所給的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行運(yùn)行的結(jié)果。if語(yǔ)句的表達(dá)式一般是邏輯表達(dá)式或關(guān)系表達(dá)式。另一種是case語(yǔ)句。case語(yǔ)句是一種多分支語(yǔ)句,可直接處理多分支選擇。(3)循環(huán)語(yǔ)句常用的有四種。forever語(yǔ)句是可以連續(xù)執(zhí)行的循環(huán)語(yǔ)句;repeat語(yǔ)句是可以連續(xù)執(zhí)行一條語(yǔ)句n次;while語(yǔ)句是執(zhí)行一條語(yǔ)句直到某個(gè)條件不滿足。如果一開(kāi)始條件就不滿足(為假),則語(yǔ)句一次也不能被執(zhí)行;for語(yǔ)句需要三個(gè)步驟來(lái)完成循環(huán),第一步是先給控制循環(huán)次數(shù)的變量賦初值,第二步是判定控制循環(huán)的表達(dá)式的值,如為假就跳出循環(huán)語(yǔ)句,如為真則執(zhí)行指定的語(yǔ)句后,

53、進(jìn)行第三步,第三步是執(zhí)行一條賦值語(yǔ)句來(lái)修正控制循環(huán)變量次數(shù)的變量的值,然后回到第二步繼續(xù)運(yùn)行。(4)結(jié)構(gòu)說(shuō)明語(yǔ)句常用的有四種。initial語(yǔ)句是仿真開(kāi)始時(shí)對(duì)各變量進(jìn)行初始化,只執(zhí)行一次;always語(yǔ)句在仿真過(guò)程中不斷重復(fù)執(zhí)行,但always后面跟著的過(guò)程塊是否執(zhí)行,就要看它的觸發(fā)條件是否滿足了;task和function說(shuō)明語(yǔ)句分別用來(lái)定義任務(wù)和函數(shù),利用任務(wù)和函數(shù)可以把一個(gè)很大的程序模塊分解成許多小的任務(wù)和函數(shù)便于理解和調(diào)試14。HYPERLINK l _Toc2961125172.3.3Verilog的語(yǔ)言優(yōu)勢(shì)Verilog HDL推出已經(jīng)有20年了,擁有廣泛的設(shè)計(jì)群體,成熟的資源也比

54、其他語(yǔ)言豐富。Verilog更大的一個(gè)優(yōu)勢(shì)是,它非常容易掌握,只要有C語(yǔ)言的編程基礎(chǔ),通過(guò)比較短的時(shí)間,經(jīng)過(guò)一些實(shí)際的操作就可以在23個(gè)月掌握這種語(yǔ)言。而其他語(yǔ)言設(shè)計(jì)相對(duì)要難一點(diǎn),像VHDL語(yǔ)言,它不是很直觀,需要有Ada編程基礎(chǔ),至少需要半年以上的專業(yè)培訓(xùn)才能掌握。還有Verilog HDL允許對(duì)同一個(gè)電路進(jìn)行不同抽象層次的描述,包括開(kāi)關(guān)級(jí)、門級(jí)、RTL級(jí)或者行為級(jí)描述電路;Verilog HDL不僅可以設(shè)計(jì)電路,也可以描述電路的激勵(lì),用于電路的驗(yàn)證;Verilog HDL是IEEE標(biāo)準(zhǔn),得到絕大多數(shù)EDA工具的支持;Verilog HDL設(shè)計(jì)具有工藝無(wú)關(guān)性,適合綜合設(shè)計(jì);有大量的單元庫(kù)資源

55、;Verilog HDL類似編程,有利于開(kāi)發(fā)調(diào)試,在設(shè)計(jì)前期就可以完成電路功能驗(yàn)證,減少費(fèi)用和時(shí)間;Verilog HDL與C語(yǔ)言有PLI接口,設(shè)計(jì)者可以通過(guò)編寫增加的C語(yǔ)言代碼來(lái)訪問(wèn)Verilog部數(shù)據(jù)結(jié)構(gòu),擴(kuò)展語(yǔ)言的功能等。通過(guò)Verilog HDL和VHDL比較來(lái)看出Verilog語(yǔ)言的優(yōu)勢(shì)。目前版本的Verilog HDL和VHDL在行為級(jí)抽象建模的覆蓋面圍方面有所不同。一般認(rèn)為Verilog在系統(tǒng)級(jí)抽象方面要比VHDL略差一些,但在門級(jí)開(kāi)關(guān)電路描述方面要強(qiáng)的多。目前在美國(guó),高層次數(shù)字系統(tǒng)設(shè)計(jì)領(lǐng)域中,應(yīng)用Verilog和VHDL的比率分別是80和20;日本和與美國(guó)差不多;但在歐洲VHD

56、L發(fā)展的比較好。在中國(guó)很多集成電路設(shè)計(jì)公司都采用Verilog,但VHDL也有一定的市場(chǎng)??偟膩?lái)說(shuō),采用Verilog HDL設(shè)計(jì)時(shí)具有以下優(yōu)點(diǎn)8:(1)設(shè)計(jì)者可以在非常抽象的層次上對(duì)線路進(jìn)行描述而不必選擇特定的制造工藝。邏輯綜合工具可以將設(shè)計(jì)自動(dòng)轉(zhuǎn)換成任意一種制造工藝版圖。如果出現(xiàn)新的制造工藝,也不必對(duì)電路重新設(shè)計(jì),只要將RTL級(jí)描述輸入綜合工具,即可生成針對(duì)新的門級(jí)網(wǎng)表。這種設(shè)計(jì)使得工程師在功能設(shè)計(jì)、邏輯驗(yàn)證階段,可以不必過(guò)多得考慮門級(jí)與工藝實(shí)現(xiàn)的具體細(xì)節(jié),只需要利用系統(tǒng)設(shè)計(jì)時(shí)對(duì)芯片的要求,施加不同的約束條件即可。(2)設(shè)計(jì)者可以在設(shè)計(jì)周期的早期對(duì)電路的功能進(jìn)行仿真驗(yàn)證??梢院苋菀椎膶?duì)RT

57、L級(jí)描述進(jìn)行優(yōu)化和修改,這樣可以在初期發(fā)現(xiàn)和排除絕大多數(shù)的設(shè)計(jì)錯(cuò)誤,大大降低了在設(shè)計(jì)后期的門級(jí)網(wǎng)表和版圖上出錯(cuò)的可能性,避免設(shè)計(jì)過(guò)程的反復(fù),縮短了設(shè)計(jì)周期。(3)使用Verilog進(jìn)行編寫程序,帶有文字注釋的源程序非常方便修改。與門級(jí)電路圖相比,能夠?qū)﹄娐愤M(jìn)行更加簡(jiǎn)明扼要的描述。更加便于理解。對(duì)于復(fù)雜的設(shè)計(jì),如果用門級(jí)原理圖來(lái)表達(dá),幾乎是無(wú)法理解的。(4)Verilog 是一種通用的硬件描述語(yǔ)言,易學(xué)易用。可以在不同抽象層次上對(duì)電路進(jìn)行描述。絕大多數(shù)流行的綜合工具都支持Verilog,所有的制造商也都提供Verilog綜合之后仿真的原件庫(kù)。 3 FPGA的簡(jiǎn)介HYPERLINK l _Toc2

58、961125143.1FPGA的發(fā)展歷程FPGA并非是近幾年來(lái)才有的,F(xiàn)PGA一詞于1984年就已經(jīng)出現(xiàn),至今已經(jīng)超過(guò)20年以上的時(shí)間,不過(guò)過(guò)去十多年FPGA都未受到太多的重視,原因是FPGA的功耗用電、電路密度、頻率效能、電路成本等都不如ASIC,而在這十多年,F(xiàn)PGA多半只用在一些特殊的領(lǐng)域,例如芯片業(yè)者針對(duì)新產(chǎn)品測(cè)試市場(chǎng)反應(yīng),即便初期產(chǎn)品未能達(dá)到量產(chǎn)規(guī)模,也能先以FPGA制成產(chǎn)品進(jìn)行測(cè)試。 有些芯片設(shè)計(jì)公司承接了一些小型的設(shè)計(jì)項(xiàng)目,在量產(chǎn)規(guī)模不足的情況下也一樣使用FPGA,或如政府、軍方的特殊要求,不期望使用開(kāi)放的芯片與電路,也會(huì)傾向使用FPGA。不過(guò)如前所述的,在愈來(lái)愈多芯片無(wú)法用開(kāi)設(shè)

59、掩膜的模式生產(chǎn)后,這些芯片又想上市,就只好以FPGA模式來(lái)生產(chǎn)。所幸FPGA也受益于摩爾定律,在工藝技術(shù)不斷的提升下,晶體管愈來(lái)愈縮密化,原本相較ASIC遜色的電路密度過(guò)低、頻率效能過(guò)低、電路成本過(guò)高等問(wèn)題,在新一代FPGA上,早已拉近與ASIC間的表現(xiàn)差距。 正因如此,近年來(lái)FPGA不斷搶食ASIC市場(chǎng),迫使ASIC業(yè)者不得不推出策略因應(yīng),最顯著的策略就是提出結(jié)構(gòu)化ASIC(Structured ASIC),或者也稱為平臺(tái)化ASIC(Platform ASIC),結(jié)構(gòu)化/平臺(tái)化ASIC,期望通過(guò)減少重新開(kāi)設(shè)的掩膜數(shù)、減少電路修改成本與時(shí)間,使芯片可以更早上市。但結(jié)構(gòu)化和平臺(tái)化ASIC只是減少

60、重開(kāi)掩膜的數(shù),并不能完全免除掩膜的使用,加上配套的設(shè)計(jì)工具(EDA)與已有數(shù)十年運(yùn)用的ASIC、FPGA相比,明顯不夠完備,后勢(shì)發(fā)展與市場(chǎng)接受度尚待時(shí)間考驗(yàn)。特別是LSI Logic(巨積科技)、NEC Electronics(NEC電子)等大廠紛紛退出后,結(jié)構(gòu)化ASIC的推行氣勢(shì)就更為薄弱9。 當(dāng)然,F(xiàn)PGA因?yàn)檠谀さ某杀九噬耘c摩爾定律而逐漸走俏,成本、效能等特性表現(xiàn)也逐漸改善,但依然有一點(diǎn)是FPGA持續(xù)低弱的,那就是功耗用電。就一般而言,要實(shí)現(xiàn)一樣的功效電路,用FPGA實(shí)現(xiàn)的功耗用電是ASIC的15倍之高。HYPERLINK l _Toc2961125153.2 FPGA的產(chǎn)品特性與發(fā)展

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論