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

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

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

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

HDL開發(fā)的10大規(guī)則是什么

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-09-29 08:55 ? 次閱讀

編寫良好的、可移植的、可重用的 HDL 代碼,使設(shè)計能夠以所需的頻率實現(xiàn),這絕對是一個挑戰(zhàn)。

為此,許多(不是大多數(shù))專業(yè)組織都有編碼標(biāo)準(zhǔn)。不過,編碼規(guī)則可能會成為戰(zhàn)場。一些公司的編碼規(guī)則非常復(fù)雜,不僅控制代碼結(jié)構(gòu),還控制格式和命名,而有些公司則稍微寬松一些。

但是,如果你是專業(yè)開發(fā) FPGA,或者是作為愛好者,都應(yīng)該有一些基本的編碼規(guī)則。當(dāng)你來到項目的后端并且必須實現(xiàn)時序收斂時,遵守這些基本規(guī)則可以節(jié)省大量時間和精力。為此,我開始思考我的 HDL 開發(fā)的 10 大規(guī)則是什么??

狀態(tài)機——只是單個進程。忘記關(guān)于組合部分和順序部分的學(xué)校和課程。所有狀態(tài)機都應(yīng)該是單個進程。這有助于調(diào)試,防止鎖存器的出現(xiàn),并確保所有輸出都是寄存器類型,從而減少毛刺并幫助我們實現(xiàn)時序收斂。

f8fe4312-3f8e-11ed-9e49-dac502259ad0.png

狀態(tài)機——盡可能多地從狀態(tài)機中解耦功能。這意味著確保計數(shù)器等位于它們自己的進程中(在 FSM 進程之外)并由來自 FSM 的信號控制。這種解耦使FPGA的實現(xiàn)對于 FSM 和計數(shù)器都更加優(yōu)化,結(jié)果會得到更好的結(jié)果質(zhì)量。

狀態(tài)機——理想情況下,狀態(tài)機應(yīng)該在們自己的單獨文件中,與其他代碼元素分開。我會允許在同一個文件中解耦計時器和其他元素。

推斷——只要有可能,編寫代碼時,應(yīng)使綜合工具能夠推斷出它所綁定的邏輯結(jié)構(gòu)(例如,DSP48、BRAM 等)。這使得代碼可以隨著系列之間架構(gòu)特性的變化(例如,DSP48 到 DSP58)而更方便移植。

實例化——當(dāng)無法執(zhí)行推理并且必須實例化組件時,應(yīng)該在架構(gòu)頂層的文件中。這使得替換或更新實例化的 IP 更容易。

實體/模塊——每個進入或離開模塊的信號都應(yīng)該被注冊。這有助于解決時序收斂問題,尤其是當(dāng)我們以更快的頻率運行時。

使用標(biāo)準(zhǔn)接口——使用 AXI4、AXIS、AXI4-Lite 或其他標(biāo)準(zhǔn),如果是純 HDL 設(shè)計,例如使用wishbone總線在模塊之間進行通信。這簡化了架構(gòu)元素對具有大量矢量端口和相關(guān)握手信號的需求,這些端口需要連接、布局和布線,并實現(xiàn)時序收斂。如果需要流水線實現(xiàn)時序收斂,這些接口通常也更加靈活。

不要將結(jié)構(gòu)代碼和功能代碼混合——這使重用變得方便而簡單,因為功能代碼位于單獨的文件中可以輕松重用。同樣,結(jié)構(gòu)代碼文件更容易理解,因為它們只是定義解決方案的配置。

命名——在整個設(shè)計中使用合理的變量名稱,這些名稱具有描述性,有助于提高可讀性??紤]使用 i_ o_ s_ v_ 等前綴來標(biāo)識正在訪問或處理的變量的類型。前綴比后綴更有效,因為變量名稱的大小會發(fā)生變化。如果想要進行更改,使用前綴可以簡化批量編輯(豎選)。

文檔 – 可以讓閱讀正在使用的 IP 的文檔了解其工作原理(不要以為你知道它是如何工作的)。UltraFast 設(shè)計方法參考指南值得閱讀,可以學(xué)習(xí)編碼結(jié)構(gòu)(例如,復(fù)位和控制信號)。同樣,在設(shè)計中包含自己的文檔也是一個好習(xí)慣。有幾種開源工具可以使用,例如用于時序圖的 WaveDrom、用于框圖的符號器、用于寄存器定義的位字段等。能夠?qū)⑦@些包含在源代碼中是理想的,因為它可以防止文檔丟失。在這種情況下,推薦TerosHDL 編輯器。

f9436d0c-3f8e-11ed-9e49-dac502259ad0.png

遵循這些規(guī)則,能夠創(chuàng)建優(yōu)秀的 FPGA 設(shè)計,這些設(shè)計不僅可以以所需的速度實現(xiàn),而且還具有靈活性并能夠?qū)崿F(xiàn)大量重用。但是,我將添加兩個額外的規(guī)則:

仿真你的設(shè)計——在考慮實施之前,請確保頂層文件有一個測試臺,該測試臺可以證明設(shè)計按預(yù)期工作。設(shè)備上調(diào)試僅用于集成類型問題,而不是驗證設(shè)計是否有效。

使用 GIT 等版本控制系統(tǒng),并認(rèn)真使用問題跟蹤和發(fā)布功能。它真的可以幫助你,讓你擺脫困境。

這些是我的 HDL 開發(fā)的前 10 條(好吧,12 條規(guī)則)。我很想知道如果是你,你會考慮添加哪些規(guī)則?




審核編輯:劉清

聲明:本文內(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)注

    1642

    文章

    21920

    瀏覽量

    612163
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    47727
  • 狀態(tài)機
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    27979

原文標(biāo)題:HDL 開發(fā)的 10 條規(guī)則

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ORCAD LAYOUT 封裝命名規(guī)則是怎樣的?

    名位哥哥姐姐!  請問ORCAD LAYOUT 封裝命名規(guī)則是怎樣的?謝謝!
    發(fā)表于 02-16 10:49

    論壇的規(guī)則是什么

    論壇的規(guī)則是什么,什么能做,什么不能做,積分多了有什么好處,錢多了有什么好處
    發(fā)表于 04-21 13:45

    集成整流橋堆型號命名規(guī)則是什么?ASEMI

    集成整流橋堆型號命名規(guī)則是什么?ASEMI
    發(fā)表于 06-10 17:24

    請問圖片里的安全規(guī)則是什么意思?

    圖片里的安全規(guī)則是什么意思,翻譯出來的意思完全不明白,請大神詳細的解釋一下
    發(fā)表于 04-29 04:15

    PCB設(shè)計走線的規(guī)則是什么

    PCB設(shè)計走線的規(guī)則是什么
    發(fā)表于 03-17 06:36

    如何正確設(shè)計BGA封裝?BGA設(shè)計規(guī)則是什么?

    如何正確設(shè)計BGA封裝?BGA設(shè)計規(guī)則是什么?BGA有什么局限性?
    發(fā)表于 04-25 07:31

    PCB元件庫命名規(guī)則是什么

    PCB元件庫命名規(guī)則是什么
    發(fā)表于 04-26 06:41

    3W規(guī)則是什么?20H規(guī)則是什么?

    3W規(guī)則是什么?20H規(guī)則是什么?五---五規(guī)則是什么
    發(fā)表于 04-27 06:09

    TI芯片的最新命名規(guī)則是什么

    TI芯片的最新命名規(guī)則是什么?怎樣去查找TI芯片的最新命名規(guī)則呢?
    發(fā)表于 10-25 08:19

    STM32型號的命名規(guī)則是什么

    STM32有哪幾種類型?STM32型號的命名規(guī)則是什么?
    發(fā)表于 10-28 08:06

    STM32芯片的命名規(guī)則是什么

    STM32系列可分為哪幾種?STM32芯片的命名規(guī)則是什么?
    發(fā)表于 11-04 07:14

    AURIX TC2xx芯片命名規(guī)則是什么?

    AURIX TC2xx芯片命名規(guī)則是什么?
    發(fā)表于 11-08 06:46

    鋰離子電池命名規(guī)則是什么?

    鋰離子電池命名規(guī)則是什么? 度寬度高度材質(zhì),如063048S型號代表厚度為6毫米,寬度為30毫米,高度為48毫米,S代表鋼殼,A代表鋁殼圓柱形二次
    發(fā)表于 10-26 13:48 ?4556次閱讀

    PCB設(shè)計中元器件布局的10規(guī)則,布線的規(guī)則是什么?

    一、布局元器件布局的10規(guī)則:1. 遵照“先大后小,先難后易”的布置原則,即重要的單元電路、核心元器件應(yīng)當(dāng)
    的頭像 發(fā)表于 07-17 18:48 ?1.7w次閱讀
    PCB設(shè)計中元器件布局的<b class='flag-5'>10</b>條<b class='flag-5'>規(guī)則</b>,布線的<b class='flag-5'>規(guī)則是</b>什么?

    PCB布局布線規(guī)則是什么

    手把手教你布局元器件布局的10規(guī)則
    的頭像 發(fā)表于 08-19 15:47 ?6770次閱讀