Linux系统下FPGA开发——(1)相关介绍

 

大部分初学者(包括本人,学生党)接触并参与的FPGA开发都是基于Windows系统环境下,习惯并依赖于Windows桌面系统的便捷。然而,在后续正式工作中发现需要掌握Linux系统下FPGA的开发(以及芯片设计)。Linux系统下EDA工具更加高效,并且有些FPGA工具只有Linux版本。这一章节需要先,网络上查找了一些关于Linux环境下FPGA的开发经验:

”在linux下开发FPGA,有什么软件推荐吗?“FPGA的开发分工比较多。如果你指的仅仅是HDL,那还真不推荐用Linux,还是Windows下更省心省事。遇到的坑更少。 但如果是走SoC和Linux。 可能这个还真没有其他平台的开发工具可选。

如果你非要体验Linux下的FPGA HDL开发。 可以选择Xilinx公司的Vivado。 对Linux支持较好。当然,还是推荐在Windows下去做。毕竟谁都希望工具的坑少点。

作者:知乎用户
链接:https://www.zhihu.com/question/312502896/answer/599876835
来源:知乎
 

使用各种工具与系统无关,与你要开发的器件和功能相关。是什么片子用什么工具。应该你唯一有点选择权的就是决定要不要用第三方的综合和仿真软件。

Actel的Libero不清楚。但Xilinx全家桶原生就是linux程序,套了个java虚拟机的壳给windows跑。在linux下运行效率只有更高,并且并行综合线程可以开到20,windows下只有8。

仿真的话,VCS压根没有windows版自不用说。modelsim两个系统都支持得很好。

结论:大部分EDA软件在Linux下都比windows下跑得顺溜,你以前用哪个顺手,继续用就可以…或者愿意去尝试Linux Only的新天地也没问题。倒是安装系统建议安装选用工具明确支持的linux版本(应该范围不是很大)
作者:LaCiel
链接:https://www.zhihu.com/question/312502896/answer/692017674
来源:知乎

摘自:https://exp.newsmth.net/topic/31e0fb2d3c437a29690c28815fdc6c33

vivado大家用Linux还是win?linux用哪个发行版?

richardR:zynq板卡的话肯定windows笔记本更方便,云端服务器开发还是centOS吧,至少像VU这系列的做后端PR还是需要高性能服务器节省时间。

gooddream:我都在用,个人喜欢Linux,Ubuntu

fuchuantian:linux编译时间缩短不少。

 

 

摘自:http://www.zijin.net/news/tech/1077437.html

俗话说,隔行如隔山。非微电子专业没有做过芯片的同学,是不知道这个世界上还有效率更高的用来对Verilog/VHDL代码进行仿真的工具的。具体来讲,对于做FPGA开发的同学而言,需要知道除了ModelSimISE/VivadoQuartus以外的仿真调试工具。一般来说,拿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新建工程,然后开始仿真,看波形,对比生成的文件。

 

或者把Vivado和ModelSim关联起来,联合仿真

 

 长期以来,对于没有做过芯片设计的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]

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

 

安装完成后,便可导入RTL代码。可以自己设定一些规则,对代码规范进行检测,提前把一些问题消灭在萌芽状态。本公众号之前一篇文章分享程序–Verilog HDL代码分析及整理软件,也可以用来对代码规范进行分析,甚至进行整理。这些规范化的约定,在整个FPGA开发流程中,往往是最能达到事半功倍效果的一个步骤。但往往对于FPGA开发人员而言,常常给忽略了。认为等到后面发现问题再修改也不迟,殊不知,不从一开始就注重代码规范,可能某些严重的问题甚至导致整个设计需要重做。

主要原因还是因为做芯片承担的风险成本要远高于FPGA的开发。

有了上面的原因,很少见做FPGA开发的人去做后仿真的。因为后仿真不但速度超慢,并且如果出现问题后也无法准确的定位到具体的代码中,只能通过FPGA网表中对应的位置去猜测问题可能出现在RTL代码中的具体位置,还不如直接上板运行来的快,出问题了,大不了再重新添加ChipScope观测信号或者SignalTAP观测信号重新运行抓信号判断就是了。

[debussy]

大家在用ModelSim做仿真时,常常遇到这样一个问题。为了追某个BUG的原因,经常发现,跑出来的波形信号里面没有自己想看的变量信号,因此,不得不重新把想看的信号添加进波形中,重新跑一遍波形。对于大的设计而言,重新跑一遍波形也需要耗费不少的时间。最坏的情况是,上述过程可能需要反复的做很多次才能找到BUG的产生源头。那么,有没有一种办法,只需要跑一次仿真,就可以把整个波形储存下来且不占太大的空间,然后在追踪BUG时,还可以方便的把波形中出错的地方直接对应到代码中具体的某一行上,还可以方便的对某个变量进行后向或者前向的追踪呢

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

1、Debussy 软件简介

Debussy 是 NOVAS Software, Inc(思源科技)开发的 HDL Debug & Analysis tool,这个软件主要  不是用来跑模拟或看波形  ,它最强大的功能是能够在 HDL source codeschematic diagramwave formstate bubble diagram 之间即时做 trace,协助 FPGA 工程师 debug

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

Debussy V5.0 以后的版本,还提供了 nLint 检查工具(见本文前面介绍),它的检查规则十分严苛,能够帮助 check coding style & synthesizable,从某些方面可以协助工程师了解 coding style,并养成好的编写代码的习惯。 当然良好的 coding style 也需要结合厂商的 FPGA 底层结构单元来具体分析,而 nLint 工具并不会从这个方面对代码进行检查。所以,如何提高 coding style 是一个综合性很高的话题,不是单从某一方面入手就能解决问题,这些都是后话了。

Debussy 是支持 Windows 环境的,它的新版本改名为 Verdi,增加了一些功能,但是新版本的 Verdi 只能支持 Linux 环境

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

 

 

 

如果上述步骤无法正确完成,则用ModelSim仿真时会报出Warning,导致无法生成fsdb波形文件。

 

另外,笔者试了一下64位的ModelSim软件,按照上述方法无法正确产生fsdb文件,换回32位的ModelSim软件,如Modelsim SE 6.5b,则能够顺利产生波形文件。如下图所示

3、Debussy软件使用方法

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

【配置verilog-2001】

点击工具栏的 File,选择 Import Design,点击From File,再点击对话框右侧的 Options,在弹出的 Import Design Options 对话框中输入“-2001”,添加支持 Verilog-2001 标准的设置,如下图所示:

 

【导入源文件】

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

【代码模块分析】

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

5d09ddbf6df88454598922fa.gif

 

关键的内容来了!

【导入波形文件】

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

5d09ddbf6df88454598922fb.gif

【重新添加信号】

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

当然,Windows版本的debussy还存在不少的问题,使用起来某些地方不如Linux下最新版的Verdi,所以还是建议大家最后自己装个虚拟机,体验一下Linux下代码调试的高效,相比笨拙的ModelSim而言,你会立刻有鸟枪换炮的感觉!

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

FPGA调试不易,且行且珍惜!也请对你身边做芯片或做FPGA开发的同学好一点,他们的压力比较大。据说,海思最近疯狂立项,疯狂招人,人才严重缺乏,也希望同学们多多选择FPGA开发或者芯片设计方向就业,为我们国家的芯片设计和集成电路产业早日摆脱别人的束缚做出自己的贡献!

 

 

 

  • 7
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 医用FPGA开发是基于Xilinx和VHDL进行的,主要用于医疗器械和医疗设备的设计与开发FPGA(可编程逻辑门阵列)是一种可编程的硬件设备,可以通过配置其内部的逻辑门和存储单元来实现不同的功能。 Xilinx是一家知名的FPGA厂商,提供了广泛的FPGA产品系列,包括低端、中端和高端设备,以满足不同应用领域的需求。VHDL(VHSIC硬件描述语言)是一种描述硬件行为和结构的编程语言,常用于FPGA的设计与开发。 医用FPGA开发可以应用于诸多医疗领域,例如医学成像、生命监测、病人监护和生物信号处理等。通过使用FPGA,可以实现高速实时数据处理、图像处理以及复杂算法运算等功能。同时,FPGA还具有可重构性,可以根据实际需求进行逻辑电路的重新编程,从而实现设备的灵活性和扩展性。 医用FPGA开发的优势在于其低功耗、高性能和实时性。医疗器械和设备需要快速、准确地处理大量的数据,而FPGA具有并行处理的能力,可以实现高速数据传输和复杂算法的快速执行。此外,FPGA还具有较低的功耗,符合医疗设备对延长电池寿命和减少耗能的要求。 总的来说,医用FPGA开发基于Xilinx和VHDL可以实现医疗器械和设备的高性能和低功耗设计。通过利用FPGA的可重构性和并行处理能力,可以满足医疗领域对于高速实时数据处理和复杂算法运算的需求,推动医疗技术的发展和创新。 ### 回答2: 医用FPGA开发是基于Xilinx和VHDL的技术应用。FPGA代表现场可编程门阵列,是一种可在硬件级别进行编程的集成电路。FPGA在医疗领域的应用非常广泛,能够用于医疗设备的控制、数据处理和图像处理等方面。 Xilinx是FPGA芯片的厂商之一,其提供了丰富的开发工具和资源,方便医疗设备开发人员进行硬件设计和编程。VHDL是硬件描述语言之一,用于FPGA的设计和编程。通过VHDL编写的代码可以被翻译成硬件逻辑实现在FPGA芯片上。 医用FPGA开发在医疗领域有很多应用。例如,它可以用于医疗设备的控制系统。通过FPGA芯片的可编程性,可以实现实时控制和调节,提高设备的灵活性和响应速度。 另一个应用是数据处理。医疗设备产生大量的数据,如检测数据、生理信号等。FPGA能够通过VHDL编程来对这些数据进行实时处理和分析,提取有用的信息,并及时做出反应。 图像处理也是医用FPGA开发的重要应用之一。医疗领域需要对医学图像进行分析和处理,如X射线、CT扫描等。通过FPGA的高度并行性和强大的计算能力,可以实现高质量、实时的图像处理,帮助医生进行准确的诊断。 综上所述,医用FPGA开发基于Xilinx和VHDL为医疗设备的控制、数据处理和图像处理提供了强大的支持。它将硬件级别的编程与医疗领域的需求相结合,为医疗行业带来了更高效、准确、可靠的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值