
下面,让我们一步一步实现AXI_IIC的操作:以下的步骤主要针对刚熟悉VIVADO开发环境的工程师,也能进一步熟悉米尔开发板硬软件的架构。这话和LED控制一样很熟悉

1.创建工程
具体的步骤如下,打开相应的VIAADO.2017.4的软件,创建一个新的工程,具体参考图。

接着进入下一个界面,点击NEXT,创建一个名称为AXI_IIC_24C02的工程,名称可以自己取,不违反规则就行

下一步我们创建的是一个RTL的project,注意选择,如下图:

在接下来我们有个地方注意下选择,就是编程的语言和仿真的语言,编程的语言我们一般选择VERILOG ,当然你若是用VHDL,那就选VHDL语言仿真选择MIXD,如图:

点击连续NEXT,来到下一个设置界面,主要设置我们主芯片的型号,我们的开发板主要是XC7z010clg400-1。

点击NEXT,然后点击FINISH,至此,我们完成了一个名称为AXI_IIC_24C02的工程的创建。下面进入原理设计阶段。
2.设计原理
我们创建一个IP INTEGRATOR,具体的操作步骤如下图所示:

下面我们设置DESIGN 的名称为axi_iic_24c02,名称也可以自己取,也可保持不变,设置完成后点击OK.

接下来,我们添加一个zynq核并配置,具体的操作步骤如下:

创建一个ZYNQ7的PS,创建的框图如下:

如图上所示,我们双击图框,设置相应的原理图的基本参数,具体的设置参数如下图所示。

主要配置的参数有1.SD接口的引脚和时钟配置 2.串口的配置 3.DDR参数的配置,参考实际图示例

配置DDR的接口型号,这个参看米尔开发板上的实际型号,因为选项中没有板上对应的型号,我们可以选相近的型号,只是封装不一样而已。

时钟设置等就不再一一阐述,其他的参数保持默认即可。然后我们单击OK,这样我们的第一个IP核就配置好了。
下面我们创建AXI_IIC核,创建的步骤是在diagram菜单栏中点击+号添加一个AXI IIC的IP核,如下图:

双击,创建好设置的AXI IIC的核之后我们双击AXI IIC框图设置相应的参数。

这样我们两个IP核都已经创建,下面需要进行设置原理的连线,设置automation,自动连线。

完成上面的自动连线的操作后,我们再运行BLOCK的连线,具体的设置如下图:

然后我们优化布线,修改相应IIC输出的名称,这个主要涉及到后面的约束条件中需要调用到相应的名称,具体如下图:

至此,我们原理图的框架已经搭建出来,接着我们还是按照控制LED灯步骤来进行下一步。
3.生成HDL文件,生成综合文件和顶层文件
下面我们的操作步骤如下图所示:生成顶层文件,

生成综合文件

生成综合文件后,会有提示完成综合,这个过程需要一定的时间,接着我们来添加约束条件,如下图:

点击NEXT,如下图:

如下图所示创建名称为axi_iic的FILE文本

然后我们在约束条件的文本中添加约束语句,具体如下图:

约束条件的语句文本如下:主要是根据MYIR科技的提供的FMC扩展接口对应的FPGA引脚以及起的IIC输出的名称来定义。
通过查阅米尔电子官方提供的MYC-C7Z01020 管脚描述表文件,找出的对应关系如下:
set_property PACKAGE_PIN G14 [get_ports axi_iic_scl_io]
set_property PACKAGE_PIN J15 [get_ports axi_iic_sda_io]
set_property IOSTANDARD LVCMOS33 [get_ports axi_iic_scl_io]
set_property IOSTANDARD LVCMOS33 [get_ports axi_iic_sda_io]
set_property PULLUP true [get_ports iic_0_scl_io]
set_property PULLUP true [get_ports iic_0_sda_io]
首先保存下.XAC约束文件,点击综合的按键,如图所示

上面操作完成后,出现下图所示的框图,点击OK,如下图:

点击OK后,当完成Run Implementaion,出现以下框图,我们操作步骤如下:

点击OK,当完成BIT流的生成以后,如下图,点击cancel。

接下来的一步我们输出,硬件的设置,具体的步骤参照如下:


至此,我们完成了 所有的硬件部分的设置,接下来我们进入软件部分的设置,进入SDK部分。
4.进入SDK软件编程
FIle ->Launch SDK就进入SDK编程阶段,在SDK 里, 菜单 File -> New -> New application Project
创建名称为AXI_IIC_24C02,点击NEXT,

创建一个以HELLO WORLD 为模板的文档

完成 finish,然后我们打开所创建HELLO.C的文件,在文档中编写我们的程序。
我们将已经编写好的程序COPY进文档编译器中,

然后我们对FPGA进行下载。

进行进一步的下载设置

完成下载后,我们看到串口从E2PROM读取出写入进去的值,0x00~0x0f,串口打印如下图所示:

我们所用的硬件的图也上一个图片,作为参考:

插入编译的.C文件作为附件,供大家参考。文档末尾还是感谢米尔提供的开发板,面包网提供的网络环境,以及米尔的技术支持陶威威工的支持,再次感谢。

热门资料
热门活动
全部回复 1
- 1879 主题
- 1915 帖子
- 4289 积分
身份:LV5 资深技术员
E币:2999
发消息
不错的分享,蹲更新
>>资料:基于FPGA的SD-SDI视频传输系统设计