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

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

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

硬件開源編程利器MyHDL簡介

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-03-14 10:30 ? 次閱讀

硬件開源編程利器MyHDL簡介

Verilog缺點

自從1995年Verilog HDL 1364-1995標(biāo)準(zhǔn)發(fā)布至今已經(jīng)20多年了,說他經(jīng)久不衰并不恰當(dāng),主要是沒有新的語言可以替代,現(xiàn)今數(shù)字電路高速發(fā)展,Verilog的一些缺點暴露的越來越多,下面總結(jié)一下:

借用知乎上“馬車”的觀點:

例化不方便:有人會說,有輔助插件幫你完成 (確實有很多好的插件,emacs verilog-mode , vim 的autoinst) 即便這樣,但是對帶參數(shù)的模塊例化, 一對多例化同樣需要手動處理,非常不方便

大量的重復(fù)聲明:無休止的變量聲明,無休止的位寬聲明,容易出錯, 作為一門上古時期的語言,對編譯器不能要求太高

函數(shù)不能帶參數(shù):verilog中函數(shù)的使用只能是零零星星,哪怕是一個位寬的變化都要重寫函數(shù), 作為一門語言函數(shù)不能廣泛使用,實為雞肋

參數(shù)化實在是笨:雖然支持參數(shù)化,parameter 也只能做一些簡單的加減左移操作, 沒有基本math包。利用宏做參數(shù)化,對于變量比較多的設(shè)計,非常復(fù)雜,并且也不好維護(hù)

錯誤檢測很弱:編譯工具對錯誤的處理比較保守, 這種保守可能也源于語言本身,以及編譯器的能力不及。

以下問題需要工程師自己處理

位寬不匹配

input/output端口寫反

飽和截位弄錯

時鐘域問題鎖存器檢查組合邏輯環(huán)自己查....

基于前仿的編譯,會遺漏大量的錯誤,必須要Lint, 綜合檢查, 費時費力又費錢。

重構(gòu)、增減信號,Bist/DFT邏輯插入麻煩

需要手動處理, 編寫腳本, 即便是腳本也不通用

(內(nèi)容來源:https://www.zhihu.com/question/440688150 作者:溫戈 公眾號:OpenIC

基于以上各種各樣的缺點,一些基于Verilog語言的第三方語言(本質(zhì)仍然是HDL)陸續(xù)出現(xiàn),像SpinalHDL,Chisel和本文的主角MyHDL都是這類語言,關(guān)于SpinalHDL,Chisel請查看(https://www.zhihu.com/question/440688150)

MyHDL介紹

你能想象有一天能用Python編寫“硬件”嗎?

(本系列基于MyHDL 0.10.0 版 on Python3

譯自 http://docs.myhdl.org/en/stable/manual/intro.html

MyHDL項目的目標(biāo)是通過python語言的優(yōu)雅和簡潔性來增強硬件設(shè)計者的能力。

MyHDL是一種免費、開源的軟件包,用于使用python作為硬件描述和驗證語言。python是一種非常高級的語言,硬件設(shè)計者可以利用它的全部力量來建模和仿真他們的設(shè)計。此外,可以將設(shè)計轉(zhuǎn)換為verilog或vhdl語言。這提供了一個融入傳統(tǒng)設(shè)計流程的切入口。

建模

python的強大和清晰性使MyHDL成為高層次建模的理想解決方案。python以為復(fù)雜建模問題提供優(yōu)雅解決方案而聞名。此外,python對于快速應(yīng)用程序開發(fā)和試驗是非常優(yōu)秀的。

MyHDL背后的關(guān)鍵思想是使用python生成器來建模硬件并發(fā)性。生成器最好被描述為可(從暫停狀態(tài)中)恢復(fù)函數(shù)。MyHDL生成器類似于verilog的always塊和vhdl中的過程。

一個硬件模塊(MyHDL術(shù)語中的塊)建模為返回生成器的函數(shù)。這種方法使支持諸如任意層次結(jié)構(gòu)、命名端口關(guān)聯(lián)、實例數(shù)組和條件實例化等特性變得簡單明了。此外,MyHDL提供了實現(xiàn)傳統(tǒng)硬件描述概念的類。它提供了一個信號類來支持生成器之間的通信、支持面向位操作的類以及枚舉類型類。

仿真與驗證

內(nèi)置仿真器運行在python解釋器的頂部。它支持通過觀看波形來跟蹤vcd文件中的信號變化。

使用MyHDL,python單元測試框架可以用于硬件設(shè)計。雖然單元測試是一種流行的現(xiàn)代軟件驗證技術(shù),但在硬件設(shè)計領(lǐng)域還是比較少見的。

MyHDL還可以作為verilog設(shè)計的硬件驗證語言,通過與傳統(tǒng)的hdl模擬器進(jìn)行仿真。

轉(zhuǎn)換為Verilog語言與VHDL語言

遵從一定的限制后,可將MyHDL設(shè)計轉(zhuǎn)換為verilog語言或vhdl語言,這是切入傳統(tǒng)設(shè)計流程的一條路徑,包括綜合和實現(xiàn)??赊D(zhuǎn)換子集受到限制,但比標(biāo)準(zhǔn)可綜合子集要寬得多。它包括可用于高層次建模和test benches的功能。

轉(zhuǎn)換器處理一個已完全解析的設(shè)計實例。因此,原有的設(shè)計結(jié)構(gòu)可以任意復(fù)雜。此外,轉(zhuǎn)換限制僅適用于生成器內(nèi)部的代碼。除了外部生成器,python的能力可以充分釋放,而不影響可轉(zhuǎn)換性。

最后,轉(zhuǎn)換器自動地實現(xiàn)了許多用verilog或vhdl編寫困難的任務(wù)。一個顯著點是自動處理有符號算術(shù)問題。

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

    關(guān)注

    28

    文章

    1351

    瀏覽量

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

    關(guān)注

    8

    文章

    328

    瀏覽量

    47439
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    661

    瀏覽量

    32995

原文標(biāo)題:硬件開源編程利器MyHDL簡介

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

收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread睿賽德出席中國工博會科技論壇,共話開源硬件與新工業(yè)革命

    2025年1月22日,由上海市經(jīng)濟(jì)和信息化委員會、臨港新片區(qū)管委會、上海市科學(xué)技術(shù)協(xié)會指導(dǎo)的中國工博會科技論壇——開源硬件與新工業(yè)革命論壇在臨港舉辦。本次論壇由上海開源信息技術(shù)協(xié)會主辦,匯聚了眾多
    的頭像 發(fā)表于 01-22 18:53 ?168次閱讀
    RT-Thread睿賽德出席中國工博會科技論壇,共話<b class='flag-5'>開源硬件</b>與新工業(yè)革命

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優(yōu)化的編譯器,它能夠自動將高級語言代碼轉(zhuǎn)換為針對特定硬件優(yōu)化的低級代碼。Triton編譯器的核心優(yōu)勢在于其能夠識別并行模式,自動進(jìn)行代碼
    的頭像 發(fā)表于 12-25 09:13 ?308次閱讀

    開源能帶我們走向何方

    開源大模型、開源數(shù)據(jù)庫、開源框架、開源硬件......近些年,這些詞匯不絕于耳。雷軍說,好的代碼像詩一樣優(yōu)美,自己大二時寫的代碼就已經(jīng)開源,
    的頭像 發(fā)表于 12-06 17:09 ?512次閱讀

    百問FB網(wǎng)絡(luò)編程 - 網(wǎng)絡(luò)編程簡介

    6.1 網(wǎng)絡(luò)編程簡介 ?要編寫通過計算機(jī)網(wǎng)絡(luò)通信的程序,首先要確定這些程序同通信的協(xié)議(protocol),在設(shè)計一個協(xié)議的細(xì)節(jié)之前,首先要分清程序是由哪個程序發(fā)起以及響應(yīng)何時產(chǎn)生。 ?舉例來說
    發(fā)表于 12-04 09:46

    面對AI時代快車,你沒必要跟車賽跑,而是應(yīng)該先去考個駕照!

    ?在當(dāng)今人工智能領(lǐng)域,代碼生成和編輯工具成為了開發(fā)者們手中的利器。昨天,零一萬物公司再次展示了他們在開源社區(qū)中的領(lǐng)導(dǎo)地位,開源了Yi-Coder系列編程助手模型,這一舉措不僅標(biāo)志著該公
    的頭像 發(fā)表于 09-06 13:37 ?645次閱讀
    面對AI時代快車,你沒必要跟車賽跑,而是應(yīng)該先去考個駕照!

    如何幫助孩子高效學(xué)習(xí)Python:開源硬件實踐是最優(yōu)選擇

    顯著提升孩子的學(xué)習(xí)興趣和對Python原理的理解。本文將探討為何使用Raspberry Pi(樹莓派)或Unihiker(行空板)等開源硬件是孩子們掌握Python的最佳途徑。 讓孩子們在Python學(xué)習(xí)中更加互動 當(dāng)孩子們通過硬件學(xué)習(xí)
    的頭像 發(fā)表于 09-06 09:49 ?359次閱讀

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)口和WiFi測試

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)口和WiFi測試
    的頭像 發(fā)表于 07-02 16:16 ?963次閱讀
    Banana Pi BPI-M4 Berry <b class='flag-5'>開源硬件</b>開發(fā)板以太網(wǎng)口和WiFi測試

    編程電源的作用是什么

    簡介編程電源是一種高度靈活的電源設(shè)備,它允許用戶通過軟件或硬件接口設(shè)置輸出電壓和電流。這種電源設(shè)備在電子行業(yè)中具有廣泛的應(yīng)用,包括研發(fā)、測試、生產(chǎn)和維護(hù)等各個環(huán)節(jié)。 #### 2. 可
    的頭像 發(fā)表于 06-10 15:33 ?725次閱讀

    開源芯片系列講座第20期:基于RISC-V向量擴(kuò)展的開源GPGPU軟硬件設(shè)計

    在當(dāng)前國際科技競爭日益激烈的情勢下,我國急需要建立一個采用開源指令集GPGPU架構(gòu),構(gòu)建起統(tǒng)一的軟硬件生態(tài)。相關(guān)參與方共同努力,共同建設(shè)起我國自主可控的GPGPU產(chǎn)業(yè),服務(wù)于我國電子信息核心關(guān)鍵產(chǎn)業(yè)。
    的頭像 發(fā)表于 05-20 16:27 ?388次閱讀
    <b class='flag-5'>開源</b>芯片系列講座第20期:基于RISC-V向量擴(kuò)展的<b class='flag-5'>開源</b>GPGPU軟<b class='flag-5'>硬件</b>設(shè)計

    如何組裝ArmSoM-Sige7產(chǎn)品外殼?#樹莓派 #rockchip #開源硬件

    開源硬件樹莓派
    ARMSOM
    發(fā)布于 :2024年04月17日 18:44:52

    手機(jī)信號放大器:優(yōu)化通信質(zhì)量的利器

    深圳特信屏蔽器|手機(jī)信號放大器:優(yōu)化通信質(zhì)量的利器
    的頭像 發(fā)表于 04-02 09:05 ?791次閱讀

    現(xiàn)場可編程門陣列簡介

    現(xiàn)場可編程門陣列(FPGA)是一種由半導(dǎo)體材料制成的集成電路,用戶購買后可以重新編程或配置,以滿足特定功能或應(yīng)用需求。其控制程序存儲在內(nèi)存中,加電后,程序自動裝載到芯片執(zhí)行。FPGA的基本結(jié)構(gòu)包括
    的頭像 發(fā)表于 03-27 14:48 ?629次閱讀

    fpga用什么語言編程

    FPGA(現(xiàn)場可編程門陣列)的編程主要使用硬件描述語言(HDL),其中最常用的是Verilog HDL和VHDL。
    的頭像 發(fā)表于 03-14 18:17 ?2915次閱讀

    fpga是硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)屬于硬件設(shè)備,而不是軟件。它是一種可編程硬件設(shè)備,由大量的邏輯單元、存儲單元和互連資源組成,能夠?qū)崿F(xiàn)復(fù)雜的數(shù)字電路和系統(tǒng)設(shè)計。
    的頭像 發(fā)表于 03-14 17:08 ?1990次閱讀

    Meta發(fā)布CodeLlama70B開源大模型

    Meta發(fā)布CodeLlama70B開源大模型 Meta發(fā)布了開源大模型CodeLlama70B,號稱是CodeLlama系列體量最大、性能最強的大模型。 Code Llama 70B 有一個很出色
    的頭像 發(fā)表于 01-31 10:30 ?1463次閱讀