chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

芯片開發(fā)語言為什么要用Chisel和Verilog

FPGA技術(shù)江湖 ? 來源:老石談芯 ? 作者:老石談芯的老石 ? 2021-09-26 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在最近召開的RISC-V中國峰會上,中科院計算所的包云崗研究員團(tuán)隊正式發(fā)布了名為“香山”的開源高性能處RISC-V處理器。前不久我有幸和包老師就這個事情做了一次深度的交流,我們聊了關(guān)于RISC-V、還有“香山”處理器的前世今生。包老師也分享了很多他關(guān)于開源硬件、新型開發(fā)語言、硬件敏捷設(shè)計、還有處理器基礎(chǔ)架構(gòu)等等這些問題的想法和學(xué)術(shù)思考,我深受啟發(fā)。

包云崗是中科院計算技術(shù)研究所研究員、副所長,先進(jìn)計算機(jī)系統(tǒng)研究中心主任,中國科學(xué)院大學(xué)特聘教授,中國開放指令生態(tài)(RISC-V)聯(lián)盟秘書長。他的主要研究領(lǐng)域為云計算數(shù)據(jù)中心體系結(jié)構(gòu)、開源處理器芯片敏捷設(shè)計等。

我把我們的對話進(jìn)行了整理和采編,以饗讀者。第一篇在這里,本文是第二篇,主要是包老師對硬件敏捷開發(fā)的新興開發(fā)語言與工具的思考。

注:以下的“我”,指的都是包云崗研究員。

1. 為什么用Chisel

編者按:

在傳統(tǒng)的數(shù)字芯片開發(fā)里,絕大多數(shù)設(shè)計者都會使用諸如Verilog、VHDL或者SystemVerilog的硬件描述語言(HDL)對電路的行為和功能進(jìn)行建模。但是在香山處理器里,團(tuán)隊選擇使用Chisel作為主要開發(fā)語言。這是基于怎樣的考慮?

Chisel是基于Scala這個函數(shù)式語言來擴(kuò)展出來的,我們可以把它看做是一個用來描述電路的領(lǐng)域?qū)S谜Z言,它和Verilog還是有很大區(qū)別的。

事實上,我們自己也做過兩種語言的對比。在2016年,我們整個團(tuán)隊開始決定用RISC-V去實現(xiàn)標(biāo)簽化體系結(jié)構(gòu),也在那個時候開始接觸Chisel。最早的時候我們重用了UC伯克利開發(fā)了的名叫Rocket的開源內(nèi)核。這是個順序執(zhí)行的小核,我們在它上面加上了我們的標(biāo)簽機(jī)制,這期間其實就有很多的一些開發(fā)體會。

a69d2392-13d7-11ec-8fb8-12bb97331649.png

Rocket chip generator的系統(tǒng)架構(gòu)圖

前面提到我們的同學(xué)原來對Verilog很熟,但是用Chisel以后就會有一種愛不釋手的感覺。有好多的通信,特別是年輕的同學(xué),他們都愿意去嘗試使用Chisel。有一個北大的研究生,他在做報告的時候講,你用了Chisel以后就再也回不去了。

其實,我們自己還做過量化的評估。在2018年,我們團(tuán)隊里有兩個本科生和一個工程師做過一個實驗。這個實驗是要開發(fā)一個L2 Cache,但是要集成到RISC-V的內(nèi)核里。我們的工程師是用Verilog來開發(fā)的,他對Cache非常熟悉。他把OpenSPARC里面的Cache、還有Xilinx提供的Cache等等都研究過,代碼都讀得很透。所以他用Verilog開發(fā),并且接到RISC-V里面去。當(dāng)時他花了應(yīng)該是6個星期開發(fā),包括測試框架等等,一共寫了5000多行代碼。即便這樣,后面還是有一些問題和Bug。

另外,我們當(dāng)時有一位大四的本科生,現(xiàn)在也是香山的核心成員,他懂一些計算機(jī)體系結(jié)構(gòu),使用Chisel有9個月的時間。同樣的任務(wù),他用Chisel開發(fā)只花了三天時間就寫出來了。把設(shè)計接到RISC-V核里面之后,還能夠正常工作。之后又進(jìn)一步就把DMA調(diào)通了,就能夠支持像網(wǎng)卡這樣的一些DMA的數(shù)據(jù)的傳輸。這個給我們留下了很深刻的印象。

我們覺得,本科生使用Chisel做的設(shè)計,哪怕是性能或者各方面差了一些,但他只用了三天時間。這樣我們就可以快速去驗證,并且實現(xiàn)我們的想法。

當(dāng)然這個只是第一組實驗。我們當(dāng)時有一個群,在群里面吵的還是挺不可開交的,因為我們的工程師那個時候很不服氣,他就覺得他的代碼各方面都質(zhì)量更高。所以我們后來又有另外一位中國科學(xué)院大學(xué)的大四本科生,他懂Verilog、但是沒學(xué)過Chisel,所以他做的事情就是讀我們工程師的Verilog代碼,并把核心代碼一行一行翻譯成Chisel,最后要通過工程師寫的測試。也就是說,翻譯后的Chisel和Verilog實現(xiàn)的邏輯功能是完全一致的。

翻譯完之后,再在同一個FPGA上面評估,看設(shè)計的PPA、 頻率、功耗,還有使用的資源等等。這樣下來的話,你就會看到其實出來的指標(biāo)上面,大多數(shù)的指標(biāo)實際都是Chisel還反而更好一些,代碼量也會比他要小。

這還只是第一個階段。后面我們的本科生又在博士生的指導(dǎo)下,把Chisel里面的高級特性給它加進(jìn)去,結(jié)果一下子就完全超越Verilog的版本了,代碼量大概只有Verilog的1/4~1/5,有些邏輯資源可以減少百分之六七十。所以那時候這組數(shù)據(jù)出來以后,工程師就他也覺得服氣了。

2. Chisel vs 高層次綜合

編者按:

在FPGA里高層綜合是一個非常熱、非常流行的一個研究方向。但是我知道Chisel和高層次綜合可能并不是一回事。在Chisel官網(wǎng)上也明確的指出:我不是高層次綜合。但在我看來,它們背后的思維方式、或者是大的方向是有共同之處的,也就是讓硬件開發(fā)更加的快速、更加敏捷。也就是像您剛才說的,從想法到實現(xiàn),周期更加縮短。

但是從高層綜合的角度來看,雖然學(xué)術(shù)界一直在講高層次綜合已經(jīng)很多年的時間,它實際的商業(yè)化可能還是需要特別突破性的進(jìn)展。現(xiàn)在業(yè)界的這些設(shè)計,比如大的網(wǎng)絡(luò)設(shè)計、還有數(shù)據(jù)中心加速器的這些設(shè)計,仍然是基于SystemVerilog/Verilog/VHDL這樣的RTL語言。這主要是因為高層次綜合有這么幾個問題:

第一個就是HLS可能并不能覆蓋掉的全部應(yīng)用領(lǐng)域,也就是說它可能適合于某些應(yīng)用領(lǐng)域,但是對于這種吞吐量比較大的、或者高速數(shù)據(jù)包處理這些應(yīng)用,它可能就不那么適合。

另外一個就是它的驗證。因為它相當(dāng)于在RTL頂上加了一層額外的高層次語言,等它綜合或者處理完了以后,還是生成底層的RTL語言,然后再走原來的FPGA的這些開發(fā)流程。所以在驗證過程中,增加額外的這層可能會給驗證工作造成很大的問題。所以關(guān)于這兩點您怎么看?

我想其實它的通用性方面是沒有問題的。Chisel本身是一個硬件描述語言,所以從它的這種完備性來看的話,它跟Verilog是一樣的。也就是說,Verilog能干什么事,Chisel也能干什么事,這兩個是沒有什么區(qū)別的,它只不過是另外一種語法表達(dá)而已。

調(diào)試是很多人都擔(dān)心的一個問題。因為Chisel它現(xiàn)在其實是一個源到源的翻譯,是首先是基于Scala這套語法去寫一個硬件的描述。然后通過FIRRTL進(jìn)行翻譯。再往后走的話,其實是用Verilog那套流程去做,最后生成GDSII版圖。

所以在這個過程當(dāng)中,其實是明顯的分成兩個階段了。前面一個階段Chisel到Verilog,第二階段就是Verilog到GDSII版圖。

我們用Chisel已經(jīng)流過三顆芯片,有大的芯片、有的小的芯片,有單核的有8核的。在早期的時候,我們其實也遇到過這樣的一些問題。比如你用Chisel寫的代碼生成了Verilog,Verilog里面有一些變量,你那邊在Chisel里面改一行代碼,那它這個變量就全部重新改變。后來其實仔細(xì)分析以后,我們發(fā)現(xiàn)這些問題都是可以有一些辦法來解決的,或者說它不是阻礙可調(diào)試性的最根本的問題。所以后面我們在做香山的時候,我們在這些方面已經(jīng)處理得比較好了。

就像我們有同學(xué),他自己開發(fā)了一個工具,可以把電路波形直接轉(zhuǎn)變成一個上層的高級的事件。這個時候他其實就用了Chisel和FIRRTL里面的特性。

因為FIRRTL它有點像LLVM,它可以放很多的這樣自己設(shè)計的模塊,F(xiàn)IRRTL也可以定義自己需要的功能。這個在LLVM里叫pass,在FIRTEL里叫transformer。

有了這些工具,就可以讓Chisel源碼和下面波形建立起聯(lián)系,讓調(diào)試的過程甚至比原來用Verilog還要方便。

除了這個工具,同學(xué)們還自定義和擴(kuò)展了一些printf,讓我們在調(diào)的時候很多時候根本不用去看波形。這些都得益于Chisel的強(qiáng)大和開放。

小結(jié)

在下篇文章中,我會繼續(xù)分享包云崗研究員對芯片敏捷開發(fā)深刻理解,包括對工具鏈的優(yōu)化和挑戰(zhàn)等等。敬請期待。

本文提到的所有技術(shù)論文,包括“香山”處理器的介紹幻燈片,均已上傳至知識星球“老石談芯 – 進(jìn)階版”,請在文末掃碼加入星球查看。

編輯:jq

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

    文章

    22394

    瀏覽量

    635494
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    822

    瀏覽量

    131627
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    581

    瀏覽量

    105846
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4965

    瀏覽量

    73851
  • Chisel
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    583

原文標(biāo)題:芯片開發(fā)語言:Verilog在左,Chisel在右

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    FPGA 入門必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開發(fā)者第一次接觸FPGA,都會有同樣的疑問:FPGA是硬件,不是軟件,怎么寫程序?答案就是用硬件描述語言(HDL),最常用的就是Verilog和VHDL。今天,我們就帶你入門,搞清楚FPGA編程
    的頭像 發(fā)表于 01-19 09:05 ?387次閱讀
    FPGA 入門必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    【「龍芯之光 自主可控處理器設(shè)計解析」閱讀體驗】--LoongArch的SOC邏輯設(shè)計

    和驗證。 1在EDA軟件工程完成設(shè)計文件和開發(fā)編譯。 BX2004設(shè)計工程目錄如下: 使用Verilog硬件編程語言設(shè)計工程文件。編譯使用到了交叉編譯工具,也包括了Makefile腳本文件的編寫配置
    發(fā)表于 01-18 13:45

    C語言單元測試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用

    一、C語言在嵌入式開發(fā)中的現(xiàn)狀與重要性 C語言在嵌入式開發(fā)領(lǐng)域仍然占據(jù)主導(dǎo)地位,根據(jù)Barr集團(tuán)的研究,目前95%的嵌入式系統(tǒng)代碼采用C或C++編寫。ARM Cortex-M系列
    發(fā)表于 12-18 11:46

    C語言特性

    1、高效性:直接操作硬件 C 語言代碼的執(zhí)行效率極高,這是其最為顯著的優(yōu)勢之一。它能夠直接訪問硬件資源,與底層硬件進(jìn)行緊密交互,充分發(fā)揮硬件的性能潛力。在嵌入式開發(fā)中,硬件資源往往十分有限,對程序
    發(fā)表于 11-24 07:01

    C語言在嵌入式開發(fā)中的應(yīng)用

    1、控制系統(tǒng)開發(fā) 在工業(yè)控制領(lǐng)域,C 語言是當(dāng)之無愧的中流砥柱。無論是工業(yè)自動化生產(chǎn)線中的運動控制、溫度控制、壓力控制等系統(tǒng),還是汽車電子中的發(fā)動機(jī)控制單元(ECU)、防抱死制動系統(tǒng)(ABS)、車輛
    發(fā)表于 11-21 08:09

    使用NucleiStudio生成tb仿真需要的.verilog文件

    打開仿真頂層文件tb_top.v,存放在ITCM模塊里面的指令是通過readmemh函數(shù)讀入.verilog文件實現(xiàn)的: 下面通過對NucleiStudio IDE進(jìn)行設(shè)置,實現(xiàn)將c
    發(fā)表于 11-05 07:07

    RISC-V工具鏈搭建

    /riscv_install_tools/bin中產(chǎn)生riscv工具鏈和pk和spike 至此,工具鏈生成完成。 2.為Rocket-chip創(chuàng)建可以產(chǎn)生RTL的環(huán)境。 1)克隆和測試chisel和firrtl
    發(fā)表于 10-29 08:02

    CICC2033:關(guān)于C語言仿真的一些說明

    C語言運行說明 操作說明(以helloworld為例) 1、在SDK環(huán)境下寫好C語言相關(guān)代碼。 最簡單的寫法為根據(jù)已有demo進(jìn)行更改。如果說需要重新創(chuàng)建新的SDK項目,具體寫法可以參考官
    發(fā)表于 10-21 14:18

    基于FPGA開發(fā)板TSP的串口通信設(shè)計

    本文詳細(xì)介紹基于Terasic FPGA開發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設(shè)計與實現(xiàn)。系統(tǒng)采用Verilog HDL編寫UART收發(fā)控制器,通過CP2102N實現(xiàn)FP
    的頭像 發(fā)表于 10-15 11:05 ?4417次閱讀
    基于FPGA<b class='flag-5'>開發(fā)</b>板TSP的串口通信設(shè)計

    用藥提醒新升級:WT588E02B-8S語音提示芯片實現(xiàn)語言播報

    開發(fā),以實現(xiàn)精準(zhǔn)用藥提醒與跨區(qū)域語言適配。 唯創(chuàng)知音的 WT588E02B-8S 語音芯片,憑借其獨特的性能和靈活的通訊方式,為智能藥盒的語音功能升級與國際化拓展提供了理想的解決方案。
    的頭像 發(fā)表于 08-13 16:32 ?748次閱讀

    芯片清洗要用多少水洗

    芯片清洗過程中用水量并非固定值,而是根據(jù)工藝步驟、設(shè)備類型、污染物種類及生產(chǎn)規(guī)模等因素動態(tài)調(diào)整。以下是關(guān)鍵影響因素和典型范圍:?1.主要影響因素(1)清洗階段不同預(yù)沖洗/粗洗:快速去除大塊顆?;蛩缮?/div>
    的頭像 發(fā)表于 08-05 11:55 ?998次閱讀
    <b class='flag-5'>芯片</b>清洗<b class='flag-5'>要用</b>多少水洗

    為什么我選擇VHDL入門

    在群里交流提問的時候,大家總是驚訝并疑惑:為什么我要選擇 VHDL入門?因為好像 99% 搞 FPGA 開發(fā)的人都在用 Verilog。 我的選擇,是通過網(wǎng)上搜索的討論而做出的,為了留存,我這里水一
    的頭像 發(fā)表于 06-25 11:18 ?1175次閱讀
    為什么我選擇VHDL入門

    fpga開發(fā)語言——verilog語言詳細(xì)教程

    純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持一下哦~)
    發(fā)表于 04-07 15:12

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個組成部分。Verilog
    的頭像 發(fā)表于 03-27 13:30 ?1398次閱讀
    FPGA <b class='flag-5'>Verilog</b> HDL語法之編譯預(yù)處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計層次的數(shù)字系統(tǒng)建?!,F(xiàn)實生活中多用于專用集成電路
    的頭像 發(fā)表于 03-17 15:17 ?4233次閱讀
    一文詳解<b class='flag-5'>Verilog</b> HDL