色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

芯片開發語言為什么要用Chisel和Verilog

FPGA技術江湖 ? 來源:老石談芯 ? 作者:老石談芯的老石 ? 2021-09-26 11:00 ? 次閱讀

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

包云崗是中科院計算技術研究所研究員、副所長,先進計算機系統研究中心主任,中國科學院大學特聘教授,中國開放指令生態(RISC-V)聯盟秘書長。他的主要研究領域為云計算數據中心體系結構、開源處理器芯片敏捷設計等。

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

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

1. 為什么用Chisel

編者按:

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

Chisel是基于Scala這個函數式語言來擴展出來的,我們可以把它看做是一個用來描述電路的領域專用語言,它和Verilog還是有很大區別的。

事實上,我們自己也做過兩種語言的對比。在2016年,我們整個團隊開始決定用RISC-V去實現標簽化體系結構,也在那個時候開始接觸Chisel。最早的時候我們重用了UC伯克利開發了的名叫Rocket的開源內核。這是個順序執行的小核,我們在它上面加上了我們的標簽機制,這期間其實就有很多的一些開發體會。

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

Rocket chip generator的系統架構圖

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

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

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

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

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

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

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

2. Chisel vs 高層次綜合

編者按:

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

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

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

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

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

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

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

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

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

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

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

除了這個工具,同學們還自定義和擴展了一些printf,讓我們在調的時候很多時候根本不用去看波形。這些都得益于Chisel的強大和開放。

小結

在下篇文章中,我會繼續分享包云崗研究員對芯片敏捷開發深刻理解,包括對工具鏈的優化和挑戰等等。敬請期待。

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

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603008
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128121
  • dma
    dma
    +關注

    關注

    3

    文章

    560

    瀏覽量

    100548
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68525
  • Chisel
    +關注

    關注

    0

    文章

    7

    瀏覽量

    459

原文標題:芯片開發語言:Verilog在左,Chisel在右

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Verilog 電路仿真常見問題 Verilog芯片設計中的應用

    在現代電子設計自動化(EDA)領域,Verilog作為一種硬件描述語言,已經成為數字電路設計和驗證的標準工具。它允許設計師以高級抽象的方式定義電路的行為和結構,從而簡化了從概念到硅片的整個設計流程
    的頭像 發表于 12-17 09:53 ?119次閱讀

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言(HDL),在ASIC設計中扮演著至關重要的角色。ASIC(Application Specific Integrated
    的頭像 發表于 12-17 09:52 ?92次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法是Verilog FPGA開發中的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog
    的頭像 發表于 12-17 09:50 ?126次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程
    的頭像 發表于 12-17 09:44 ?116次閱讀

    語言模型開發框架是什么

    語言模型開發框架是指用于訓練、推理和部署大型語言模型的軟件工具和庫。下面,AI部落小編為您介紹大語言模型開發框架。
    的頭像 發表于 12-06 10:28 ?115次閱讀

    語言模型開發語言是什么

    在人工智能領域,大語言模型(Large Language Models, LLMs)背后,離不開高效的開發語言和工具的支持。下面,AI部落小編為您介紹大語言模型
    的頭像 發表于 12-04 11:44 ?95次閱讀

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發表于 11-04 10:12 ?0次下載

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現。
    發表于 11-01 10:44 ?0次下載

    如何利用Verilog-A開發器件模型

    Verilog-A對緊湊型模型的支持逐步完善,在模型的實現上扮演越來越重要的角色,已經成為緊湊模型開發的新標準。而且Verilog-A能夠在抽象級別和應用領域中擴展SPICE建模和仿真功能,因此學會
    的頭像 發表于 10-18 14:16 ?439次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A<b class='flag-5'>開發</b>器件模型

    fpga是用c語言還是verilog

    FPGA(現場可編程邏輯門陣列)開發主要使用的編程語言是硬件描述語言(HDL),其中Verilog是最常用的編程語言之一。而C
    的頭像 發表于 03-27 14:38 ?1958次閱讀

    fpga用的是什么編程語言 fpga用什么語言開發

    fpga用的是什么編程語言 FPGA(現場可編程邏輯門陣列)主要使用的編程語言是硬件描述語言(HDL)。在眾多的HDL中,Verilog HDL和VHDL是最常用的兩種。
    的頭像 發表于 03-14 17:09 ?3488次閱讀

    fpga芯片用什么編程語言

    FPGA芯片主要使用的編程語言包括Verilog HDL和VHDL。這兩種語言都是硬件描述語言,用于描述數字系統的結構和行為。
    的頭像 發表于 03-14 16:07 ?1505次閱讀

    verilog與其他編程語言的接口機制

    語言的接口機制,并深入探討其原理和應用。 Verilog語言概述 Verilog是由美國專業電子設計自動化公司Cadence設計系統有限公司(前身是Gateway Design Aut
    的頭像 發表于 02-23 10:22 ?690次閱讀

    verilog function函數的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數字電子電路的行為和結構。在 Verilog 中,函數 (Function) 是一種用于執行特定任務并返回一個值的可重用代碼
    的頭像 發表于 02-22 15:49 ?5529次閱讀

    #2024,立Flag了嘛? # 開年之疑問重重

    選擇SpinalHDL、chisel還是verilog HDL作為開發語言,上周FPGA大佬跟幾個在IC設計公司的同學吃飯后,聊了一下發現對應的行業標桿的公司導入了spinalHDL作
    發表于 01-13 09:18
    主站蜘蛛池模板: 青青涩射射| 久久综久久美利坚合众国 | 亚洲AV无码专区国产乱码网站| 四虎影院网红美女| 小黄鸭YELLOWDUCK7596| 亚洲欧洲自拍偷拍| 在线不卡日本v二区| 999视频精品全部免费观看| videossexotv极度另类| 大地影院在线播放| 国产午夜精品自在自线之la | 国产 亚洲 另类 欧美 在线| 国产精品久久久久久久久久免费| 国产制服丝袜91在线| 理论片午午伦夜理片影院| 欧美色妞AV重囗味视频| 偷窥自拍性综合图区| 夜色爽爽爽久久精品日韩| 99久久99| 国产a级午夜毛片| 久久4k岛国高清一区二区| 女子扒开腿让男生桶爽| 无码一卡二卡三卡四卡| 在线a视频| 俄罗斯摘花| 久久yy99re66| 日韩 亚洲 欧美 中文 高清| 亚洲日韩精品AV中文字幕| 99久久伊人一区二区yy5o99| 国产乱人伦AV麻豆网| 另类重口bdsm日本tv| 少男同志freedeos| 真实国产精品视频国产网| 公主纯肉高H文| 久久午夜伦理| 四虎视频最新视频在线观看| 中文字幕日本在线mv视频精品| 国产99RE在线观看69热| 快穿女主有名器的H纯肉黄暴拉文 快插我我好湿啊公交车上做 | 欧美一夜爽爽爽爽爽爽| 亚洲精品tv久久久久久久久久|