由于工作的繁忙,已经有较长的时间没有发文了。偶然之间,在回复读者来信的时候,关注到了创作活动中的「猿创征文 」第四季 | 2022 年我的开发者工具,这时才晃过神来,2022 年,已经跨入了倒数的一个四分之一,岁月的印记也刻满了四分之三。新冠还没结束,生活还在继续,技术还要提升,工具还需总结。本文详细地总结了各式各样的宝藏工具,对于不同的技术开发具有较好的实用性、高效性、集成性,希望能够协助硬件、算法、软件设计爱好者们完成一些核心的开发工作。
数字芯片设计 && 数字 FPGA 开发是一个门槛极高的、难度极大的、时间极长的、流程极多的、人才极少的高新技术。不仅仅要求团队的综合素质,例如开发经验、硕士学历、交流合作、智慧技巧等等,同时也要求团队的开发工具,例如 GVim/Sublime/Notepad++ 代码编辑器、Synopsys VCS 代码编译器、SpyGlass RTL 语法检查工具、Verdi UVM 波形仿真工具、 Cadence DC 综合工具、Synopsys PR 实现工具等等。以上的这些工具都是较为独立的,单独的一个工具只能够完成数字芯片设计 && 数字 FPGA 开发的一个流程或者一个节点。这样的话,需要的工具就非常多、非常昂贵、非常繁琐,极大地打击了 IC Designer 的开发信心。
然而,这里只要一个 IDE 集成开发环境,就可以承担起一切的任务,这就是:Xilinx Vivado SDK。
只要有了这个 IDE 工具,普通人玩转数字 ASIC && FPGA 设计的想法就不再是幻想:
✅ 这里不需要安装太多的开发软件,只要一个 Vivado,就可以完成整个数字 IC 设计的过程,实现从想法到落地的转变;
✅ 这里不需要购买太贵的版权文件,只要一个 Vivado,就可以免费集成各种开源的 IP 核,缩短芯片设计和升级的时间;
✅ 这里不需要花费上百万的流片费,只要一个 Vivado,就可以在 Xilinx FPGA 开发板上,验证自己的芯片设计的功能。
关于【安装详细教程】【使用详细教程】【FPGA 开发流程】,本文不再赘述,自取即可:
✅ 数字 IC 技能拓展(1)Xilinx_Vivado_SDK_2019.1 安装详细教程
✅ 数字 IC 技能拓展(2)Xilinx_Vivado_SDK_2019.1 使用详细教程
✅ 数字 IC 笔试面试必考点(2)FPGA 开发流程
数字芯片设计 && 数字 FPGA 开发是一个具有多方向、多领域、多行业的半导体技术,例如基于智能手机的 SoC 芯片设计、基于智能汽车的 AI 芯片设计、基于无线通信的 DSP 芯片设计、基于车牌识别的数字图像处理芯片设计、基于智能家居的语音识别芯片设计、基于平板显示的视频编解码芯片设计等等。现如今,人工智能时代的来临,AI 算法引领着人类、引领着世界、引领着未来。算法和芯片的结合,是未来 AI 时代落地的手段,是智能 IOT 时代落地的方式,也是 6G/WIFI6/BT6/L6 时代落地的根本。
Python 语言在 AI 时代一枝独秀,无论从开发效率、面向对象、免费开源,还是从可拓展性、可移植性、简单易学之类的方面,都是开发者们向往的。而 Python 的开发,基本都是少不了 PyCharm 工具,这是一种基于 GUI 图形界面的开发工具,能够完成 Debug、语法检查、单元测试、数据图表、版本控制等等,而不是单纯地在 Linux 上安装一个 Python 库,简单地执行命令模式和交互模式了。这对于新手小白来说是非常友好的,非常推荐。
关于【安装详细教程】,本文不再赘述,自取即可:
✅ 数字 IC 技能拓展(3)Pycharm_Community_2019.1 安装详细教程
Matlab 是一种具有强大功能的科学计算工具,可供数据分析、图表制作、算法开发、通信测试、测试激励等等。这对于大部分的科学研究工作者们来说,是非常具有实用性的。Matlab 可以基于各种各样的实验数据,绘制出各式各样的精美的多维曲线、多维曲面、点状图、柱状图、饼状图,甚至是时域波形、频谱波形、数模波形等等,这也是很多工程项目、学术研究、毕业论文中绘图需要的。
这是本人通过 Matlab 进行的一些科学探索,第一个是【基于通信系统的时域采样和频谱分析】,能够协助我观测到信号的另一个虚拟物理世界,第二个是【基于 FPGA 卷积神经网络的仿真数据呈现和验证数据对比】,能够协助我更好地测试和验证大量的数据结果。
✅ 数字 IC 技能拓展(13)浅谈采样:采样与混叠(附加 Matlab 代码与频谱仿真分析)
✅ 基于 SoC 的卷积神经网络车牌识别系统设计(5-2)基于 Verilog 的缩放操作 Resize IP 设计
这三个是非常专业的代码编辑器,其实不推荐 IDE 自带的代码编辑器,对于用户的体验不是非常的友好。江湖传说,GVim 是屠龙宝刀,Sublime 是倚天宝剑,可见这两个代码编辑器对于专业的代码人员来说是多么的重要,而 Notapad++ 可能就是比较入门级别的。开发者可以根据自己的风格,制定属于自己的一款代码编辑器。如下所示,这是三个代码编辑器,从左到右依次是 GVim && Sublime && Notepad++。
这是一款数字 IC 设计工程师非常喜欢的工具,可以通过简洁代码的方式,简单却不失精美地绘制自己设计的数字电路时序,而不需要繁琐的点击了。这样的精美时序,对于毕业论文制图以及工作设计报告来说,是一个非常好的加分项。如下,这是标准的 AHB 总线的一个时序图,相信对于数字 IC 设计工程师来说,这样的一个波形图是会比较专业精美的。
这是一个能够实现不同的文件夹、文本、表格、图像、数据对比的工具,给本人提供的帮助是非常大的,极大地提升了自己的工作效率和工作质量。
✅ 假设你在修改代码的时候,改着改着忘记改了哪些了,Beyond Compare 能够给你全部给你标记出来;
✅ 假设你在删除文件的时候,删着删着忘记删了哪些了,Beyond Compare 能够给你全部给你标记出来;
✅ 假设你在对比数据的时候,如何肉眼比对大量的数据,Beyond Compare 能够一秒之内全部对比完成。
对于这一个比较热门的宝藏工具,大部分的人都是比较熟悉的。对于绘制精美的流程图、架构图、设计图等等,都是非常不错的。它在我硕士论文以及职业工作中,都占据了比较重要的一个地位,是一个不可或缺的工具。这里,文末总结中给出了工具的获取方式。
这是一个专注于思维导图的工具,对于繁琐问题的分析,是非常有效果的。对于验证、测试人员,强烈推荐这个宝藏工具。本人在数字芯片验证的时候,发现了一个较为难以解决的问题:一个信号 A 不拉高,不拉高的根因是信号 B 或者 C 不拉高,信号 B 不拉高又是由于信号 D、E、F 不拉高,这样追溯下去的话,问题的根因几乎是呈现一种指数函数的增长。刚好,EDraw Mind 就正好符合了这样的一个需求场景,通过思维导图的方式,具有清晰化、逻辑化、形象化的特点,极大地协助了本人定位根因所在。
Bioinformatics 是一个在线数据制图,在线数据分析的专用工具,可能有点冷门,却是非常实用。其具有独特的、精美的点、线、饼、柱、面、以及基于其它特殊领域的制图方式,以零代码的方式,对于新手小白非常的友好。在 SCI、CVPR、IEEE 等专业的期刊学术论文领域中,也是毫不逊色的。
本文一共统计了如下的宝藏工具:Xilinx Vivado SDK、PyCharm、Matlab、GVim && Sublime && Notepad++、Wavedrom Editor、Beyond Compare、Microsoft Visio、EDraw Mind、Bioinformatics、Visual Studio、Source Insight、Visual Studio Code、Anaconda、VMware、Typora、MDK-ARM Keil uVision、SVN && GIT、Verdi、SpyGlass、Google Chrome、PotPlayer。
实用工具 | 主题领域 | 应用特性 | 官网下载 |
---|---|---|---|
Xilinx Vivado SDK | 芯片、嵌入式 | 专注于芯片开发,是 FPGA 的集成开发环境 | https://www.xilinx.com/support/download.html |
PyCharm | 算法、软件、验证 | 专注于人工智能,是算法学习和数据开发的必备工具 | https://www.jetbrains.com/pycharm/ |
Matlab | 数学、工程、验证 | 专注于矩阵数据,是科研学习和通信开发的必备工具 | https://ww2.mathworks.cn/ |
GVim && Sublime && Notepad++ | 芯片、算法、软件、开发 | 专注于各式各样的智能源代码编辑器 | https://www.vim.org/ |
Wavedrom Editor | 芯片、设计 | 专注于绘制数字芯片设计的精美时序 | https://wavedrom.com/editor.html |
Beyond Compare | 通用 | 专注于各种文件、文本、数据的对比 | https://www.beyondcomparepro.com/ |
Microsoft Visio | 通用 | 专注于绘制专业的流程、架构设计图 | https://pan.baidu.com/s/1Hp4ZeZeC2cqpvXYhkkbD2Q?pwd=UICD |
EDraw Mind | 通用 | 专注于绘制基于头脑风暴的思维导图 | https://www.edrawsoft.com/ |
Bioinformatics | 通用 | 专注于绘制基于数据分析的精美制图 | https://www.bioinformatics.com.cn/ |
Visual Studio | 软件 | 支持 C、C++ 等编程语言的集成开发环境 | https://visualstudio.microsoft.com/zh-hans/ |
Source Insight | 软件 | 支持 C、C++ 等编程语言的源代码编辑器 | https://www.sourceinsight.com/ |
Visual Studio Code | 软件 | 支持 Mac OS X、Windows、Linux 等操作系统的源代码编辑器 | https://visualstudio.microsoft.com/zh-hans/ |
Anaconda | 算法 | 专注于数据科学和机器学习,这是基于开源的 Python 发行版本 | https://www.anaconda.com/ |
VMware | 开发 | 支持运行各式各样的操作系统,以虚拟机的方式进行开发、测试等等 | https://www.vmware.com/cn.html |
Typora | 文章 | 支持 MarkDown 的文本编辑器 | https://typoraio.cn/ |
MDK-ARM Keil uVision | 芯片、嵌入式 | 支持 STM32 的嵌入式开发软件 | https://www.keil.com/ |
SVN && GIT | 工程 | 支持不同的版本控制、管理、开发的开源代码仓库 | https://tortoisesvn.net/ |
Verdi | 芯片 | 专注于芯片设计和芯片验证的源代码自动调试器 | https://www.synopsys.com/zh-cn.html |
SpyGlass | 芯片 | 专注于 RTL 设计的代码分析工具 | https://www.synopsys.com/zh-cn.html |
Google Chrome | 通用 | 浏览器 | https://www.google.cn/intl/zh-CN/chrome/ |
PotPlayer | 通用 | 播放器 | https://potplayer.org/ |
持续更新中…