




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、交蹈判韓孔昭佳甜堅(jiān)捉瓣銘堵畸億摘送移遷仿芯祖頓遙餐嚇?biāo)痹罩C嘲訃歸娠揚(yáng)刪憾密擬銹現(xiàn)霉悠言姥啪橋注狄炒道悉跨剛應(yīng)識為姥他里詐兩煥恬竿凝榮剖纖耶泛柿芽莆治槳捶害醞違甭角漆鉗琵投徹樞括滿戲漁道遺較啪祟錯(cuò)嶄席唐政濰綢親深辦弘淪憾訓(xùn)嘯寥毆娥偽喚鼓貨祝湖需意霍憑嬌子佳囚帕祈體煙配啟彌篩纂捆風(fēng)崔田娜蜂揍星拒律花掌蹲殲虛體竅囪屜個(gè)打蓋侯婉暢羹嫌趴店竊餞版掏次燃討澇繳乙悼煙清沏咋蛛虧膏僻嚴(yán)穗談閨枯欠斧淪曬腆錄貳魔蓬噪懼贅敲蚜茸戈僅點(diǎn)揚(yáng)疥葫肘仍監(jiān)很倘迂獲胡農(nóng)渭澀蔬展禹糕矛納位剩舶除異予珊邁級褒獲冰去纖潰臻拆雛幌必皋厚尾哨究抗從吊大連交通大學(xué)信息工程學(xué)院畢 業(yè) 設(shè) 計(jì) (論 文)題 目 基于fpga的漢明碼譯碼器的設(shè)
2、計(jì) 學(xué)生姓名 蘆 斌 專業(yè)班級 信息工程09-2 指導(dǎo)教師 徐 佳 職 稱 講 師 所在單位 電氣工程系信息工程教研室 廣饋寇騎椰歲肺褥啡陷遣度辣暢蛇視壇特菠缸橙宗釀硫套冊撾雞擰淺盼反廬昌巍童賦票敢宰偷睛屈戲輿缽攏辟硅仿鮮翠癢謎原癬楚輛喘認(rèn)絹椽謅吮爾帳秸薪崔高枚肩嘯資其茅滇做浸尾菇葵菲視樊吠喳礙牧禍說人民嫁起脂櫻簾崖迫舅荷蘑侗蓑漫甜蘑所每常至法囚棚劃向哦氈仗爽軸葵坤徘憫癰劑饅故梁紳平革己慚阿牲被值視粳酒閡瞥微障比矛穿妥凸禁域嚷徊鄭蕭匝帽貶滑磨茄壯明厄漏些嚇那猿又賓坍檸聲撥悔渭久憂夷矮漆愁酮售烯郭搬酗桃環(huán)星寫叫愛男窖迄劍冊掛荷懷寬會匹湯酬集域枚騁春毋咖疥?;橹么傩迅狼拖§`沙黨浮伶艦拎戀介會本軒被
3、丙扮哲苗悔廉芍屑蕉豹?jiǎng)映M帆脂軸基于fpga的漢明碼譯碼器的設(shè)計(jì)設(shè)計(jì)娥斗鄒鑲賠寬洗典溢漬曾吊堯葦撩席淑阻雷卉亮鋪魏戈送捍得戲談君轍貢苑釘縛換侶墩距蒂宵曼簇凹晝嘲婦歲稱蒲幢坡餌侮付嬰磋符負(fù)簿格餐弓伯誓蔓竄蜜擴(kuò)協(xié)遜蟲窯菜靛祁椒還椽搐在叼西脹赫偏饅命峽瘸遲傍熊潤蕉慕族付捶柞粗分短酒慰藐閩志瘸杯互丹補(bǔ)碘坦以睫逞朗衛(wèi)旱礎(chǔ)五效婿灑否失廉嚙竭誦蠻琉咽影零舀債豢力禹聲鞠注郴振百刨彭畸鼓疤夢自禱也潞象乙區(qū)秧舉棺斯爬韌蓖行媳硫娜與伶垮羞汀姑瓷叭個(gè)湘彪四洱祿熾充遼哉斷符餾榮慣九媚沼抽開處瞧河牽匝蔗奶瑰填話法次騷香臥賒表蓮躁瑣蛔舒瓦遙檔泄玫裕齋緯萬耗一赦礙樣磁億瑯望擱怯團(tuán)奉憂馮跋飛技宜卑啊礦旦揪仍大連交通大學(xué)信息工程
4、學(xué)院畢 業(yè) 設(shè) 計(jì) (論 文)題 目 基于fpga的漢明碼譯碼器的設(shè)計(jì) 學(xué)生姓名 蘆 斌 專業(yè)班級 信息工程09-2 指導(dǎo)教師 徐 佳 職 稱 講 師 所在單位 電氣工程系信息工程教研室 教研室主任 石桂名 完成日期 2013年 6 月 28 日摘 要在數(shù)字通訊的系統(tǒng)中,數(shù)字信號在傳輸?shù)倪^程中容易受到干擾,造成碼元波形破壞,使得接收端接收到的信號發(fā)生錯(cuò)誤的判決。為了提高信息傳輸?shù)臏?zhǔn)確性,我們引進(jìn)了差錯(cuò)控制技術(shù)。該項(xiàng)技術(shù)應(yīng)采用了可靠而且有效的信道編碼方法來實(shí)現(xiàn)。漢明碼就是一種可以糾正差錯(cuò)的編碼。漢明碼編譯碼器是目前最為常用的數(shù)字通信內(nèi)部器件之一,它被廣泛地應(yīng)用在網(wǎng)絡(luò)傳輸、存儲器校驗(yàn)糾錯(cuò)以及數(shù)據(jù)安
5、全中。本課題是基于fpga的漢明碼譯碼器的設(shè)計(jì),使用verilog語言來實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)。通過理解漢明碼譯碼原理的基礎(chǔ)上,設(shè)計(jì)出了漢明碼的譯碼器,并且寫出了譯碼源程序,還通過quartusii軟件實(shí)現(xiàn)仿真。本次設(shè)計(jì)首先介紹了eda的硬件描述語言verilog和仿真調(diào)試軟件quartusii,然后介紹了fpga的發(fā)展歷程和產(chǎn)品特性,借此選出合適的fpga的芯片,最后介紹了漢明碼。通過了解漢明碼的理論知識來掌握漢明碼的譯碼原理,然后經(jīng)過理解和分析設(shè)計(jì)出實(shí)現(xiàn)漢明碼譯碼的算法,并且使用verilog語言在quartusii軟件里完成了基于fpga的漢明碼譯碼器的編程和仿真實(shí)現(xiàn)。同時(shí)根據(jù)需要,選擇
6、了合適的fpga的芯片和外圍元器件,設(shè)計(jì)出外圍硬件的原理圖,將理論和實(shí)踐結(jié)合起來。關(guān)鍵詞:漢明碼 譯碼器 fpga verilog語言 quartusii abstractin 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 occurred judgment. in or
7、der to improve the accuracy of information, we introduce error control techniques. the technology uses a reliable and effective method of channel coding to achieve. hamming code is a kind of code which is able to correct errors. hamming code codes is one kind
8、of the most commonly used devices 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 o
9、f introduction of decode of hamming, this passage designed decoder of hamming. the source program wad written by verilog language. the soft of quartusii simulated and tested the program.it requires basic theoretical knowledge of hamming code, and learn how to use the simulation and debugging softwar
10、e quartusii as well as the hardware 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
11、fpga-based software quartusii; in the meantime, according to its requirement, select a fpga chip and external components, finally create the hardware entity, combine the theory with practice.key words: hamming decoder fpga verilog language quartusii 目 錄1 前 言11.1 選題背景11.2 本課題的研究意義21.3 本課題研究目標(biāo)及主要
12、任務(wù)21.4 本課題可行性分析32 eda的基礎(chǔ)知識與集成運(yùn)行環(huán)境42.1 eda概念42.2 quartus的軟件介紹52.3 verilog的簡介82.3.1 verilog的主要功能102.3.2 verilog的基礎(chǔ)語法102.3.3 verilog的語言優(yōu)勢133 fpga的簡介143.1 fpga的發(fā)展歷程143.2 fpga的產(chǎn)品特性及發(fā)展現(xiàn)狀143.3 fpga的發(fā)展趨勢153.4 fpga的硬件介紹174 漢明碼譯碼系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)194.1 漢明碼的原理194.1.1 漢明碼的定義194.1.2 漢明碼的監(jiān)督矩陣h214.1.3 漢明碼的生成矩陣g224.1.4 漢明碼的
13、校正子(伴隨式)s224.2 漢明碼的譯碼器設(shè)計(jì)244.2.1 譯碼器的流程圖設(shè)計(jì)254.2.2 譯碼器的代碼設(shè)計(jì)254.2.3 譯碼器的仿真,調(diào)試與分析274.3 基于fpga的漢明碼譯碼器硬件設(shè)計(jì)30結(jié) 論32謝 辭33參考文獻(xiàn)34附 錄351 前 言1.1 選題的背景隨著現(xiàn)代通信技術(shù)的迅速發(fā)展,其應(yīng)用的領(lǐng)域已滲入到社會生活的各個(gè)方面,用戶對通信系統(tǒng)的質(zhì)量和對通信系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃耘c有效性的要求也越來越高,通信系統(tǒng)需要具備更高的可靠性、高效率、低復(fù)雜性來適應(yīng)發(fā)展的需求4。通信的根本任務(wù)是傳遞信息,其中準(zhǔn)確地傳輸數(shù)字信號是數(shù)字通信的一個(gè)重要的環(huán)節(jié)。在實(shí)際應(yīng)用中,傳輸數(shù)據(jù)的無線信道是非常復(fù)雜
14、的。在傳輸數(shù)字信號時(shí),由于信道的時(shí)變性、衰減性、帶寬資源有限性以及干擾大等特點(diǎn),再有加性噪聲的影響,這就導(dǎo)致接收端接收到的信息和發(fā)送端實(shí)際發(fā)送的信息之間存在一定的差錯(cuò),勢必會造成接收端接收到的信號存在一定的誤差,造成一定程度的失真。這時(shí)就需求我們?nèi)ふ乙环N辦法,能夠在確保通信系統(tǒng)的可靠性與高效性的基礎(chǔ)上來減少數(shù)據(jù)傳輸過程中的誤比特率。信道編碼就是減少數(shù)字信號誤比特率的主要手段之一。信源發(fā)送設(shè)備傳輸媒介(信道)接收設(shè)備信宿干擾圖1-1 通訊系統(tǒng)的組成在實(shí)際的應(yīng)用中,衡量一個(gè)通信系統(tǒng)的優(yōu)劣,其中的有效性和可靠性是兩個(gè)最重要的指標(biāo),同時(shí)它們也是通信技術(shù)設(shè)計(jì)的重要組成部分。然而,從信息傳輸角度來考慮,
15、既要提高通信系統(tǒng)的有效性(即傳輸速率),又要提高通信系統(tǒng)的可靠性,這樣往往是相互矛盾的。為了提高可靠性,可以在二進(jìn)制信息序列中以受控的方式引入一些冗余碼元(即監(jiān)督碼元),使他們滿足一定的約束關(guān)系,以期達(dá)到檢錯(cuò)和糾錯(cuò)的目的。但是,由于添加了冗余碼元(監(jiān)督碼元),導(dǎo)致傳輸信息的速率下降;同時(shí),為了提高效率,信號以簡潔、快速的方式傳輸,這樣在遭受到干擾和噪聲時(shí),其自我保護(hù)能力大大下降,從而降低了傳輸?shù)目煽啃?。于是,在?shí)際通信的應(yīng)用中,采取比較折中的方式,可在確??煽啃灾笜?biāo)達(dá)到系統(tǒng)要求的前提下,盡可能的提高傳輸速率1 ;抑或在滿足一定有效性的指標(biāo)下,盡量提高傳輸?shù)目煽啃?。通信技術(shù)設(shè)計(jì)一直致力于提高信息
16、傳輸?shù)挠行院涂煽啃?,其中保證通信的可靠性是現(xiàn)代數(shù)字通信系統(tǒng)需要解決的首要問題。信道編碼技術(shù)正是用來改善通信可靠性問題的主要技術(shù)手段之一。在實(shí)際應(yīng)用中,一個(gè)通信系統(tǒng)一般包含信道編碼和信道譯碼兩個(gè)模塊2 。 信道編碼的主要目的是為了降低誤比特率,提高數(shù)字通信的可靠性,其方法是在二進(jìn)制信息序列中添加一些冗余碼元(監(jiān)督碼元),與信息碼元一起組成被傳輸?shù)拇a字。這些冗余碼元是以受控的方式引入,它們與信息碼元之間有著相互制約的關(guān)系。在信道中傳輸該碼字,如果錯(cuò)誤了發(fā)生,信息碼元和冗余碼元之間相互制約的關(guān)系就將會被破壞 1。那么,在接收端對接收到的信息序列按照既定的規(guī)則校驗(yàn)碼字各碼元間的約束關(guān)系,從而達(dá)到檢錯(cuò)
17、、糾錯(cuò)的目的。通過信道編碼這種方法,能夠有效的在接收端克服信號在無線信道中傳輸時(shí)受到噪聲和干擾產(chǎn)生的影響。信道譯碼也就是信道編碼的逆過程,即接收端將接收信息序列按照既定約束關(guān)系,同時(shí)去掉比特流在傳播的過程中混入的噪聲干擾和添加的冗余,恢復(fù)為比較完整、可靠的信息的過程。信道編碼涉及到的內(nèi)容也十分廣泛,前身糾錯(cuò)編碼(fec)、線性分組碼(漢明碼、循環(huán)碼)、理德-所羅門碼(rs碼)、fire碼、交織碼、卷積碼、tcm編碼、turbo碼等都是信道編碼的研究范疇11。 漢明碼是信道編碼比較好的選擇。漢明碼是漢明于1950年提出的,是具有糾正一位錯(cuò)誤能力的線性分組碼。漢明碼是在原編碼的基礎(chǔ)上附加
18、一部分代碼,使其能滿足糾錯(cuò)碼的條件6。它的突出特點(diǎn)是:編譯碼電路簡單,易于硬件的實(shí)現(xiàn);用軟件實(shí)現(xiàn)編譯碼算法時(shí),軟件的效率高;而且性能也比較好。由于漢明碼的抗干擾能力較強(qiáng),至今仍是應(yīng)用比較廣泛的一類碼。1.2 本課題的研究意義本次課程設(shè)計(jì)的任務(wù)就是基于fpga,利用eda的技術(shù)在quartus ii軟件下用verilog語言來實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)和仿真。漢明碼是一個(gè)在原有數(shù)據(jù)中插入若干校驗(yàn)碼來進(jìn)行錯(cuò)誤檢查和糾正的編碼技術(shù),在原編碼的基礎(chǔ)上附加了一部分代碼,使其滿足糾錯(cuò)碼的條件。漢明碼的編碼與譯碼是通信領(lǐng)域的一個(gè)重要研究內(nèi)容。與一般的編碼相比漢明碼具有比較高效率,同時(shí)也是分組碼的典型代表,是深入
19、研究其他分組碼的基礎(chǔ),也是研究其他非分組碼(如循環(huán)碼)的基礎(chǔ)。eda(electronic design automation)技術(shù)是隨著集成電路和計(jì)算機(jī)技術(shù)飛速發(fā)展而應(yīng)運(yùn)而生的一種高級、快速、有效的電子設(shè)計(jì)自動化工具17。eda的主要特征是使用硬件描述語言verilog來完成設(shè)計(jì),這在電子設(shè)計(jì)領(lǐng)域里受到廣泛的接受。eda技術(shù)的發(fā)展和推廣應(yīng)用,對高校電子技術(shù)課程的教學(xué)思想、教學(xué)方法和教學(xué)目標(biāo)產(chǎn)生了深遠(yuǎn)的影響,是電子、信息、通信、電氣等電類相關(guān)專業(yè)的基礎(chǔ)學(xué)科。本課題利用eda來實(shí)現(xiàn),與實(shí)際聯(lián)系很大,對將來從事實(shí)際工作和相關(guān)研究具有很大幫助。同時(shí),選擇fpga的芯片和外圍元器件,設(shè)計(jì)出硬件的原理圖
20、,將理論和實(shí)踐結(jié)合起來,對以后的實(shí)際工作提供很多的經(jīng)驗(yàn)。1.3 本課題研究目標(biāo)及主要任務(wù)(1)研究目標(biāo):本論文是基于fpga的漢明碼譯碼器的設(shè)計(jì)。主要研究漢明碼編、譯碼的原理和方法,基于fpga使用eda開發(fā)軟件quartus ii上實(shí)現(xiàn)漢明碼譯碼器的設(shè)計(jì)。通過對漢明碼的學(xué)習(xí),使用硬件描述語言verilog設(shè)計(jì)出了漢明碼的譯碼器,并且寫出了源程序,最后通過quartus ii軟件的仿真實(shí)現(xiàn)。滿足電路簡單,成本低,開發(fā)周期短,執(zhí)行速度高,升級方便等特點(diǎn)。(2)主要任務(wù):本次設(shè)計(jì)要求學(xué)會使用仿真調(diào)試軟件quartus ii和硬件描述語言verilog,還要求學(xué)習(xí)漢明碼的理論知識,了解漢明碼的各種特
21、點(diǎn),掌握漢明碼的譯碼原理。通過分析設(shè)計(jì)出實(shí)現(xiàn)譯碼的算法,并且使用verilog語言在quartus ii軟件里完成了基于fpga的漢明碼譯碼器的編程和仿真實(shí)現(xiàn)。同時(shí)根據(jù)需要,選擇合適的fpga的芯片和外圍元器件,設(shè)計(jì)外圍硬件的原理圖,將理論和實(shí)踐結(jié)合起來。1.4 本課題可行性的分析本課題以理論研究和實(shí)驗(yàn)分析相結(jié)合的方式進(jìn)行。課題首先在理論上是可行的,漢明碼是1950年由漢明首先構(gòu)造的,目前漢明碼在中小型計(jì)算機(jī)中普遍采用,其技術(shù)已經(jīng)成熟。漢明碼接收碼組漢明碼譯碼器系統(tǒng)正確的漢明碼信息碼圖1-2 譯碼流程圖在實(shí)際操作方面,我們可以借鑒科學(xué)工作者已得出的結(jié)論,另外其跨專業(yè)的技術(shù)不多,所以也很少給設(shè)計(jì)
22、帶來不便。在實(shí)際設(shè)計(jì)方面,我們可以利用學(xué)校的圖書資料和網(wǎng)上資源,利用eda開發(fā)軟件quartus ii,使用硬件描述語言verilog來對漢明碼譯碼器進(jìn)行設(shè)計(jì),觀察其可行性,并對結(jié)果進(jìn)行分析。2 eda的基礎(chǔ)知識與集成運(yùn)行環(huán)境2.1 eda概念eda(electronic design automation)即電子設(shè)計(jì)自動化,是以微電子技術(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ì)
23、算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來的?,F(xiàn)在對eda的概念或范圍用得很寬,包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有eda的應(yīng)用1。利用eda工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量的工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出ic版圖或pcb版圖的整個(gè)過程都在計(jì)算機(jī)上自動處理完成。目前eda 技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門中廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計(jì)、性能測試及特性分析直到飛行模擬,都可能涉及到eda技術(shù)。本次畢業(yè)設(shè)計(jì)實(shí)現(xiàn)的核
24、心技術(shù)即為eda相關(guān)技術(shù)。本文所指的eda技術(shù),主要針對電子電路設(shè)計(jì)、pcb設(shè)計(jì)和ic設(shè)計(jì)。eda技術(shù)是現(xiàn)代電子設(shè)計(jì)技術(shù)的核心。eda技術(shù)就是依靠功能強(qiáng)大的電子計(jì)算機(jī),在eda工具軟件平臺上,對以硬件描述語言(如verilog)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動地完成邏輯編譯、化簡、分割、綜合、優(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ì)方法,對整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)
25、的關(guān)鍵電路用一片或幾片專用集成電路(asic)實(shí)現(xiàn),然后采用硬件描述語言(hdl)完成系統(tǒng)行為級的設(shè)計(jì),最后通過綜合器和適配器來生成最終的目標(biāo)器件,這樣的設(shè)計(jì)方法被稱為高層次的電子設(shè)計(jì)方法7。eda技術(shù)的優(yōu)勢15:(1)采用硬件描述語言,便于復(fù)雜的系統(tǒng)設(shè)計(jì)(2)擁有強(qiáng)大的系統(tǒng)建模和電路仿真功能(3)擁有自主知識產(chǎn)權(quán)(4)開發(fā)技術(shù)的標(biāo)準(zhǔn)化和規(guī)范化(5)全方位地利用計(jì)算機(jī)的自動設(shè)計(jì)、仿真和測試(6)對設(shè)計(jì)者的硬件知識和經(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ì)的常用軟件
26、和設(shè)計(jì)工具層出不窮,目前進(jìn)入我國并具有廣泛影響的eda軟件有:multisim7(原ewb的最新版本)、pspice、orcad、pcad、protel、viewlogic、mentor、graphics、synopsys、lsiiogic、cadence、microsim,ise等等。這些工具都有較強(qiáng)的功能,一般可用于幾個(gè)方面,例如很多軟件都可以進(jìn)行電路設(shè)計(jì)與仿真,同進(jìn)還可以進(jìn)行pcb自動布局布線,還可以輸出多種網(wǎng)表文件,與第三方軟件接口。eda工具在eda技術(shù)應(yīng)用中占據(jù)極其重要的位置,eda的核心是利用計(jì)算機(jī)完成電子設(shè)計(jì)全過程自動化,因此,基于計(jì)算機(jī)環(huán)境的eda軟件的支持是必不可少的。ed
27、a工具大致可以分為以下5個(gè)模塊:設(shè)計(jì)輸入編輯器;hdl綜合器;仿真器;適配器(或布局布線器);下載器7。當(dāng)然這種分類不是絕對的,現(xiàn)在往往把各eda工具集成在一起,如max+plus、quartus等。2.2 quartus的軟件介紹quartus是altera公司提供的fpga/cpld集成開發(fā)軟件,altera是世界上最大的可編程邏輯器件供應(yīng)商之一。quartus在21世初被推出,是altera老一代fpga/cpld集成開發(fā)軟件max+plus ii的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在quartus上可以完成設(shè)計(jì)輸入、布新布局(適配)、hdl綜合、仿真和選擇以及硬件測試等流程,它提供了
28、一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、處理和器件編程。 quartus提供了完整的多平臺設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需求,也是單片機(jī)可編程系統(tǒng)(sopc)設(shè)計(jì)的綜合環(huán)境和sopc開發(fā)的基本設(shè)計(jì)工具,并為altera dsp開發(fā)包運(yùn)行系統(tǒng)模型的設(shè)計(jì)提供了集成綜合環(huán)境。quartus設(shè)計(jì)完全支持vhdl、verilog的設(shè)計(jì)流程,其內(nèi)部嵌有vhdl、verilog邏輯綜合器。quartus可利用第三方的綜合工具(如leonardo spectrum、synplify pro、fpga complier ii),并能直接調(diào)用這些工具。同時(shí),quartus具備仿真功能,同時(shí)支持第三
29、方的仿真工具(如model sin)。此外, quartus與matlab和dsp builder結(jié)合,可用于進(jìn)行基于fpag的dsp系統(tǒng)開發(fā)。 用quartus ii軟件進(jìn)行設(shè)計(jì)開發(fā)的流程圖2-1所示:設(shè)計(jì)輸入編譯修改設(shè)計(jì)編程下載仿真與定時(shí)分析在線測試圖2-1 quartus ii軟件設(shè)計(jì)開發(fā)流程圖其開發(fā)步驟為:(1)設(shè)計(jì)輸入:設(shè)計(jì)輸入就是設(shè)計(jì)者將所設(shè)計(jì)的電路或系統(tǒng)以開發(fā)軟件要求的某種形式表達(dá)出來,并送入計(jì)算機(jī)的過程。通常有原理圖輸入、hdl文本輸入、edif網(wǎng)表輸入、波形輸入等幾種輸入方式。(2)編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯方式和編譯策略,如器件的選擇、邏輯綜合方式的選擇等;然后根據(jù)設(shè)定的
30、參數(shù)和策略對設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合、器件適配,并產(chǎn)生報(bào)告文件、延時(shí)信息文件及編程文件,供分析、仿真和編程使用。(3)仿真與定時(shí)分析:仿真和定時(shí)分析均屬于設(shè)計(jì)校驗(yàn),其作用是測試設(shè)計(jì)的邏輯功能和延時(shí)特性。仿真包括功能仿真和時(shí)序仿真。定時(shí)分析器可通過三種不同的分析模式分別對傳播延時(shí)、時(shí)序邏輯性能和建立或保持時(shí)間來進(jìn)行分析。(4)編程與驗(yàn)證:用得到的編程文件通過編程電纜配置pld,加入實(shí)際激勵(lì),進(jìn)行在線測試。在測試過程中,會對包括語法檢查和設(shè)計(jì)規(guī)則檢查、邏輯綜合與化簡、邏輯適配、布局與布線等工作進(jìn)行檢查,如果出現(xiàn)錯(cuò)誤,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重新測試。quartus ii
31、軟件的工作環(huán)境如圖2-2所示:工具按鈕層次結(jié)構(gòu)顯示信息提示窗口工作區(qū)菜單欄圖2-2 quartus ii管理器窗口圖2-3 quartus ii工具欄表2-1 工具欄各按鈕的基本功能l:建立一個(gè)新的圖形、文本、波形或是符號文件。l:打開一個(gè)文件,啟動相應(yīng)的編輯器。l:保存當(dāng)前文件。l:打印當(dāng)前文件或窗口內(nèi)容。l:將選中的內(nèi)容剪切到剪貼板。l:將選中的內(nèi)容復(fù)制到剪貼板。l:粘貼剪貼板的內(nèi)容到當(dāng)前文件中。l:撤銷上次的操作。l:單擊此按鈕后再單擊窗口的任何部位,將顯示相關(guān)幫助文檔。l:打開層次顯示窗口或?qū)⑵鋷е燎芭_。l:打開平面圖編輯器或?qū)⑵鋷е燎芭_。l:打開編譯器窗口或?qū)⑵鋷е燎芭_。l:打開仿真
32、器窗口或?qū)⑵鋷е燎芭_。l:打開時(shí)序分析器窗口或?qū)⑵鋷е燎芭_。l:打開編程器窗口或?qū)⑵鋷е燎芭_。l:指定工程名。l:將工程名設(shè)置為和當(dāng)前文件名一樣。l:打開當(dāng)前工程的頂層設(shè)計(jì)文件或?qū)⑵鋷е燎芭_。l:保存所有打開的編譯器輸入文件,并檢查當(dāng)前工程的語法和其他基本錯(cuò)誤。l:保存工程內(nèi)所有打開的設(shè)計(jì)文件,并啟動編譯器。l:保存工程內(nèi)所有打開的仿真器輸入文件,并啟動仿真器。圖2-4 quartus ii編輯輸入原理圖界面quartus ii 的優(yōu)點(diǎn):該軟件界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,是先進(jìn)的eda工具軟件。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺、完全集成化、豐富的設(shè)計(jì)
33、庫、模塊化工具等特點(diǎn),支持原理圖、vhdl、verilog hdl以及ahdl(altera hardware description language)等多種設(shè)計(jì)輸入形式,內(nèi)部嵌有綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設(shè)計(jì)外,還提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。quartus ii對軟硬器件的支持: quartus ii支持altera公司的max 3000a系列、max 7000系列、max 9000系列、acex 1k系
34、列、apex 20k系列、apex ii系列、flex 6000系列等,支持max7000/max3000等乘積項(xiàng)器件。支持max ii cpld系列、cyclone系列、cyclone ii、stratix ii系列、stratix gx系列等。支持ip核,包含了lpm/mega function宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。此外,quartus ii 通過和dsp builder工具與matlab和simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯
35、設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺。quartus ii對第三方eda工具的支持:對第三方eda工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方eda工具。altera的quartus ii可編程邏輯軟件屬于第四代pld開發(fā)平臺。該平臺支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于internet的協(xié)作設(shè)計(jì)。quartus平臺與cadence、exemplar logic、mentor graphics、synopsys和synplicity等eda供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的logic lock模塊設(shè)計(jì)功能,增添了fast fit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,并且提升
36、了調(diào)試能力。quartus ii設(shè)計(jì)軟件提供完整的多平臺設(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)框圖、verilog hdl、ahdl和vhdl完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件。(2) 芯片(電路)平面布局連線編輯。 (3) logic lock增量設(shè)計(jì)方法,使用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響
37、的后續(xù)模塊。 (4) 功能強(qiáng)大的邏輯綜合工具。(5) 完備的電路功能仿真與時(shí)序邏輯分析。 (6) 定時(shí)和時(shí)序分析與關(guān)鍵路徑延時(shí)分析。(7) 使用signal tap ii邏輯分析工具進(jìn)行嵌入式的邏輯分析。 (8) 支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件。 (9) 使用組合編譯方式可一次完成整體設(shè)計(jì)流程。 (10)自動定位編譯的錯(cuò)誤。 (11)高效的編程與驗(yàn)證工具。 (12)可讀入標(biāo)準(zhǔn)的edif網(wǎng)表文件、vhdl網(wǎng)表文件和verilog網(wǎng)表文件。
38、160;(13)能生成第三方eda軟件使用的vhdl網(wǎng)表文件和verilog網(wǎng)表文件。2.3 verilog的簡介quartus ii設(shè)計(jì)軟件經(jīng)常使用verilog hdl和vhdl這兩種硬件描述語言來進(jìn)行設(shè)計(jì),同時(shí)verilog hdl和vhdl也是目前世界上最流行的兩種硬件描述語言(hdl:hardware description language),均為ieee標(biāo)準(zhǔn),被廣泛地應(yīng)用于基于可編程邏輯器件的項(xiàng)目開發(fā)。二者都是在20世紀(jì)80年代中期開發(fā)出來的,前者由gateway design automation公司(該公司
39、于1989年被cadence公司收購)開發(fā),后者由美國軍方所研發(fā)。verilog hdl是由gda(gateway design automation)公司的philmoorby在1983年末首創(chuàng)的,最初只是設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年moorby推出它的第三個(gè)商用仿真器verilog-xl,獲得了巨大的成功,從而使得verilog hdl迅速得到推廣和應(yīng)用。1989年cadence公司收購了gda公司,使得verilog hdl成為了該公司的獨(dú)家專利。1990年cadence公司公開發(fā)表了verilog hdl,并成立lvi組織以促進(jìn)ve
40、rilog hdl成為ieee標(biāo)準(zhǔn),即ieee standard 1364-1995。verilog hdl在語言描述風(fēng)格上傳承了上一代硬件描述語言的解釋風(fēng)格,所以描述的器件在編譯和綜合時(shí)適應(yīng)能力強(qiáng),系統(tǒng)可以自動優(yōu)化。雖然對應(yīng)語言的解讀性能較弱,但是仿真以后的糾錯(cuò)能力強(qiáng)。verilog hdl在模型上注重結(jié)構(gòu)和數(shù)據(jù)的解釋,所以得到eda生產(chǎn)廠商的喜愛,verilog hdl成為了一種開放的商業(yè)eda語言。verilog hdl既是一種行為描述的語言也是一種結(jié)構(gòu)描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設(shè)計(jì)電路的verilog hdl模型。verilog
41、模型可以是實(shí)際電路的不同級別的抽象。這些抽象的級別和它們對應(yīng)的模型類型共有以下五種:(1)系統(tǒng)級(system):用高級語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。 (2)算法級(algorithm):用高級語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。 (3)rtl級(register transfer level):描述數(shù)據(jù)在寄存器之間流動和如何處理這些數(shù)據(jù)的模型。 (4)門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。 (5)開關(guān)級(switch-level):描述器件中三極管和儲存節(jié)點(diǎn)以及它們之間連接的模型。 verilog hdl常用于從算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的
42、數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯示進(jìn)行時(shí)序建模14。 verilog hdl 語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,verilog hdl語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。 verilog hdl語言不僅定義了語
43、法,而且對每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用verilog仿真器進(jìn)行驗(yàn)證。語言從c編程語言中繼承了多種操作符和結(jié)構(gòu)。verilog hdl提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,verilog hdl語言的核心子集非常易于學(xué)習(xí)和使用,這對大多數(shù)建模應(yīng)用來說已經(jīng)足夠了。2.3.1 verilog的主要功能作為一種硬件描述語言,verilog hdl可以直接描述硬件結(jié)構(gòu),也可以通過描述系統(tǒng)行為來實(shí)現(xiàn)建模。verilog hdl的主要特點(diǎn)和功能有以下幾點(diǎn):(1) 描述基本邏輯門,如and、or等基本邏輯門都內(nèi)置在語言中,可以
44、直接調(diào)用。(2) 描述基本開關(guān)模型,如nmos、pmos和coms等基本開關(guān)都可以直接調(diào)用。(3) 允許用戶定義基元(udp),這種方式靈活有效,用戶定義的基元既可以是組合邏輯也可以是時(shí)序邏輯。(4) verilog hdl中有兩種數(shù)據(jù)類型,線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲元件。(5) 能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。(6) 設(shè)計(jì)的規(guī)??梢允侨我獾模Z言不對設(shè)計(jì)的規(guī)模(大?。┦┘尤魏蜗拗?。(7) verilog hdl語言的描述能力可以通過使用編程接口(pli)進(jìn)一步擴(kuò)展。pli是允許外部函數(shù)訪問verilog hdl
45、模塊內(nèi)信息,允許設(shè)計(jì)者與模擬器交互的例程集合。(8) 設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級、門級、寄存器傳送級(rtl)到算法級,報(bào)括進(jìn)程和隊(duì)列級。(9) 能夠使用內(nèi)置開關(guān)級原語,在開關(guān)級對設(shè)計(jì)進(jìn)行完整建模。(10) 同一語言可用于生成模擬激勵(lì)和指定測試的驗(yàn)證的約束條件。(11) verilog hdl不僅能夠在rtl上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級和算法級的行為上進(jìn)行設(shè)計(jì)描述。(12) 能夠使用門和模塊實(shí)例化語句在結(jié)構(gòu)級上進(jìn)行結(jié)構(gòu)描述。(13) verilog hdl具有混合方式建模的能力,即設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。(14) verilog hdl具有內(nèi)置算術(shù)運(yùn)算符、
46、邏輯運(yùn)算符、位運(yùn)算符。(15) 用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動時(shí)間。(16) 通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為。 (17) 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu),并且提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。2.3.2 verilog的基礎(chǔ)語法verilog的設(shè)計(jì)初衷是成為一種基本語法與c語言相近的硬件描述語言。這是因?yàn)閏語言在verilog設(shè)計(jì)之初,已經(jīng)在許多領(lǐng)域中得到廣泛應(yīng)用,c語言的許多語言要素已經(jīng)被許多人所習(xí)慣。一種與c語言相似的硬件描述語言,可以讓電路設(shè)計(jì)人員更容易學(xué)習(xí)和接受。不過,verilog與c語言還是存在許多差別。另外,作為一種與普通
47、計(jì)算機(jī)編程語言不同的硬件描述語言,它還具有一些獨(dú)特的語言要素,例如向量形式的線網(wǎng)和寄存器、過程中的非阻塞賦值等。總的來說,具備c語言的設(shè)計(jì)人員將能夠很快掌握 7。verilog的基本設(shè)計(jì)單元是“模塊”(block)。一個(gè)模塊是由兩部分組成:一部分描述接口信息,另一部分描述邏輯功能,即定義輸入是如何影響輸出的。根據(jù)常見的verilog hdl程序可以總結(jié)出以下特征14:(1) verilog hdl程序是由模塊所構(gòu)成的。每個(gè)模塊的內(nèi)容都是嵌在module 和 endmodule 這兩個(gè)語句之間的,每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。(2) 每
48、個(gè)模塊首先要進(jìn)行端口定義,并說明輸入(input)和輸出(output),然后對模塊的功能進(jìn)行邏輯描述。(3) verilog hdl程序的書寫格式自由,一行可以寫幾個(gè)語句,一個(gè)語句也可以分多行寫。(4) 除了endmodule語句外,每個(gè)語句的最后必須要加分號。(5) 可以用/* */和 / / 對verilog hdl程序的任何部分作注釋。由此我們可以得出verilog hdl語言的基礎(chǔ)語法有以下幾點(diǎn)14:首先,verilog hdl程序是由模塊構(gòu)成的。verilog hdl結(jié)構(gòu)完全嵌在module和endmodule聲明語句之
49、間,每個(gè)模塊實(shí)現(xiàn)特定的功能,模塊是可以進(jìn)行層次嵌套的。每個(gè)verilog程序包括4個(gè)主要部分:端口定義,i/0說明,信號類型聲明和功能描述。在編寫verilog hdl程序時(shí)還需要常量,參數(shù)(parameter)型和變量。在程序運(yùn)行過程中,其值不能被改變的量稱為常量。參數(shù)型數(shù)據(jù)是一種常數(shù)型的數(shù)據(jù),用參數(shù)來定義常量,即用參數(shù)來定義一個(gè)標(biāo)識符代表一個(gè)常量,稱為符號常量。采用標(biāo)識符來代表一個(gè)常量,這樣可提高程序的可讀性和可維護(hù)性。參數(shù)型常數(shù)經(jīng)常用于定義延遲時(shí)間和變量寬度。變量是在程序運(yùn)行過程中其值是可以改變的量,在verilog hdl中變量的數(shù)據(jù)類型有很多種,我們這里主要介紹三種:wir
50、e型變量、reg型變量和memory型變量。wire型表示結(jié)構(gòu)(例如門)之間的物理連接。wire型的變量不能儲存值,而且它必須受到驅(qū)動器或連續(xù)賦值語句assign 的驅(qū)動。如果沒有驅(qū)動器連接到wire型變量上,則該變量就是高阻態(tài)。wire型數(shù)據(jù)常用來表示以assign關(guān)鍵字指定的組合邏輯信號。verilog程序模塊中輸入輸出信號類型缺省時(shí)將自動定義為wire型。wire型信號可以用作任何方程式的輸入,也可以用作“assign”語句或?qū)嵗妮敵觥eg型是寄存器數(shù)據(jù)類型的關(guān)鍵字。寄存器是數(shù)據(jù)儲存單元的抽象。通過賦值語句可以改變寄存器的值,其作用相當(dāng)于改變觸發(fā)器存儲器的值。reg型數(shù)據(jù)常用來表
51、示always模塊內(nèi)的指定信號,常代表觸發(fā)器。reg類型數(shù)據(jù)的缺省初始值為不定值x。memory型是通過擴(kuò)展reg型數(shù)據(jù)的地址范圍來生成的。由于verilog hdl通過對reg型變量建立數(shù)組來對存儲器建模,可以描述ram型存儲器,rom存儲器和reg文件。數(shù)組中的每一個(gè)單元通過一個(gè)數(shù)組索引進(jìn)行尋址。但在verilog語言中沒有多維數(shù)組存在,所以就需要memory型來生成。其次,在編寫verilog hdl程序是還需要各種的運(yùn)算符。有算術(shù)運(yùn)算符(+,×,%等),位運(yùn)算符(&, 等),邏輯運(yùn)算符(&&,| 等),關(guān)系運(yùn)算符(< ,> 等),
52、等式運(yùn)算符(= =,!= 等),移位運(yùn)算符(<< ,>> 等),位拼接運(yùn)算符,縮減運(yùn)算符等14。在程序編寫的公式中如果用到多個(gè)運(yùn)算符,這時(shí)就需要按照每種運(yùn)算符的優(yōu)先級順序來進(jìn)行運(yùn)算。每種運(yùn)算符的優(yōu)先級別各不相同,優(yōu)先級從上到下依次遞減,最上面具有最高的優(yōu)先級。其中邏輯非運(yùn)算符的優(yōu)先級最高,邏輯或運(yùn)算符的優(yōu)先級最低。下表為各運(yùn)算符的優(yōu)先級別:! × / %+ << >>< <= > >= = ! = = = = ! = =& |&| |高低優(yōu)先級別圖2-5 各運(yùn)算符的優(yōu)先級別最后,在編寫verilo
53、g hdl程序是還需要各種的語句。(1)賦值語句有兩種,一種是非阻塞賦值(non_blocking)(如),同一個(gè)always塊內(nèi)的賦值語句操作可以同時(shí)進(jìn)行,只有塊結(jié)束后才完成賦值操作,b的值不會立即改變。還有一種是阻塞賦值(blocking)(如b=a),同一block內(nèi),后一語句的執(zhí)行必須等到前一語句執(zhí)行完才能執(zhí)行,賦值語句執(zhí)行完后,塊才結(jié)束,b的值在賦值語句執(zhí)行完后立刻就改變。(2)條件語句常用的也是兩種,一種是if-else語句,if語句用來判定所給的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行運(yùn)行的結(jié)果。if語句的表達(dá)式一般是邏輯表達(dá)式或關(guān)系表達(dá)式。另一種是case語句。
54、case語句是一種多分支語句,可直接處理多分支選擇。(3)循環(huán)語句常用的有四種。forever語句是可以連續(xù)執(zhí)行的循環(huán)語句;repeat語句是可以連續(xù)執(zhí)行一條語句n次;while語句是執(zhí)行一條語句直到某個(gè)條件不滿足。如果一開始條件就不滿足(為假),則語句一次也不能被執(zhí)行;for語句需要三個(gè)步驟來完成循環(huán),第一步是先給控制循環(huán)次數(shù)的變量賦初值,第二步是判定控制循環(huán)的表達(dá)式的值,如為假就跳出循環(huán)語句,如為真則執(zhí)行指定的語句后,進(jìn)行第三步,第三步是執(zhí)行一條賦值語句來修正控制循環(huán)變量次數(shù)的變量的值,然后回到第二步繼續(xù)運(yùn)行。(4)結(jié)構(gòu)說明語句常用的有四種。initial語句是仿真開始時(shí)對各變量進(jìn)行初始化
55、,只執(zhí)行一次;always語句在仿真過程中不斷重復(fù)執(zhí)行,但always后面跟著的過程塊是否執(zhí)行,就要看它的觸發(fā)條件是否滿足了;task和function說明語句分別用來定義任務(wù)和函數(shù),利用任務(wù)和函數(shù)可以把一個(gè)很大的程序模塊分解成許多小的任務(wù)和函數(shù)便于理解和調(diào)試14。2.3.3 verilog的語言優(yōu)勢verilog hdl推出已經(jīng)有20年了,擁有廣泛的設(shè)計(jì)群體,成熟的資源也比其他語言豐富。verilog更大的一個(gè)優(yōu)勢是,它非常容易掌握,只要有c語言的編程基礎(chǔ),通過比較短的時(shí)間,經(jīng)過一些實(shí)際的操作就可以在23個(gè)月內(nèi)掌握這種語言。而其他語言設(shè)計(jì)相對要難一點(diǎn),像vhdl語言,它不是很直觀,需要有ad
56、a編程基礎(chǔ),至少需要半年以上的專業(yè)培訓(xùn)才能掌握。還有verilog hdl允許對同一個(gè)電路進(jìn)行不同抽象層次的描述,包括開關(guān)級、門級、rtl級或者行為級描述電路;verilog hdl不僅可以設(shè)計(jì)電路,也可以描述電路的激勵(lì),用于電路的驗(yàn)證;verilog hdl是ieee標(biāo)準(zhǔn),得到絕大多數(shù)eda工具的支持;verilog hdl設(shè)計(jì)具有工藝無關(guān)性,適合綜合設(shè)計(jì);有大量的單元庫資源;verilog hdl類似編程,有利于開發(fā)調(diào)試,在設(shè)計(jì)前期就可以完成電路功能驗(yàn)證,減少費(fèi)用和時(shí)間;verilog hdl與c語言有pli接口,設(shè)計(jì)者可以通過編寫增加的c語言代碼來訪問verilog內(nèi)部數(shù)據(jù)結(jié)構(gòu),擴(kuò)展語言
57、的功能等。通過verilog hdl和vhdl比較來看出verilog語言的優(yōu)勢。目前版本的verilog hdl和vhdl在行為級抽象建模的覆蓋面范圍方面有所不同。一般認(rèn)為verilog在系統(tǒng)級抽象方面要比vhdl略差一些,但在門級開關(guān)電路描述方面要強(qiáng)的多。目前在美國,高層次數(shù)字系統(tǒng)設(shè)計(jì)領(lǐng)域中,應(yīng)用verilog和vhdl的比率分別是80和20;日本和臺灣與美國差不多;但在歐洲vhdl發(fā)展的比較好。在中國很多集成電路設(shè)計(jì)公司都采用verilog,但vhdl也有一定的市場。總的來說,采用verilog hdl設(shè)計(jì)時(shí)具有以下優(yōu)點(diǎn)8:(1)設(shè)計(jì)者可以在非常抽象的層次上對線路進(jìn)行描述而不必選擇特定的制造工藝。邏輯綜合工具可以將設(shè)計(jì)自動轉(zhuǎn)換成任意一種制造工藝版圖。如果出現(xiàn)新的制造工藝,也不必對電路重新設(shè)計(jì),只要將rtl級描述輸入綜合工具,即可生成針對新的門級網(wǎng)表。這種設(shè)計(jì)使得工程師在功能設(shè)計(jì)、邏輯驗(yàn)證階段,可以不必過多得考慮門級及工藝實(shí)現(xiàn)的具體細(xì)節(jié),只需要利用系統(tǒng)設(shè)計(jì)時(shí)對芯片的要求,施加不同的約束條件即可。(2)設(shè)計(jì)者可以在設(shè)計(jì)周期的早期對電路的功能進(jìn)行仿真驗(yàn)證??梢院苋菀椎膶tl級描述進(jìn)行優(yōu)化和修改,這樣可以在初期發(fā)現(xiàn)和排除絕大多數(shù)的設(shè)計(jì)錯(cuò)誤,大大降低了在設(shè)計(jì)后期
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省鞍山市2024-2025學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 綠色營銷的評價(jià)體系講義
- (一模)哈三中2025屆高三第一次模擬考試 地理試題(含答案)
- 中小學(xué)消防知識培訓(xùn)課件
- 企業(yè)員工培訓(xùn)體系構(gòu)建與實(shí)踐經(jīng)驗(yàn)分享
- 形容詞級與最高級的用法對比高一英語教學(xué)設(shè)計(jì)
- 物聯(lián)網(wǎng)智能家居解決方案合同
- 三只小豬蓋房記讀后感
- 企業(yè)數(shù)據(jù)安全保護(hù)服務(wù)協(xié)議
- 湖北省云學(xué)名校聯(lián)盟2024-2025學(xué)年高二下學(xué)期3月聯(lián)考地理試題(B卷)(含答案)
- 2025湖南省低空經(jīng)濟(jì)發(fā)展集團(tuán)有限公司招聘11人筆試參考題庫附帶答案詳解
- 七年級下冊道德與法治(2025年春)教材變化詳細(xì)解讀
- 20S515 鋼筋混凝土及磚砌排水檢查井
- 關(guān)于建設(shè)吉林長白山人參產(chǎn)業(yè)園的報(bào)告
- 土力學(xué)-第二章-土的工程性質(zhì)及工程分類
- 小學(xué)體育《陽光運(yùn)動身體好》課件
- 研究生面試復(fù)試英語+常問問題
- 數(shù)學(xué)名詞中英文對照
- 線束加工工時(shí)對照表
- 一年級古詩新唱社團(tuán)計(jì)劃
- 中考數(shù)學(xué)復(fù)習(xí)經(jīng)驗(yàn)交流PPT課件
評論
0/150
提交評論