动态
流动的时光,在此留下足迹。

tsxb
我决定放弃学习 SpinalHDL。
为什么坚持了大半个寒假,最终我要选择在还有 8 天时间返校的时候放弃学习它呢?我的理由如下。
- SpinalHDL 的文档太少了。它只有官方给出的一份文档,对于语言当中的很多特性,我只能从中做粗浅的了解,而不能详细的掌握运用。
- 我的时间不够。我原本的目标是在寒假快速掌握 SpinaHDL,并搭建一个 CPU。但到如今,我在学习这门语言的过程中处处受阻。也许学习它的一些项目库的代码是我应该做的,但留给我的时间已经不多了。
- 我前几天尝试过训练一个 SpinalHDL 方面的专家 AI,但没有成功,并且浪费了很多时间。
- sbt sucks. SpinalHDL(Scala) 所使用的编译工具 sbt 不是很好用。在 VSCode 上,你每次点击 run 生成的 Verilog 代码并不是最新的,和编辑器里的代码总有一点小小的时差。这也许是 sbt 和 VSCode 的配合(比如插件 Metals 的问题)并不是很好,或者是 sbt 编译速度太慢导致的。总之不是特别聪明。
- 我今天看到 HN 上对 SpinalHDL 一类语言的讨论,有个人的观点说服了我。原文是对 Chisel 的讨论,但两者差不多。他说:“硬件开发的真正成本在于硬币的另一面,即硬件验证。”虽然我可以通过 SpinalHDL、Chisel 之类的语言大大节省我的硬件设计的时间,但在验证方面,我不能完全保证它生成的 Verilog 代码一定是符合程序员逻辑的。为此我在验证阶段需要花费的时间比 Verilog 语言更多。这一点原因是今天促使我放弃学习 SpinalHDL 的最大原因。
在这个寒假的剩余时间里,我决定直接使用 Verilog 开始编写 CPU,努力把进度赶上。之后,我打算学习 System Verilog。Vivado 支持 System Verilog,为了更新更好的硬件描述语言特性,我就没有必要再用旧的 Verilog 了。寒假编写的 CPU 也会慢慢用 SV 改进。

tsxb