注:开发板:小梅哥的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 ,//系统时钟50Minput 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为0else if (cnt == 32'd49_999_999)cnt <= 32'd0; //记满清零 elsecnt <= cnt + 1'd1; //否则自加1//led赋值always @ (posedge clk or negedge rst_n)if (!rst_n)led <= 1'd0; //复位led为0else if (cnt == 32'd49_999_999) //1s反转ledled <= ~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 ;//系统时钟50Mreg rst_n ;//系统复位wire led ;//led灯led_flash led_flash_insh(.clk (clk ),.rst_n (rst_n ),.led (led )
);initial clk = 1; //初始化clk为1always #10 clk = ~clk; //总是10ns clk翻转initial beginrst_n = 0; //复位#21; //延迟21nsrst_n = 1; //释放复位#2000000000; //延迟2S$stop; //停止仿真endendmodule
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_0(0),在浮动菜单中单击 Program Device…选项。
八、实验现象
可以看到在ACX720开发板上的LED0每隔1s翻转一下。