SpinalHDL入门教程(第二章)【未完成】
SpinalHDL入门教程-第二章
本文是SpinalHDL的详细入门教程之第一章,内容:安装仿真器、修改工程信息、编写第一份Spinal模块。
为何需要仿真器
当我们设计完电路后,如何验证其正确性呢?如果是软件设计,我们会给软件输入样例,然后看返回的结果是否正确;同理,设计好的数字电路在给予输入后也会改变输出引脚的状态。可以说,仿真是数字电路设计中非常重要的一环。这个教程系列一开始的电路并不复杂,但是随着内容增多,我们需要面对更大规模的数字电路,这就需要我们掌握仿真的方法和技巧,以此验证功能的正确性。
仿真主要分为前仿真(Pre-synthesis simulation)和后仿真(Post-synthesis simulation)。“电路综合”是分割“前”和“后”的一个过程,关于这一部分的内容将在以后详细提及,我们接下来主要将重心放在前仿真的一个子集:行为级仿真。
安装仿真器
安装仿真器后,Spinal便可以直接调用仿真器。这里我们主要讲解与verilator搭配使用,您也可以参考其它仿真器(如GHDL、iverilog)的文档进行配置,然后在执行仿真时替换为其对应的API。
很多Linux发行版都在仓库中提供了verilator的软件包,这里是verilator的官方安装指南,其中以Ubuntu发行版为例。其它发行版可以用类似的方式安装,例如在Arch Linux下,可以在终端执行sudo pacman -S verilator
进行安装。
打开新的终端,执行verilator --version
,如果正确输出了版本信息则表示安装成功。
安装波形查看器
我们使用GTKWave查看波形,该软件是跨平台的。这里是GTKWave的官方网站。在Linux平台下,您可以在自己发行版对应的包管理器中安装;Windows平台下,请前往这里寻找对应的安装文件。
生成的波形以文件格式存储在硬盘上,故用于查看波形的平台不必是Linux。
了解目录结构
在上一章中,我们拉取了一份官方提供的模板,里面包含组织好的代码目录、工程信息、生成目录等。我们先看SpinalTemplateSbt
下的build.sbt
文件,其中包含了工程需要引入的库以及源代码路径。