一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

FPGA初學(xué)者系列——模塊書寫&電路綜合

電子設(shè)計 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2020-11-13 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本系列文章主要針對FPGA初學(xué)者編寫,包括FPGA的模塊書寫、基礎(chǔ)語法、狀態(tài)機、RAM、UART、SPI、VGA、以及功能驗證等。將每一個知識點作為一個章節(jié)進行講解,旨在更快速的提升初學(xué)者在FPGA開發(fā)方面的能力,每一個章節(jié)中都有針對性的代碼書寫以及代碼的講解,可作為讀者參考。

第一章:模塊書寫

Verilog HDL 語言的基本語法與 C語言相似,因此與 VHDL 相比較更容易上手。本章將會在實際小項目的基礎(chǔ)上,以 Verilog HDL 語言為主, 教讀者怎么更方便、更高效的學(xué)習(xí) FPGA。

Verilog HDL 中的 HDL 指的是硬件描述語言(Hardware Description Language), 顧名思義,Verilog HDL 可以描述對應(yīng)的硬件電路,下面以一個小例子說明。

圖 1 電路示意圖

如圖1所示為電路示意圖, 首先分析一下該電路:

①兩個輸入端口即 a 和 b,為了更好地讓讀者理解該變量為一個輸入端口,輸入端口可加上方向pi(port input)表示輸入。面對大量的代碼,一個比較好的命名風(fēng)格,更方便我們后續(xù)的驗證, 希望前期就可以養(yǎng)成比較好的命名風(fēng)格。

②一個輸出端口即 c,同理 po 即為 port output。

功能:該電路實現(xiàn) a 和 b 相與,結(jié)果為 c。

在用 Verilog HDL 描述一個電路時,必須要對該電路命名,此處我們對該電路命名為 a_and_b。在用 Verilog HDL 描述一個電路時, 模塊的開始都是以 module 開始,endmodule 結(jié)束, module 后面寫該模塊的模塊名,模塊名的后面有一個小括號,所有該模塊的端口都需要在此小括號內(nèi)聲明,小括號以分號結(jié)束(半角分號,同c 語言一樣, Verilog HDL 中每一條語句也是以分號結(jié)束)。

在 module 與 endmodule 之間,可以定義必要的內(nèi)部變量,以及我們所有描述的邏輯功能。具體如圖2所示:

圖2 模塊代碼編輯示意

建議安裝專門編輯程序的一些軟件,例如Notepad++軟件界面及功能都比較齊全。用 Notepad++打開我們新建的 V 文件, 按照模板書寫模塊a_and_b的 Verilog HDL 代碼, 如下所示:

圖3 模塊代碼

代碼解析:

①模塊以 module 作為開頭, endmodule 作為結(jié)尾, 需要注意模塊名與 V 文件名要一致;

②小括號內(nèi)描述端口, Verilog HDL 中輸入端口的關(guān)鍵字為 input,輸出端口的關(guān)鍵字為 output。wire(線) 為端口的變量類型, input 端口的變量均為 wire型, Verilog HDL 中另一種常用的變量類型為 reg(寄存器),將在后面的章節(jié)詳細介紹;

③代碼第 8 行, 描述了具體的邏輯功能, assign 為 Verilog HDL 中的關(guān)鍵字,assign 可以描述組合邏輯,每一個 assign 后面只能跟一條語句。Verilog HDL 中另一個常用的關(guān)鍵字為 always, 后續(xù)會詳細講解。該語句表達的意思為 a&b賦值給 c, 其中=為賦值號, 將右邊的結(jié)果賦值為左邊的變量, &為按位與,即變量的對應(yīng)位相與, 將在基礎(chǔ)語法部分詳細講解。

這樣我們就已經(jīng)將圖中電路描述清楚了,代碼只需要按照給出的模板填寫對應(yīng)的內(nèi)容即可。

第二章節(jié)我們將會講解在ISE中如何驗證代碼是否有語法錯誤,以及將對應(yīng)的代碼轉(zhuǎn)變成 RTL 電路。

第二章:電路綜合

第一章中已經(jīng)將 a & b = c 對應(yīng)的 Verilog HDL 程序?qū)懗觯?但是我們無法得知我們所寫的代碼是否有語法錯誤,也不知道代碼是否能夠按照我們的意思生成對應(yīng)的電路。本章中我們將會使用 xilinx 公司的 ISE 軟件對所寫的程序進行綜合,從中可以得知代碼是否有語法錯誤,以及生成對應(yīng)的 RTL 電路。為了方便管理,我們在與 design 文件夾同路徑下新建一個文件夾,取名為ise_prj(基于 ISE 的 project)。打開 ISE,會看到如圖 1 所示的界面。點擊右上角的 File,選擇 New Project…新建一個工程。

圖 1 ISE 主界面

彈出如圖 2 所示的界面,在 Name 處填寫工程名字(盡量保證與頂層文件名一致即a_and_b), Location 處選擇工程存放的路徑, Working Direction 默認路徑與 Location一致, Top-level source type 處按照所需選擇,此處我們選擇 HDL。

圖 2 創(chuàng)建工程

點擊 Next,彈出如下圖 3的界面,按照板卡芯片選擇對應(yīng)的選項,若是只想看看生成的 RTL 電路(不下板調(diào)試),則不需要選擇,或者隨便選擇一個芯片即可。

圖 3 工程設(shè)置

點擊 Next,再點擊 Finish 完成工程的創(chuàng)建。按照圖4所示,右鍵點擊芯片型號,選擇 Add Source…添加已經(jīng)存在的文件(a_and_b.v)。找到 design 文件夾中a_and_b.v 文件所在的路徑,選中該文件,點擊 OK。

圖4 添加 V 文件

添加文件后的工程界面如圖 5 所示。

圖 5 添加 V 文件后的工程

選中 a_and_b,雙擊 Synthesize 選項進行對我們的程序進行綜合。若是沒有語法錯誤則會出現(xiàn)圖6左所示的界面,如果有語法錯誤則會出現(xiàn)圖6右所示的界面,則需要查看錯誤報告將錯誤的地方改正并重新綜合,直至編譯通過為止。

圖6 左(正確)右(錯誤)

在綜合正確的情況下,點擊 Synthesize 選項前面的加號,如圖 7 所示。

圖 7 展開后的 Synthesize 選項

雙擊 View RTL Schematic 選項,出現(xiàn)如圖8所示的界面。

圖 8 RTL 顯示選項頁面

選擇 Start with a schematic of the top-level block,點擊 OK 選項,生成如下圖 9 所示界面。

圖 9 模塊模型

可以雙擊圖 9 所示的模塊的模型,則可以看到模塊內(nèi)部的 RTL 電路,如圖 10 所示。

圖 10 RTL 電路

從圖 10 中我們可以看到生成的電路是我們用 Verilog HDL 語言描述的電路結(jié)構(gòu)。代碼的語法及電路驗證都是正確的,但是具體的功能是否滿足我們的要求呢, 這就需要我們通過仿真來驗證了。

在第三章中,我們會針對該代碼書寫對應(yīng)的測試文件,并且通過 Modelsim 軟件來驗證我們的a_and_b 模塊功能是否正確。

編輯:hfy

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

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618497
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2185

    瀏覽量

    125352
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141759
  • 硬件電路
    +關(guān)注

    關(guān)注

    39

    文章

    254

    瀏覽量

    29788
  • VerilogHDL
    +關(guān)注

    關(guān)注

    2

    文章

    39

    瀏覽量

    19456
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【經(jīng)驗分享】玩轉(zhuǎn)FPGA串口通信:從“幻覺調(diào)試”到代碼解析

    FPGA開發(fā),思路先行!玩FPGA板子,讀代碼是基本功!尤其對從C語言轉(zhuǎn)戰(zhàn)FPGA的“寶貝們”來說,適應(yīng)流水線(pipeline)編程可能需要點時間。上篇點燈代碼解讀了基礎(chǔ),而如果能親手寫出串口通訊代碼,恭喜你,
    的頭像 發(fā)表于 06-05 08:05 ?310次閱讀
    【經(jīng)驗分享】玩轉(zhuǎn)<b class='flag-5'>FPGA</b>串口通信:從“幻覺調(diào)試”到代碼解析

    電路基礎(chǔ)學(xué)習(xí)資料

    不可多得的電路基礎(chǔ)知識學(xué)習(xí)資料,作者郝銘先生具有深厚的電路功底,且講解的非常通俗易懂,非常適合初學(xué)者。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~)
    發(fā)表于 05-17 15:01

    從單片機初學(xué)者邁向單片機工程師

    從單片機初學(xué)者邁向單片機工程師,對初學(xué)者非常適用。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~)
    發(fā)表于 04-15 14:06

    linux初學(xué)者,用這樣的開發(fā)板合適嗎?

    這款是深圳市九鼎創(chuàng)展科技有限公司的全志A40I開發(fā)板,適合linux初學(xué)者嗎? 先用開發(fā)板調(diào)試,調(diào)試成功后,就可以單獨用核心板,再配合自己做的底板就可以做產(chǎn)品了。 做核心板還是難度太大了,開發(fā)周期太長,直接用核心板。穩(wěn)定靠譜
    發(fā)表于 04-10 11:11

    12V開關(guān)電源制作_適合初學(xué)者制作的TOP22X系列開關(guān)電源

    TOP22X系列雖然出來得比較早,但外圍簡單、高效,適合初學(xué)者制作。圖下面的是量產(chǎn)的真實數(shù)據(jù)。變壓器都是PC40材質(zhì)。同樣適合100KHZ的其它芯片驅(qū)動的單端反激式開關(guān)電源 需要完整版資料可下載附件查看哦!
    發(fā)表于 04-02 14:39

    初學(xué)者必看!4G模組Air780EPM的開機啟動及外圍電路設(shè)計

    本文介紹了4G模組——Air780EPM 模塊開機的完整硬件設(shè)計指南,涵蓋供電要求、管腳配置、電路示例及常見問題排查方法,希望能夠幫助大家避免設(shè)計錯誤,確保模塊穩(wěn)定啟動!常見開機電路。
    的頭像 發(fā)表于 03-07 16:02 ?307次閱讀
    <b class='flag-5'>初學(xué)者</b>必看!4G模組Air780EPM的開機啟動及外圍<b class='flag-5'>電路</b>設(shè)計

    電子工程師的電路設(shè)計經(jīng)驗分享

    本文分享了電子工程師在電路設(shè)計方面的豐富經(jīng)驗,包括項目開發(fā)步驟、電路設(shè)計核心思想、元器件選擇與優(yōu)化等內(nèi)容,旨在幫助初學(xué)者快速提升電路設(shè)計能力。
    的頭像 發(fā)表于 01-21 15:13 ?708次閱讀

    基于FPGA的電子琴設(shè)計

    在之前也出了幾篇源碼系列,基本上都是一些小設(shè)計,源碼系列主要就會想通過實操訓(xùn)練讓各位學(xué)習(xí)者,尤其是初學(xué)者去更好的理解學(xué)習(xí)FPGA,或者給要的學(xué)生提供一些源碼,之前設(shè)計過各個芯片的配置等
    的頭像 發(fā)表于 01-20 14:07 ?837次閱讀
    基于<b class='flag-5'>FPGA</b>的電子琴設(shè)計

    EE-269:以太網(wǎng)802.3初學(xué)者指南

    電子發(fā)燒友網(wǎng)站提供《EE-269:以太網(wǎng)802.3初學(xué)者指南.pdf》資料免費下載
    發(fā)表于 01-05 09:48 ?1次下載
    EE-269:以太網(wǎng)802.3<b class='flag-5'>初學(xué)者</b>指南

    凌科電氣YU系列工業(yè)級連接器登場,解鎖USB&amp;amp;Type-C多模塊新體驗!

    近日,凌科全新推出YU系列USB&amp;amp;Type-C多模塊工業(yè)級連接器,在功能上實現(xiàn)了全面升級。
    的頭像 發(fā)表于 12-18 09:46 ?506次閱讀

    上新 | 超全模塊超乎想象,YU系列USB&amp;amp;amp;Type-C多模塊工業(yè)級連接器新品驚喜上市

    最近,凌科推出了又一新品——YU系列USB&amp;Type-C多模塊工業(yè)級連接器。這款產(chǎn)品在功能上進行了全面升級,不止單一的USB連接功能,而且還涵蓋USB帶排針、Type-C、USB轉(zhuǎn)
    的頭像 發(fā)表于 12-17 18:25 ?513次閱讀
    上新 | 超全<b class='flag-5'>模塊</b>超乎想象,YU<b class='flag-5'>系列</b>USB&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;Type-C多<b class='flag-5'>模塊</b>工業(yè)級連接器新品驚喜上市

    XD08M3232紅外感應(yīng)單片機開發(fā)板適合初學(xué)者嗎?

    XD08M3232是一款國產(chǎn)8位高性能Flash的接近感應(yīng)單片機,具有較大的內(nèi)存、恒流驅(qū)動電路、內(nèi)置運算放大器和模擬比較器等特點。對于初學(xué)者來說,選擇合適的開發(fā)板是非常重要的,因為它將直接影響
    發(fā)表于 12-07 14:55

    正點原子fpga開發(fā)板不同型號

    ZYNQ-7000系列 ZYNQ-7000系列是正點原子的入門級FPGA開發(fā)板,適合初學(xué)者和教育用途。這些開發(fā)板搭載了Xilinx的Zynq-7000
    的頭像 發(fā)表于 11-13 09:30 ?3714次閱讀

    我用的是multisim14.0,因為是初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦?

    我用的是multisim14.0,因為是初學(xué)者,仿真電路的時候找不到合適的模型,應(yīng)該怎么辦? 比如我電路用的是AO3400的NMOS,但是在multisim14.0軟件自帶的元件庫里面沒找到類似的,開啟電壓是1.5v的nmos,
    發(fā)表于 08-23 10:59

    種草一塊國產(chǎn)FPGA開發(fā)板,不用燒錄器,一根TypeC線即插即用,盤古PGX-MINI 4K開發(fā)板

    分享一塊國產(chǎn)入門級FPGA開發(fā)板,不用燒錄器,盤古PGX-MINI 4K開發(fā)板,一根TypeC線即插即用,一鍵式便攜操作,非常適用于初學(xué)者?。?!而且配套的資料和實驗例程很豐富,對于想嘗試國產(chǎn)FPGA
    發(fā)表于 08-01 10:27