[先给CNRV打个call,国内爱好者建立的RISC-V社区,可以留言加我微信加入微信群]
为什么用chisel而不用其他语言自然是因为人家觉得好用,能进伯克利的学生的脑子绝对不傻而且绝对比其他一流大学接地气,去看看人家孵化出多少硅谷项目(Spark,Unix/BSD)就知道了。
人家chisel没打算取代verilog或者sv之类的任何,而只是希望在这个基础之上做一个高层次的构建语言,所以chisel叫做Hardware construction language,和HLS毛关系没有(但是你也可以在chisel的基础上构建HLS,这是另一码事)。
聊到chisel你们也别老是想到什么scala,java什么的。chisel是基于scala的,那是因为scala是一种元语言和函数式编程语言,而且很适合做DSL,也就是领域特定语言。这几个特点加起来让scala成为了一种很合适做这件事的语言。
那么chisel要做什么事?
请允许我举一个非常不恰当的栗子,我们以设计一个CPU为例吧。
你本科熬了几年图书馆,挤破了头进入国内某微电子学院做了研究生,老师进来和你说我有个很好的想法,能够有效的改进指令效率或者多核性能或者功耗。
老师说你做个5级流水线CPU把,还要把cache、总线、外设之类也做了(没缓存搞什么多核?)。好吧,我承认你很聪明,不出几个月你把CPU写的差不多了,然后cache、总线、外设这些大头还远着呢。又过了几个月你天天啃《量化研究方法》,然后终于把cache实现了。然后你写了个GPIO,又挂了个SRAM,好吧,你终于实现了一个小的CPU了。为了降低难度,你用了学术界最爱的MIPS体