RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog/VHDL語(yǔ)法學(xué)習(xí)是掌握基本代碼設(shè)計(jì)的技能以及經(jīng)驗(yàn)總結(jié)

NJ90_gh_bee81f8 ? 2017-12-19 13:09 ? 次閱讀

FPGA/CPLD器件的設(shè)計(jì)輸入有很多種方式,如繪制原理圖、編寫(xiě)代碼或是調(diào)用IP核。早期的工程師對(duì)原理圖的設(shè)計(jì)方式情有獨(dú)鐘,這種輸入方式應(yīng)付簡(jiǎn)單的邏輯電路還湊合,應(yīng)該算得上簡(jiǎn)單實(shí)用,但隨著邏輯規(guī)模的不斷攀升,這種落后的設(shè)計(jì)方式已顯得力不從心。取而代之的是代碼輸入的方式,當(dāng)今絕大多數(shù)的設(shè)計(jì)都采用代碼來(lái)完成。
Verilog/VHDL語(yǔ)法學(xué)習(xí)是掌握基本代碼設(shè)計(jì)的技能

FPGA/CPLD開(kāi)發(fā)所使用的代碼,我們通常稱(chēng)之為硬件描述語(yǔ)言(Hardware Description Language),目前最主流的是VHDL和Verilog。VHDL發(fā)展較早,語(yǔ)法嚴(yán)謹(jǐn);Verilog類(lèi)似C語(yǔ)言,語(yǔ)法風(fēng)格比較自由。IP核調(diào)用通常也是基于代碼設(shè)計(jì)輸入的基礎(chǔ)之上,今天很多EDA工具的供應(yīng)商都在打FPGA/CPLD的如意算盤(pán),F(xiàn)PGA/CPLD的設(shè)計(jì)也在朝著軟件化、平臺(tái)化的方向發(fā)展,也許在不久的將來(lái),越來(lái)越多的工程只需要設(shè)計(jì)者從一個(gè)類(lèi)似蘋(píng)果商店的IP核庫(kù)中索取組件進(jìn)行配置,最后像搭積木一樣完成一個(gè)項(xiàng)目,或者整個(gè)設(shè)計(jì)都不需要見(jiàn)到一句代碼。當(dāng)然了,未來(lái)什么情況都有可能發(fā)生,但是底層的代碼邏輯編寫(xiě)方式無(wú)論如何還是有其生存空間的,畢竟一個(gè)個(gè)IP核組件都是從代碼開(kāi)始的,所以對(duì)于初入這個(gè)行當(dāng)?shù)男率侄?,掌握基本代碼設(shè)計(jì)的技能是必須的。

我們不過(guò)多談?wù)揤HDL和Verilog語(yǔ)言孰優(yōu)孰劣,總之這兩種語(yǔ)言是當(dāng)前業(yè)內(nèi)絕大多數(shù)開(kāi)發(fā)設(shè)計(jì)所使用的語(yǔ)言,從二者對(duì)電路的描述和實(shí)現(xiàn)上看,有許多相通之處。無(wú)論是VHDL還是Verilog,建議初學(xué)者先掌握其中一門(mén),至于到底先下手哪一門(mén),則需要讀者根據(jù)自身的情況做考量。對(duì)于沒(méi)有什么外部情況限制的朋友,若之前有一定的C語(yǔ)言基礎(chǔ),不妨先學(xué)Verilog,這有助于加快對(duì)語(yǔ)法本身的理解。在將其中一門(mén)語(yǔ)言學(xué)精、用熟之后,最好也能夠著手掌握另一門(mén)語(yǔ)言。雖然在單個(gè)項(xiàng)目中,很少需要大家“雙語(yǔ)齊下”,但在實(shí)際工作中,還是很有可能需要去接觸另一門(mén)語(yǔ)法所寫(xiě)的工程。網(wǎng)絡(luò)上有很多很好的開(kāi)源實(shí)例,若你只會(huì)Verilog,而參考實(shí)例卻是VHDL的,那么就讓你很尷尬了;忽然有一天A同事離職,老板把他寫(xiě)個(gè)半半的Verilog工程扔給只會(huì)VHDL的你維護(hù),那你可就被動(dòng)難堪了……所以嘛,對(duì)于VHDL和Verilog的取舍問(wèn)題,建議先學(xué)精一門(mén),也別忘了兼故另一門(mén),無(wú)論哪一種語(yǔ)言,至少咱也要能看懂別人的設(shè)計(jì)。

HDL語(yǔ)言雖然和軟件語(yǔ)言有許多相似之處,但由于其實(shí)現(xiàn)對(duì)象是硬件電路,所以他們之間的設(shè)計(jì)思想存在較大差異。尤其是那些做過(guò)軟件編程的朋友,很喜歡用軟件的順序思想來(lái)駕驅(qū)HDL語(yǔ)言,豈不知HDL實(shí)現(xiàn)的硬件電路大都是并行處理的。也許就是這么個(gè)大彎轉(zhuǎn)不過(guò)來(lái),所以很多朋友在研究HDL語(yǔ)言所實(shí)現(xiàn)的功能時(shí)常常百思不得其解。對(duì)于初學(xué)者,尤其是軟件轉(zhuǎn)行過(guò)來(lái)的初學(xué)者,筆者的建議是不要拋開(kāi)實(shí)際電路而研究語(yǔ)法,在一段代碼過(guò)后,多花些精力比對(duì)實(shí)際邏輯電路,必要時(shí)做做仿真,最好能再找些直觀的外設(shè)在實(shí)驗(yàn)板上看看結(jié)果。長(zhǎng)此以往,若能達(dá)到代碼和電路都心中有數(shù),那才證明真真正正掌握HDL語(yǔ)言的精髓了。

HDL語(yǔ)言的語(yǔ)法條目雖多,但并非所有的HDL語(yǔ)法都能夠?qū)崿F(xiàn)到最終的硬件電路,由此進(jìn)行劃分,可實(shí)現(xiàn)為硬件電路的語(yǔ)法我們常稱(chēng)為可綜合的語(yǔ)法,而不能夠?qū)崿F(xiàn)到硬件電路中,卻常??勺鳛榉抡骝?yàn)證的高層次語(yǔ)法我們則稱(chēng)之為行為級(jí)語(yǔ)法。很多朋友在初學(xué)語(yǔ)法時(shí),抱著一本語(yǔ)法書(shū)暈頭轉(zhuǎn)向的看,最后實(shí)戰(zhàn)的時(shí)候卻常常碰到這語(yǔ)法不能用那語(yǔ)法不支持的報(bào)錯(cuò)信息,從而更加抱怨HDL不是好東西,學(xué)起來(lái)真困難。其實(shí)不然,可綜合的語(yǔ)法是一個(gè)很小的子集,對(duì)于初學(xué)者,建議先重點(diǎn)掌握好這個(gè)子集,實(shí)際設(shè)計(jì)中或許靠著10來(lái)?xiàng)l基本語(yǔ)法就可以打天下了,怎么樣?HDL語(yǔ)言一下變簡(jiǎn)單了吧。這么說(shuō)一點(diǎn)不夸張,本書(shū)的重點(diǎn)就是要通過(guò)各種可實(shí)現(xiàn)到板級(jí)的例程讓大家快速的掌握如何使用可綜合的語(yǔ)法子集完成一個(gè)設(shè)計(jì)。后面一節(jié)我們會(huì)將常用的可綜合語(yǔ)法子集逐一羅列并簡(jiǎn)單介紹。

對(duì)于入了門(mén)的同學(xué)們,也不是說(shuō)掌握了可綜合的語(yǔ)法子集就萬(wàn)事大吉了,話說(shuō)“革命尚未成功,同志還需努力”。行為級(jí)語(yǔ)法也非一無(wú)是處,都說(shuō)“存在即是合理”,行為級(jí)語(yǔ)法也大有用處。一個(gè)稍微復(fù)雜的設(shè)計(jì),若是在板級(jí)調(diào)試前不經(jīng)過(guò)幾次三番的仿真測(cè)試,一次性成功的概率幾乎為零。而仿真驗(yàn)證也有自己的一套高效便捷的語(yǔ)法,如果再像底層硬件電路一樣搭仿真平臺(tái),恐怕就太浪費(fèi)時(shí)間了。行為級(jí)語(yǔ)法最終的實(shí)現(xiàn)對(duì)象不是FPGA/CPLD器件,而是咱手中的電腦,動(dòng)輒上G甚至雙核、四核的CPU可不愿做老牛拉破車(chē)的活,所以行為級(jí)語(yǔ)法幫助我們?cè)诜抡孢^(guò)程中利用好手中的資源,能夠快速、高效的完成設(shè)計(jì)的初期驗(yàn)證平臺(tái)搭建。因此,掌握行為級(jí)的語(yǔ)法,可以服務(wù)于我們?cè)谠O(shè)計(jì)的仿真驗(yàn)證階段的工作。說(shuō)多了,大家不要暈,本書(shū)重點(diǎn)在可綜合語(yǔ)法,也是初學(xué)者重點(diǎn)突擊方向,行為級(jí)語(yǔ)法是更高層次設(shè)計(jì)的追求,作為初學(xué)者,咱可以緩一緩,話說(shuō)“先會(huì)走路再學(xué)飛”嘛。

對(duì)于HDL語(yǔ)言的學(xué)習(xí),筆者根據(jù)自身的經(jīng)驗(yàn),提幾點(diǎn)建議。

首先,手中需要準(zhǔn)備一本比較完整的語(yǔ)法書(shū)籍,這類(lèi)書(shū)市場(chǎng)上已經(jīng)是滿(mǎn)天飛了,內(nèi)容相差無(wú)幾,初學(xué)者最好能在在開(kāi)始FPGA/CPLD的學(xué)習(xí)前花些時(shí)間認(rèn)真的看過(guò)一遍語(yǔ)法,盡可能的理解每條語(yǔ)法的基本功能和用法。當(dāng)然了,只需要大家認(rèn)真看過(guò)、理解過(guò),做到相關(guān)語(yǔ)法心中有數(shù)就行,咱也不是為了應(yīng)付考試,也沒(méi)必要去死記硬背任何東西。語(yǔ)法的理論學(xué)習(xí)是必須的,能夠?yàn)楹竺娴膶?shí)踐打下堅(jiān)實(shí)的基礎(chǔ)。有些實(shí)在不好理解的語(yǔ)法,也不要強(qiáng)求,今后在遇到類(lèi)似語(yǔ)法在實(shí)例中的參考用法時(shí)再掌握不遲。

其次,參考一些簡(jiǎn)單的例程,并且自己動(dòng)手寫(xiě)寫(xiě)代碼實(shí)現(xiàn)相同或相近的電路功能。這個(gè)過(guò)程中可能需要結(jié)合實(shí)際的FPGA/CPLD開(kāi)發(fā)工具和入門(mén)級(jí)學(xué)習(xí)套件。FPGA/CPLD的開(kāi)發(fā)工具前面章節(jié)已經(jīng)有所介紹,主要是掌握Quartus II(Altera公司的器件使用)或ISE(Xilinx公司的器件使用)的使用,學(xué)會(huì)使用這些工具新建一個(gè)工程、編寫(xiě)代碼、分配管腳、進(jìn)行編譯、下載配置文件到目標(biāo)電路板中。入門(mén)級(jí)的學(xué)習(xí)套件,簡(jiǎn)單的說(shuō),就是一塊板載FPGA/CPLD器件的電路板,這塊電路板不需要有很多高級(jí)的外設(shè),一些簡(jiǎn)單的常見(jiàn)外設(shè)即可(如蜂鳴器、流水燈、數(shù)碼管、UART、IIC等);一條下載線和相關(guān)的連接線。通過(guò)開(kāi)發(fā)工具我們可以進(jìn)行工程的建立和管理;而通過(guò)學(xué)習(xí)套件,我們就可以直觀的驗(yàn)證工程是否實(shí)現(xiàn)了既定的功能。在實(shí)踐的過(guò)程中,大家一定要注意自己的代碼風(fēng)格,當(dāng)然了,這很大程度上取決于參考例程的代碼風(fēng)格。至于什么樣的學(xué)習(xí)套件配套的參考例程是規(guī)范的,倒也沒(méi)有一個(gè)界定之說(shuō),在建議大家選擇口碑較好的學(xué)習(xí)套件的同時(shí),也非常推薦大家多去讀讀FPGA/CPLD原廠Altare(qts_qii5v1.pdf)或Xilinx(xst.pdf)的官方文檔,在他們的一些文檔手冊(cè)中有各種常見(jiàn)電路的實(shí)現(xiàn)代碼風(fēng)格和參考實(shí)例。在練習(xí)的過(guò)程中,大家也要學(xué)會(huì)使用開(kāi)發(fā)工具生產(chǎn)的各種視圖,尤其是RTL視圖。RTL視圖是用戶(hù)輸入代碼進(jìn)行綜合后的邏輯功能視圖,這個(gè)視圖很好的將用戶(hù)的代碼用邏輯門(mén)的方式詮釋出來(lái),初學(xué)者可以通過(guò)查看RTL視圖的方式來(lái)看看自己寫(xiě)的代碼所能實(shí)現(xiàn)的邏輯電路,以加深對(duì)語(yǔ)法的理解;反之,也可以通過(guò)RTL視圖來(lái)檢驗(yàn)當(dāng)前所寫(xiě)的代碼是否實(shí)現(xiàn)了期望的功能。

總之,HDL語(yǔ)言的學(xué)習(xí),簡(jiǎn)單的歸納,就是需要初學(xué)者多看、多寫(xiě)、多思考、多比對(duì)。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    817

    瀏覽量

    128119

原文標(biāo)題:FPGA入門(mén):Verilog/VHDL語(yǔ)法學(xué)習(xí)的經(jīng)驗(yàn)之談

文章出處:【微信號(hào):gh_bee81f890fc1,微信公眾號(hào):面包板社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    verilog語(yǔ)法學(xué)習(xí)心得

    verilog語(yǔ)法學(xué)習(xí)心得1.數(shù)字電路基礎(chǔ)知識(shí): 布爾代數(shù)、門(mén)級(jí)電路的內(nèi)部晶體管結(jié)構(gòu)、組合邏輯電路分析與設(shè)計(jì)、觸發(fā)器、時(shí)序邏輯電路分析與設(shè)計(jì)2.數(shù)字系統(tǒng)的構(gòu)成: 傳感器AD數(shù)字處理器DA執(zhí)行部件3.
    發(fā)表于 01-12 15:15

    FPGA入門(mén)學(xué)習(xí)經(jīng)驗(yàn)總結(jié)(轉(zhuǎn))

    ,個(gè)人偏好verilog,當(dāng)然不是說(shuō)vhdl不好,反正寫(xiě)出來(lái)的都是電路,那當(dāng)然就不要在語(yǔ)言的語(yǔ)法 上面花太多的功夫了,verilog 言簡(jiǎn)意賅assign always case if
    發(fā)表于 04-09 08:01

    FPGA入門(mén):Verilog/VHDL語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談

    FPGA入門(mén):Verilog/VHDL語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談 本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA/CPLD邊練邊學(xué)——快速入門(mén)Verilog/
    發(fā)表于 01-29 09:20

    FPGA實(shí)戰(zhàn)演練邏輯篇35:語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談

    語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt FPGA器件的設(shè)計(jì)輸入有很多種方式,如
    發(fā)表于 06-10 12:39

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載29:語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談

    `勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載29:語(yǔ)法學(xué)習(xí)經(jīng)驗(yàn)之談特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1i5LMUUD FPGA器件
    發(fā)表于 12-04 21:11

    掌握VHDL語(yǔ)法 ,VHDL語(yǔ)法學(xué)習(xí)筆記

    進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展 VHDL 的內(nèi)容,并公布了新版本的 VHDL,即 IEEE 標(biāo)準(zhǔn)的 1076-1993版本(簡(jiǎn)稱(chēng) 93 版)。現(xiàn)在,VHDLVeril
    發(fā)表于 09-02 19:32

    Verilog代碼的基本程序框架

    了解一下Verilog代碼的基本程序框架,這樣可以讓我們先對(duì)Verilog程序設(shè)計(jì)有一個(gè)整體的概念把握,進(jìn)而在后續(xù)的Verilog語(yǔ)法學(xué)習(xí)
    發(fā)表于 07-27 07:51

    SOPC Builder/Nios 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)

    SOPC Builder/Nios 學(xué)習(xí)經(jīng)驗(yàn)總結(jié)
    發(fā)表于 07-22 15:32 ?0次下載
    SOPC Builder/Nios <b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>經(jīng)驗(yàn)總結(jié)</b>

    線圈天線設(shè)計(jì)經(jīng)驗(yàn)總結(jié)

    線圈天線設(shè)計(jì)經(jīng)驗(yàn)總結(jié)
    發(fā)表于 09-12 17:21 ?224次下載

    模擬電路設(shè)計(jì)經(jīng)驗(yàn)總結(jié)

    模擬電子的相關(guān)知識(shí)學(xué)習(xí)教材資料——模擬電路設(shè)計(jì)經(jīng)驗(yàn)總結(jié)
    發(fā)表于 09-27 15:19 ?0次下載

    指針經(jīng)驗(yàn)總結(jié)

    指針經(jīng)驗(yàn)總結(jié)
    發(fā)表于 10-27 15:44 ?19次下載
    指針<b class='flag-5'>經(jīng)驗(yàn)總結(jié)</b>

    根據(jù)學(xué)習(xí)經(jīng)驗(yàn)以及教學(xué)經(jīng)驗(yàn)總結(jié)學(xué)習(xí)單片機(jī)的4個(gè)步驟

    如何學(xué)習(xí)單片機(jī)的問(wèn)題,我設(shè)計(jì)的這四個(gè)步驟,并不是拍拍腦袋想出來(lái)的,而是根據(jù)很多的學(xué)習(xí)經(jīng)驗(yàn)以及教學(xué)經(jīng)驗(yàn)總結(jié)出來(lái)的一套非常科學(xué)的
    的頭像 發(fā)表于 01-18 15:10 ?3950次閱讀
    根據(jù)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>經(jīng)驗(yàn)</b><b class='flag-5'>以及</b>教學(xué)<b class='flag-5'>經(jīng)驗(yàn)總結(jié)</b>出<b class='flag-5'>學(xué)習(xí)</b>單片機(jī)的4個(gè)步驟

    VHDL語(yǔ)法學(xué)習(xí)筆記

    VHDL 的 英 文 全 名 是 Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,誕生于 1982 年。 1987
    發(fā)表于 02-10 17:42 ?0次下載

    VerilogVHDL轉(zhuǎn)換的經(jīng)驗(yàn)與技巧總結(jié)

    VerilogVHDL語(yǔ)法是互通且相互對(duì)應(yīng)的,如何查看二者對(duì)同一硬件結(jié)構(gòu)的描述,可以借助EDA工具,如Vivado,打開(kāi)Vivado后它里面的語(yǔ)言模板后,也可以對(duì)比查看Verilog
    的頭像 發(fā)表于 04-28 17:47 ?2417次閱讀
    <b class='flag-5'>Verilog</b>到<b class='flag-5'>VHDL</b>轉(zhuǎn)換的<b class='flag-5'>經(jīng)驗(yàn)</b>與技巧<b class='flag-5'>總結(jié)</b>

    VerilogVHDL的比較 Verilog HDL編程技巧

    VerilogVHDL 比較 1. 語(yǔ)法和風(fēng)格 VerilogVerilog語(yǔ)法
    的頭像 發(fā)表于 12-17 09:44 ?113次閱讀
    RM新时代网站-首页