下面,让我们一步一步实现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 帖子
- 4288 积分
身份:LV5 资深技术员
E币:2998
发消息
不错的分享,蹲更新
>>资料:基于FPGA的高速模糊控制器设计与实现