芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 1729|回复: 1

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

[复制链接]
  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 428

    主题

    811

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    16107
    QQ
    发表于 2024-3-30 10:38:19 | 显示全部楼层 |阅读模式
    附件为本节内容最终得到的工程文件,针对三个型号开发板分别提供,供大家参考。

    ac201_sa5z50d0_fpga_led.zip (6.87 MB, 下载次数: 557)
    ac208_sa5z30d1_fpga_led.rar (25.41 KB, 下载次数: 168)
    ac201_sa5z30d1_fpga_led.rar (266.78 KB, 下载次数: 435)


    1、打开HQFPGA软件

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

    image.png

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

    image.png

    image.png


    2、创建FPGA工程

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

    image.png

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

    image.png

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

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


    3、创建设计源文件。

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

    image.png

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

    image.png

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

    image.png


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

    image.png


    4、编写Verilog代码

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


    1. module fpga_led(
    2.         Clk,
    3.         Rst_n,
    4.         Led
    5. );
    6.         input Clk;
    7.         input Rst_n;
    8.         output reg[3:0]Led;
    9.         
    10.         reg [24:0]cnt;
    11.         always@(posedge Clk or negedge Rst_n)
    12.         if(!Rst_n)
    13.                 cnt <= 0;
    14.         else if(cnt >= 25'd12_499_999)
    15.                 cnt <= 1'd0;
    16.         else
    17.                 cnt <= cnt + 1'd1;
    18.         
    19.         always@(posedge Clk or negedge Rst_n)
    20.         if(!Rst_n)
    21.                 Led <= 4'b1110;
    22.         else if(cnt == 25'd12_499_999)
    23.                 Led <= {Led[2:0],Led[3]};
    24.                
    25. endmodule
    复制代码


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


    5、分析和综合代码

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

    image.png

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

    image.png

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

    image.png

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


    6、进行物理管脚约束

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

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

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

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

    image.png

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

    image.png

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

    image.png

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


    7、编译设计

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

    image.png

    image.png


    8、烧录bit文件到目标板

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

    image.png

    image.png


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

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

    image.png

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


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

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

    image.png

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 428

    主题

    811

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    16107
    QQ
     楼主| 发表于 2024-3-31 21:54:24 | 显示全部楼层
    ac201_sa5z50d0_rom_test.zip (14.06 MB, 下载次数: 564)
    在线逻辑分析仪案例
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-11-21 20:43 , Processed in 0.194422 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表