拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学) | 您所在的位置:网站首页 › spine软件打开报错 › 拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学) |
前言
这是我以前在学校做编译原理实验时做的笔记,遇到不少的坑,但是最后还是完成了。这是一篇搭建SpinalHDL的教学,希望对读者有帮助。做完这个实验后我好兴幸自己不是读硬件有关的专业而是读软件 对硬件设计有点了解读者都知道Verilog吧,写小项目的时候觉得还好,但是写大项目的时候,只要想改一点点东西,就要改成千上万行代码,工作量巨大。所以,基于Scala的SpinalHDL框架就出来了,成功解决了上述问题。在添加标签时没有SpinalHDL标签,又不能创建,这知名度也太低了吧 工欲善其事,必先利其器 -- 《论语·卫灵公》 环境安装前置预备 IDEA安装从官网下载,选Community版,完成后需安装Scala插作(先装IDEA然后往下做,等下再装插件)。 官网:www.jetbrains.com/idea/downlo… JDK安装SpinalHDl基于Scala,Scala基于Java,下载Java SDK 1.8,从官网下载,选Java SE 8 官网:www.oracle.com/java/techno… 详细安装JDK:www.liaoxuefeng.com/wiki/125259… Scala与SBT安装官网:www.scala-lang.org/ 建议安装Scala 2.11.12版本 安装后,打开cmd,输入where Scala指令查看Scala安装路径 增加环境变量 Path: C:\Program Files (x86)\scala\bin 对此电脑,按右键,选属性 选择高级系统设置 选择环境变量 先按Path,再按编辑 按新建,再把刚才的路径贴上再按确定就可以了 重新打开cmd,输入scala -version,如果出现以下画面即环境配置成功 按File->Settings调出设置窗口,找到Plugins并搜索Scala插件 建立sbt工程文件,建立方法如下 建立工程文件,设置build.sbt文件,设置如下 name := "untitled2" version := "0.1" scalaVersion := "2.11.12" val spinalVersion = "1.4.0" libraryDependencies ++= Seq( "com.github.spinalhdl" % "spinalhdl-core_2.11" % spinalVersion, "com.github.spinalhdl" % "spinalhdl-lib_2.11" % spinalVersion, compilerPlugin("com.github.spinalhdl" % "spinalhdl-idsl-plugin_2.11" % spinalVersion) ) fork := true等待工具自动加载完成后可看到SpinalHDL已成功加载 创建Scala文件 配置环境后,當然要運行代碼測試是否完成環境配置 //newTest.scala import spinal.core._ object SimAsynchronousExample { class Dut extends Component { val io = new Bundle { val a, b, c = in UInt (8 bits) val result = out UInt (8 bits) } io.result := io.a + io.b - io.c } def main(args: Array[String]): Unit = { SpinalSystemVerilog(new Dut) //* *这行的意思就是把SpinalHDL翻译成Verilog } }编译并运行,按Run 看见如下信息代表编译并运行成功 它会生成Verilog档案,𥚃面有刚生成的Verilog代码 只生成Verilog代码,没有运行演示总觉得差了点什么,以下为搭建仿真环境教学。其实SpinalHDL提供了sim功能,方便用户进行仿真。 安装MSYS2打开MSYS2,输入指令pacman -Syuu,完成后它会提示重开 重开后,输入下列指令以安装所需软件 pacman -Syuu # Close the MSYS2 shell once you're asked to pacman -Syuu pacman -S --needed base-devel mingw-w64-x86_64-toolchain \ git flex\ mingw-w64-x86_64-cmake pacman -U http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-verilator-4.032-1-any.pkg.tar.xz安装完成后加入 C:\msys64\usr\bin;C:\msys64\mingw64\bin 到环境变量(前面己演示过) 重开IDEA 安装Gtkwave这是个示波器,方便观察运行结果,以下为安装方法 下载iverilog安装包,它𥚃面有gtkwave 安装后自行配置环境变量,或者在安装时勾选加入环境变量 Path:C:\\iverilog\\bin;C:\\iverilog\\gtkwave\\bin 通过一个例子进行仿真这段代码大概意思就是随机生成100组数据进行异步加法,等下会通过gtkwave来观察运行 import spinal.sim._ import spinal.core._ import spinal.core.sim._ import scala.util.Random object SimAsynchronousExample { class Dut extends Component { val io = new Bundle { val a, b, c = in UInt (8 bits) val result = out UInt (8 bits) } io.result := io.a + io.b - io.c } def main(args: Array[String]): Unit = { SimConfig.withWave.compile(new Dut).doSim{ dut => var idx = 0 while(idx < 100){ val a, b, c = Random.nextInt(256) dut.io.a #= a dut.io.b #= b dut.io.c #= c sleep(1) // Sleep 1 simulation timestep assert(dut.io.result.toInt == ((a + b - c) & 0xFF)) idx += 1 } } } }成功时会显示以下信息,然后会在workspace𥚃有vcd文件,用gtkwave打开 直接用cmd打开vcd文件,首先要移动位置,输入cd到你的vcd当前目录(dir为显示当前目录有什么文件,等同于linux的ls) 输入gtkwave 档案名.vcd 打开文件 这𥚃有100组数据,以第一组数据为例,8C+74-CA=36,不信的话按计算器算一下,通过vch文件可以更直观地观察结果 Reference本人推介微信公众号:Spinal FPGA,这里有很多有关SpinalHDL的资讯! SpinalHDL的官方文档: spinalhdl.github.io/SpinalDoc-R… 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程 zhuanlan.zhihu.com/p/95081329 在Windows 10下配置和使用Icarus Verilog (iverilog)和GTKWave www.twblogs.net/a/5c9e960ab… Intellij IDEA 安装Scala插件 + 创建Scala项目(Hello World!) blog.csdn.net/Appleyk/art… idea添加scala环境_SpinalHDL——环境搭建 blog.csdn.net/weixin_3998… msys2安装gcc、g++编译器 blog.csdn.net/Lazybones_3… 如何以 MinGW 和 MSYS2 建置 C 和 C++ 開發環境 michaelchen.tech/windows-pro… SpinalHDL 环境搭建(1) blog.csdn.net/AS7062031/a… SpinalHDL 开发环境 Windows 安装 blog.csdn.net/htgoco/arti… 用Verilator仿真Ibex的hello world zhuanlan.zhihu.com/p/108624018 |
CopyRight 2018-2019 实验室设备网 版权所有 |