Macbook M1使用vscode+iverilog+gtkwave实现Verilog代码的编译与运行

这篇具有很好参考价值的文章主要介绍了Macbook M1使用vscode+iverilog+gtkwave实现Verilog代码的编译与运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近在研究FPGA的开发,于是需要用到Verilog。但是手头上只有一台M1芯片的Macbook air,Vivado和Quatus在MacOS上似乎不太方便使用,险些陷入无尽的对于购买macbook的后悔中…

随后我在网上查找了大量的关于MacOS平台如何实现verilog的开发与编写的相关博客,都提到了使用vscode+iverilog+GTKwave实现verilog的编写、时序仿真与波形显示的解决方案。
于是想着记录一下自己在Macbook air M1芯片上实现verilog编写与仿真的过程,带大家从零开始在自己的Macbook上搭建Verilog编写环境。(有一个教程其实已经写的很详细了,可惜就是没有讲MacOS如何搭建!!给我一顿好找)
就是下面这篇~

vscode搭建Verilog环境(Windows与Linux)

一、介绍一下各个工具

  1. vscode
    vscode可以看做一个具有很多拓展功能与插件的文本编辑器。在这里我们使用它来编写verilog的代码。也就是来编写.v文件
  2. iverilog
    iverilog是一款轻量化的verilog编译器。编写好的verilog代码不能直接拿来跑仿真,需要对它先进行编译之后才能进行后续的仿真操作,而iverilog正是起到了这样的编译作用,配合vscode上的插件还可以实现verilog语法是否正确的检验
  3. gtkwave
    gtkwave可以用来查看.vcd文件,用于显示仿真结果。
  4. ctags
    ctags主要功能是,扫描指定的源文件,找出其中所包含的语法元素,在这里主要用于检索函数的定义。与vscode的一个插件搭配使用。
  5. homebrew
    Homebrew 是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。能够轻松实现各种软件包的下载安装,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
    我这里使用了homebrew来在我的MacBook上安装iverilog。

二、安装各个需要的工具

1.MacOS上的包管理工具——Homebrew的安装

参考教程:Mac M1安装homebrew步骤

  • step1:安装xcode

按照上面给出的文章的步骤,先在App Store搜索并安装xcode!!(主要是为了安装相关的git等环境)
gtkwave,vscode,ide,编辑器,macos,fpga开发

不然后面运行homebrew安装脚本的时候会出现类似下面这样的报错

安装Git后再运行此脚本,在系统弹窗中点击“安装”按钮

似乎是因为没有安装git,安装xcode之后似乎把包括git在内的很多开发需要的工具都给你的mac装上了,如果不嫌装git麻烦的话可以自行搜索一下macbook m1安装git的相关教程。如果想偷懒省事的话就直接安装xcode吧(笑)

  • step2:使用安装脚本安装Homebrew
    command+空格打开Mac的搜索,搜索terminal,然后打开终端。
    在终端中输入
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

随后就会打开一个安装Homebrew的脚本,按照脚本的步骤:依次执行选择下载源,按照命令输入y,输入开机密码,是否要安装homebrew-core等操作,完成homebrew的安装。
跑完安装脚本之后,按照上面给出来的教程,在终端中输入brew -v,查看homebrew的版本信息,以确认是否成功安装homebrew。一般来说会出现如下提示

Homebrew 4.0.6-15-g8e13a6e
fatal: detected dubious ownership in repository at '/opt/homebrew/Library/Taps/homebrew/homebrew-core'
To add an exception for this directory, call:

	git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
Homebrew/homebrew-core (no Git repository)
fatal: detected dubious ownership in repository at '/opt/homebrew/Library/Taps/homebrew/homebrew-cask'
To add an exception for this directory, call:

	git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
Homebrew/homebrew-cask (no Git repository)

此时需要按照它的提示,再在终端中输入

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask

再次输入brew -v查看homebrew的版本,这时候应该就会显示

Homebrew 4.0.6-15-g8e13a6e
Homebrew/homebrew-core (git revision 80b527e6314; last commit 2023-03-12)
Homebrew/homebrew-cask (git revision fee2067879; last commit 2023-03-12)

则homebrew的安装已经成功。

2.Verilog编译器——iverilog的安装

参考教程:开源verilog仿真工具iverilog+GTKWave使用教程

command+空格打开Mac的搜索,搜索terminal,然后打开终端,输入下面的指令,使用homebrew安装iverilog。

brew install icarus-verilog

稍等片刻,你就成功安装了iverilog!

3.ctags的安装

一般来说,mac上是会带有一个ctags的,在终端中使用which -a ctags指令查找这个电脑上所有的ctags的路径,会发现

leo@leodeMacBook-Air ~ % which -a ctags
/usr/bin/ctags

也就是说,在没有额外安装ctags的情况下,电脑是自带一个在/usr/bin/ctags路径下的ctags的。
但是不知道是因为版本不够高之类的原因,使用这个自带的ctags似乎无法配合vscode的插件实现其功能,于是我们需要使用homebrew再安装一个!

按照上面讲过的打开终端的步骤,打开终端。在终端中输入

brew install ctags

稍等片刻,你就可以成功安装ctags了。
这时候再输入which -a ctags,你就会发现有两个路径了,例如下面

leo@leodeMacBook-Air ~ % which -a ctags
/opt/homebrew/bin/ctags
/usr/bin/ctags

出现了两个ctags路径,则说明你新的ctags也已经安装完成了~

4.gtkwave的安装

参考教程:在M1芯片的MacBookPro上编译并运行 Verilog 代码

按照上面教程的作者的说法,他是直接在gtkwave的官网下载的unzip版本。网址在这

http://gtkwave.sourceforge.net/gtkwave.zip

gtkwave,vscode,ide,编辑器,macos,fpga开发

似乎目前gtkwave只有intel版本,且会显示未知的作者,为了打开这个文件,在访达中找到这个文件,右键打开即可成功打开gtkwave。如果没有装过Rosetta2的话还会让你装一下Rosetta2,右键并打开后按照电脑出来的弹窗安装Rosetta2即可。

成功打开后可以看到图示的gtkwave界面
gtkwave,vscode,ide,编辑器,macos,fpga开发

恭喜你已经成功安装gtkwave


23年10月30日更新

今天升级到macOS 14以后软件就打不开了…
如果没有更新到macOS 14的话可以继续参照我的教程安装使用gtkwave

如果更新了的话
可以参照一下这个up主的手把手教学

MacOS14 安装iVerilog和GTKwave


三、在vscode上安装并配置相关插件

相关参考文章:vscode搭建Verilog环境

vscode在加上插件之后是无所不能的!
在这里打开拓展商店,并可以搜索相关插件~
相关插件在图中也已经列出
gtkwave,vscode,ide,编辑器,macos,fpga开发

1.CTags Support插件

gtkwave,vscode,ide,编辑器,macos,fpga开发

作为ctags到vscode的桥梁,将两者联系起来,使得vscode中的其他插件能够自动调用ctags相关功能。

需要进行如下配置,打开图中的齿轮,打开拓展设置。
gtkwave,vscode,ide,编辑器,macos,fpga开发

把框里的参数改成图示的

gtkwave,vscode,ide,编辑器,macos,fpga开发

好像这个一开始就是.tags,不太用改

2.Verilog Highlight插件

gtkwave,vscode,ide,编辑器,macos,fpga开发

用于实现Verilog代码中的相关代码高亮

下载了就行,不用配置

3.Verilog-HDL/SystemVerilog/Bluespec SystemVerilog插件

gtkwave,vscode,ide,编辑器,macos,fpga开发

神中神,关键中的关键,vscode上能编写verilog代码的大功臣,有了它以后,你就可以在vscode上编写verilog代码,结合iverilog还可以实现代码语句的检查。

配置相关参数

打开设置界面

gtkwave,vscode,ide,编辑器,macos,fpga开发

  • Ctags的路径设置

gtkwave,vscode,ide,编辑器,macos,fpga开发

点进此插件的设置,在其第一栏的框中填入我们刚刚使用homebrew安装的ctags的路径(mac可用which -a ctags指令查找获得)
注意:这里需要填入的是homebrew安装的那个ctags的路径,在/usr/bin/ctags路径下的那个ctags可能是因为版本不够,无法成功实现对应功能。

  • Linter:编译器设置

gtkwave,vscode,ide,编辑器,macos,fpga开发

在点开的设置界面中,搜索linter,找到图示的这两个选项框
Arguments里填入-i
Linter处选中iverilog

这样,你就拥有了iverilog检查语法错误的功能了!

特别注意:linter工具只会在保存(CTRL+S)之后进行语法检查,因此,在编写源码的过程中没有红色波浪线提示,是正常的。


四、使用搭建好的平台进行verilog的编写与仿真

1.使用vscode进行verilog代码编写与代码错误检查

打开一个项目文件夹
gtkwave,vscode,ide,编辑器,macos,fpga开发

创建一个.v文件,用于编写verilog程序

这里我建了一个叫做led_test.v的文件。我在文件中故意写错一部分,用于验证是否有语句检查的功能
写完之后,按住CTRL+S进行保存,随后才会进行语法检查!!!
出现图示效果,成功报错!
gtkwave,vscode,ide,编辑器,macos,fpga开发
改正之后,再按CTRL+S进行保存与语法检查,没有报错
gtkwave,vscode,ide,编辑器,macos,fpga开发
说明语法检查功能可以正常运行~
附上正确的led_test.v文件的代码

module led_test(a,b,key_in,led_out);
input a;
input b;

input key_in;

output led_out;

assign led_out = (key_in==0) ? a:b;
endmodule

2.使用iverilog+gtkwave进行仿真

参考链接:
IVerilog+GTKwave+VS Code仿真及执行命令
mac的open命令[快速打开程序的利器]
开源verilog仿真工具iverilog+GTKWave使用教程

针对led_test.v编写一个对应的Testbench仿真程序led_test_tb.v

`timescale 1ns/1ps

module led_test_tb;
    reg signal_a;
    reg signal_b;
    reg signal_c;
    
    wire led;
    led_test led_test_0(
        .a(signal_a),
        .b(signal_b),
        .key_in(signal_c),
        .led_out(led)
    );
    initial begin
        signal_a=0;signal_b=0;signal_c=0;
        #100;
        signal_a=0;signal_b=0;signal_c=1;
        #100;
        signal_a=0;signal_b=1;signal_c=0;
        #100;
        signal_a=0;signal_b=1;signal_c=1;
        #100;
        signal_a=1;signal_b=0;signal_c=0;
        #100;
        signal_a=1;signal_b=0;signal_c=1;
        #100;
        signal_a=1;signal_b=1;signal_c=0;
        #100;
        signal_a=1;signal_b=1;signal_c=1;
        #100;
    end

initial
begin
    $dumpfile("led_test.vcd");
    $dumpvars(0, led_test_tb);
end

endmodule

注意

这里的

initial
begin
    $dumpfile("led_test.vcd");
    $dumpvars(0, led_test_tb);
end

是一定要在原有编写好的testbench基础上,加上去的。
这是iverilog编译器专用的语句,如果不加的话后面不能生成vcd文件。
当然$dumpfile("xxxx.vcd")可以你自己命名,但是$dumpvars(0, led_test_tb);里面的函数名字(这里是led_test_tb)必须与你的testbench函数名保持一致

随后使用control+ `在vscode中打开终端
在终端中输入iverilog -o wave led_test.v led_test_tb.v 使用iverilog将两个联合编译成一个命名为wave的文件。
gtkwave,vscode,ide,编辑器,macos,fpga开发
可以看到,在文件栏中,出现了一个叫做wave的文件(这个名字也可以你自己定义~)

随后输入vvp -n wave -lxt2,使用vvp工具在wave文件的基础上生成波形文件。(你vvp的文件需要是你上面编译生成的那个文件)
gtkwave,vscode,ide,编辑器,macos,fpga开发
可以看到,生成了我们前面在led_test_tb.v文件里面命名的test.vcd文件。

然后就可以用安装的gtkwave软件,打开这个test.vcd文件,显示出波形。
使用指令open -a gtkwave test.vcd,即:用gtkwave软件,打开test.vcd文件。

参考:mac的open命令[快速打开程序的利器]

gtkwave,vscode,ide,编辑器,macos,fpga开发
随后就会出现
gtkwave,vscode,ide,编辑器,macos,fpga开发

gtkwave的界面!

为了让信号能显示出来,需要双击对应的信号,将其添加入框中
gtkwave,vscode,ide,编辑器,macos,fpga开发

然后信号被添加后,有图示情况~
gtkwave,vscode,ide,编辑器,macos,fpga开发

最后再点击下面这个按钮,把画面缩放到合适比例,即可看到仿真波形!

gtkwave,vscode,ide,编辑器,macos,fpga开发


23年10月31日更新

gtkwave,vscode,ide,编辑器,macos,fpga开发

如果你升级到了macOS14可能会发现上面方法安装的gtkwave软件无法打开波形文件,主要是因为这个版本的软件无法在macOS14上运行,可参照b站这位up主的视频完成gtkwave的安装(如果没升级到macOS14,可直接使用上面安装的gtkwave打开波形

MacOS14 安装iVerilog和GTKwave

由于按照我们之前的步骤你已经把iverilog装好了,只用按照他的步骤把gtkwave装了就行。视频里还有指导安装yosys的步骤,但是我装不装yosys好像也没啥区别,所以可以只按照他的教程,把gtkwave装上就行。

装完了之后,编译指令与上面一样,但是vvp以及展示波形的指令也与上面不同了~

编译指令:iverilog -o wave led_test.v led_test_tb.v,与之前一样

vvp : vvp -n wave

gtkwave打开生成的波形文件:gtkwave ./test.vcd

指令的使用与意义,可以参照下面这篇文章

IVerilog+GTKwave+VS Code仿真及执行命令


总结

恭喜你!经过上面的步骤,你成功在你的Macbook m1上搭建了基于vscode+iverilog+gtkwave的Verilog仿真平台,如果说还想再加一些别的拓展功能,比如说自动生成testbench,格式化等等,可以去翻阅一些别的相关博客,能编写verilog和简单仿真我已经满足了。macbook还是用来充当文本编辑终端罢!(暴论)
新人创作,有问题还请大家多多指正~感谢大家!

可参考相关文章:
VScode搭建Verilog源码开发环境记录
VSCode配置verilog环境(代码提示+自动例化+格式化)文章来源地址https://www.toymoban.com/news/detail-762015.html

到了这里,关于Macbook M1使用vscode+iverilog+gtkwave实现Verilog代码的编译与运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MacOS】MacBook使用本机m1芯片GPU训练的方法(mps替代cuda)

    记录: 对于tensorflow环境配置,即使替换了M1适配的anaconda,使用苹果官方适配m1的tensorflow安装命令,仍旧出现各种问题,可见现在的M1版anaconda还是存在很大问题。所以在屡次不服气的碰壁下我还是改用了miniforge3…真香! so,建议使用miniforge3管理,miniforge3可以理解成 minicon

    2024年02月05日
    浏览(40)
  • M1 MacBook 使用 playCover 侧载运行 iOS ipa 文件,完美运行原神、金铲铲等游戏

    Mac 新的 M 系列芯片出来后,我们终于可以在 Mac 上玩原神、金铲铲之战等热门手游了,而且可以使用键盘鼠标进行控制,亲测了一下,像英雄联盟手游、王者荣耀这种游戏游玩体验没有手机或ipad上玩的爽以外,像原神、金铲铲这些真的是爽翻了 具体就是通过 git hub 开源软件

    2024年02月05日
    浏览(55)
  • 【macbook air M1】采用Rosetta方式运行,在macbook M1 Air上比macBook Pro M1,速度慢一些的原因?

    My application use rosetta run on macbook air M1 slowly than run on macbook M1, Why? It\\\'s possible that you\\\'re experiencing slower performance on your MacBook Air M1 compared to the MacBook Pro M1 due to differences in hardware specifications, especially if your application is resource-intensive. The MacBook Air M1 has a fan-less design, which can lead

    2024年02月02日
    浏览(47)
  • 在M1芯片的Macbook上使用docker-compose启动mysql,并利用 NaviCat Premium 客户端进行连接

    在M1芯片的Macbook上使用docker-compose启动mysql,并利用 NaviCat Premium 客户端进行连接   先打开控制台,使用 uname -m 来查看自己CPU芯片的架构   苹果的M系列芯片使用的是ARM64架构,因此,需要安装相应版本的一些列工具。         因为我是M1芯片,所以安装docker desktop时候,当

    2024年02月12日
    浏览(62)
  • M1芯片的MacBook安装docker

    homebrew是mac平台下的一个包管理软件系统,类似于ubuntu的apt。可以通过命令安装很多现成的二进制包。安装brew需要从github下载一些资源,但是一般国内的网络速度太慢,很难安装成功,我们可以更换为国内源进行安装以加快安装速度。 homebrew清华软件源地址 https://mirrors.tun

    2023年04月08日
    浏览(55)
  • MacBook Pro M1 安装Homebrew记录

    知乎文章地址:https://zhuanlan.zhihu.com/p/111014448 苹果电脑标准安装脚本:(推荐 优点全面 缺点慢一点) 苹果电脑极速安装脚本:(优点安装速度快 缺点update功能需要命令修复 ) Linux 标准安装脚本: 苹果电脑卸载脚本: Linux卸载脚本:

    2024年02月07日
    浏览(78)
  • Macbook pro M1 安装Ubuntu教程

    先讲下心路历程 由于版主最近刚切换到Mac,所以在安装的时候一上手就选择了virutalbox,结果报错“The installer has detected an unsupported architecture. VirtualBox only runs on the amd64 architecture.” 后来去Reddit论坛上一看,才知道官方版本并不支持ARM64架构。VirtualBox主要是为x86(Intel和AMD)架

    2024年02月11日
    浏览(40)
  • MacBook(M1)上安装Ubuntu虚拟机

    VMware Fusion https://www.vmware.com/products/fusion/fusion-evaluation.html ubuntu-desktop-arm64.iso https://cdimage.ubuntu.com/jammy/daily-live/current/ Mac版本的VMware叫 VMware Fusion,需用从这里 https://www.vmware.com/products/fusion/fusion-evaluation.html下载: M1的Mac只能安装ARM版本的虚拟机,需要从 https://cdimage.ubuntu.com/

    2024年02月16日
    浏览(38)
  • Macbook M1编译安装Java OpenCV

    确保所有需要模块都打上了✔,未打✔的需要使用`brew`进行安装 在此处下载OpenCV源代码,选择Source,点击此处下载opencv_contrib-4.8.0 或者使用如下命令,通过Terminal下载 进入下载路径,并创建build文件夹 建立一个 run.sh 文件,并输入如下代码,其中 BUILD_opencv_java 设置为 ON ,

    2024年02月16日
    浏览(51)
  • mac bookpro m1 笔记本关闭键盘屏幕 禁用键盘屏幕使用 键盘屏幕误触 Touch Bar禁用 禁用MacBook-Pro的触摸栏

    我使用的是2020款m1 13.3寸 键盘屏幕名字叫: Touch Bar` 我需求是禁用键盘屏幕使用功能,让其可以自动息屏降低功耗 借鉴了:https://baijiahao.baidu.com/s?id=1621275069192418147wfr=spiderfor=pc 本教程使用的是 LumingYin创建了一个名为TouchBarDisabler的解决方案 这是一款macOS平台的禁用Multi-Touch

    2024年02月10日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包