电子产业一站式赋能平台

PCB联盟网

搜索
查看: 36|回复: 0
收起左侧

【芯片验证】什么工具都没有要学习芯片验证怎么搞

[复制链接]

407

主题

407

帖子

5214

积分

四级会员

Rank: 4

积分
5214
发表于 2025-2-24 11:58:00 | 显示全部楼层 |阅读模式
在《年轻人的第一个systemVerilog验证环境》里,介绍了如何在只有win+modelsim或是linux+vcs的情况下完成一个验证环境。那么如果既没有linux环境也没有vcs还没有modelsim,也想跑一个验证环境有没有办法呢?
【芯片验证】年轻人的第一个systemVerilog验证环境
【芯片验证】年轻人的第一个systemVerilog验证环境全工程与解析——VCS版
当然有,大前提是有一台可以正常工作的windows系统电脑。有了这台电脑呢就可以通过WSL+iverilog+gtkwave(+xming)来完成一个验证环境的仿真了。这里插播一句,现在很多在线调试网站都集成了iverilog开源工具,比如说ic技术圈(https://iccircle.com),欢迎大家的访问和使用。

hl55qcxmgbo6404512927.png

hl55qcxmgbo6404512927.png

eiqlasltl0u6404513027.jpg

eiqlasltl0u6404513027.jpg

说回今天的主题,如果现在没有一个趁手的虚拟机或者工作站可以使用,那不妨就在windows下安装一个WSL。具体的教程很多,这个放一下deepseek给的说明:
Windows Subsystem for Linux (WSL) 是一个在Windows 10和更新版本中提供的兼容层,可以让您直接在Windows上运行Linux二进制可执行文件。以下是使用WSL的基本步骤:
1. 启用WSL:
   打开PowerShell作为管理员,输入以下命令并回车:`wsl --install`
   这个命令会启用所需的可选功能,并安装默认的Linux发行版(通常是Ubuntu)。
2. 安装特定的Linux发行版:
   如果你想安装其他Linux发行版,可以通过Microsoft Store搜索并安装你喜欢的版本,比如Debian、Kali Linux等。
   安装完成后,启动所选的发行版以完成初始设置。
3. 使用WSL:
   安装并启动后,你可以通过开始菜单找到已安装的Linux发行版,点击打开进入Linux命令行环境。
   在这里,你可以像在普通的Linux系统中一样使用各种命令行工具和软件包管理器来安装软件、编写代码等。
4. 升级WSL版本(如果需要):
   WSL有两种版本:WSL 1和WSL 2。WSL 2提供了更好的性能和完整的系统调用兼容性。要检查当前使用的WSL版本或将其转换为WSL 2,可以使用命令:`wsl --list --verbose`查看已安装的发行版及其版本号,然后使用`wsl --set-version [distro-name] 2`将指定发行版转换为WSL 2。
5. 配置互访:
   WSL与Windows之间可以直接访问彼此的文件系统。在Linux中,可以通过`/mnt/[drive]/[path]`访问Windows文件,在Windows中,可以通过`\wsl$\[distribution]\`访问Linux文件。
确保你的Windows版本是最新的,以便获得最佳的WSL体验和支持。如果你遇到任何问题或者想了解更多高级特性,微软官方文档是一个很好的资源。
安完设置好密码再重启电脑之后,你就拥有了这样一个虚拟机:

2p0q2c4i0bx6404513127.png

2p0q2c4i0bx6404513127.png

而有了WSL之后,个人建议再往电脑上安一个vscode毕竟用起来顺手一些,如果你已经安装了vc那么直接在虚拟机里键入`code .`就可以转到那里去操作虚拟机了。
然后安装一下iverilog和gtkwave,这两个也都很好安装apt就可以:
  • sudo apt install iverilogsudo apt install gtkwave这样呢最基本的工具就完成了。来测试一下环境是否可以工作,那么在当前目录写两个代码example.v:
  • module example (    input wire clk,    input wire rst,    output reg q);    always @(posedge clk or posedge rst) begin        if (rst)            q 0;        else            q     endendmodule和example_tb.v:
  • module example_tb;    reg clk;    reg rst;    wire q;
        example uut (        .clk(clk),        .rst(rst),        .q(q)    );
        initial begin        clk = 0;        forever #5 clk = ~clk;    end
        initial begin        $dumpfile("example.fsdb");        $dumpvars(0, example_tb);
            rst = 1;        #10 rst = 0;
            #100 $finish;    endendmodule然后写完保存好之后,编译一下:
  • iverilog -o example example.v example_tb.v执行一下可执行文件:
  • vvp example此时会打印log并产生波形,最后打开波形文件:
  • gtkwave example.fsdb &

    fbmmhbrizv16404513227.png

    fbmmhbrizv16404513227.png

    效果就有了,继续拓展就可以开始愉快的进行芯片验证编码与仿真。这一套下来怎么说呢,基本处于“又不是不能用”的阶段,如果觉得太卡了还可以安装一下xming通过windows来显示波形界面。

    t5cebcntref6404513327.jpg

    t5cebcntref6404513327.jpg

    ve5toibkean6404513427.png

    ve5toibkean6404513427.png

    系列文章入口
    【芯片设计】SoC 101(一):绪论【芯片设计】FIFO漫谈(零)从无处不在的FIFO开始说起【芯片设计】计算机体系结构(一)虚拟内存【芯片设计】深入理解AMBA总线(零)绪论
    【芯片设计】握手协议的介绍与时序说明【芯片设计】复位那些小事 —— 复位消抖【芯片设计】快速入门数字芯片设计(一)Introduction【芯片验证】UVM源码计划(零)下定决心读源码前的自测环节
    【芯片设计】异步电路碎碎念(一) 到底什么是异步电路
    【芯片设计】从RTL到GDS(一):Introduction
    【芯片设计】系统中的可维可测状态记录寄存器设计
    其他文章链接
    【芯片验证】sva_assertion: 15道助力飞升的断言练习【芯片验证】可能是RTL定向验证的巅峰之作【芯片验证】RTL仿真中X态行为的传播 —— 从xprop说起【芯片验证】年轻人的第一个systemVerilog验证环境全工程与解析
    【芯片设计】verilog中有符号数和无符号数的本质探究
    【芯片设计】论RTL中always语法的消失术
    【芯片设计】代码即注释,注释即代码
    【芯片设计】700行代码的risc处理器你确实不能要求太多了
    入职芯片开发部门后,每天摸鱼之外的时间我们要做些什么呢
    如何计算系统的outstanding 和 burst length?
    芯片搬砖日常·逼死强迫症的关键词不对齐事件
    熟人社会里,一群没有社会价值的局外人
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表