本帖最后由 正点原子运营 于 2023-10-24 14:27 编辑
第四章 Pango Design Suite软件的安装和使用
1)实验平台:正点原子 ATK-DFPGL22G开发板
2) 章节摘自【正点原子】ATK-DFPGL22G之FPGA开发指南_V1.0
6)FPGA技术交流QQ群:435699340
PangoDesign Suite是深圳市紫光同创电子有限公司的FPGA开发软件,我们使用的软件版本为Pango Design Suite 2021.4-SP1.2,该版本可以从我们提供的工具盘B盘中获取。此版本为紫光官方技术支持推荐的软件版本(目前官方还没有更新该版本,感谢紫光官方的支持),接下来我们来介绍Pango Design Suite 2021.4-SP1.2软件的安装。 本章包括以下几个部分: 1.1 Pango Design Suite软件的安装 1.2 License的关联 1.3 Pango Design Suite软件的使用 1.4 在线逻辑分析仪的使用
1.1 PangoDesign Suite软件的安装PangoDesign Suite是深圳市紫光同创电子有限公司的FPGA开发软件,我们使用的开发版本为Pango Design Suite2021.4-SP1.2,该版本可以从我们提供的开源工具盘(B)盘中获取(该版本是紫光官方的技术支持为我们推荐的版本,在紫光官方网站上还尚未更新)。
1.1.1 安装步骤首先将我们下载好的安装包进行解压,解压完成后打开文件可以看到如图 4.1.1所示: 然后双击“Setup.exe”出现如图 4.1.2界面所示,点击“Next”, 在弹出的界面中点击“I Agree”,如图 4.1.3所示: 如图图 4.1.4所示,选择自己的安装路径(路径不要有中文),这边直接选择默认的安装路径,直接点击“Install”。 安装过程需要一些时间,当安装完成,我们点击“Finish”选项即可。 安装完成之后会出现提醒你是否安装“USB Cable Driver”对话框,如果已经安装过了直接点击“否”即可,如果没有安装点击“是”进行USB接口的下载器驱动的安装。 根据驱动安装向导我们选择下一页, 然后选择“我接收这个协议”,继续选择下一页。 最后点击“完成”就完成了USB驱动的安装。 安装完成后,会出现弹窗一个是否需要安装“Parellel Port Driver”的对话框,我们点击“是”。 图 4.1.11 Parellel Port Driver弹窗 至此,我们PDS软件的安装就完成了。
1.2 License的关联关于PDS的License关联配置,可以参考我们提供的安装包内的“Pango_Design_Suite_Windows_Install”的PDF文件,官方在第三章“License配置和使用”中对License的关联以及申请方法有详细的介绍,具体位置如图 4.2.2所示: 1.3 PangoDesign Suite软件的使用在开始使用Pango Design Suite(以下简称PDS)软件之前,我们先来了解一下PDS软件的使用流程,如图 4.3.1所示: 图 4.3.1 PangoDesign Suite软件使用流程 从上图可以看出,首先打开PDS软件,然后新建一个工程,在新建工程的时候,我们可以通过创建工程向导的方式来创建工程;工程建立完成后,我们需要新建一个Verilog顶层文件,然后我们将设计的代码输入到新建的Verilog顶层文件中,并对工程进行配置;接下来我们就可以对设计文件进行分析与综合了,此时PDS软件会检查代码,如果代码出现语法错误,那么PDS软件将会给出相关错误提示,如果代码语法正确,PDS软件将会显示综合完成。
综合完成后,我们需要进行约束的输入。约束表达了设计者期望满足的时序要求,规范了设计的时序行为,并在综合、实现阶段来指导工具进行布局、布线,工具会按照你的约束尽量去努力实现以满足时序要求,并在时序报告中给出结果。常用的约束包括时序约束、引脚约束等等。
接下来就开始编译整个工程了;在编译过程中,PDS软件会重新检查代码,如果代码及其它配置都正确后,PDS软件会生成一个用于下载至FPGA芯片的.sbit文件。最后,我们通过下载工具将编译生成的.sbit文件下载至开发板,完成整个开发流程。
在这里,我们只是简单的介绍了一下上述的流程图,让大家有个大致的了解,接下来我们就以流水灯实验的工程为例,对每个流程进行详细的操作演示,一步步、手把手带领大家学习使用PDS软件。
1.3.1 新建工程在创建工程之前,我们建议大家在硬盘中新建一个文件夹用于存放自己的PDS工程,这个工程目录的路径名应该只有字母、数字和下划线,以字母为首字符,且不要包含中文和其它符号。
我们在电脑的E盘Verilog文件夹中创建一个flow_led文件夹,用于存放本次流水灯实验的工程,工程文件夹的命名要能反映出工程实现的功能,本次是以流水灯的实验为例,所以这里将文件夹命名为flow_led。然后在flow_led文件夹下创建4个子文件夹,分别命名为:doc、prj、rtl和sim。doc文件夹用于存放项目相关的文档,prj文件夹用于存放PDS软件的工程文件,rtl文件夹用于存放源代码,sim文件夹用于存放项目的仿真文件。创建的文件夹目录如图 4.3.2所示: 建议大家在开始创建工程之前都要先创建这四个文件夹,如果说工程相对简单,不需要相关参考文档或者仿真文件的话,doc文件夹和sim文件夹可以为空,但是对于复杂的工程,相关文档的参考与记录以及仿真测试几乎是必不可少的,所以我们从简单的实验开始就要养成良好的习惯,为我们设计复杂的工程打下基础。
接下来启动PDS软件,我们直接双击桌面上的Pango Design Suite 2021.4-SP1.2软件图标,打开PDS软件,PDS软件界面如图 4.3.3所示。 如上图 4.3.3 PDS软件界面所示,PDS开发环境里有两种创建工程的方法,第一种是单击File后点击New Project,第二种是点击击New Project,选择其中一种方法操作后,会弹出一个PDS的新建工程向导说明页面,如图 4.3.4所示: 在“Introduction”介绍页面中,我们可以了解到在新建工程的过程中要完成以下四个步骤: 1) 工程的命名以及指定工程的路径。 2) 指定工程类型。 3) 添加工程文件。 4) 指定器件型号。
接下来我们可以单击上图页面下方的【Next >】按钮进入图 4.3.5 选择工程路径界面所示页面。 【Project Name】默认为project,是工程文件名称。(只允许字母、数字、下划线(_)、杠(-)、点(.))。此示例默认为 project。特殊的,IPC文件名只允许字母、数字和下划线(_),这里我们将工程文件命名为flow_led。
【Project Location】用于选择新工程的工作路径(文件夹名只允许字母、数字、下划线(_)、杠(-)、点(.)、@、~、,、+、=、#、空格(),但空格不能出现在路径名首尾),即工程文件放置的路径。比如选择添加文件时,软件添加文件的对话框就会以该路径作为默认路径。软件除支持工程文件模式的运行方式以外,也支持脚本模式,其脚本中的相对路径就是相对于此路径。如tcl命令add_design–verilog ./add.vm,就是默认在该工作路径中。一般情况下,源文件等文件会放到此文件夹下。此示例选择E:/Verilog/flow_led/prj。
【Create Preject Subdirectory】将工程文件名作为工作目录的一部分,这里我们不要勾选。
文件名和路径设置完毕后,我们单击【Next】按钮,进入下一个页面,如图 4.3.6 选择工程类型界面所示: 【RTL Project】用于创建RTL工程。新建的工程可以执行synthesize,device map,place&route,report timing,report power,generate netlist及generate bitstream等。
【Post-Synthesize Project】用于创建综合后工程。新建的工程可以执行device map,place&route,report timing,report power,generate netlist及generate bitstream等。
因为我们使用verilog硬件描述语言来编程,所以这里我们选择RTL Project,选择好工程类型后,我们单击【Next】按钮,进入下一个页面,如图 4.3.7所示。 该界面可以通过Add Files和Add Directories来添加rtl源文件及新建rtl源文件,以及调整rtl文件编译顺序,Add Files添加选中的文件,Add Directories添加选中的文件夹下所有合适的文件,若勾选了下方的Add source from subdirecotires则添加所有的子目录下合适的文件。
由于我们这里是一个完全新建的工程,没有任何预先可用的设计文件,所以我们不用添加,直接单击【Next】按钮,进入图 4.3.8 添加IP文件界面。 上图中,IP界面的Add Files和Add Directories与上述相同,这里我们同样不用添加,直接单击【Next】进入下一步,进入图 4.3.9添加约束文件界面。 该界面可以添加或创建约束文件,这里我们不用添加,直接单击【Next】按钮,进入图 4.3.10 选择器件界面。 在该界面选择所用的FPGA器件,并进行一些配置。首先在Family栏里选择Logos,Devic中选择 PGL22G,在Package栏选择BG324,Speed grade栏选择-6;综合工具选择ADS;最后单击【Next】按钮,进入如图 4.3.11 新建工程summary界面所示。 在该界面再次确认一下器件型号有没有选对,若没有问题再点击【Finish】完成工程创建,完成创建后,软件如图 4.3.12所示。 1.3.2 设计输入下面我们就来创建工程的顶层文件,双击Sources下的Designs图标,如图 4.3.13所示。 弹出如图 4.3.14所示页面中的Add Sources界面,勾选Copy design files into project和Add source from subdirectories,点击Create File,在弹出的Create Design SourceFiles界面中设置源文件的文件名和存储地址如下图所示,然后点击【OK】。 可以看到已经新建好的flow_led.v文件,如图 4.3.15所示,点击【OK】按钮。 如图 4.3.16所示,向导会提示您定义I/O的端口,这里我们可以不定义,后面自己在程序中编写就可以,单击【OK】完成。 这时在Designs里已经有了一个flow_led.v文件,并且自动成为项目的顶层(Top)模块了,如图 4.3.17所示。 接下来我们在该文件中编写流水灯代码,流水灯的代码如下: - 1 module flow_led(
- 2 input sys_clk , //系统时钟
- 3 input sys_rst_n, //系统复位,低电平有效
- 4
- 5 output reg [3:0] led //4个LED灯
- 6 );
- 7
- 8 //reg define
- 9 reg [23:0] counter;
- 10
- 11 //*****************************************************
- 12 //** main code
- 13 //*****************************************************
- 14
- 15 //计数器对系统时钟计数,计时0.2秒
- 16 always @(posedge sys_clk or negedge sys_rst_n) begin
- 17 if (!sys_rst_n)
- 18 counter <= 24'd0;
- 19 else if (counter < 24'd1000_0000 – 1’d1)
- 20 counter <= counter + 1'b1;
- 21 else
- 22 counter <= 24'd0;
- 23 end
- 24
- 25 //通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态
- 26 always @(posedge sys_clk or negedge sys_rst_n) begin
- 27 if (!sys_rst_n)
- 28 led <= 4'b0001;
- 29 else if(counter == 24'd1000_0000 – 1’d1)
- 30 led[3:0] <= {led[2:0],led[3]};
- 31 else
- 32 led <= led;
- 33 end
- 34
- 35 endmodule
复制代码这里需要注意的是,源代码前面的序号是为了方便大家查看代码的,在将源代码拷贝到软件编辑区的时候(尽量不要从PDF文档中拷贝代码,转PDF的时候可能会改变源代码格式),需要去掉前面的序号,大家也可以直接从我们资盘中提供的Verilog源代码中拷贝,源代码位于资料盘中的【正点原子】ATK-DFPGL22G开发板资料盘(A盘)\4_SourceCode\1_Verilog\1_flow_led\rtl\flow_led.v文件(如果是压缩包的话,需要先解压)。
代码编写完成后,在软件中显示的界面如图 4.3.18所示,我们点击保存图标(图中红框位置)对代码进行保存。 设计输入除了像上述直接创建新文件之外还可以把事先写好的源文件直接加载进工程里。这里在加载源文件之前大家一定要把源文件拷贝到工程的rtl文件夹下(.v文件放到rtl文件夹里)然后在加载到工程里去,有些粗心的同学在移植源文件的时候源文件并没有拷贝到工程文件夹里,虽然功能也能正常执行,但是当你将工程拷贝到另一台电脑的时候就会发现报路径错误,所以大家在移植源文件时一定要记得把文件拷贝到工程文件夹下。下面来给大家演示以下如何把源文件添加到工程里去,这里我们还拿流水灯为例,先把刚刚已经创建好的流水灯工程的源文件从工程中移除,如图 4.3.19所示: 在弹出的窗口直接点击【OK】完成移除,如图 4.3.20所示。 移除后,我们的流水灯工程就又是一个空壳工程了,但是大家需要注意,把文件从工程中移除并不意味着删除文件,我们刚刚移除的流水灯代码源文件虽然不在工程中了,但是它依保存在我们之前创建好的rtl文件夹里。现在我们再把刚刚删除的源文件添加回工程,双击Sources下的Designs图标,出现图 4.3.13 新建设计文件操作界面。
弹出如图 4.3.14 添加原文件界面,在添加文件时,可以通过Add Files找到对应的文件添加,也可以通过Add Directories来添加整个文件夹下的符合规则的文件,若勾选了下方的“Add source from subdirectories”则会搜索选中目录下的所有子目录下的符合规则的文件全部添加。如果勾选了“Copy design files into project”选项,那么程序会拷贝设计文件(.v文件)到工程目录中的source文件夹,拷贝时,至少保留源文件所在的一级目录;我们不需要拷贝设计文件到工程目录中的source文件夹,所以这里我们仅勾选Add source fromsubdirectories即可。
设计文件添加过程,将会看到如下图所示的软件界面:点击Add Files,在弹出的界面中选择需要添加的源文件,然后点击【打开(O)】,最后点击【OK】完成添加,顺序如下图标号1、2、3、4所示。 加载好后我们回到PDS的“Cources”窗口,可以看到刚刚移除的源文件又回来了,如图 4.3.22所示: 到这里文件的移除和加载就跟大家演示完了,不仅仅.v源文件可以这么加载,其他类型的文件也是同样的步骤去移除或加载。
1.3.3 分析与综合(编译)为了验证代码是否正确,我们可以在编译流程窗口中选择【Compile】右击选择【Run】来验证语法是否正确,接下来我们对工程进行语法检查,右击编译流程窗口中的【Compile】选择【Run】如图 4.3.23所示。 如果工程在编译文件过程中没有错误,则【Compile】前会有一个“√”,否则就会在Messages栏中显示errors的错误。如图 4.3.24所示,包括各种“Warning”和“Error”。“Error”是必须要关心的,“Error”意味着代码有错误,后续的编译将无法继续,如果出现错误,可以双击错误信息,此时编辑器会定位到语法错误的位置,修改完成后,重新开始编译;而“Warning”则不一定是致命的,有些潜在的问题可以从“Warning”中寻找,如果一些“Warning”信息对设计没有什么影响,也可以忽略它。信息提示窗口界面如下图所示: 1.3.4 约束输入UserConstraint Editor(Timing and Logic)以下简称UCE,主要是完成管脚的约束,时钟的约束,以及组的约束。编译通过以后,我们就需要对工程中输入、输出端口进行管脚分配。这里有两种方法,第一种是点击菜单栏中的Tools,然后选中UCE在扩展菜单栏里点击【Pre Synthesize UCE】,如图 4.3.25所示;第二种是选中工具栏中的UCE图标后点击【Pre Synthesize UCE】,如图 4.3.26所示。 点击【Pre Synthesize UCE】后会转跳到如图图 4.3.27所示界面,点击【Device】。 图 4.3.27 Pre Synthesize UCE界面 然后在Device界面点击【I/O】图标(图中红框位置),如图 4.3.28所示。 引脚分配界面如图 4.3.29所示: 可以看到该界面出现了6个端口分别是4个LED、时钟和复位,我们可以参考原理图来对引脚进行分配。为了便于大家的查看,我们整理出了包含开发板上所有引脚分配的表格,该表格位于【正点原子】ATK-DFPGL22G开发板资料盘(A盘)\3_正点原子ATK-DFPGL22G开发板原理图\ATK-DFPGL22G开发板IO引脚分配总表,引脚分配完成后如图 4.3.30所示。比如分配sys_clk引脚为B5,先用鼠标点击sys_clk信号名LOC下面的空白位置,可以选择B5,也可以直接输入B5接下来按下回车键。 引脚分配完成后会弹出如图 4.3.31所示界面,点击保存图标(如图 4.3.31中红框位置)。 保持默认,点击【Save】,完成.fdc约束文件的存储。
1.3.5 编译工程我们分配完引脚之后,需要对整个工程进行一次全编译,双击 Generate Bitstream或右击Generate Bitstream后点击Rerun All,然后软件会按照Synthesize-> Device Map-> Place & Route- > GenerateBitstream 的顺序来产生位流文件,操作界面如图 4.3.32所示。 在图 4.3.33界面中,左侧编译流程窗口全部显示打钩,说明工程编译通过,否则右下方的Messages栏中显示errors的错误。右上方Report Summary可以观察FPGA资源使用的情况。 1.3.6 下载程序编译完成后,我们就可以给开发板下载程序,来验证我们的程序能否正常运行。首先我们将下载器一端连接电脑,另一端与开发板上的JTAG接口相连接;然后连接开发板电源线,并打开电源开关。 打开下载界面的方法有两种,方法1是点击菜单栏中的Tools,然后点击Configuration;方法2是点击工具栏中的Configuration图标,两种方法的操作如图 4.3.35所示。 点击“Configuration”后下载界面如图 4.3.36所示。 点击工具栏中的“Scan Device”图标(图中红框位置)扫描设备,扫描成功后界面如图 4.3.37所示。 扫描成功后双击“flow_led.sbit”或选择“flow_led.sbit”后点击“open”,之后右击芯片点击“program”开始下载,如图 4.3.38所示。 下载完成之后,我们可以看到开发板上的LED0~LED3按顺序点亮,呈现出流水灯的效果。如图 4.3.39所示。 |