91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级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)注

    1660

    文章

    22408

    瀏覽量

    636242
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2200

    瀏覽量

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

    關(guān)注

    183

    文章

    7644

    瀏覽量

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

    關(guān)注

    39

    文章

    267

    瀏覽量

    30327
  • VerilogHDL
    +關(guān)注

    關(guān)注

    2

    文章

    39

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    學(xué)習(xí)電子電路中常見的問題

    電子電路作為現(xiàn)代科技的基礎(chǔ),其學(xué)習(xí)過程中常會遇到各種理論和實踐問題。無論是初學(xué)者還是有一定經(jīng)驗的工程師,都可能面臨電路設(shè)計、元器件選型、信號處理等方面的困惑。本文將系統(tǒng)梳理電子電路學(xué)習(xí)
    的頭像 發(fā)表于 01-20 07:38 ?219次閱讀

    AI端側(cè)部署案例(SC171開發(fā)套件V3)2026版

    AI端側(cè)部署案例(SC171開發(fā)套件V3)2026版 序列 課程名稱 視頻課程時長 視頻課程鏈接 課件鏈接 工程源碼 1 初學(xué)者入門手寫數(shù)字識別案例 25分29秒 https
    發(fā)表于 01-15 10:40

    FPGA初學(xué)者求助

    Vivado2025.1配置MIG時出現(xiàn)報錯 大家好,我是一名研一的學(xué)生,同時也是一名FPGA初學(xué)者,最近在使用vivado2025.1配置MIG的時候遇到了問題,具體問題如下: 我這個mig的配置
    發(fā)表于 12-07 11:43

    如何對FX3進行編程以便通過USB 3.0從FPGA -> FX3 -> PC傳輸RGB888視頻?

    我想為我的應(yīng)用程序編程 FX3,其中 FX3 將從 FPGA 接受 RGB888 視頻并通過 USB 3.0 將其傳輸?shù)?PC。 任何支持文章、博客或相關(guān)應(yīng)用說明。 由于我是 FX3 環(huán)境的初學(xué)者,因此需要這方面的指導(dǎo)。
    發(fā)表于 08-11 08:15

    簡易穩(wěn)定的調(diào)頻無線話筒電路資料

    話筒信號經(jīng)過C8耦合到Q1Q2組成的振蕩電路進行調(diào)制,然后再經(jīng)C2送到Q3緩沖放大后由C3到天線發(fā)送出去。本電路的特點是元器件少而且比較穩(wěn)定,適合初學(xué)者制作
    發(fā)表于 08-04 14:56 ?3次下載

    避雷!樹莓派初學(xué)者常犯的5個錯誤!

    如果你剛剛?cè)胧謽漭?,你就會知道它潛力無窮,幾乎能實現(xiàn)你想到的任何功能。然而,這種自由也讓你可能在不知不覺中做出對系統(tǒng)有害的操作。在本文中,我將介紹要避免犯哪些錯誤。初學(xué)者最常犯的錯誤包括:損壞SD
    的頭像 發(fā)表于 07-22 17:16 ?1324次閱讀
    避雷!樹莓派<b class='flag-5'>初學(xué)者</b>常犯的5個錯誤!

    【經(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 ?1098次閱讀
    【經(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é)者往往不知道該從什么地方開始, 怎樣才能讀懂它。其實電子電路本身有很強的規(guī)律性,不管多復(fù)雜的電路
    發(fā)表于 05-12 15:09

    AI端側(cè)部署案例(SC171開發(fā)套件V3)

    AI端側(cè)部署案例(SC171開發(fā)套件V3) 序列 課程名稱 視頻課程時長 視頻課程鏈接 課件鏈接 工程源碼 1 初學(xué)者入門手寫數(shù)字識別案例 20分02秒 https://t.elecfans.com
    發(fā)表于 04-16 18:33

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

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

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

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

    瑞薩RA系列MCU的命名方法與選型

    初學(xué)者來說,要理解RA產(chǎn)品家族產(chǎn)品型號中的不同數(shù)字和字母并不容易。我們首先以RA系列MCU中的其中一個型號R7FA6M5BH2CBG為例,來講解型號命名當(dāng)中不同字段的含義。
    的頭像 發(fā)表于 03-27 14:32 ?2922次閱讀
    瑞薩RA<b class='flag-5'>系列</b>MCU的命名方法與選型

    PCM2912APJTR設(shè)計的USB聲卡播放聲音有噠噠的聲音的原因有哪些

    最近學(xué)習(xí)PCB設(shè)計設(shè)計了一個USB聲卡,電路圖參考了官方demo模塊的原理圖,但是設(shè)計出來的板子發(fā)現(xiàn)播放音樂會有噠噠的聲音。本人由于是初學(xué)者,所以有點不懂是PCB不對的問題還是原理圖設(shè)計的問題了。 希望有人能夠給點修改建議。 下
    發(fā)表于 03-21 11:54

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

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