最近新买了一块zynq的开发板,7010的,具体价格在700元左右,尝试了一下测试例程,发现很多例程需要下载插件或者是用7020的相应资源才能运行,所以先熟悉一下软件环境,学习一下IP核的配置。等到硬件方面熟悉以后,再做长远打算。
众所周知,zynq分为arm部分和FPGA部分,两个部分通过AXI总线连接,作为一名FPGA只能算及格分的嵌入式工程师,尽量把关注点集中在ARM侧,通过设置IP核来实现大部分的FPGA功能,后续再考虑学习配置软核方面的内容。
首先,创建工程,在工程中添加Block design.
在之前学习的嵌入式软件中,无论是FPGA还是ARM,都有一个初始化并分配管脚的过程,此时,我们创建一个
zynq7 processing system,首先要做的就是初始化,具体为:时钟,电源,引脚。这三者是由原理图决定的,外部晶振的频率,电源电压和管脚分配都是可以从原理图上查询到的。现在,我想做一个e2prom的读取实现,让我们来看看,从何处下手比较合适。
- 配置时钟和电源。:
电源:
2.首先,我们知道e2prom是通过I2C总线操作的,所以我们查看原理图,看看硬件连接。
FPGA_I2C_SCL [2,10]
FPGA_I2C_SDA [2,10]大概是使用了PL部分的外设,所以用了emio口,具体配置需要约束
相应的verilog管脚约束:
set_property PACKAGE_PIN P16 [get_ports E2PROM_IIC_scl_io]
set_property PACKAGE_PIN P15 [get_ports E2PROM_IIC_sda_io]
set_property IOSTANDARD LVCMOS33 [get_ports E2PROM_IIC_scl_io]
set_property IOSTANDARD LVCMOS33 [get_ports E2PROM_IIC_sda_io]
set_property PULLUP true [get_ports {E2PROM_IIC_sda_io]
约束文件设置的大概是管脚类型和电压。