拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学) 您所在的位置:网站首页 spine软件打开报错 拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学)

拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学)

#拯救Verilog!搭建SpinalHDL的IDE环境和仿真环境(保姆级教学)| 来源: 网络整理| 查看: 265

前言

这是我以前在学校做编译原理实验时做的笔记,遇到不少的坑,但是最后还是完成了。这是一篇搭建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安装路径

image.png

增加环境变量 Path: C:\Program Files (x86)\scala\bin

对此电脑,按右键,选属性

image.png

选择高级系统设置

image.png

选择环境变量

image.png

先按Path,再按编辑

image.png

按新建,再把刚才的路径贴上再按确定就可以了

image.png

重新打开cmd,输入scala -version,如果出现以下画面即环境配置成功

image.png

IDEA配置 进入IDEA安装Scala插件

按File->Settings调出设置窗口,找到Plugins并搜索Scala插件

image.png

image.png

DEA 配置Scala JDK

建立sbt工程文件,建立方法如下

image.png

image.png

建立工程文件,设置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已成功加载

image.png

创建Scala文件

image.png

image.png

生成Verilog的例子

配置环境后,當然要運行代碼測試是否完成環境配置

//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

image.png

看见如下信息代表编译并运行成功

image.png

它会生成Verilog档案,𥚃面有刚生成的Verilog代码

image.png

SpinalHDL仿真环境

只生成Verilog代码,没有运行演示总觉得差了点什么,以下为搭建仿真环境教学。其实SpinalHDL提供了sim功能,方便用户进行仿真。

安装MSYS2

打开MSYS2,输入指令pacman -Syuu,完成后它会提示重开

image.png

重开后,输入下列指令以安装所需软件

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打开

image.png

直接用cmd打开vcd文件,首先要移动位置,输入cd到你的vcd当前目录(dir为显示当前目录有什么文件,等同于linux的ls)

输入gtkwave 档案名.vcd 打开文件

image.png

image.png

这𥚃有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 实验室设备网 版权所有