Chisel

Chisel3-Intellij IDEA安装Scala插件

依然范特西╮ 提交于 2021-02-18 05:32:53
https://mp.weixin.qq.com/s/xTk5ucvSNuwsh8C6E362cg 后续开启RISC-V开发相关内容。 RISC-V开发推荐使用Chisel编程语言。Chisel即Constructing Hardware in a Scala Embedded Language: Chisel is an open-source hardware construction language developed at UC Berkeley that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages. Hardware construction language (not C to Gates) Embedded in the Scala programming language Algebraic construction and wiring Abstract data types and interfaces Bulk connections Hierarchical + object oriented + functional construction Highly

2021全国大学生计算机系统能力大赛操作系统设计赛第一场研讨会隆重举行

喜欢而已 提交于 2021-01-05 09:49:53
为吸引全国高校学生对操作系统的关注与兴趣,培养我国急需的操作系统研发人才,助力国产操作系统的发展,全国高等学校计算机教育研究会、系统能力培养研究专家组、系统能力培养研究项目发起高校决定主办 2021年全国大学生计算机系统能力大赛操作系统设计赛 (以下简称“OS比赛”)。12月26日,本次比赛的第一场研讨会在中科院计算所隆重举行,会议邀请了十余位来自学术界、产业界的专家和优秀的大学生对操作系统开源成果进行分享与交流。 本届OS比赛和研讨会得到了麒麟软件、翼辉信息、蚂蚁集团、国科环宇、360、 匿名捐赠者、OpenAnolis社区、FlyAI算法竞赛社区、全志科技、元心科技、中科创达、龙芯中科、睿赛德rtthread的大力支持。 OS比赛,即将打响! 本次研讨会由清华大学陈渝和向勇老师主持。中科院计算机所研究员包云岗在欢迎辞中表示:“操作系统中重要的部分是将社区建立起来,而构建社区有两大关键词,一是 开源 ,作为一种推动创新的重要方式,OS比赛中,无论是硬件还是软件,都将以开源方式推进。二是 和而不同 ,OS比赛并非仅仅是争夺名次,而是面向所有对OS设计感兴趣的学生,帮助其提升操作系统方面的知识和能力。在此,也鼓励大家积极参与OS比赛。” 北京大学教授陈向群在致辞中提到,人才培养已经从知识为本转向能力为本,而系统能力是计算机领域学生最重要的能力

国内首例带“芯”毕业!国科大5位本科生超硬核毕业证曝光,芯片人才培养提速|专访

喜欢而已 提交于 2020-08-11 00:40:54
     5 位中国本科生,以前所未有的方式迎来毕业季。他们带着一颗自研芯片,从中国科学院大学(下称国科大)毕业。      图 | 左起金越、王华强、王凯帆、张林隽、张紫飞   7 月 25 日,中国科学院大学公布首期 “一生一芯” 计划成果,由国科大 2016 级计算机学院本科生王华强、金越、王凯帆、张林隽和张紫飞等 5 位同学, 主导完成一款名为 “果壳(NutShell)” 的 64 位 RISC-V 处理器 SoC 芯片设计并实现流片,该芯片已可以运行在 Linux 操作系统、以及学生自己编写的国科大教学操作系统 UCAS-Core 中。      图 | “果壳”芯片(来源:国科大)   据悉,“果壳”于 2019 年 12 月 19 日完成设计,并基于中芯国际 110nm 工艺完成投片。2020 年 4 月 23 日,“果壳”返回后,经过调试、测试和验证后,首次实现顺利运行。      图 | “果壳” 芯片返回样片   2020 年 6 月 2 日,王华强同学代表 “一生一芯” 团队,向国科大毕业答辩委员会演示 “果壳” 的功能,5 位同学最终交出一份超预期的本科毕业设计 “答卷”,这标志着首期“一生一芯” 计划取得成功。      图 | “果壳” 芯片展示   参与该项目的 5 位同学,相关课程成绩多数在 90 分以上。其中,王华强还是 “龙芯杯”

国内首例带“芯”毕业!国科大5位本科生超硬核毕业证曝光,芯片人才培养提速 | 专访

岁酱吖の 提交于 2020-08-10 18:30:04
     5 位中国本科生,以前所未有的方式迎来毕业季。他们带着一颗自研芯片,从中国科学院大学(下称国科大)毕业。      图 | 左起金越、王华强、王凯帆、张林隽、张紫飞   7 月 25 日,中国科学院大学公布首期 “一生一芯” 计划成果,由国科大 2016 级计算机学院本科生王华强、金越、王凯帆、张林隽和张紫飞等 5 位同学, 主导完成一款名为 “果壳(NutShell)” 的 64 位 RISC-V 处理器 SoC 芯片设计并实现流片,该芯片已可以运行在 Linux 操作系统、以及学生自己编写的国科大教学操作系统 UCAS-Core 中。      图 | “果壳”芯片(来源:国科大)   据悉,“果壳”于 2019 年 12 月 19 日完成设计,并基于中芯国际 110nm 工艺完成投片。2020 年 4 月 23 日,“果壳”返回后,经过调试、测试和验证后,首次实现顺利运行。      图 | “果壳” 芯片返回样片   2020 年 6 月 2 日,王华强同学代表 “一生一芯” 团队,向国科大毕业答辩委员会演示 “果壳” 的功能,5 位同学最终交出一份超预期的本科毕业设计 “答卷”,这标志着首期“一生一芯” 计划取得成功。      图 | “果壳” 芯片展示   参与该项目的 5 位同学,相关课程成绩多数在 90 分以上。其中,王华强还是 “龙芯杯”

Chisel3

送分小仙女□ 提交于 2020-05-06 02:06:30
https://mp.weixin.qq.com/s/j8mt_qvwliKIKtlN6JcyqQ 介绍Intellij IDEA安装Scala插件后,如何在阅读和编码两方面助益开发者。 1. 语言专家 Scala是一门多范式编程语言,在支持面向对象编程的同时,也支持函数式语法。再加上隐式规则和宏等特性,以及众多的语法糖。使得Scala的学习曲线异常陡峭。 除了语言规范、教程图书、网络资料之外,一个强大的能够智能提示补全、时时检查提醒的编辑器或者IDE,可以极大的提高学习速度和编码效率。 事实上,除了语言的父亲(father of Scala)、语言规范委员会、编译器实现团队之外,编辑器或IDE的开发者可能是对语言最为擅长的了。他们开发的编辑器或IDE相较于一般的初学者,也能被称作专家了。 现代化的IDE是相当智能和强大的,犹如一个贴身语言专家,为开发者保驾护航。 Intellij IDEA就是这样的一个IDE,当之无愧。 2. 注意事项 在介绍 Intellij IDEA之前,首先列几点Scala编程注意事项: 1) 代码不只是要功能正确,还要用于沟通协同。所以代码要在功能正确的基础上,尽量的简单易懂; 2) 不要炫技:Scala是一门很优秀的语言,包含众多的语法糖。编写时以信达雅为要,不要在不必要的情况下,使用花哨的语法糖; 3) 不用宏:宏的代码较为艰涩

Scala

回眸只為那壹抹淺笑 提交于 2020-05-06 00:18:10
https://mp.weixin.qq.com/s/zwrG1MfUzXwtik7jotpQsA 介绍Intellij IDEA中的一个去除Scala语法糖的功能。 ​ ​ 1. 去除语法糖 Scala包含了太多的语法糖,在实现了代码写法比较简洁的同时,也某种程度上降低了代码的可阅读性。 比如变量类型推断。为了知道变量的类型,而不得不去阅读为该变量赋值的代码。为了知道方法的返回值类型,而不得不去看方法的实现。 这个问题可以通过Intellij IDEA添加type annotation的功能实现: ​ ​ 如下: ​ ​ 今天又发现一个可以去除语法糖、更详实的展现代码的功能:Desugar Scala code。 选中要去除语法糖的代码,右键即可呼出菜单: ​ ​ 点击之后,会出现要去除哪些语法糖的选择界面: ​ ​ 不做改变,直接点击OK: ​ ​ 可以看到,代码的阅读性有了很大的提升: a. 添加了变量类型: val x : UInt b. 伴生对象的路径及方法: chisel3. Input . apply () c. 为了调用W方法,而把16进行隐式类型转换调用的方法: chisel3.fromIntToWidth( 16 ) d. 调用伴生对象Input所传入的隐式参数: (chisel3.core.CompileOptions. materialize )

Currying in hardware

℡╲_俬逩灬. 提交于 2020-01-24 15:45:09
问题 I'm trying to implement a simple Address Decoder with a curried function inside. The code below won't compile, could anybody help me with this? class AddrDecoder[T<:UInt] (dType:T, n:Int) extends Module { val io = IO (new Bundle { //val range = (Vec(Seq.fill(n){(dType,dType)})) // This won't compile, how to fix ? val range = (List.fill(n){(dType,dType)}) val addr = Input (dType) val en = Input (Bool()) val sel = Output(Bool()) }) def inside (range:(T,T))(addr:T):Bool = { addr >= range._1 &&

How to keep all variable name In chisel when generate Verilog code

限于喜欢 提交于 2020-01-20 08:38:06
问题 The Register name in chisel can be definitly found in verilog ,. but Wire name sometimes ellipsis in verilog code. for example , I cant find sjwr ,sjwaddr name in verilog . val sjwr = Wire(Bool()) val sjwaddr = Wire(UInt(jcnt.getWidth.W)) sjwr := jcnt_rdy sjwaddr := jcnt when (sjwr) { sjBuf(sjwaddr) := sjxv } How can i keep all variable name in chisel when we generate verilog code . it's important for wave debug. 回答1: Thank you for your interest in Chisel! There are several reasons why a name

When we should use “:=” not “=” in chisel3, same case is “when” and “if”

最后都变了- 提交于 2020-01-14 14:10:25
问题 Recently I am leraning chisel3, and I have below questions: When we should use " := " not " = " Same case is "when" and "if". Or could you kindly offer some general rules for these cases ? Another question is about "Wire", what's rule it should be used or not when we declare one val ? Thanks a lot! Bibo 回答1: The fundamental difference here is certain operations are Scala operations and certain operations are Chisel operations . Scala operations are evaluated statically to build hardware

When we should use “:=” not “=” in chisel3, same case is “when” and “if”

南楼画角 提交于 2020-01-14 14:08:43
问题 Recently I am leraning chisel3, and I have below questions: When we should use " := " not " = " Same case is "when" and "if". Or could you kindly offer some general rules for these cases ? Another question is about "Wire", what's rule it should be used or not when we declare one val ? Thanks a lot! Bibo 回答1: The fundamental difference here is certain operations are Scala operations and certain operations are Chisel operations . Scala operations are evaluated statically to build hardware