大猪蹄子的个人博客

大猪蹄子

【教程4】4、编程软件的安装与使用

2025 / 4 / 16

本节的重点在于软件操作,也就是如何用现有的软件及其功能实现我们的设计目标。以下内容讲解了Quartus和Vivado这两位老大哥以及高云Gowin、紫光Pango、安路TangDynasty三个软件的功能介绍及其编程一条龙。这些内容应该属于项目设计的后期执行一步了,所以对整体设计能力啥的并没有太大的帮助,也只是增加增加工具的熟练度,可以快速浏览,摘取自己需要的部分

4.1   各类编程软件盘点

目前世界上还存在少数FPGA厂商一直在运营(部分曾经的大厂都跑路了,比如飞利浦,三星),各个厂商还用着各自的开发软件——虽然开发不是同一个软件,但是用的都是HDL语言,还是走的综合布线下载的大路线。这里我们就只盘点两个老大哥Xilinx和Altera,以及一个国产平台高云Gowin。其实类似的厂商还有莱迪思、国产的安路、紫光、京微齐力等等,这些我也不是很熟悉,就等我以后哪天玩明白了,再写出来当科普看吧

各家的软件工具大多相同,比如大家都有在线逻辑分析仪,IP核库等,操作类似思路相通

4.1.1   Xilinx家的Vivado

Vivado软件安装及其点灯流程点击此处(待更新)

Xilinx,中文一般按音译来叫赛灵思,行业第一的老大哥,FPGA的发明者……反正就是数不清的头衔,最近还多了个“AMD的好儿子”。发展至今,Xilinx的FPGA也有好几种编程方式了,从基础的HDL到高级层次综合Vitis HLS再到使用Python编程的PYNQ,介于本图文是从入门的角度来看,我们就只谈HDL编程——也就是Vivado这个软件,是FPGA厂商赛灵思公司2012年发布的集成设计环境,由前身ISE发展而来(虽然有的学校至今还在教ISE)

注意,Xilinx在FPGA功能和性能以及论坛资源上都有着绝对的优势,但是其HDL编程软件Vivado对于新手来说相比较于Altera家的Quartus来说实在是谈不上容易上手。另一方面,vivado也比较吃电脑。总所周知我也算半个电脑玩家,用自己的标准i5台式最新的版本点个灯也要三分钟起步——而隔壁只需要30秒不到,在新手开始不断试错迭代编译的过程中,这点时间对开发进度和心态都有很大影响

4.1.2   Altera家的Quartus

Quartus软件安装及其点灯流程点击此处(待更新)

Quartus相对来说在大学里面的存在感远比Xilinx的Vivado或者说ISE来的小,一方面是因为参数性能资源确实比不过人家;另一方面,Xilinx在近年有和各个高校合作举办FPGA比赛(可以拿去保研那种),同时也开展了大学计划,从学习培训到比赛都有Xilinx插手的身影——至于Altera,目前的策略是对公比较多,没有啥大学计划,也没有学生能参加的比赛。至于为什么还是有那么大学学Quartus,因为只有它还支持原理图的图形化编程以及上古的74系列电子模块(数电课比较需要),编译时间更快也是额外的加分项。对于半个多小时的上课来说,几十秒一次和几分钟一次,当然是Quartus更适合上课学习了

4.1.3   国产高云Gowin家的云源

Gowin软件安装及其点灯流程点击此处(待更新)

云源是我接触的第一个国产FPGA开发平台,好消息是目前能使用的功能有综合编译布线下载、静态时序分析、嵌入式逻辑分析仪,仿真,功耗分析等;坏消息是也就只有这些功能了,当然对于入门来说是足够的,想要进阶就会有很多限制——另外综合器比国外的差很多,需要手动导入Modelsim进行仿真等等,都是现在比较明显的缺点。当然想要要求自家国产平台能在这点时间内赶上国外的大哥们是不现实的,只能说来日方长

4.1.4  国产安路Anlogic家的TangDynasty

4.1.5   国产紫光家的Pango

4.1.6  脚本语言

脚本语言实际上当然不属于“编程软件”,但是虽然名字叫脚本语言,实际上又不是干“编程”的活,它的重点实际上在前两个字“脚本”上。怎么理解这个脚本语言呢……我们知道快捷键吧,脚本实际上也是快捷键的另一个表现,只不过是用文字代码的方式表现出来;这里的“编程”也不是对你写的代码编程,而是对软件对你的项目的操作进行编程——比如你可以在图形化界面上Q点点E点点W点点夺夺夺夺夺(赛博卢锡安),也可以直接用一行脚本语言的代码直接调出你想要的参数甚至控制部分代码运行。所以它并不属于任何一个编程软件,但是却能通过这个方式操控所有的编程软件,这里就先把他们放在一起了

常见的脚本语言有:makefile、shell、TCL、Python、perl。makefile提高可以大大提高工作效率;Tcl是几乎所有工具都支持的语言,例如DC综合、PT静态时序分析等脚本命令。其中在FPGA编程中TCL使用最多也最广泛,在Quartus和Vivado中都可以用快捷键调出TCL的输入界面

常见的命令比如:所有的编程功能快捷键几乎都可以(比如综合布线仿真、查看报告啥的)、仿真控制(比如控制时长,步进、变量等)、编程软件设置(比如切换仿真、编译工具、设置性能参数)、查看分析报告(比如列出项目Fmax运行频率上限,最大Fanout扇出、setup和hold time最差的几条路径,这些都是后面STA的内容)等等

当然 ,本人没怎么玩过Tcl,水太深,把握不住,这里也不做过于详细的教程……等哪天玩明白了再回来填坑

更新日志

250525:初始版本