admin 发表于 2024-3-30 10:38:19

【智多晶SA50K FPGA开发流程】基于Verilog的4位流水灯实验【AC201-SA5Z50D0】

附件为本节内容最终得到的工程文件,针对三个型号开发板分别提供,供大家参考。






1、打开HQFPGA软件

在D:\hqv3_xist_3.0.4_FT032324_win64\build\win_x64\hqui下双击“hqui.exe”文件以打开HQFPGA集成开发环境。



当然,大家也可以选中后右键选中发送到桌面快捷方式,下次就可以直接在桌面上双击图标打开了。






2、创建FPGA工程

点击【创建工程】选项以打开新建工程向导。



在弹出的工程创建向导界面,依次输入工程名称,工程存放位置,并选择实际使用的器件型号,然后点击保存即可。



比如本例我们使用FPGA逻辑点亮一个LED灯,就设置工程名称为fpga_led
选择工程存放路径,软件会自动创建以工程名称为名的子文件夹存放所有工程相关文件。
选择器件型号,根据所使用的芯片系列,资源容量,芯片封装,速度等级和工作环境,选择对应的器件型号,比如针对我们的AC601-SA5Z-50-D0核心板,在筛选框输入sa-5z-50-d0然后按回车即可找到对应器件,选择U324封装,速度等级7,工作环境根据您使用的是商业级或者工业级器件,选择C或者CI即可。

创建工程页面还有RTL文件、物理约束文件、时序约束文件等,目前都不需要管,所以选完器件后直接点击保存即可。


3、创建设计源文件。

点击源文件选项后面的+号,然后选择新建文件选项以创建一个新的源文件。



创建后的文件无有效名称,也没有任何内容。此时我们需要按键盘组合键【ctrl + s】来先保存该文件



在保存文件界面,【新的文件名】项中输入文件名称和.v后缀。注意,输入文件名称一定要加.v的格式后缀,否则软件不会识别其为源码。输入完成后点击【添加到工程】按钮,即可将文件保存并自动添加到工程。




保存完成后,在左侧的【源文件】下,就能看到新添加的fpga_led文件了。




4、编写Verilog代码

在打开的fpga_led文件中输入代码内容,如LED流水灯的实验,可以使用下述代码。


module fpga_led(
      Clk,
      Rst_n,
      Led
);
      input Clk;
      input Rst_n;
      output regLed;
      
      reg cnt;
      always@(posedge Clk or negedge Rst_n)
      if(!Rst_n)
                cnt <= 0;
      else if(cnt >= 25'd12_499_999)
                cnt <= 1'd0;
      else
                cnt <= cnt + 1'd1;
      
      always@(posedge Clk or negedge Rst_n)
      if(!Rst_n)
                Led <= 4'b1110;
      else if(cnt == 25'd12_499_999)
                Led <= {Led,Led};
               
endmodule


编写完成后,使用Ctrl + S快捷键以保存文件。


5、分析和综合代码

保存完成后,点击综合前面的三角符号以开始对代码进行分析和综合



编译后,如果代码没有语法错误和逻辑冲突,就会在【综合】项的后面展示一个绿色的√,如果有提示语法错误,请根据提示信息修改对应位置。



点击【综合】下面的【综合报告】选项,就能查看当前设计经过综合后,分析出来的各种fpga资源的消耗情况。



至此,设计输入就完成了。


6、进行物理管脚约束

代码经过综合后如果没有报错,就可以将对应的信号端口映射到具体的FPGA管脚上了。这个过程就是我们常说的物理管脚约束。接下来我们开始进行物理管脚约束
点击【物理约束】选项后面的【+】号并选择【约束编辑器】以打开物理管脚约束界面。

顺便说一下,这里点击加号后,有3个选项可以选择,分别是【新建文件】、【约束编辑器】和【导入约束文件】,新建约束文件就是以文本的形式建立一个文件,然后我们自己在文本中去编写所有的管脚约束信息。这需要开发者对智多晶的管脚约束语法很熟悉。如不熟悉的话,用这种方法工作量非常大,也容易出错。因此不建议新手使用。这种方法适合你拥有一个针对硬件的详细管脚约束文件的情况下,根据需求从现有文件复制粘贴到新工程中。

导入约束文件则是添加现有的物理约束文件到工程中,这个适合已经有现成约束文件的情况下。
所以,对于新建立和设计的工程,使用约束编辑器是最方便可靠的方式。

当前版本的软件,约束编辑器打开后文字内容挤压重叠比较严重,看不到完整的文字信息,这个时候,可以先将HQFPGA软件窗口最大化,然后再将约束编辑器窗口最大化,就能够完整的展示各项信息内容了。



在弹出的物理约束界面中,根据物理电路板信息,在location列输入对应的管脚名。下图为按照我们设计的开发板上相关管脚信息执行的物理管脚约束。



完成所需管脚的约束后点击确定按钮以保存约束信息。此时在软件的【物理约束】下面,会显示一个名为“_auto_ce.upc”的文件,这个文件就是根据刚刚约束编辑中的操作生成的物理约束信息。选中该文件,右键选择【查看约束文本】即可打开该文本文件查看约束内容。



如果想重新进入约束编辑器界面,只需要双击该文件名或者右键选择【打开】选项即可。


7、编译设计

点击菜单栏的【运行】按钮或【比特流生成】前的三角符号,以对设计进行全编译并生成编程bit文件。






8、烧录bit文件到目标板

全部运行完毕且无错误后,会生成名为fpga_led.bit的文件,点击“fpga_led.bit”文件名,或者菜单栏的【下载】图标,以打开程序烧录界面。






注意,在HQFPGA软件已经打开了工程的情况下,必须要该工程已经编译且完成了bit文件的生成,点击【下载】图标才能打开下载界面,否则点击【下载】按钮不会打开下载界面。所以如果你想单独打开一个下载界面直接下载已有的程bit文件,则需要先关闭当前工程。


连接好开发板、XiST USB Cable下载器、检查设备管理器中是否已经检测到XiST USB Cable下载器并装好了驱动,给开发板供电,然后在下载器界面点击“检测器件”按钮。如果能检测到SA50K器件,则表明JTAG连接成功。点击“下载”按钮以执行下载。



下载完成后,查看开发板上的4个LED灯,以0.5秒的速度切换点亮,呈现流水灯效果。


9、烧录到Flash以实现上电加载

如果需要将程序下载进Flash中,从而实现上电自动加载。可以在下载界面勾选上【下载到Flash】选项框,并设置【DCLK频率】为较高的频率,如33.42M,或66.84M等,以加快上电加载时的程序加载速度,提升上电加载时间。设置好后点击【下载】按钮即可将程序下载进FLASH。



admin 发表于 2024-3-31 21:54:24


在线逻辑分析仪案例
页: [1]
查看完整版本: 【智多晶SA50K FPGA开发流程】基于Verilog的4位流水灯实验【AC201-SA5Z50D0】