99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

OpenFPGA ? 來(lái)源:OpenFPGA ? 作者:碎碎思 ? 2022-09-29 08:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

實(shí)體/模塊——每個(gè)進(jìn)入或離開(kāi)模塊的信號(hào)都應(yīng)該被注冊(cè)。這有助于解決時(shí)序收斂問(wèn)題,尤其是當(dāng)我們以更快的頻率運(yùn)行時(shí)。

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

不要將結(jié)構(gòu)代碼和功能代碼混合——這使重用變得方便而簡(jiǎn)單,因?yàn)楣δ艽a位于單獨(dú)的文件中可以輕松重用。同樣,結(jié)構(gòu)代碼文件更容易理解,因?yàn)樗鼈冎皇嵌x解決方案的配置。

命名——在整個(gè)設(shè)計(jì)中使用合理的變量名稱(chēng),這些名稱(chēng)具有描述性,有助于提高可讀性??紤]使用 i_ o_ s_ v_ 等前綴來(lái)標(biāo)識(shí)正在訪問(wèn)或處理的變量的類(lèi)型。前綴比后綴更有效,因?yàn)樽兞棵Q(chēng)的大小會(huì)發(fā)生變化。如果想要進(jìn)行更改,使用前綴可以簡(jiǎn)化批量編輯(豎選)。

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

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

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

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

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

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




審核編輯:劉清

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

    1645

    文章

    22050

    瀏覽量

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

    關(guān)注

    8

    文章

    330

    瀏覽量

    48058
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    28249

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

    請(qǐng)問(wèn)圖片里的安全規(guī)則是什么意思?

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

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

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

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

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

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

    PCB元件庫(kù)命名規(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型號(hào)的命名規(guī)則是什么

    STM32有哪幾種類(lèi)型?STM32型號(hào)的命名規(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型號(hào)代表厚度為6毫米,寬度為30毫米,高度為48毫米,S代表鋼殼,A代表鋁殼圓柱形二次
    發(fā)表于 10-26 13:48 ?4632次閱讀

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

    一、布局元器件布局的10規(guī)則:1. 遵照“先大后小,先難后易”的布置原則,即重要的單元電路、核心元器件應(yīng)當(dāng)
    的頭像 發(fā)表于 07-17 18:48 ?1.7w次閱讀
    PCB設(shè)計(jì)中元器件布局的<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 ?6871次閱讀