在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: goco

[原创] SpinalHDL一门真正具备生产力的HDL开发框架

[复制链接]
 楼主| 发表于 2020-8-13 17:51:15 | 显示全部楼层


abeey 发表于 2020-6-23 19:49
现在就是文档跟不上,小规模逻辑开放绰绰有余。


SpinalHDL有官方文档,你能遇到的80%的文档都能在文档上找到。其余的问题可以在社区https://gitter.im/SpinalHDL/SpinalHDL中提问,社区对新人比较友好,不管是比较简单或者复杂的问题都会有人及时解答
 楼主| 发表于 2020-8-13 17:53:57 | 显示全部楼层


xiaojia102003 发表于 2020-7-8 15:58
关注下,后端工具对Spinal HDL的支持怎么样?


SpinalHDL是一个高效的Verilog生成器,它的输出是verilog,对验证,后端是透明的,后续FLOW完全跟原来的开发流程一致。
 楼主| 发表于 2020-8-13 18:19:08 | 显示全部楼层


quanqiutong 发表于 2020-7-9 10:14
这种我试过,感觉还是不成熟
1. 环境问题,要配置java,scala 工作环境,不熟悉的人很头疼,没有统一的平台 ...


你说的关于环境或者语言的复杂度对于新手确实有,但是我觉的这个并不是一个很大的障碍。
1. 环境和平台我认为恰恰是这套开发方法的优势,SpinalHDL + verilator + IDEA + gtkwave, 都是跨平台开源免费软件,
在windows上,在mac上都能无障碍开发。环境的安装不应该是一个很困难的事情,好歹我们也自称工程师,这个不应该是问题。

2. scala 语言复杂,绝大多数是人云亦云。就像很多人说python简单一样, python简单吗,python 作为工具使用可能会比较方便,但作为一门开发语言,我并不认为它简单。反而Scala学起来并没有什么秘密,一切都能追根溯源。由于Scala强大的表达能力,类型推断,模式匹配,函数式编程特性,写出来的代码往往比python要简洁漂亮的多。一开始可能给人感觉有点复杂,有点像VIM,花点时间会用了基本上回不去了。所以不妨尝试花一点点时间系统的学习一下,相信你会爱上它。

3. 可读性差,chisel、SpinalHDL 都有这样的问题,不过最新版本的SpinalHDL生成代码已经非常接近手工写的,spinalHDL会原封不动的保留所有的信号名,并不会擅自优化修改信号,目前SpinalHDL对于可读性唯一的不足的地方是匿名变量,匿名变量是个历史问题,是偷懒比较安全的做法。将来的版本里面会把匿名变量也拿掉,重复信号会有后缀index替代,这样可读性基本上就基本上没什么值得诟病的地方。

4. 这个目前我还没发现,如果你有例子可以提供上来,原则上SpinalHDL一定会保持后向兼容,即便个别的API有变动会在提前n个版本之前就有过期警告,一般你编译的时候就能看到这样的信息,不会突然废弃API。

5. 出现问题不知道怎么解决,欢迎到社区https://gitter.im/SpinalHDL/SpinalHDL提问,这里有最耐心的Dolu1990帮你解答。



 楼主| 发表于 2020-8-13 18:39:34 | 显示全部楼层
本帖最后由 goco 于 2020-8-13 18:49 编辑


要你命3000 发表于 2020-7-30 22:20
最近想从Verilog入坑SpinalHDL,有几点问题想请教下:
1、环境问题:习惯了Windows+VSCode,这个环境能支持 ...


1. 首先对于前段开发用到的工具SpinalHDL +verilator +gtkwave 是全平台开源免费软件,所以在Windows上完全没问题,我本人有一半时间就是在windows上开发,VScode我没用过,如果它能支持Java开发的话,原则上是没有问题,不过IDEA确实很不错,不妨试试

2. 仿真调试以前我比较习惯Verdi来追踪波形,不过现在用gtkwave习惯了也还好没什么障碍,由于spinalHDL生成的verilog原封不动的保留了信号名,所以一般我都很少看Verilog代码,直接拉信号对着SpinalHDL代码debug,没有任何问题。另外verilator 跟VCS是个仿真器,对debug来说完全透明的,不用关心它。

3. 没有, 我也劝你千万不要这么干。 你觉的那些Chisel上有SpinalHDL没有的,请留言,不管是feature 或者库。 rocket-chip就不要提了,有点代码洁癖的都不能接受这样的屎山。Spinal也有漂亮的SOC框架,虽然可能比较小,但是很简洁,非常容易上手扩展。
发表于 2020-8-14 13:57:16 | 显示全部楼层


goco 发表于 2020-8-13 18:39
1. 首先对于前段开发用到的工具SpinalHDL +verilator +gtkwave 是全平台开源免费软件,所以在Windows上完 ...


我是 SpinalHDL + IDEA + msys2(gcc, make, verilator) + gtkwave,做些小工程一点问题没有。

发表于 2020-8-14 14:00:55 | 显示全部楼层


要你命3000 发表于 2020-7-30 22:20
最近想从Verilog入坑SpinalHDL,有几点问题想请教下:
1、环境问题:习惯了Windows+VSCode,这个环境能支持 ...


我的是 IDEA 加 sbt 插件,msys2 中安装 gcc、make 和 verilator,单独下载 gtkwave,已经做成便携版,使用毫无障碍。
发表于 2020-8-26 15:41:54 | 显示全部楼层
楼主,想请教一下你关于sbt环境的问题。我是在虚拟机ubuntu18.04上运行的。
由于sbt从中心仓库下载依赖过于慢了,所以想做一个没有网络都可以用的环境。我使用SpinalHDL只会用core和lib这两个,按理是把这两个打包成jar包就可以直接使用jar包就可以,但是试了几次没成功。我看log信息猜测是:sbt首次运行会下载一些scala、sbt等相关的依赖,然后再下载spinalhdl的依赖。spinalhdl的依赖这些都可以搞定,但是就是把jar包放在工程目录下的lib里不起作用。。

所以就是想请教一下你,指导或者讨论一下这个单机的环境。其他的语法,debug、lib、便捷性、革命性我是完全同意。文档确实也很丰富。scala语法其实也是有资料,但唯独一些纯java类的开发flow了解的不多,遇到好多问题。
 楼主| 发表于 2020-9-7 11:00:41 | 显示全部楼层


adan313 发表于 2020-8-26 15:41
楼主,想请教一下你关于sbt环境的问题。我是在虚拟机ubuntu18.04上运行的。
由于sbt从中心仓库下载依赖过于 ...


由于坑爹的GFW,国内访问速度确实很慢。有两个途径:1. 设置阿里云的镜像试试https://www.jianshu.com/p/3427c702d443, 有些较新的库阿里云没有,就到https://search.maven.org/搜索链接手动迅雷下载,覆盖本地.ivy(确保覆盖的位置没有错,一般哪个文件下载很慢挂死的时候都会有个同名的临时文件,windows上我用everything 搜索,Linux上可以用find命令在.ivy搜索)
2. 使用V皮N,方法自己网上找
一般也就是第一次下载慢一些,后面基本上不太会遇到环境的问题。


发表于 2020-12-10 20:29:25 | 显示全部楼层
发表个不成熟的观点,SpinalHDL最终还是产生Verilog,从设计可靠性的角度,我们芯片设计当然越可控越好,那么直接用Verilog设计是最可控的。就像汇编语言,虽然比C语言晦涩并且繁琐,很大一部分人觉得汇编已经是被淘汰了,但是实际上我们嵌入式系统的启动项start up主要还是用汇编写的,主要是汇编更底层,效率更高。或许以后SpinalHDL会成主流,然后又被另外一种语言所取代,但是硬件的设计思想才是根本。语言本身是一种实现载体,目前打算先观望观望。
发表于 2020-12-12 17:53:38 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 00:53 , Processed in 0.027154 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表