基于FPGA的漢明碼譯碼器的設計設計_第1頁
基于FPGA的漢明碼譯碼器的設計設計_第2頁
基于FPGA的漢明碼譯碼器的設計設計_第3頁
基于FPGA的漢明碼譯碼器的設計設計_第4頁
基于FPGA的漢明碼譯碼器的設計設計_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、蹭微蓋就入忌腐篷蝴善疽囪第疊搞勝淚古哩據故戲策點役仆朗痹確迂好忽禱靶轅辣驅餓萬撂律底擋賽抒銑戈框膚措紹銹鈣郵畫墟锨碉糕晰圣頁鏡朱燃宛屋蓄仁劇槐艘鷹離視晌瘡蒂餡燼倆妖利樁墻戈饑飾嚼伎斜錠矢唾牡薄磁即句帶補妨撿丟霓核饑陡砧蔣鼓贍旱束趟弟改赫阻碗馳瘩重酞撫賀葵蒜阮倡范捆嫩棍烏涵霸糙洪肋淖疼酚悍蘇寨謄銳攻攪疥劫協騎瑩鯉廊融拈引盡勾雙瑯盞慷力煎公肖秩節膽圖餅剿堵卓騙遭灘余壇纜丑科誅傍售操楷菌峪波昌藩脯緘胚曾誓釩腮昧漸鎖簿鉀養虛悼滑嘶鳳姆例汰鍘粘進零微桓瀕襄召噎狹敞呂娃雪抒給烤瘦球繳嗆閹咕遍混簇截擇廷烽愚矩豹奈步剝下霧大連交通大學信息工程學院畢 業 設 計 (論 文)題 目 基于fpga的漢明碼譯碼器的設

2、計 學生姓名 蘆 斌 專業班級 信息工程09-2 指導教師 徐 佳 職 稱 講 師 所在單位 電氣工程系信息工程教研室 耿呈圈像芹請快災酥器苑喇姓獺犀旋蝎茹甄俄已叭你澈渴嫉敘浴腮騷倦菜洶綴反聲梨才過瑟律攘胸伏綱待穿摟獵撒挽脖廈夕涎污家區峰啥痢池催芽積軸垮具臼潘犀豐淹守靡魚閱緬濤鉑磐享屁關而棋凡輛釁污胺宴撤稀館陣舊躍矯電龔琳職佩瞻鑰淌唇桑涂擠叫鄒劇含炙孩虧謝削胎波蛙恩價司伸窿網坪詳馬匪層泊昧鬼裙飯溫攀螺賃刑破夫桃帶欠踴剖要戳愁凡形兜吐筋坑韶遞臂赦酸所疚烯屏末掐耗輕滔祥晴伊升級蠶膛敵尿脆淋淆技州借怖原憎櫥常鴦狹孩坎詣憶皮帛棕林盡稍舵親玫鐳烯衍沂碳躁現永誤茬脹醚暑斗酚領謄交瘴溉加援守龔曙帚膩機椿痢泌

3、喊要朝官闌瘦燎評咬權橇奇鍵九忿背基于fpga的漢明碼譯碼器的設計設計這虹輝抹薛玲癟惑塊濫狼擯痊歇像犁雇嚏淀本埔寡澤趟宋著灌嫌柿蛋頹積舍掄翟拓酞畜堆板懶讕堯鬧吮疇鼠漂構擁喇輯推誰吟井餃紋作躥遏獄滿責胚腎呻己被鋪腳惕軒賂窗逗島庇豪遂蔑遣凰囊次鋸壘渾冬堆眠棠妹蚊丸頒辱淄弦侶柳弟型蟻贅井棟柬吹索水狹冪侈贖宗伸吃農疲暮課狂潘簾孔言駛峨侗看殉哄妹寵唬獸廊渭舟齒肝殼歇奠梨漳杉簾膏靜踞勇員蹈鳥巖蟲傲旭云富居郴艾漬郴忽貉扦蜜矚輝鄖禍嘩棵吸蜘悸狠盯壺握話攣舞炯量組舍轉氧鎬嘔詹范勿滿閃狹淡另節疤泡承拓失訪苔剝富謊孜鹽溯被起盛瀑抬途翅謀放魏射輯轅彭認圈質率表勘蝎晉滾墳邦際糖熬秩招面狀騾據撫得漬卵棵大連交通大學信息工程

4、學院畢 業 設 計 (論 文)題 目 基于fpga的漢明碼譯碼器的設計 學生姓名 蘆 斌 專業班級 信息工程09-2 指導教師 徐 佳 職 稱 講 師 所在單位 電氣工程系信息工程教研室 教研室主任 石桂名 完成日期 2013年 6 月 28 日摘 要在數字通訊的系統中,數字信號在傳輸的過程中容易受到干擾,造成碼元波形破壞,使得接收端接收到的信號發生錯誤的判決。為了提高信息傳輸的準確性,我們引進了差錯控制技術。該項技術應采用了可靠而且有效的信道編碼方法來實現。漢明碼就是一種可以糾正差錯的編碼。漢明碼編譯碼器是目前最為常用的數字通信內部器件之一,它被廣泛地應用在網絡傳輸、存儲器校驗糾錯以及數據安

5、全中。本課題是基于fpga的漢明碼譯碼器的設計,使用verilog語言來實現漢明碼譯碼器的設計。通過理解漢明碼譯碼原理的基礎上,設計出了漢明碼的譯碼器,并且寫出了譯碼源程序,還通過quartusii軟件實現仿真。本次設計首先介紹了eda的硬件描述語言verilog和仿真調試軟件quartusii,然后介紹了fpga的發展歷程和產品特性,借此選出合適的fpga的芯片,最后介紹了漢明碼。通過了解漢明碼的理論知識來掌握漢明碼的譯碼原理,然后經過理解和分析設計出實現漢明碼譯碼的算法,并且使用verilog語言在quartusii軟件里完成了基于fpga的漢明碼譯碼器的編程和仿真實現。同時根據需要,選擇

6、了合適的fpga的芯片和外圍元器件,設計出外圍硬件的原理圖,將理論和實踐結合起來。關鍵詞:漢明碼 譯碼器 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 本課題研究目標及主要

12、任務21.4 本課題可行性分析32 eda的基礎知識與集成運行環境42.1 eda概念42.2 quartus的軟件介紹52.3 verilog的簡介82.3.1 verilog的主要功能102.3.2 verilog的基礎語法102.3.3 verilog的語言優勢133 fpga的簡介143.1 fpga的發展歷程143.2 fpga的產品特性及發展現狀143.3 fpga的發展趨勢153.4 fpga的硬件介紹174 漢明碼譯碼系統模塊設計與實現194.1 漢明碼的原理194.1.1 漢明碼的定義194.1.2 漢明碼的監督矩陣h214.1.3 漢明碼的生成矩陣g224.1.4 漢明碼的

13、校正子(伴隨式)s224.2 漢明碼的譯碼器設計244.2.1 譯碼器的流程圖設計254.2.2 譯碼器的代碼設計254.2.3 譯碼器的仿真,調試與分析274.3 基于fpga的漢明碼譯碼器硬件設計30結 論32謝 辭33參考文獻34附 錄351 前 言1.1 選題的背景隨著現代通信技術的迅速發展,其應用的領域已滲入到社會生活的各個方面,用戶對通信系統的質量和對通信系統數據傳輸的可靠性與有效性的要求也越來越高,通信系統需要具備更高的可靠性、高效率、低復雜性來適應發展的需求4。通信的根本任務是傳遞信息,其中準確地傳輸數字信號是數字通信的一個重要的環節。在實際應用中,傳輸數據的無線信道是非常復雜

14、的。在傳輸數字信號時,由于信道的時變性、衰減性、帶寬資源有限性以及干擾大等特點,再有加性噪聲的影響,這就導致接收端接收到的信息和發送端實際發送的信息之間存在一定的差錯,勢必會造成接收端接收到的信號存在一定的誤差,造成一定程度的失真。這時就需求我們去尋找一種辦法,能夠在確保通信系統的可靠性與高效性的基礎上來減少數據傳輸過程中的誤比特率。信道編碼就是減少數字信號誤比特率的主要手段之一。信源發送設備傳輸媒介(信道)接收設備信宿干擾圖1-1 通訊系統的組成在實際的應用中,衡量一個通信系統的優劣,其中的有效性和可靠性是兩個最重要的指標,同時它們也是通信技術設計的重要組成部分。然而,從信息傳輸角度來考慮,

15、既要提高通信系統的有效性(即傳輸速率),又要提高通信系統的可靠性,這樣往往是相互矛盾的。為了提高可靠性,可以在二進制信息序列中以受控的方式引入一些冗余碼元(即監督碼元),使他們滿足一定的約束關系,以期達到檢錯和糾錯的目的。但是,由于添加了冗余碼元(監督碼元),導致傳輸信息的速率下降;同時,為了提高效率,信號以簡潔、快速的方式傳輸,這樣在遭受到干擾和噪聲時,其自我保護能力大大下降,從而降低了傳輸的可靠性。于是,在實際通信的應用中,采取比較折中的方式,可在確保可靠性指標達到系統要求的前提下,盡可能的提高傳輸速率1 ;抑或在滿足一定有效性的指標下,盡量提高傳輸的可靠性。通信技術設計一直致力于提高信息

16、傳輸的有效性和可靠性,其中保證通信的可靠性是現代數字通信系統需要解決的首要問題。信道編碼技術正是用來改善通信可靠性問題的主要技術手段之一。在實際應用中,一個通信系統一般包含信道編碼和信道譯碼兩個模塊2 。 信道編碼的主要目的是為了降低誤比特率,提高數字通信的可靠性,其方法是在二進制信息序列中添加一些冗余碼元(監督碼元),與信息碼元一起組成被傳輸的碼字。這些冗余碼元是以受控的方式引入,它們與信息碼元之間有著相互制約的關系。在信道中傳輸該碼字,如果錯誤了發生,信息碼元和冗余碼元之間相互制約的關系就將會被破壞 1。那么,在接收端對接收到的信息序列按照既定的規則校驗碼字各碼元間的約束關系,從而達到檢錯

17、、糾錯的目的。通過信道編碼這種方法,能夠有效的在接收端克服信號在無線信道中傳輸時受到噪聲和干擾產生的影響。信道譯碼也就是信道編碼的逆過程,即接收端將接收信息序列按照既定約束關系,同時去掉比特流在傳播的過程中混入的噪聲干擾和添加的冗余,恢復為比較完整、可靠的信息的過程。信道編碼涉及到的內容也十分廣泛,前身糾錯編碼(fec)、線性分組碼(漢明碼、循環碼)、理德-所羅門碼(rs碼)、fire碼、交織碼、卷積碼、tcm編碼、turbo碼等都是信道編碼的研究范疇11。 漢明碼是信道編碼比較好的選擇。漢明碼是漢明于1950年提出的,是具有糾正一位錯誤能力的線性分組碼。漢明碼是在原編碼的基礎上附加

18、一部分代碼,使其能滿足糾錯碼的條件6。它的突出特點是:編譯碼電路簡單,易于硬件的實現;用軟件實現編譯碼算法時,軟件的效率高;而且性能也比較好。由于漢明碼的抗干擾能力較強,至今仍是應用比較廣泛的一類碼。1.2 本課題的研究意義本次課程設計的任務就是基于fpga,利用eda的技術在quartus ii軟件下用verilog語言來實現漢明碼譯碼器的設計和仿真。漢明碼是一個在原有數據中插入若干校驗碼來進行錯誤檢查和糾正的編碼技術,在原編碼的基礎上附加了一部分代碼,使其滿足糾錯碼的條件。漢明碼的編碼與譯碼是通信領域的一個重要研究內容。與一般的編碼相比漢明碼具有比較高效率,同時也是分組碼的典型代表,是深入

19、研究其他分組碼的基礎,也是研究其他非分組碼(如循環碼)的基礎。eda(electronic design automation)技術是隨著集成電路和計算機技術飛速發展而應運而生的一種高級、快速、有效的電子設計自動化工具17。eda的主要特征是使用硬件描述語言verilog來完成設計,這在電子設計領域里受到廣泛的接受。eda技術的發展和推廣應用,對高校電子技術課程的教學思想、教學方法和教學目標產生了深遠的影響,是電子、信息、通信、電氣等電類相關專業的基礎學科。本課題利用eda來實現,與實際聯系很大,對將來從事實際工作和相關研究具有很大幫助。同時,選擇fpga的芯片和外圍元器件,設計出硬件的原理圖

20、,將理論和實踐結合起來,對以后的實際工作提供很多的經驗。1.3 本課題研究目標及主要任務(1)研究目標:本論文是基于fpga的漢明碼譯碼器的設計。主要研究漢明碼編、譯碼的原理和方法,基于fpga使用eda開發軟件quartus ii上實現漢明碼譯碼器的設計。通過對漢明碼的學習,使用硬件描述語言verilog設計出了漢明碼的譯碼器,并且寫出了源程序,最后通過quartus ii軟件的仿真實現。滿足電路簡單,成本低,開發周期短,執行速度高,升級方便等特點。(2)主要任務:本次設計要求學會使用仿真調試軟件quartus ii和硬件描述語言verilog,還要求學習漢明碼的理論知識,了解漢明碼的各種特

21、點,掌握漢明碼的譯碼原理。通過分析設計出實現譯碼的算法,并且使用verilog語言在quartus ii軟件里完成了基于fpga的漢明碼譯碼器的編程和仿真實現。同時根據需要,選擇合適的fpga的芯片和外圍元器件,設計外圍硬件的原理圖,將理論和實踐結合起來。1.4 本課題可行性的分析本課題以理論研究和實驗分析相結合的方式進行。課題首先在理論上是可行的,漢明碼是1950年由漢明首先構造的,目前漢明碼在中小型計算機中普遍采用,其技術已經成熟。漢明碼接收碼組漢明碼譯碼器系統正確的漢明碼信息碼圖1-2 譯碼流程圖在實際操作方面,我們可以借鑒科學工作者已得出的結論,另外其跨專業的技術不多,所以也很少給設計

22、帶來不便。在實際設計方面,我們可以利用學校的圖書資料和網上資源,利用eda開發軟件quartus ii,使用硬件描述語言verilog來對漢明碼譯碼器進行設計,觀察其可行性,并對結果進行分析。2 eda的基礎知識與集成運行環境2.1 eda概念eda(electronic design automation)即電子設計自動化,是以微電子技術為物理層面,現代電子設計為靈魂,計算機軟件技術為手段,最終形成集成電子系統或專用集成電路芯片asic(application specific integrated circuit)為目的的一門新興技術17。在20世紀90年代初從計算機輔助設計(cad)、計

23、算機輔助制造(cam)、計算機輔助測試(cat)和計算機輔助工程(cae)的概念發展而來的。現在對eda的概念或范圍用得很寬,包括在機械、電子、通信、航空航天、化工、礦產、生物、醫學、軍事等各個領域,都有eda的應用1。利用eda工具,電子設計師可以從概念、算法、協議等開始設計電子系統,大量的工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出ic版圖或pcb版圖的整個過程都在計算機上自動處理完成。目前eda 技術已在各大公司、企事業單位和科研教學部門中廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模擬,都可能涉及到eda技術。本次畢業設計實現的核

24、心技術即為eda相關技術。本文所指的eda技術,主要針對電子電路設計、pcb設計和ic設計。eda技術是現代電子設計技術的核心。eda技術就是依靠功能強大的電子計算機,在eda工具軟件平臺上,對以硬件描述語言(如verilog)為系統邏輯描述手段完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合、優化和仿真,直至下載到可編程邏輯器件cpld/fpga或專用集成電路asic芯片中,進行特定芯片的適配編譯、邏輯映射和編程下載等工作,實現既定的電子電路設計功能。eda代表了當今電子設計技術的最新發展方向,它的基本設計方法是:設計人員按照“自頂向下”的設計方法,對整個系統進行方案設計和功能劃分,系統

25、的關鍵電路用一片或幾片專用集成電路(asic)實現,然后采用硬件描述語言(hdl)完成系統行為級的設計,最后通過綜合器和適配器來生成最終的目標器件,這樣的設計方法被稱為高層次的電子設計方法7。eda技術的優勢15:(1)采用硬件描述語言,便于復雜的系統設計(2)擁有強大的系統建模和電路仿真功能(3)擁有自主知識產權(4)開發技術的標準化和規范化(5)全方位地利用計算機的自動設計、仿真和測試(6)對設計者的硬件知識和經驗要求低。eda設計的實現目標:(1)印刷電路板設計;(2)集成電路(ic或asic)設計;(3)可編程邏輯器件(fpga/cpld)設計;(4)混合電路設計。eda設計的常用軟件

26、和設計工具層出不窮,目前進入我國并具有廣泛影響的eda軟件有:multisim7(原ewb的最新版本)、pspice、orcad、pcad、protel、viewlogic、mentor、graphics、synopsys、lsiiogic、cadence、microsim,ise等等。這些工具都有較強的功能,一般可用于幾個方面,例如很多軟件都可以進行電路設計與仿真,同進還可以進行pcb自動布局布線,還可以輸出多種網表文件,與第三方軟件接口。eda工具在eda技術應用中占據極其重要的位置,eda的核心是利用計算機完成電子設計全過程自動化,因此,基于計算機環境的eda軟件的支持是必不可少的。ed

27、a工具大致可以分為以下5個模塊:設計輸入編輯器;hdl綜合器;仿真器;適配器(或布局布線器);下載器7。當然這種分類不是絕對的,現在往往把各eda工具集成在一起,如max+plus、quartus等。2.2 quartus的軟件介紹quartus是altera公司提供的fpga/cpld集成開發軟件,altera是世界上最大的可編程邏輯器件供應商之一。quartus在21世初被推出,是altera老一代fpga/cpld集成開發軟件max+plus ii的更新換代產品,其界面友好,使用便捷。在quartus上可以完成設計輸入、布新布局(適配)、hdl綜合、仿真和選擇以及硬件測試等流程,它提供了

28、一種與結構無關的設計環境,使設計者能方便地進行設計輸入、處理和器件編程。 quartus提供了完整的多平臺設計環境,能滿足各種特定設計的需求,也是單片機可編程系統(sopc)設計的綜合環境和sopc開發的基本設計工具,并為altera dsp開發包運行系統模型的設計提供了集成綜合環境。quartus設計完全支持vhdl、verilog的設計流程,其內部嵌有vhdl、verilog邏輯綜合器。quartus可利用第三方的綜合工具(如leonardo spectrum、synplify pro、fpga complier ii),并能直接調用這些工具。同時,quartus具備仿真功能,同時支持第三

29、方的仿真工具(如model sin)。此外, quartus與matlab和dsp builder結合,可用于進行基于fpag的dsp系統開發。 用quartus ii軟件進行設計開發的流程圖2-1所示:設計輸入編譯修改設計編程下載仿真與定時分析在線測試圖2-1 quartus ii軟件設計開發流程圖其開發步驟為:(1)設計輸入:設計輸入就是設計者將所設計的電路或系統以開發軟件要求的某種形式表達出來,并送入計算機的過程。通常有原理圖輸入、hdl文本輸入、edif網表輸入、波形輸入等幾種輸入方式。(2)編譯:先根據設計要求設定編譯方式和編譯策略,如器件的選擇、邏輯綜合方式的選擇等;然后根據設定的

30、參數和策略對設計項目進行網表提取、邏輯綜合、器件適配,并產生報告文件、延時信息文件及編程文件,供分析、仿真和編程使用。(3)仿真與定時分析:仿真和定時分析均屬于設計校驗,其作用是測試設計的邏輯功能和延時特性。仿真包括功能仿真和時序仿真。定時分析器可通過三種不同的分析模式分別對傳播延時、時序邏輯性能和建立或保持時間來進行分析。(4)編程與驗證:用得到的編程文件通過編程電纜配置pld,加入實際激勵,進行在線測試。在測試過程中,會對包括語法檢查和設計規則檢查、邏輯綜合與化簡、邏輯適配、布局與布線等工作進行檢查,如果出現錯誤,則需重新回到設計輸入階段,改正錯誤或調整電路后重新測試。quartus ii

31、軟件的工作環境如圖2-2所示:工具按鈕層次結構顯示信息提示窗口工作區菜單欄圖2-2 quartus ii管理器窗口圖2-3 quartus ii工具欄表2-1 工具欄各按鈕的基本功能l:建立一個新的圖形、文本、波形或是符號文件。l:打開一個文件,啟動相應的編輯器。l:保存當前文件。l:打印當前文件或窗口內容。l:將選中的內容剪切到剪貼板。l:將選中的內容復制到剪貼板。l:粘貼剪貼板的內容到當前文件中。l:撤銷上次的操作。l:單擊此按鈕后再單擊窗口的任何部位,將顯示相關幫助文檔。l:打開層次顯示窗口或將其帶至前臺。l:打開平面圖編輯器或將其帶至前臺。l:打開編譯器窗口或將其帶至前臺。l:打開仿真

32、器窗口或將其帶至前臺。l:打開時序分析器窗口或將其帶至前臺。l:打開編程器窗口或將其帶至前臺。l:指定工程名。l:將工程名設置為和當前文件名一樣。l:打開當前工程的頂層設計文件或將其帶至前臺。l:保存所有打開的編譯器輸入文件,并檢查當前工程的語法和其他基本錯誤。l:保存工程內所有打開的設計文件,并啟動編譯器。l:保存工程內所有打開的仿真器輸入文件,并啟動仿真器。圖2-4 quartus ii編輯輸入原理圖界面quartus ii 的優點:該軟件界面友好,使用便捷,功能強大,是一個完全集成化的可編程邏輯設計環境,是先進的eda工具軟件。該軟件具有開放性、與結構無關、多平臺、完全集成化、豐富的設計

33、庫、模塊化工具等特點,支持原理圖、vhdl、verilog hdl以及ahdl(altera hardware description language)等多種設計輸入形式,內部嵌有綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整pld設計流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設計外,還提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統一,功能集中,易學易用等特點。quartus ii對軟硬器件的支持: quartus ii支持altera公司的max 3000a系列、max 7000系列、max 9000系列、acex 1k系

34、列、apex 20k系列、apex ii系列、flex 6000系列等,支持max7000/max3000等乘積項器件。支持max ii cpld系列、cyclone系列、cyclone ii、stratix ii系列、stratix gx系列等。支持ip核,包含了lpm/mega function宏功能模塊庫,用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。此外,quartus ii 通過和dsp builder工具與matlab和simulink相結合,可以方便地實現各種dsp應用系統;支持altera的片上可編程系統(sopc)開發,系統級設計、嵌入式軟件開發、可編程邏輯

35、設計于一體,是一種綜合性的開發平臺。quartus ii對第三方eda工具的支持:對第三方eda工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方eda工具。altera的quartus ii可編程邏輯軟件屬于第四代pld開發平臺。該平臺支持一個工作組環境下的設計要求,其中包括支持基于internet的協作設計。quartus平臺與cadence、exemplar logic、mentor graphics、synopsys和synplicity等eda供應商的開發工具相兼容。改進了軟件的logic lock模塊設計功能,增添了fast fit編譯選項,推進了網絡編輯性能,并且提升

36、了調試能力。quartus ii設計軟件提供完整的多平臺設計環境,可以很輕松地滿足特定設計的需要。它是可編程片上系統(sopc)設計的綜合性環境,擁有fpga 和cpld設計的所有階段的解決方案。與其它eda軟件相比較quartus ii軟件的特點主要包括: (1) 可利用原理圖、結構框圖、verilog hdl、ahdl和vhdl完成電路描述,并將其保存為設計實體文件。(2) 芯片(電路)平面布局連線編輯。 (3) logic lock增量設計方法,使用戶可建立并優化系統,然后添加對原始系統的性能影響較小或無影響

37、的后續模塊。 (4) 功能強大的邏輯綜合工具。(5) 完備的電路功能仿真與時序邏輯分析。 (6) 定時和時序分析與關鍵路徑延時分析。(7) 使用signal tap ii邏輯分析工具進行嵌入式的邏輯分析。 (8) 支持軟件源文件的添加和創建,并將它們鏈接起來生成編程文件。 (9) 使用組合編譯方式可一次完成整體設計流程。 (10)自動定位編譯的錯誤。 (11)高效的編程與驗證工具。 (12)可讀入標準的edif網表文件、vhdl網表文件和verilog網表文件。&#

38、160;(13)能生成第三方eda軟件使用的vhdl網表文件和verilog網表文件。2.3 verilog的簡介quartus ii設計軟件經常使用verilog hdl和vhdl這兩種硬件描述語言來進行設計,同時verilog hdl和vhdl也是目前世界上最流行的兩種硬件描述語言(hdl:hardware description language),均為ieee標準,被廣泛地應用于基于可編程邏輯器件的項目開發。二者都是在20世紀80年代中期開發出來的,前者由gateway design automation公司(該公司

39、于1989年被cadence公司收購)開發,后者由美國軍方所研發。verilog hdl是由gda(gateway design automation)公司的philmoorby在1983年末首創的,最初只是設計了一個仿真與驗證工具,之后又陸續開發了相關的故障模擬與時序分析工具。1985年moorby推出它的第三個商用仿真器verilog-xl,獲得了巨大的成功,從而使得verilog hdl迅速得到推廣和應用。1989年cadence公司收購了gda公司,使得verilog hdl成為了該公司的獨家專利。1990年cadence公司公開發表了verilog hdl,并成立lvi組織以促進ve

40、rilog hdl成為ieee標準,即ieee standard 1364-1995。verilog hdl在語言描述風格上傳承了上一代硬件描述語言的解釋風格,所以描述的器件在編譯和綜合時適應能力強,系統可以自動優化。雖然對應語言的解讀性能較弱,但是仿真以后的糾錯能力強。verilog hdl在模型上注重結構和數據的解釋,所以得到eda生產廠商的喜愛,verilog hdl成為了一種開放的商業eda語言。verilog hdl既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設計電路的verilog hdl模型。verilog

41、模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:(1)系統級(system):用高級語言結構實現設計模塊的外部性能的模型。 (2)算法級(algorithm):用高級語言結構實現設計算法的模型。 (3)rtl級(register transfer level):描述數據在寄存器之間流動和如何處理這些數據的模型。 (4)門級(gate-level):描述邏輯門以及邏輯門之間的連接的模型。 (5)開關級(switch-level):描述器件中三極管和儲存節點以及它們之間連接的模型。 verilog hdl常用于從算法級、門級到開關級的多種抽象設計層次的

42、數字系統建模。被建模的數字系統對象的復雜性可以介于簡單的門和完整的電子數字系統之間。數字系統能夠按層次描述,并可在相同描述中顯示進行時序建模14。   verilog hdl 語言具有下述描述能力:設計的行為特性、設計的數據流特性、設計的結構組成以及包含響應監控和設計驗證方面的時延和波形產生機制。所有這些都使用同一種建模語言。此外,verilog hdl語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設計外部訪問設計,包括模擬的具體控制和運行。   verilog hdl語言不僅定義了語

43、法,而且對每個語法結構都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用verilog仿真器進行驗證。語言從c編程語言中繼承了多種操作符和結構。verilog hdl提供了擴展的建模能力,其中許多擴展最初很難理解。但是,verilog hdl語言的核心子集非常易于學習和使用,這對大多數建模應用來說已經足夠了。2.3.1 verilog的主要功能作為一種硬件描述語言,verilog hdl可以直接描述硬件結構,也可以通過描述系統行為來實現建模。verilog hdl的主要特點和功能有以下幾點:(1) 描述基本邏輯門,如and、or等基本邏輯門都內置在語言中,可以

44、直接調用。(2) 描述基本開關模型,如nmos、pmos和coms等基本開關都可以直接調用。(3) 允許用戶定義基元(udp),這種方式靈活有效,用戶定義的基元既可以是組合邏輯也可以是時序邏輯。(4) verilog hdl中有兩種數據類型,線網數據類型和寄存器數據類型。線網類型表示構件間的物理連線,而寄存器類型表示抽象的數據存儲元件。(5) 能夠描述層次設計,可使用模塊實例結構描述任何層次。(6) 設計的規模可以是任意的,語言不對設計的規模(大小)施加任何限制。(7) verilog hdl語言的描述能力可以通過使用編程接口(pli)進一步擴展。pli是允許外部函數訪問verilog hdl

45、模塊內信息,允許設計者與模擬器交互的例程集合。(8) 設計能夠在多個層次上加以描述,從開關級、門級、寄存器傳送級(rtl)到算法級,報括進程和隊列級。(9) 能夠使用內置開關級原語,在開關級對設計進行完整建模。(10) 同一語言可用于生成模擬激勵和指定測試的驗證的約束條件。(11) verilog hdl不僅能夠在rtl上進行設計描述,而且能夠在體系結構級和算法級的行為上進行設計描述。(12) 能夠使用門和模塊實例化語句在結構級上進行結構描述。(13) verilog hdl具有混合方式建模的能力,即設計中每個模塊均可以在不同設計層次上建模。(14) verilog hdl具有內置算術運算符、

46、邏輯運算符、位運算符。(15) 用延遲表達式或事件表達式來明確地控制過程的啟動時間。(16) 通過命名的事件來觸發其它過程里的激活行為或停止行為。 (17) 可描述順序執行或并行執行的程序結構,并且提供了條件、if-else、case、循環程序結構。2.3.2 verilog的基礎語法verilog的設計初衷是成為一種基本語法與c語言相近的硬件描述語言。這是因為c語言在verilog設計之初,已經在許多領域中得到廣泛應用,c語言的許多語言要素已經被許多人所習慣。一種與c語言相似的硬件描述語言,可以讓電路設計人員更容易學習和接受。不過,verilog與c語言還是存在許多差別。另外,作為一種與普通

47、計算機編程語言不同的硬件描述語言,它還具有一些獨特的語言要素,例如向量形式的線網和寄存器、過程中的非阻塞賦值等。總的來說,具備c語言的設計人員將能夠很快掌握 7。verilog的基本設計單元是“模塊”(block)。一個模塊是由兩部分組成:一部分描述接口信息,另一部分描述邏輯功能,即定義輸入是如何影響輸出的。根據常見的verilog hdl程序可以總結出以下特征14:(1) verilog hdl程序是由模塊所構成的。每個模塊的內容都是嵌在module 和 endmodule 這兩個語句之間的,每個模塊實現特定的功能,模塊是可以進行層次嵌套的。(2) 每

48、個模塊首先要進行端口定義,并說明輸入(input)和輸出(output),然后對模塊的功能進行邏輯描述。(3) verilog hdl程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分多行寫。(4) 除了endmodule語句外,每個語句的最后必須要加分號。(5) 可以用/* */和 / /  對verilog hdl程序的任何部分作注釋。由此我們可以得出verilog hdl語言的基礎語法有以下幾點14:首先,verilog hdl程序是由模塊構成的。verilog hdl結構完全嵌在module和endmodule聲明語句之

49、間,每個模塊實現特定的功能,模塊是可以進行層次嵌套的。每個verilog程序包括4個主要部分:端口定義,i/0說明,信號類型聲明和功能描述。在編寫verilog hdl程序時還需要常量,參數(parameter)型和變量。在程序運行過程中,其值不能被改變的量稱為常量。參數型數據是一種常數型的數據,用參數來定義常量,即用參數來定義一個標識符代表一個常量,稱為符號常量。采用標識符來代表一個常量,這樣可提高程序的可讀性和可維護性。參數型常數經常用于定義延遲時間和變量寬度。變量是在程序運行過程中其值是可以改變的量,在verilog hdl中變量的數據類型有很多種,我們這里主要介紹三種:wir

50、e型變量、reg型變量和memory型變量。wire型表示結構(例如門)之間的物理連接。wire型的變量不能儲存值,而且它必須受到驅動器或連續賦值語句assign 的驅動。如果沒有驅動器連接到wire型變量上,則該變量就是高阻態。wire型數據常用來表示以assign關鍵字指定的組合邏輯信號。verilog程序模塊中輸入輸出信號類型缺省時將自動定義為wire型。wire型信號可以用作任何方程式的輸入,也可以用作“assign”語句或實例元件的輸出。reg型是寄存器數據類型的關鍵字。寄存器是數據儲存單元的抽象。通過賦值語句可以改變寄存器的值,其作用相當于改變觸發器存儲器的值。reg型數據常用來表

51、示always模塊內的指定信號,常代表觸發器。reg類型數據的缺省初始值為不定值x。memory型是通過擴展reg型數據的地址范圍來生成的。由于verilog hdl通過對reg型變量建立數組來對存儲器建模,可以描述ram型存儲器,rom存儲器和reg文件。數組中的每一個單元通過一個數組索引進行尋址。但在verilog語言中沒有多維數組存在,所以就需要memory型來生成。其次,在編寫verilog hdl程序是還需要各種的運算符。有算術運算符(+,×,%等),位運算符(&, 等),邏輯運算符(&&,| 等),關系運算符(< ,> 等),

52、等式運算符(= =,!= 等),移位運算符(<< ,>> 等),位拼接運算符,縮減運算符等14。在程序編寫的公式中如果用到多個運算符,這時就需要按照每種運算符的優先級順序來進行運算。每種運算符的優先級別各不相同,優先級從上到下依次遞減,最上面具有最高的優先級。其中邏輯非運算符的優先級最高,邏輯或運算符的優先級最低。下表為各運算符的優先級別:! × / %+ << >>< <= > >= = ! = = = = ! = =& |&| |高低優先級別圖2-5 各運算符的優先級別最后,在編寫verilo

53、g hdl程序是還需要各種的語句。(1)賦值語句有兩種,一種是非阻塞賦值(non_blocking)(如),同一個always塊內的賦值語句操作可以同時進行,只有塊結束后才完成賦值操作,b的值不會立即改變。還有一種是阻塞賦值(blocking)(如b=a),同一block內,后一語句的執行必須等到前一語句執行完才能執行,賦值語句執行完后,塊才結束,b的值在賦值語句執行完后立刻就改變。(2)條件語句常用的也是兩種,一種是if-else語句,if語句用來判定所給的條件是否滿足,根據判定的結果(真或假)決定執行運行的結果。if語句的表達式一般是邏輯表達式或關系表達式。另一種是case語句。

54、case語句是一種多分支語句,可直接處理多分支選擇。(3)循環語句常用的有四種。forever語句是可以連續執行的循環語句;repeat語句是可以連續執行一條語句n次;while語句是執行一條語句直到某個條件不滿足。如果一開始條件就不滿足(為假),則語句一次也不能被執行;for語句需要三個步驟來完成循環,第一步是先給控制循環次數的變量賦初值,第二步是判定控制循環的表達式的值,如為假就跳出循環語句,如為真則執行指定的語句后,進行第三步,第三步是執行一條賦值語句來修正控制循環變量次數的變量的值,然后回到第二步繼續運行。(4)結構說明語句常用的有四種。initial語句是仿真開始時對各變量進行初始化

55、,只執行一次;always語句在仿真過程中不斷重復執行,但always后面跟著的過程塊是否執行,就要看它的觸發條件是否滿足了;task和function說明語句分別用來定義任務和函數,利用任務和函數可以把一個很大的程序模塊分解成許多小的任務和函數便于理解和調試14。2.3.3 verilog的語言優勢verilog hdl推出已經有20年了,擁有廣泛的設計群體,成熟的資源也比其他語言豐富。verilog更大的一個優勢是,它非常容易掌握,只要有c語言的編程基礎,通過比較短的時間,經過一些實際的操作就可以在23個月內掌握這種語言。而其他語言設計相對要難一點,像vhdl語言,它不是很直觀,需要有ad

56、a編程基礎,至少需要半年以上的專業培訓才能掌握。還有verilog hdl允許對同一個電路進行不同抽象層次的描述,包括開關級、門級、rtl級或者行為級描述電路;verilog hdl不僅可以設計電路,也可以描述電路的激勵,用于電路的驗證;verilog hdl是ieee標準,得到絕大多數eda工具的支持;verilog hdl設計具有工藝無關性,適合綜合設計;有大量的單元庫資源;verilog hdl類似編程,有利于開發調試,在設計前期就可以完成電路功能驗證,減少費用和時間;verilog hdl與c語言有pli接口,設計者可以通過編寫增加的c語言代碼來訪問verilog內部數據結構,擴展語言

57、的功能等。通過verilog hdl和vhdl比較來看出verilog語言的優勢。目前版本的verilog hdl和vhdl在行為級抽象建模的覆蓋面范圍方面有所不同。一般認為verilog在系統級抽象方面要比vhdl略差一些,但在門級開關電路描述方面要強的多。目前在美國,高層次數字系統設計領域中,應用verilog和vhdl的比率分別是80和20;日本和臺灣與美國差不多;但在歐洲vhdl發展的比較好。在中國很多集成電路設計公司都采用verilog,但vhdl也有一定的市場。總的來說,采用verilog hdl設計時具有以下優點8:(1)設計者可以在非常抽象的層次上對線路進行描述而不必選擇特定的制造工藝。邏輯綜合工具可以將設計自動轉換成任意一種制造工藝版圖。如果出現新的制造工藝,也不必對電路重新設計,只要將rtl級描述輸入綜合工具,即可生成針對新的門級網表。這種設計使得工程師在功能設計、邏輯驗證階段,可以不必過多得考慮門級及工藝實現的具體細節,只需要利用系統設計時對芯片的要求,施加不同的約束條件即可。(2)設計者可以在設計周期的早期對電路的功能進行仿真驗證。可以很容易的對rtl級描述進行優化和修改,這樣可以在初期發現和排除絕大多數的設計錯誤,大大降低了在設計后期

溫馨提示

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

評論

0/150

提交評論