FPGA学习.PART1
1.1 概念
PL 即 Programmable Logic 的缩写,意为可编程逻辑部分,此部分即将ZYNQ7当作一个单纯的FPGA来使用.
1.2 新建项目
新建项目时需要注意的事项:
1.3 文件组成
FPGA工程文件主要存在两种:
- 逻辑部分(Design Sources)
- 约束部分(Constrains)(即引脚对应文件)
1.4 创建文件
右键Design Sources选择最底部的Add sources,之后再Create File;
创建完毕后放回主界面,打开新建的文件可以在应用右上角进行预览;
之后就是敲代码的部分了;
1.5 亮灯程序
亮灯程序如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| module PL_LED( input clk, input rst, output reg [7:0]LED ); reg [31:0] cntr; always @ (posedge clk) if ( rst ) cntr <= 0; else cntr <= cntr + 1; always @ (posedge clk) LED <= cntr[24:17] ; endmodule
|
1.6 添加引脚文件
引脚文件代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| set_property PACKAGE_PIN Y9 [get_ports {clk}] set_property IOSTANDARD LVCMOS33 [get_ports {clk}]
set_property PACKAGE_PIN N15 [get_ports {rst}] set_property IOSTANDARD LVCMOS18 [get_ports {rst}]
set_property PACKAGE_PIN T22 [get_ports {LED[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}]
set_property PACKAGE_PIN T21 [get_ports {LED[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}]
set_property PACKAGE_PIN U22 [get_ports {LED[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}]
set_property PACKAGE_PIN U21 [get_ports {LED[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}]
set_property PACKAGE_PIN V22 [get_ports {LED[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[4]}]
set_property PACKAGE_PIN W22 [get_ports {LED[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[5]}]
set_property PACKAGE_PIN U19 [get_ports {LED[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[6]}]
set_property PACKAGE_PIN U14 [get_ports {LED[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED[7]}]
|
IOSTANDARD LVCMOS33 意为电平标准为3.3V,
这一部分数据需要参考原理图得出;
附.LED在板上的引脚对应表格
1.7 烧录文件
点击下图按钮以生成比特流文件,要是编译出错了指定是那个地方代码抄错了,回去再看看
编译完成以后会出现弹窗,此时选择如图所示的Open Hardware Manager
之后显示No hardware时,点击Open target添加硬件版,
若HW中找不到硬件版,是由于任务管理器的进程中,hw_server.exe一直在执行,需要将其关掉,若还不可检测到硬件版,只需要重启电脑;
如果还没有,看一下是不是接线接少了…我在这个部分卡了半个小时,试遍了所有方式发现我PROG这个接口没有接线!(是的,蠢到我了…!)接线如下图所示
成功找到硬件后HW会如图所示:
其中,arm_dap_0为32位arm即PS部分,而xc7z020为PL部分,
关联文件路径则在下方窗口中能够找到,右键此部分点击Program Device即可将程序写入板子中
最后的运行如下所示:
参考网站:
- Vivado+Zedboard之流水灯例程
Lucy!!!