• 国产智多晶FPGA基于Verilog的设计开发流程


    大家好,我是小梅哥,这里给大家介绍国产FPGA厂家“西安智多晶”微电子的FPGA基于Verilog进行逻辑设计的开发流程,步骤详细,可作为大家的评估参考。本博客将陆续发表更多国产FPGA的开发和使用方法。

    1、打开HQFPGA软件
    在D:\hq_2.13.3_032022_win64\build\win_x64\hqui下双击“hqui.exe”文件以打开HQFPGA集成开发环境。

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


     

    2、创建FPGA工程
    点击新建工程选项以打开新建工程向导。

    在弹出的工程创建向导界面,依次输入工程存放位置,工程名称,然后点击下一步。



    在添加源文件的页面,添加你已有的设计源文件,如果没有,则直接点击“完成”即可,不用在乎上方的“至少增加一个源文件”的提示。



    3、编写Verilog设计代码。
    点击“设计管理”选项以打开设计文件管理工具。注意,如果已经打开了其他工具(调试,下载,物理约束,时序约束等其他窗口,必须先关闭那些窗口,才能打开设计管理)。



    在打开的设计管理器中,依次点击“文件”->“新建文件”以新建一个文件,或者使用Ctrl + N快捷键。


    在打开的文件中输入代码内容,如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快捷键)以保存文件。

    在弹出的文件保存页面,在工程目录下新建一个rtl文件夹,然后将待保存文件命名并加上.v后缀,然后点击保存在rtl文件夹下。





    由于设计管理器不会自动对创建的文件添加进工程,因此需要我们手动点击添加文件按钮,然后选择我们刚刚保存的文件。如下图所示。





    保存完成后,点击语法检查图标(或使用Ctrl + R)快捷键以执行语法检查。




    当然,此时添加,软件会报告语法检查失败,这是因为我们工程刚刚创建,还没有指定工程的顶层设计文件,导致设计管理器无法自动的执行语法检测。





    此时,我们需要点击OK,接着直接关闭设计管理器(提示有语法错误未保存也不要紧,直接OK即可),然后在HQFPGA软件主界面上点击“工程属性”以打开工程属性设置,

    在工程属性界面中,点击“+”号以添加文件,然后选择我们需要设置为顶层的设计文件,



    然后我们再打开设计管理器,就能够发现设计文件已经自动添加好了。点击语法检查,也能够通过。如果有提示语法错误,请根据提示信息修改对应位置。


    至此,设计输入就完成了。关闭设计管理器以进行下一步操作。




    4、进行物理管脚约束
    点击“物理约束”选项以打开物理管脚约束界面。



    此时会提示读入设计,点击“确定”即可。

    读入完成后,会弹出约束方式的对话框,我们推荐使用约束编辑器的方式进行,因为可以以图形化的方式,对管脚的多种参数进行设置,因此直接选择“约束编辑器”,然后点击“确定”





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



    注意,每个管脚位置输入完成后记得按下键盘Enter键以使输入生效。
    物理位置约束完成后,点击“保存”图标以保存当前物理管脚约束信息。





    保存不需要用户手动指定文件保存名和位置,因此点击完按钮后,直接退出即可。


    5、编译设计
    点击“全部运行”按钮以对设计进行全编译并生成编程bit文件。



    6、烧录bit文件到目标板
    全部运行完毕且无错误后,点击“下载/编程”以打开程序烧录界面。



    连接好开发板、下载器、装好下载器驱动后,给开发板供电,然后在下载器界面点击“检测器件”按钮。如果能检测到SA30K器件,则表明JTAG连接成功。

    选择文件类型为“bit”,点击“打开”按钮,在工程路径下的“hq_run”文件夹下找到bit格式的文件并选择。



    点击“下载”按钮以执行先下载。

    下载完成后,记得按下开发板上的S2按键,复位下设计,设计才能正确进入复位状态并开始正确运行。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Leetcode第 309 场周赛 补打
    QT信号和槽机制实现及源码阅读
    FastText词向量计算和文本分类工具
    【运维项目经历|027】PXE自动化部署与管理平台
    SpringMVC之JSON数据返回及异常处理机制
    drf 请求与响应 编码
    基于Matlab的车牌识别算法,Matlab实现
    【MySQL学习】C++外部调用
    三肽Gly-Cys-Gly、88440-55-5
    nix包管理器
  • 原文地址:https://blog.csdn.net/zgmxs/article/details/125953287