vhdl轉(zhuǎn)換為verilog
今天給大家分享一個(gè)VHDL和Verilog的工具。
很多新手初次學(xué)習(xí)FPGA都曾遇到過(guò)一個(gè)問(wèn)題:是學(xué)Verilog OR VHDL?
很多初學(xué)者最終選擇了Verilog,因?yàn)椋?/p>
VHDL比較嚴(yán)謹(jǐn),入門難;Verilog比較自由,容易快速掌握;
用Verilog的越來(lái)越多,VHDL越來(lái)越少,我感覺(jué)這絕對(duì)是一個(gè)趨勢(shì)。國(guó)內(nèi)的許多IC設(shè)計(jì)公司,Verilog也已經(jīng)成為了主流設(shè)計(jì)語(yǔ)言。
Verilog代碼運(yùn)行速度快,simulation performance 好,所以netlist都用verilog,VHDL package 比較好,但寫得費(fèi)事。
IP供應(yīng)商的IP核大多使用Verilog HDL,可找到的成熟Verilog設(shè)計(jì)比較多。
然而當(dāng)前的現(xiàn)狀卻是:
并不是所有能找到的設(shè)計(jì)都是使用Verilog的,總有一些多年前的代碼、IP核使用VHDL設(shè)計(jì),但目前還在使用。
現(xiàn)在好多FPGA設(shè)計(jì)軟件和仿真軟件都支持混合設(shè)計(jì),也就是說(shuō)你的設(shè)計(jì)中可以有的模塊使用Verilog設(shè)計(jì),有的模塊使用VHDL設(shè)計(jì)
其實(shí)VHDL與Verilog的語(yǔ)法是很固定且很簡(jiǎn)單的,對(duì)于編程有經(jīng)驗(yàn)的人來(lái)說(shuō)并不會(huì)糾結(jié)選Verilog和VHDL,兩種語(yǔ)言完全是相通的,如果放開(kāi)點(diǎn)說(shuō)完全是一模一樣的,換湯不換藥。所以肯定可以將Verilog和VHDL語(yǔ)法之間相互轉(zhuǎn)換。
可如果你只會(huì)Verilog,但是你拿到的設(shè)計(jì)是VHDL怎么辦,不要擔(dān)心,現(xiàn)在我教大家如何進(jìn)行將Verilog和VHDL相互轉(zhuǎn)換。
以下面一段VHDL代碼為例,將其轉(zhuǎn)換成Verilog,
我們使用下面的小工具將VHDL轉(zhuǎn)換成Verilog
第一步:選擇轉(zhuǎn)換模式,可以VHDL-》Verilog,也可以Verilog轉(zhuǎn)VHDL
第二步:選擇要轉(zhuǎn)換的VHDL文件,和轉(zhuǎn)換后生成Verilog文件的路徑
第三步:點(diǎn)擊轉(zhuǎn)換按鈕,幾秒鐘就可以轉(zhuǎn)換好。
下面是轉(zhuǎn)換后的效果:
轉(zhuǎn)換出來(lái)的格式是不是很漂亮,看著很舒服呢!即使復(fù)雜的狀態(tài)機(jī)也能轉(zhuǎn)換的明明白白!
VHDL和Verilog誰(shuí)更勝一籌
這兩種語(yǔ)言都是用于數(shù)字電子系統(tǒng)設(shè)計(jì)的硬件描述語(yǔ)言,首先要明確的是VHDL、Verilog并非是針對(duì)硬件設(shè)計(jì)而開(kāi)發(fā)的語(yǔ)言,只不過(guò)目前被我們用來(lái)設(shè)計(jì)硬件。HDL是Hardware Description Language的縮寫,中文名稱是“硬件描述語(yǔ)言”。也就是說(shuō)HDL并不是“硬件設(shè)計(jì)語(yǔ)言(Hardware Design Language)”。別看只差這一個(gè)單詞,正是這一個(gè)單詞才決定了絕大部分電路設(shè)計(jì)必須遵循RTL的模式來(lái)編寫代碼,而不能隨心所欲得寫僅僅符合語(yǔ)法的HDL代碼。這兩種語(yǔ)言都已經(jīng)是 IEEE 的標(biāo)準(zhǔn)。那么VHDL VS Verilog哪個(gè)更勝一籌呢?
共同點(diǎn):
現(xiàn)在我們來(lái)看看這兩者有哪些共同的特點(diǎn):
1. 能形式化地抽象表示電路的行為和結(jié)構(gòu);
2. 支持邏輯設(shè)計(jì)中層次與范圍地描述;
3. 可借用高級(jí)語(yǔ)言地精巧結(jié)構(gòu)來(lái)簡(jiǎn)化電路行為和結(jié)構(gòu);具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性;
4. 支持電路描述由高層到低層的綜合轉(zhuǎn)換;
5. 硬件描述和實(shí)現(xiàn)工藝無(wú)關(guān);
6. 便于文檔管理;
7. 易于理解和設(shè)計(jì)重用
區(qū)別:
兩者各有各的特點(diǎn)。 Verilog HDL 推出已經(jīng)有 20 年了,擁有廣泛的設(shè)計(jì)群體,成熟的資源也比 VHDL 豐富。 Verilog 更大的一個(gè)優(yōu)勢(shì)是:它非常容易掌握,是類C語(yǔ)言,只要有 C 語(yǔ)言的編程基礎(chǔ),可以通過(guò)比較短的時(shí)間掌握這種設(shè)計(jì)技術(shù)。而 VHDL 設(shè)計(jì)相對(duì)來(lái)說(shuō)要難一點(diǎn),是類ADA語(yǔ)言,這個(gè)是因?yàn)?VHDL 不是很直觀,需要有 Ada 編程基礎(chǔ),一般認(rèn)為至少要半年以上的專業(yè)培訓(xùn)才能掌握。
目前版本的 Verilog HDL 和 VHDL 在行為級(jí)抽象建模的覆蓋面范圍方面有所不同。一般認(rèn)為 Verilog 在系統(tǒng)級(jí)抽象方面要比 VHDL 略差一些,而在門級(jí)開(kāi)關(guān)電路描述方面要強(qiáng)的多。
Verilog code 運(yùn)行速度快,仿真表現(xiàn)好,所以網(wǎng)表都用Verilog。VHDL語(yǔ)言比較嚴(yán)謹(jǐn),某些語(yǔ)法錯(cuò)誤在語(yǔ)法分析階段就可以被發(fā)現(xiàn),而Verilog和C類似語(yǔ)言風(fēng)格比較自由。Verilog適合算法級(jí),RTL,邏輯級(jí),門級(jí),而VHDL適合特大型的系統(tǒng)級(jí)設(shè)計(jì)。Verilog更加靈活效率更高。能用較少的代碼實(shí)現(xiàn)相同的功能。而且擁有VHDL沒(méi)有的系統(tǒng)函數(shù)。VHDL抽象層次較verilog略高,具有一些verilog沒(méi)有的功能比如可以定義模塊端口為多維數(shù)組類型、可以不指定狀態(tài)機(jī)的具體編碼方式等。
總結(jié)
那么對(duì)數(shù)字邏輯設(shè)計(jì)中究竟用哪一種硬件描述語(yǔ)言?目前在美國(guó),高層次數(shù)字系統(tǒng)設(shè)計(jì)領(lǐng)域中,應(yīng)用 Verilog 和 VHDL 的比率是 80 %和 20 %;日本和臺(tái)灣和美國(guó)差不多;而在歐洲 VHDL 發(fā)展的比較好。在中國(guó)很多集成電路設(shè)計(jì)公司都采用 Verilog。
VHDL是美國(guó)軍方組織開(kāi)發(fā)的,1987年成為標(biāo)準(zhǔn),而 Verilog 是 1995 年才成為標(biāo)準(zhǔn)的。Verilog 是一個(gè)公司的私有財(cái)產(chǎn)轉(zhuǎn)化而來(lái)的。為什么 Verilog 能成為 IEEE 標(biāo)準(zhǔn)呢?
筆者認(rèn)為一定有它獨(dú)特的優(yōu)越性, Verilog 擁有更強(qiáng)的生命力。而且容易入門,接受Verilog HDL代碼做后端芯片的集成電路廠家比較多。如果著重于集成電路的設(shè)計(jì),建議學(xué)習(xí)Verilog HDL語(yǔ)言。VHDL強(qiáng)調(diào)組合邏輯的綜合,在各個(gè)高校用的比較多。
評(píng)論