logo资料库

01.vivado下LED流水灯实验及仿真111.pdf

第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
资料共47页,剩余部分请下载后查看
1 实验简介
2 实验环境
3 实验原理
3.1 LED硬件电路
3.2 程序设计
4 Vivado工程
4.1 创建工程
4.2 编写流水灯的verilog代码
4.3 添加XDC 管脚约束文件
4.4 编译
4.5 Vivado 仿真验证
4.6 下载和调试
4.7 FLASH 程序固化
5 附录
芯驿电子科技(上海)有限公司 芯驿电子科技(上海)有限公司 021-67676997 www.alinx.cn www.heijin.org Vivado 下 LED 流水灯实验 流水灯实验 黑金动力社区 2018-02-26 黑金动力社区 黑金动力社区 黑金动力社区 1 实验简介 通过 LED 流水灯实验,介绍使用 流水灯实验,介绍使用 vivado 软件开发 FPGA 的基本流程,器件选择、设置、 器件选择、设置、代码 编写、编译、分配管脚、下载、程序 FLASH 固化、擦除等;同时也检验板上 板上 LED 灯是否正常。 编写、编译、分配管脚、下载、 2 实验环境 Windows 7 SP1 64 64 位 vivado 2017.4 黑金 FPGA 开发板( 开发板(AX7050 开发板、AX7035 开发板) 3 实验原理 3.1 LED 硬件电路 AX7035 开发板 LED 部分原理图 AX7050 开发板 LED 部分原理图 黑金 FPGA 版权所有 1 / 47
www.heijin.org 从上面的 LED 部分原理图可以看出, 部分原理图可以看出, AX7035 开发板和 AX7050 开发板都是 都是将 IO 经过一个电 阻和 LED 串联接电源端,FPGA FPGA 的 IO 输出低电平点亮 LED。IO 输出高电平 LED LED 灯熄灭,其中的串 联电阻都是为了限制电流。 3.2 程序设计 FPGA 的设计中通常使用计数器来 的设计中通常使用计数器来计时,对于 50Mhz 的系统时钟,一个时钟周期是 的系统时钟,一个时钟周期是 20ns,那 么表示一秒需要 50000000 个时钟 周期,如果一个时钟周期计数器累加一次,那么计数器从 0 到 时钟周期,如果一个时钟周期计数器累加一次,那么计数器从 49999999 正好是 50000000 个周期,就是 个周期,就是 1 秒的时钟。 程序中定义了一个 32 位的计数器: 位的计数器: //Define the time counter //Define the time counter reg [31:0] timer; 最大可以表示 4294967295 4294967295,十六进制就是 FFFFFFFF,如果计数器到最大值,可以表示 ,如果计数器到最大值,可以表示 85.89934592 秒。程序设计中是每隔 程序设计中是每隔 1 秒 LED 变化一次,一共消耗 4 秒做一个循环。 秒做一个循环。 clk or negedge rst_n) timer <= 32'd0 always@(posedge sys_clk begin end if (~rst_n) else if (timer == 32'd199_999_999 else timer <= timer timer <= 32'd0 32'd0; 32'd199_999_999) 32'd0; timer + 1'b1; 在第一秒、第二秒、第三秒、第四秒到来的时候分别改变 LED 的状态,其他时候都保持原来 在第一秒、第二秒、第三秒、第四秒到来的时候分别改变 的状态,其他时候都保持原来 的值不变。 clk or negedge rst_n) led <= 4'b0001 led <= 4'b0000 // LED control always@(posedge sys_clk begin end if (~rst_n) else if (timer == 32'd49_999_999 else if (timer == 32'd99_999_999 else if (timer == 32'd149_999_999 else if (timer == 32'd199_999_999 led <= 4'b0010 led <= 4'b1000 led <= 4'b0100 4'b0001; 4'b0010; 4'b1000; 4'b0100; 4'b0000; 32'd49_999_999) 32'd99_999_999) 32'd149_999_999) 32'd199_999_999) 黑金动力社区 2 / 47
www.heijin.org 4 Vivado 工程 4.1 创建工程 1. 启动 Vivado 2017.4 开发环境 开发环境(在开始菜单中选择 Xilinx Design Tools->Vivado 2017. Vivado 2017.4->Vivado 2017.4。 或者双击桌面的 Vivado 2017.4 4 的图标直接打开软件。 2. 在 Vivado 2017.4 开发环境里双击 里双击 Create Project,如下图: 黑金动力社区 3 / 47
www.heijin.org 3. 弹出一个 Vivado 的工程向导,点击 的工程向导,点击 Next 按钮。 4. 在弹出的对话框中输入工程名和工程存放的目录, 在弹出的对话框中输入工程名和工程存放的目录,这里取一个 led_test 的工程名 的工程名,点击 Next。 黑金动力社区 4 / 47
www.heijin.org 5. 在下面的对话框中默认选择 在下面的对话框中默认选择 RTL Project, 因为我们这里使用 verilog 行为描述语言来编程 行为描述语言来编程。下面的 Do not specify source at this time time 的勾也可以打上。如果不打上,下一步会进入添加 的勾也可以打上。如果不打上,下一步会进入添加 source file 界 面, 黑金动力社区 5 / 47
www.heijin.org 6. 进入添加 source file 界面,这里先不添加任何设计文件 界面,这里先不添加任何设计文件。点击 Next 黑金动力社区 6 / 47
www.heijin.org 7. 提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加 提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加。 提示是否添加已有的约束文件,这里约束文件我们也没有设计好,也不添加 8. 在接下来的对话框选择所用的 在接下来的对话框选择所用的 FPGA 器件,以及进行一些配置。FPGA 芯片型号一定要跟开发板 芯片型号一定要跟开发板 上的型号一致,AX7035 开发板 开发板首先在 Family 栏里选择 Artix-7, Speed grade 栏选择 栏选择-1, 在 Package 栏 选择 fgg484, 然后在下面的列表中选择 然后在下面的列表中选择 xc7a35tfgg484-1;AX7050 开发板首先在 开发板首先在 Family 栏里选择 Spartan-7, Speed grade 栏选择- -1, 在 Package 栏选择 fgga484, 然后在下面的列表中选择 然后在下面的列表中选择 xc7s50fgga484-1;单击 NEXT 进入下一界面: 进入下一界面: 黑金动力社区 7 / 47
www.heijin.org AX7035 开发板 FPGA 黑金动力社区 8 / 47
分享到:
收藏