自学内容网 自学内容网

FPGA开发流程

注:开发板:小梅哥的ACX720。本实验可直接运行在小梅哥的ACX720开发板上,后续的实验都可直接运行在小梅哥的ACX720上。

一、打开VIVADO并创建工程

        1、双击VIVADO图标,打开vivado。

        2、打开vivado界面打,点击Create Project(创建工程)

3、修改工程名已经修改存放的位置

4、选择第一个选项,并勾选复选框

 5、选择对应的芯片型号

二、新建源文件

1、点击“+”号,添加新的源文件,然后选择第二个 选项

2、点击“Create File”创建新文件,并给文件命名,后面点击finish和ok即可。

三、编写代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/11/18 20:18:38
// Design Name: 
// Module Name: led_flash
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_flash(
    input                               clk                        ,//系统时钟50M
    input                               rst_n                      ,//系统复位
    output reg                          led                         //led灯
);

    reg                [  31: 0]        cnt                        ;//定义一个计数器用来计数

    //cnt赋值
    always @ (posedge clk or negedge rst_n)
    if (!rst_n)
        cnt <= 32'd0;                                               //复位cnt为0
    else if (cnt == 32'd49_999_999)
        cnt <= 32'd0;                                               //记满清零 
    else
        cnt <= cnt + 1'd1;                                          //否则自加1

    //led赋值
    always @ (posedge clk or negedge rst_n)
    if (!rst_n)
        led <= 1'd0;                                                //复位led为0
    else if (cnt == 32'd49_999_999)                                 //1s反转led
        led <= ~led;


endmodule

四、代码仿真

 1、创建仿真源文件。点击“+”号,添加新的源文件,然后选择第三个 选项

2、点击“Create File”创建新文件,并给文件命名,后面点击finish和ok即可。

3、编写仿真代码

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/11/18 20:40:36
// Design Name: 
// Module Name: led_flash_tb
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module led_flash_tb();


    reg                                 clk                        ;//系统时钟50M
    reg                                 rst_n                      ;//系统复位
    wire                                led                        ;//led灯



led_flash led_flash_insh(
    .clk                                (clk                       ),
    .rst_n                              (rst_n                     ),
    .led                                (led                       ) 
);

    initial clk = 1;                                                //初始化clk为1
    always #10 clk = ~clk;                                          //总是10ns clk翻转

    initial begin
        rst_n = 0;                                                  //复位
        #21;                                                        //延迟21ns
        rst_n = 1;                                                  //释放复位
        #2000000000;                                                //延迟2S
        $stop;                                                      //停止仿真
    end


endmodule

5、开始仿真。点击run simulation  , run behaavioral simulattion。不过要注意,一定要将仿真文件设置为顶层

如果没有设置顶层,一定要选中文件右击,然后点击set as top。也就是下图1的位置,设置完成后,在2的位会有一个”品“字的符号。

设置完成后开始仿真。

五、仿真结果

1、增加cnt信号。选中scope,点击led_ffflash_inst,选中cnt,右击,选择add to wave window,然后重新运行仿真,最后点击run all。

2、仿真完成

3、放大led第一次翻转的细节

4、修改cnt的显示进制,修改成无符号数

5、计数器记到49999999进行翻转,符合预期。

6、第二次翻转也是符合预期

六、分析和综合并分配引脚

1、点击run synthesis,进行分析综合。

2、分析完成后,在弹出的对话框中选择第二个选项,并点击Ok。

3、选择io planning

4、进行引脚分配,并且电平改成3.3v.修改完成后,ctrl + s 保存即可。注意,这个引脚只是针对ACX720开发板,如使用其他的开发板,请自行查找管脚进行分配

七、生成bit流 

1、点击Generate Bitstream ,然后点击yes,紧接着点击OK即可。

2、bit流生成完成后,选择第三个选项,然后点击OK。

3、将下载器件与开发板相连,并给开发板上电。

4、点击open target下的Auto Connect 连接设备

5、连接上则会出现芯片型号。在 Hardware Manager 界面中找到并右键单击 xc7a35t_00),在浮动菜单中单击 Program Device…选项。

6、然后选择bit文件后,点击 Program

八、实验现象

        可以看到在ACX720开发板上的LED0每隔1s翻转一下。


原文地址:https://blog.csdn.net/weixin_62953178/article/details/143865527

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!