LinuxDown

LinuxDown.com
Linux系统下载网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

用做ASIC芯片的EDA仿真工具来做FPGA的仿真调试

2023年9月4日 65点热度

老话说,隔行如隔山。非微电子专业没有做过芯片的朋友,是不晓得这个世界上还有效率更高的拿来对Verilog/VHDL代码进行仿真的工具的。具体来讲,对于做FPGA开发的朋友而言,须要晓得不仅ModelSim、ISE/Vivado或Quartus以外的仿真调试工具。通常来说,拿FPGA综合工具如ISE/Vivado或Quartus做仿真纯粹是小儿子过家家瞎胡闹,ModelSim做仿真其实是正道但也存在众多问题(如ModelSim的仿真结果拿来做芯片是不被认可的),用做ASIC芯片的EDA仿真工具来做FPGA的仿真调试,对于FPGA开发者而言才是真正的猎枪换炮。本文就以较为古老的Windows版本的Verdi工具为例说明做ASIC仿真的EDA工具在做FPGA仿真调试时也十分有用,才能提升效率。

调试FPGA,你们常用的工具主要有以下几种:Quartus,ISE或Vivado,而仿真工具则常用ModelSim,某些初学者甚至还拿ISE/Vivado或Quartus做过仿真。用ModelSim建工程,之后开始仿真,看波形,对比生成的文件。用ModelSim新建工程,之后开始仿真,看波形,对比生成的文件。

芯片程序移植_cpu源代码分析与芯片设计及linux移植 pdf_芯片移植肾最新消息

或则把Vivado和ModelSim关联上去,联合仿真

芯片移植肾最新消息_cpu源代码分析与芯片设计及linux移植 pdf_芯片程序移植

常年以来,对于没有做过芯片设计的FPGA开发人员来讲,已经习惯了上述工具(ISE/Vivado/Quartus+Modelsim)的配合使用,找一个BUG也是依靠于前面的工具,费时又吃力。尤其是ModelSim,假如要做芯片,ModelSim的仿真结果是不被认可的。同样的工程,ModelSim仿真通过的testcase,再拿专业做芯片用的仿真工具VCS或则NCVerilog等再做仿真就不一定通过。但前面提及的VCS或则NCVerilog等软件是没有Windows版本的,只有Linux版本的工具,这对于习惯了Windows系统环境的FPGA开发人员来讲,为了一个软件,再去熟悉Linux系统的开发环境实在是太麻烦。

但是,对从芯片设计跨界到FPGA开发的人员来讲,上述调试手段太过分落后。本文就推荐一款做ASIC芯片的仿真工具,可以大幅度提升FPGA开发过程中的仿真调试效率。找了一下十几年前的联通硬碟,连到2019年WIN7系统的笔记本上,打开EDA工具文件夹,安装后发觉居然真的可以用!

[nLint]

NOVASnLint是一个广泛的HDL语言的设计规则检测工具,它整合于Verdi和Debussy调试平台。Verdi和Debussy系统帮助工程师加速了解复杂设计以提升设计、验证和调试的效率。nLint提供的功能在于帮助工程师完整的剖析HDL代码的句型和语义的正确性。nLint通过对源码的检测,以确保源代码的描述对于例如同步设计、可测试性设计,命名等设计规则保持一致。nLint帮助工程师在设计的早期提早的发觉问题,以减轻验证、综合和调试的时间。而且可以帮助工程师书写出便于阅读和维护的源代码程序,因而实现可以在不同的设计小组之间重复应用的设计描述。在nLint的环境中,可以很便捷的进行需测试的文件和规则的整理,工程师可以在nLint提供的图形界面手指定什么源代码文件须要检测,什么设计规则须要检测,但是可以针对不同的设计规则赋于不同的参数以符合自身的规则定义。

芯片程序移植_芯片移植肾最新消息_cpu源代码分析与芯片设计及linux移植 pdf

安装完成后,便可导出RTL代码。可以自己设定一些规则,对代码规范进行检查雨林木风linux,提早把一些问题剿灭在萌芽状态。本公众号之前一篇文章分享程序–VerilogHDL代码剖析及整理软件,也可以拿来对代码规范进行剖析,甚至进行整理。这种规范化的约定,在整个FPGA开发流程中,常常是最能达到事半功倍疗效的一个步骤。但常常对于FPGA开发人员而言,往往给忽视了。觉得等到前面发觉问题再更改也不迟,殊不知,不从一开始就重视代码规范,可能个别严重的问题甚至造成整个设计须要重做。

主要诱因还是由于做芯片承当的风险成本要远低于FPGA的开发。

有了前面的缘由,极少见做FPGA开发的人去做后仿真的。由于后仿真不但速率超慢,但是假如出现问题后也未能确切的定位到具体的代码中,只能通过FPGA网表中对应的位置去推测问题可能出现在RTL代码中的具体位置,还不如直接上板运行来的快,出问题了,大不了再重新添加ChipScope观测讯号或则SignalTAP观测讯号重新运行抓讯号判定就是了。

[debussy]

你们在用ModelSim做仿真时,经常碰到这样一个问题。为了追某个BUG的缘由,常常发觉,跑下来的波形讯号上面没有自己想看的变量讯号,因而,不得不重新把想看的讯号添加进波形中,重新跑一遍波形。对于大的设计而言,重新跑一遍波形也须要花费不少的时间。最坏的情况是,上述过程可能须要反复的做好多次就能找到BUG的形成源头。这么,有没有一种办法,只须要跑一次仿真,就可以把整个波形存储出来且不占太大的空间,之后在追踪BUG时,还可以便捷的把波形中出错的地方直接对应到代码中具体的某一行上cpu源代码分析与芯片设计及linux移植 pdf,还可以便捷的对某个变量进行后向或则前向的追踪呢?

答案是有!这款软件就是Debussy。如今也集成到了Verdi软件中。

1、Debussy软件简介

Debussy是NOVASSoftware,Inc(思源科技)开发的HDLDebug&Analysistool,这个软件主要不是拿来跑模拟或看波形,它最强悍的功能是能否在HDLsourcecode、schematicdiagram、waveform、statebubblediagram之间即时做trace,协助FPGA工程师debug。

Debussy是十分实用的Verilog或VHDL的调试工具,可以帮助设计者快速理解复杂的设计,尤其是初次接触别人写的代码的时侯,另外还能否查找和定位设计中存在的bug,提升效率。可能您会觉的只要有仿真器,如ModelSim,就可以做debug了,我不必再学习这个软件?实际上这个软件就能帮助设计者快速理解代码、波形和原理图之间的联系,致使调试显得非常地方便。

DebussyV5.0之后的版本,还提供了nLint检测工具(见本文后面介绍),它的检测规则非常苛刻,还能帮助checkcodingstyle&synthesizable,从个别方面可以协助工程师了解codingstyle,并养成好的编撰代码的习惯。其实良好的codingstyle也须要结合厂商的FPGA底层结构单元来具体剖析,而nLint工具并不会从这个方面对代码进行检测。所以,怎么提升codingstyle是一个综合性很高的话题,不是单从某一方面入手才能解决问题,这种都是后话了。

Debussy是支持Windows环境的,它的新版本更名为Verdilinux操作系统培训,降低了一些功能,而且新版本的Verdi只能支持Linux环境。

cpu源代码分析与芯片设计及linux移植 pdf_芯片程序移植_芯片移植肾最新消息

2、用modelsim形成fsdb文件与Debussy协同工作

第一步:挂PLI

在modelsim.ini中搜索Veriuser,找到相应行以后进行更改,将文档中

;Veriuser = veriuser.sl

一行更改为:

Veriuser=c:/novas/debussy/share/pli/modelsim_pli/winnt/novas.dll

要除去后面的分号。

5d09ddbf6df88454598922f4.jpg

第二步:新建两个环境变量

第一个新建环境变量:D_LIBRARY_PATH

变量值:

c:/novas/debussy/share/pli/modelsim_pli/winnt/novas.dll

第二个新建环境变量:PLIOBJS

变量值:

c:/novas/debussy/share/pli/modelsim_pli/winnt/novas.dll

第三步:在TestBench中添加句子

initial
begin
 $fsdbDumpfile("filename_you_want.fsdb");
 $fsdbDumpvars;
end

芯片程序移植_cpu源代码分析与芯片设计及linux移植 pdf_芯片移植肾最新消息

假如上述步骤未能正确完成,则用ModelSim仿真时会报出Warning,造成难以生成fsdb波形文件。

芯片移植肾最新消息_芯片程序移植_cpu源代码分析与芯片设计及linux移植 pdf

另外,笔者试了一下64位的ModelSim软件,根据上述方式难以正确形成fsdb文件,换回32位的ModelSim软件,如ModelsimSE6.5b,则才能顺利形成波形文件。如右图所示

cpu源代码分析与芯片设计及linux移植 pdf_芯片移植肾最新消息_芯片程序移植

cpu源代码分析与芯片设计及linux移植 pdf_芯片程序移植_芯片移植肾最新消息

3、Debussy软件使用方式

在使用Debussy软件过程中,软件并不能直接智能地辨识Verilog-2001代码,须要对软件进行一下设置,否则添加文件时软件都会报出好多错误告警,并且也看不到原理图,设置的方式如下:

【配置verilog-2001】

点击工具栏的File,选择ImportDesign,点击FromFile,再点击对话框左侧的Optionscpu源代码分析与芯片设计及linux移植 pdf,在弹出的ImportDesignOptions对话框中输入“-2001”,添加支持Verilog-2001标准的设置,如右图所示:

cpu源代码分析与芯片设计及linux移植 pdf_芯片程序移植_芯片移植肾最新消息

【导入源文件】

设置完成后,才能正常导出文件,进行仿真和调试了,导出方式是点击工具栏的File,选择ImportDesign…,在文件列表框中选中待观察的文件夹,接着全部选中出现的文件,再点击Add即可完成文件导出,如右图所示:

芯片移植肾最新消息_芯片程序移植_cpu源代码分析与芯片设计及linux移植 pdf

【代码模块剖析】

代码添加到Debussy以后,就可以点击查看各个模块的组成及调用关系了。还可以逐级的点进去查看到具体代码一级,包括状态机等。便捷你们进行代码的剖析及消化理解。

5d09ddbf6df88454598922fa.gif

关键的内容来了!

【导入波形文件】

结合前面形成的fsdb文件,下一步就须要把波形文件test.fsdb导出到debussy中,这样就可以跟代码对应上!这一点很重要,可以双击波形中某个时刻的某个讯号的波形,直接跳转到对应的代码!

5d09ddbf6df88454598922fb.gif

【重新添加讯号】

找到对应的代码后,还可以继续找该变量的前驱和后继,同时,随时可以添加进波形中进行查看(这要比ModelSim便捷多了,经常由于波形中没有提早添加某个讯号,而不得不重新跑一下仿真)。

其实,Windows版本的debussy还存在不少的问题,使用上去个别地方不如Linux下最新版的Verdi,所以还是建议你们最后自己装个虚拟机,体验一下Linux下代码调试的高效,相比笨拙的ModelSim而言,你会立即有猎枪换炮的觉得!

如下动图,是Linux下使用SimVision工具(跟Verdi类似)通过波形上状态机讯号对应到实际框图的反例,注意,框图中会实时显示出光标具体时刻对应的讯号数值,还可以跟踪到相关的其它讯号,彻底促使代码调试可视化!

cpu源代码分析与芯片设计及linux移植 pdf_芯片移植肾最新消息_芯片程序移植

FPGA调试不易,且行且珍视!也请对你身边做芯片或做FPGA开发的朋友好一点,她们的压力比较大。听说,海思近来疯狂立项,疯狂招人,人才严重欠缺,也希望朋友们多多选择FPGA开发或则芯片设计方向就业,为我们国家的芯片设计和集成电路产业尽快甩掉他人的禁锢作出自己的贡献!

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: eda fpga 仿真软件 程序调试 芯片设计
最后更新:2023年9月4日

Linux系统下载网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统下载网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
Linux运维视频教程 一般配置,即默认以后台程序方式运行是一个意思 linux web proxy 超越期待!Linux下的高效Web代理服务器及技巧详解 公众号获取账号所属类目的公共库模板标题列表 开源社区评测:Linux游戏开发对比 Linux chown命令:更改文件和目录所有权 高速无线网络畅享,tplink300M Linux驱动带你飞 Linux系统的秘密技巧:轻松修改文件创建日期 Windows远程连接Linux,轻松跨平台操作 关于linux下获取文件的创建时间与实战的相关资料 树莓派Linux系统:极简体验大比拼 Linux系统如何修改文件的时间touch命令的描述指令? Linux上运行exe文件的软件,你绝对不能错过这些 蓝牙耳机怎么连接电脑?笔记本蓝牙适配器的开启方法 全新Linux局域网聊天软件 系统启动时自动运行程序的三种功能方法介绍 Linux系统下载攻略:掌握这些技巧,轻松get Linux查看端口占用情况linux命令:ps、grep、kill 剖析ARM Linux内核:奥秘与精髓解读 康华:Linux内核空间和用户空间的区别及用法
快速定位目标文件,Linux文档管理软件!Linux运维视频教程简洁高效:Linux创建用户,配置sudo权限指南ls-alrtAFR-a显建站服务器的参考价值-显Linux查看GTK版本的实用技巧14种嵌入式操作系统的特点及特点解决RedHat浏览器中文乱码问题的七种方法Linux命令行不会删除的文件,很抱歉这个技巧unix系统和linux系统 Unix和Linux系统的经验技巧,你了解吗?lastb列出登入系统失败的用户相关信息补充说明命令嵌入式操作系统的特点及发展前景分析嵌入式Linux文件系统的结构是基于树状的根在顶部Linux操作系统下载:选择适合你的发行版获取UbuntuLinux操作系统的PDF文件文件的基础知识介绍Linux下Python开发经验与技巧分享Linux,下的日志文件系统的载体介绍-苏州安嘉Linux编程:系统IO速度稳定性评测IMAP和POP有什么区别?如何配置邮件客户端使用IMAPLinux轻松下载文件,简单操作!Linux远程主机的指定目录内容的使用命令
小菜鸟是如何从对网络一窍不通到现在可以完整的 Linux命令用于显示内存使用情况的free(-bkmotV) 文件夹包含嵌入式原理与应用概述(104P) 如何安装redhat linux 安装RedhatLinux的步骤及注意事项,轻松安装Linux 2018哪个Linux好用?9大分析! 开源奇迹:Linux视频编程的魅力 Linux中的文本字符串查找文件的知识介绍 Linux装网卡驱动,轻松解决! Linux系统的秘密技巧:轻松修改文件创建日期 linux nexus启动 Linux Nexus启动:原理、使用方法与注意事项 嵌入式Linux驱动开发(三)-字符设备驱动之中断方式获取按键值 网络号+主机号的IP地址是什么意思?你知道吗? Linux软件包管理:八个最佳实践 Linux缩解压命令:快速上手 Linux轻松下载文件,简单操作! 一下X86Linux的启动,最主要就是CPU的三种启动方式 命令行安装Linux系统:实用技巧和注意事项 苹果电脑装Linux:实现双系统启动! Linux内核版本的命令(3种方法) 简洁明了的标题:Linux轻松查看MAC地址
标签聚合
linux服务器 应用 操作 命令 文件目录 电脑 linux系统 软件 内核 文件
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 98篇
  • 2023年8月 / 122篇
  • 2023年7月 / 122篇
  • 2023年6月 / 119篇
  • 2023年5月 / 123篇
  • 2023年4月 / 113篇
  • 2023年3月 / 265篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxDown.com ALL RIGHTS RESERVED.

京ICP备14023444号-2