✎ 编 者 按
本篇教程来源于微信网友王璞。 很多Spinal HDL新手朋友碰到环境安装的问题,特别是Windows下需要重新编译Verilator之类的工具,对新手很不友好。我推荐大家用Docker做为Spinal HDL的运行环境,一劳永逸解决Windows和MacOS等非Linux操作系统下的Spinal HDL环境安装问题。 》Docker简介 Docker提供了跨平台的统一运行环境。不论在Windows或MacOS还是Linux下,Docker都可以运行。Docker首先把运行环境的依赖打包到镜像里,然后Docker运行打包好的镜像,生成运行时的容器,此时Docker容器里就提供了镜像里打包好的依赖库或依赖程序。默认情况下,Docker运行时的容器提供的是Linux环境。此外,Docker还提供了统一的镜像仓库Docker Hub用于分发Docker镜像。 比如,我制作的datenlord/spinal-cocotb:1.6.1这个镜像里安装了JDK-11、sbt、mill、verilator、iverilog、gtkwave、cocotb,安装的都是Linux程序。运行docker run -it datenlord/spinal-cocotb:1.6.1这条命令创建的容器里,有Java环境和Python环境,也有Scala的编译工具sbt和mill,还有verilator、iverilog、gtkwave这些仿真和波形工具。这个容器里的环境还是Linux,不论容器外面是哪种操作系统。 这样的话,有了datenlord/spinal-cocotb:1.6.1这个镜像,就不需要在操作系统里安装Spinal HDL的环境,甚至都不需要在操作系统里安装Java,只需要安装Docker,然后用Docker运行这个镜像创建容器,就可以在容器环境里运行Spinal HDL。 》Intellij IDEA调用Docker 对于Java、Scala的开发者来说,Intellij IDEA是最好的IDE。而且Intellij IDEA也已经有官方的Docker插件,支持IDEA用Docker作为程序的运行环境。 准备工作)。然后下载镜像,运行如下命令:
docker pull datenlord/spinal-cocotb:1.6.1
接下来在Intellij IDEA里安装Docker插件,在File菜单点击Settings: 打开的Settings窗口如下所示: 选择Plugins子页面,输入插件名称Docker并搜索,返回的第一个插件就是Docker并安装。
配置IDEA 用IDEA打开SpinalTemplateSbt项目,在Run菜单点击Edit Configurations: 打开的Configurations窗口如下所示: 点击Configurations窗口左上角的+号,在弹出菜单里选择Docker的Docker Image子菜单,并输入如下字段: Name: RunSpinal —— 给当前的Docker镜像配置取个名称,IDEA可以创建多个Docker镜像配置 Image ID or name: datenlord/spinal-cocotb:1.6.0 —— 需要IDEA运行的Docker镜像 Container name: run_spinal —— 指定IDEA把Docker镜像运行起来之后创建的容器的名字 Command: sbt "runMain mylib.MyTopLevelSim" —— 在容器里要运行的命令,也就是要用sbt来编译运行Spinal HDL项目。
Configurations窗口如下所示: 还要继续配置Docker镜像,把Spinal HDL项目目录映射到运行起来之后的Docker容器内部: Configurations窗口的目录路径映射相关配置如下所示,注意Docker需要用绝对路径来做目录映射: 保存Configurations窗口,至此IDEA调用Docker的配置完毕。 IDEA调用Docker并在容器内编译运行Spinal HDL 在Run菜单点击Run...: 打开的Run窗口如下所示: 点击Run窗口的RunSpinal之后,IDEA调用Docker开始编译运行Spinal HDL项目,运行后的结果如下所示: 由上图可见,Spinal HDL运行后在SpinalTemplateSbt项目文件夹下生成了simWorkspace目录,sbt的运行结果显示在log窗口,最终运行结果成功。 用IDEA调用Docker来编译运行Spinal HDL项目,免去了安装Spinal HDL相关依赖的烦恼,而且由于Docker提供跨平台统一的运行环境,本文介绍的方法在Linux、Windows、MacOS上均可运行,只要安装IDEA和Docker即可。 ☆ END ☆本帖来源微信公从号:Spinal FPGA
网页地址:链接
|