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

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

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

3天內不再提示

chisel(一)初識

學FPGA,慢慢來 ? 2019-08-16 16:08 ? 次閱讀

這個夏天,一個很奇妙的機會,突然觸碰到一個全新的東西,那就是Chisel。首先感謝 _iChthyosaur的博客 https://blog.csdn.net/qq_34291505/article/details/86744581給予的平臺讓我第一次接觸到這個新鮮的東西,我決定繼續開始自己的學習之旅,這個系列的博客也不會是簡單的轉述,還是有自己的思考,初次接觸一定還是會有很多理解上的問題,希望大家共同討論共同進步。


初次接觸Chisel,自然先去了解一下這個東西是什么東西


Chisel是什么?


Chisel(讀作[?t?i:z??l]),全名ConstructingHardwarein aScalaEmbeddedLanguage,是由伯克利開發的硬件構建語言,開源。


官網:https://chisel.eecs.berkeley.edu/index.html


下面是官網上列出的一些特性:


硬件構造語言(非HLS)


嵌入在Scala編程語言中


抽象的數據類型和接口


層次化+面向對象+功能化構造


用Scala中的標記來高度參數


多時鐘域


大量的標準庫,包括浮點單元


針對ASICFPGA產生低層次的Verilog代碼


github開源,BSD License


什么叫硬件構建語言?是來代替Verilog/SystemVerilog的嗎?


Chisel可以簡單的理解成高度抽象的、高度參數化的Verilog生成器,利用Scala語言的語法糖,來快速高效的開發硬件設計。設計完成后,自動生成Verilog,再經由傳統的數字IC設計方法(邏輯綜合、APR)變成芯片


我們注意幾點:


Chisel是基于Scala,也可以說Chisel是用Scala語言寫的針對硬件開發的庫。用Chisel語言做設計就是在寫Scala語言的程序。有點類似UVM是SystemVerilog語言的驗證框架庫。


Chisel的應用專注在前端設計,提高設計的效率。


生成的Verilog是低層次的,也就是類似門級的。


目前仍然通過DC或者Genus來綜合。


與HLS有明顯區別,不能直接變成工藝相關的門級電路。也許以后會增加這種功能,得看相關EDA的發展。


那Chisel相比Verilog有什么優勢?


抽象程度高、高度參數化


前端設計周期縮短


可以走敏捷開發流程


除了可以生成Verilog,還可以生成C/CPP。


都說Chisel開發快,那具體有哪些語法特性?


各種變量類型可以轉換


位寬可以自動推斷


與Verilog一樣可以方便的取位和拼接


加減法可以防溢出


可以檢查敏感信號列表,防止生成latch


可以以黑盒子的方式調用Verilog,或者以in-line的方式嵌入Verilog


靈活高效的接口定義,再也不需要AUTOARG


可以定義多套不同的實現,比如FPGA和ASIC定義不同的RAM


可以處理多時鐘域,處理異步信號的同步


而這樣介紹Chisel:


Chisel (Constructing Hardware In a Scala Embedded Language) is a hardware construction language embedded in the high-level programming language Scala. At some point we will provide a proper reference manual, in addition to more tutorial examples. In the meantime, this document along with a lot of trial and error should set you on your way to using Chisel. Chisel is really only a set of special class definitions, predefined objects, and usage conventions within Scala, so when you write Chisel you are actually writing a Scala program that constructs a hardware graph. However, for the tutorial we don't presume that you understand how to program in Scala. We will point out necessary Scala features through the Chisel examples we give, and significant hardware designs can be completed using only the material contained herein. But as you gain experience and want to make your code simpler or more reusable, you will find it important to leverage the underlying power of the Scala language. We recommend you consult one of the excellent Scala books to become more expert in Scala programming.


首先Chisel是含于高級語言Scala之中,而且 Chisel實際上只是Scala中的一組特殊類定義,預定義對象和使用約定,因此當您編寫Chisel時,您實際上正在編寫構建硬件圖的Scala程序


Through the tutorial, we format commentary on our design choices as in this paragraph. You should be able to skip the commentary sections and still fully understand how to use Chisel, but we hope you'll find them interesting.


We were motivated to develop a new hardware language by years of struggle with existing hardware description languages in our research projects and hardware design courses. Verilog and VHDL were developed as hardware simulation languages, and only later did they become a basis for hardware synthesis. Much of the semantics of these languages are not appropriate for hardware synthesis and, in fact, many constructs are simply not synthesizable. Other constructs are non-intuitive in how they map to hardware implementations, or their use can accidently lead to highly inefficient hardware structures. While it is possible to use a subset of these languages and still get acceptable results, they nonetheless present a cluttered and confusing specification model, particularly in an instructional setting.


However, our strongest motivation for developing a new hardware language is our desire to change the way that electronic system design takes place. We believe that it is important to not only teach students how to design circuits, but also to teach them how to design circuit generators ---programs that automatically generate designs from a high-level set of design parameters and constraints. Through circuit generators, we hope to leverage the hard work of design experts and raise the level of design abstraction for everyone. To express flexible and scalable circuit construction, circuit generators must employ sophisticated programming techniques to make decisions concerning how to best customize their output circuits according to high-level parameter values and constraints. While Verilog and VHDL include some primitive constructs for programmatic circuit generation, they lack the powerful facilities present in modern programming languages, such as object-oriented programming, type inference, support for functional programming, and reflection.


Instead of building a new hardware design language from scratch, we chose to embed hardware construction primitives within an existing language. We picked Scala not only because it includes the programming features we feel are important for building circuit generators, but because it was specifically developed as a base for domain-specific languages.


對于如何使用Chisel表達


While Chisel focuses on binary logic, Chisel can support analog and tri-state wires with the Analog type - see Datatypes in Chisel.


We focus on binary logic designs as they constitute the vast majority of designs in practice. Tri-state logic are poorly supported standard industry flows and require special/controlled hard macros in order to be done.



在說Chisel之前首先說Scala語言,Scala是一門基于JVM運行的語言,他與JAVA語言相互兼容,Scala也是一門面向對象的函數式語言。


而現在對于主流的硬件描述語言還是Verilog,而Verilog一直以來也是有開發效率低下的弊病。后來對于這個的問題的討論結果是對Verilog進行改良,也就出現了Verilog的后續標準——SystemVerilog,但是由于它只是用于驗證。但是當時除了改良還有一部分人主張把語言轉移到軟件語言,(C++、Java),支持C++的誕生了SystemC,而對于Chisel就是支持Java的那部分人創造出的


是由加州大學伯克利分校的研究團隊發布的一種新型硬件語言。據團隊成員之一Krste Asanovic教授介紹,早在30多年前還沒有硬件描述語言的時候,他們就已經開始構想這樣一種語言了。最開始Chisel是基于Ruby的,但是后來發現Scala更適合構建Chisel。因為Scala有諸多特性適合描述電路,比如它是靜態語言,以編譯期為主,適合轉換成Verilog/VHDL。再比如它的操作符即方法、柯里化、純粹的面向對象、強大的模式匹配、便捷的泛型編寫、特質混入、函數式編程等特性,使得用Scala開發DSL語言很方便。通過firrtl編譯器可以把Chisel文件轉換成firrtl文件,這是一種標準的中間交換格式,也就是讓各種高級語言方便地轉換到Verilog/VHDL的媒介,但它其實和verilog/VHDL屬于同一層次。在這里,Chisel選擇了妥協,沒有直接生成電路,而是借助Verilog,主要是因為沒有EDA工具支持,因此,它并不等同于HLS(High Level Synthesis)。將來也許會有EDA工具直接支持Chisel。


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

    關注

    0

    文章

    7

    瀏覽量

    464
收藏 人收藏

    評論

    相關推薦

    零基礎開發小安派-Eyes-S1——初識LVGL并搭建最小工程

    AiPi-Eyes-S1 是安信可開源團隊專門為Ai-M61-32S設計的款開發板,支持WiFi6、BLE5.3。所搭載的Ai-M61-32S 模組具有豐富的外設接口,具體包括 DVP、MJPEG
    的頭像 發表于 01-03 14:09 ?226次閱讀

    初識光模塊之光模塊的分類

    高速先生成員--周偉 說到光模塊,很多用過光模塊的人肯定很清楚光模塊有很多種,但還有很多人只是見過或者知道有光模塊,但光模塊具體怎么分類的,我相信很多人都和我們開始接觸光模塊樣都是知半解,甚至
    發表于 12-10 08:59

    初識光模塊之光模塊的分類

    高速先生成員--周偉 說到光模塊,很多用過光模塊的人肯定很清楚光模塊有很多種,但還有很多人只是見過或者知道有光模塊,但光模塊具體怎么分類的,我相信很多人都和我們開始接觸光模塊樣都是知半解,甚至
    的頭像 發表于 12-10 08:58 ?156次閱讀
    <b class='flag-5'>初識</b>光模塊之光模塊的分類

    YC-3615充磁測磁體機運行流程#永磁#充磁

    體機
    jf_97022714
    發布于 :2024年11月19日 08:53:51

    思道SEEKVIEU體機電腦

    體機
    jf_69621499
    發布于 :2024年09月03日 08:50:17

    鴻蒙原生應用元服務開發-初識倉頡開發語言

    倉頡編程語言是種面向全場景應用開發的通用編程語言,可以兼顧開發效率和運行性能,并提供良好的編程體驗,主要具有如下特點: 語法簡明高效 :倉頡編程語言提供了系列簡明高效的語法,旨在減少冗余書寫
    發表于 08-15 10:00

    【《軟件開發珠璣》閱讀體驗】+ 初識

    著為自己摘下“只會寫代碼”的標簽了。相信在未來的職業生涯中,這本書給我帶來的知識能讓我在各個地方發光發熱,在某種意義上可以幫我突破些瓶頸。 同樣,我期望這本書也能在正在閱讀此書的你未來的職業生涯中
    發表于 06-21 16:33

    集特體機

    顯卡體機
    jf_67464575
    發布于 :2024年05月22日 09:05:55

    大語言模型:原理與工程實踐+初識2

    系列變革。 大語言模型是深度學習的應用之,可以認為,這些模型的目標是模擬人類交流,為了理解和生成人類語言。為此,模型需要在大量文本數據上訓練,用來理解人類語言,進而,實現與人類的無障礙對話交流
    發表于 05-13 00:09

    大語言模型:原理與工程時間+小白初識大語言模型

    開拓深度學習的思路。對于新涌現的大語言模型的能力,主要是表現在學習能力的提升、語言理解和生成能力、創新和探索的能力。 基礎技術 詞表示技術 詞表示般分為三種,主要是詞的獨熱表示(One-hot),詞
    發表于 05-12 23:57

    初識FPGA需要關注的注意事項!

    1.基礎問題 FPGA的基礎就是數字電路和HDL語言,想學好FPGA的人,建議床頭都有本數字電路的書,不管是哪個版本的,這個是基礎,多了解也有助于形成硬件設計的思想。在語言方面,建議初學者學習
    發表于 02-22 10:57

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

    選擇SpinalHDL、chisel還是verilog HDL作為開發語言,上周FPGA大佬跟幾個在IC設計公司的同學吃飯后,聊了下發現對應的行業標桿的公司導入了spinalHDL作為開發語言
    發表于 01-13 09:18

    人臉考勤打卡體機

    體機
    jf_66410442
    發布于 :2024年01月09日 11:09:22

    《深入理解FFmpeg閱讀體驗》初識有感

    恰好有這么好的機會,當然也有緣份讓我有幸成為試讀者,特此感謝電子發燒友論壇。 【初識有感】 我今天剛拿到的書,認真的閱讀了推薦語、序、前言這幾篇,讓我深有感觸。 第,通過這幾篇我得知劉歧老師,是
    發表于 01-07 19:48
    主站蜘蛛池模板: 被黑人掹躁10次高潮| 精子射到丝袜上图| 人妻少妇69式99偷拍| 国产69精品麻豆久久久久| 婷婷五月久久丁香国产综合| 国内久久久久影院精品| 中国午夜伦理片| 色噜噜色啪在线视频| 精品欧美18videosex欧美| 99久久爱看免费观看| 思思久99久女女精品| 久久不卡免费视频| YELLOW视频在线观看最新| 亚洲大片免费看| 欧美激情视频一区二区| 国产麻豆AV伦| 99精品视频在线观看| 羞羞影院午夜男女爽爽影院网站| 巨胸美女狂喷奶水www网麻豆| 俄罗斯摘花| 中文字幕偷乱免费视频在线| 日日摸夜添夜夜夜添高潮| 精品亚洲国产成AV人片传媒| yellow免费| 诱受H嗯啊巨肉各种play| 日日噜噜夜夜狠狠扒开双腿| 久久久久久久国产精品视频| 国产成人精品自线拍| 在线色av| 亚洲AV无码一区二区三区牛牛 | 蜜桃色欲AV久久无码精品| 国产a在线不卡| 777EY_卡通动漫_1页| 亚洲精品久久午夜麻豆| 人妻免费视频公开上传| 久久人妻少妇嫩草AV无码| 国产精品伦一区二区三级视频| 99在线观看免费视频| 尤物yw193can入口| 亚洲国产中文字幕新在线| 日久精品不卡一区二区 |