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

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

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

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

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

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

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

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

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

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

1. 為什么用Chisel

編者按:

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

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

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

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

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

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

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

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

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

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

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

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

2. Chisel vs 高層次綜合

編者按:

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

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

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

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

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

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

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

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

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

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

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

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

小結(jié)

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

本文提到的所有技術(shù)論文,包括“香山”處理器的介紹幻燈片,均已上傳至知識(shí)星球“老石談芯 – 進(jìn)階版”,請(qǐng)?jiān)谖哪叽a加入星球查看。

編輯:jq

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

    關(guān)注

    1630

    文章

    21796

    瀏覽量

    605727
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    817

    瀏覽量

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

    關(guān)注

    3

    文章

    566

    瀏覽量

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

    關(guān)注

    30

    文章

    4823

    瀏覽量

    68984
  • Chisel
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    466

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog 電路仿真常見問題 Verilog芯片設(shè)計(jì)中的應(yīng)用

    在現(xiàn)代電子設(shè)計(jì)自動(dòng)化(EDA)領(lǐng)域,Verilog作為一種硬件描述語言,已經(jīng)成為數(shù)字電路設(shè)計(jì)和驗(yàn)證的標(biāo)準(zhǔn)工具。它允許設(shè)計(jì)師以高級(jí)抽象的方式定義電路的行為和結(jié)構(gòu),從而簡化了從概念到硅片的整個(gè)設(shè)計(jì)流程
    的頭像 發(fā)表于 12-17 09:53 ?394次閱讀

    Verilog 與 ASIC 設(shè)計(jì)的關(guān)系 Verilog 代碼優(yōu)化技巧

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

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開發(fā)指南

    Verilog測(cè)試平臺(tái)設(shè)計(jì)方法是Verilog FPGA開發(fā)中的重要環(huán)節(jié),它用于驗(yàn)證Verilog設(shè)計(jì)的正確性和性能。以下是一個(gè)詳細(xì)的Verilog
    的頭像 發(fā)表于 12-17 09:50 ?413次閱讀

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

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

    語言模型開發(fā)框架是什么

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

    語言模型開發(fā)語言是什么

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

    Verilog硬件描述語言參考手冊(cè)

    一. 關(guān)于 IEEE 1364 標(biāo)準(zhǔn)二. Verilog簡介三. 語法總結(jié)四. 編寫Verilog HDL源代碼的標(biāo)準(zhǔn)五. 設(shè)計(jì)流程
    發(fā)表于 11-04 10:12 ?3次下載

    system verilog語言簡介

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

    如何利用Verilog-A開發(fā)器件模型

    Verilog-A對(duì)緊湊型模型的支持逐步完善,在模型的實(shí)現(xiàn)上扮演越來越重要的角色,已經(jīng)成為緊湊模型開發(fā)的新標(biāo)準(zhǔn)。而且Verilog-A能夠在抽象級(jí)別和應(yīng)用領(lǐng)域中擴(kuò)展SPICE建模和仿真功能,因此學(xué)會(huì)
    的頭像 發(fā)表于 10-18 14:16 ?603次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A<b class='flag-5'>開發(fā)</b>器件模型

    fpga是用c語言還是verilog

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

    fpga用的是什么編程語言 fpga用什么語言開發(fā)

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

    fpga芯片用什么編程語言

    FPGA芯片主要使用的編程語言包括Verilog HDL和VHDL。這兩種語言都是硬件描述語言,用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)和行為。
    的頭像 發(fā)表于 03-14 16:07 ?1601次閱讀

    verilog與其他編程語言的接口機(jī)制

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

    verilog調(diào)用模塊端口對(duì)應(yīng)方式

    Verilog是一種硬件描述語言(HDL),廣泛應(yīng)用于數(shù)字電路設(shè)計(jì)和硬件驗(yàn)證。在Verilog中,模塊是構(gòu)建電路的基本單元,而模塊端口對(duì)應(yīng)方式則用于描述模塊之間信號(hào)傳遞的方式。本文將介紹
    的頭像 發(fā)表于 02-23 10:20 ?1892次閱讀

    verilog function函數(shù)的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數(shù)字電子電路的行為和結(jié)構(gòu)。在 Verilog 中,函數(shù) (Function) 是一種用于執(zhí)行特定任務(wù)并返回一個(gè)值的可重用代碼
    的頭像 發(fā)表于 02-22 15:49 ?6022次閱讀
    主站蜘蛛池模板: 红尘影院在线观看 | 久久精品国产亚洲AV久五月天 | 男男校园园bl文全肉高h寝室 | 富婆找黑人老外泻火在线播放 | 国产在线亚洲v天堂a | 99久久精品费精品蜜臀AV | 国产亚洲精品久久久999密臂 | 国产欧美精品一区二区色综合 | 男女午夜性爽快免费视频不卡 | 父亲猜女儿在线观看 | 国产在线精品亚洲一品区 | 诱受H嗯啊巨肉各种play | 国产传媒精品1区2区3区 | 俄罗斯破处 | 漂亮的保姆6在线观看中文 漂亮的保姆5电影免费观看完整版中文 | 色四房播播 | 久久精品国产亚洲AV忘忧草蜜臀 | 国内2018年午夜福利5678 | 天堂在线亚洲精品专区 | 99国产精品白浆在线观看免费 | 母乳女神春日もな | 国产亚洲精品久久久久久久软件 | 国产精品亚洲欧美一区麻豆 | 暖暖免费 高清 日本社区中文 | 扒开老师大腿猛进AAA片软件 | 色综合欧美色综合七久久 | 嫩草国产精品99国产精品 | 日韩插啊免费视频在线观看 | 内射气质御姐视频在线播放 | 十分钟免费视频大全在线 | 70岁妇女牲交色牲片 | 久久综合视频网站 | 国产又粗又猛又爽又黄的免费视频 | 最美女人体内射精一区二区 | 湖南电台在线收听 | 纯肉无码AV在线看免费看 | 国产午夜精品一区二区 | qvod电影资源 | 最近2019年日本中文免费字幕 | 国产AV天堂一区二区三区 | 亚洲 中文 自拍 无码 |