今天主要是用米尔开发板进行PS和PL结合控制LED灯,让我们先来看下米尔官方提供开发板的整体硬件结构示意图。
我们使用了米尔开发板上的LP FMC接口进行外扩出的XM105赛灵思官方的扩展板。
下面,让我们一步一步实现LED灯的控制:以下的步骤主要针对刚熟悉VIVADO开发环境的工程师,也能进一步熟悉米尔开发板硬软件的架构。
1:创建工程
一步一步的步骤如下,取名PS_PL_LED, 注意选择好FPGA器件 , 我是ZYNQ7z010clg400-1
打开VIVADO,创建一个新的工程,
点击NEXT,
新建工程的名称为PS_PL_LED,这个名称大家可以自己设置,不违反规则就行,
新建RTL PROJECT,点击连续NEXT,来到下一个设置界面,主要设置我们主芯片的型号。
具体的设置如下,我们的开发板主要是XC7z010clg400-1,
至此,我们完成一个VIVADO工程的创建。
2.原理的设计
我们使用IP集成开发,新建一个名称design_1的设计环境,
创建一个ZYNQ7的PS,创建的框图如下:
然后我们双击框图,配置我们响应的串口以及GPIO等硬件参数
配置串口电平以及位置
配置DDR的接口型号,这个参看米尔开发板上的实际型号,因为选项中没有板上对应的型号,我们可以选相近的型号,只是封装不一样而已。
时钟设置等就不在一一阐述,其他的参数保持默认即可。然后我们单击OK,这样我们的第一个IP核就配置好了。
下面我们创建GPIO的IP核,如图所示:
点击+号,搜索GPIO的IP,双击AXI GPIO,如下图所示:
双击新建的IP核设置参数为4个输出的GPIO,参数设置如图:
这样我们两个IP核都已经创建,下面需要进行设置原理的连线,设置automation,自动连线。
参照上述的步骤进行设置参数,接下来我们看到两个IP核连线已经成功。
可以优化连线,重新生成LAYOUT布局,设置相应的GPIO名称显示其功能。
然后我们点击RUN BLOCK AUTOMATION,点击OK,完成最终连线.
3.生成HDL文件
完成以上设置后我们需要生成HDL的包装,然后生产.V的文件,如下图
然后右击design文件如下图,出现另外的界面,点击generator。
接下来,我们即将创建LED灯引脚的约束条件,设置相应步骤如下:
点击NEXT
点击create file
创建一个名称为led的xac约束文件,点击OK.
约束文件创建完毕,点击finish。
双击LED.XAC,右边出现需要添加约束条件的设计框。
下面我们就添加约束的条件。LEDS_tri_o则是我们在上面design_1_wrapper.v 看到的端口名
通过查阅米尔电子官方提供的MYC-C7Z01020 管脚描述表文件和赛灵思FMC XM 105对应的LED接口,找出的对应关系如下:
set_property IOSTANDARD LVCMOS33 [get_ports {LEDS_tri_o[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LEDS_tri_o[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LEDS_tri_o[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LEDS_tri_o[0]}]
set_property PACKAGE_PIN P14 [get_ports {LEDS_tri_o[0]}]
set_property PACKAGE_PIN R14 [get_ports {LEDS_tri_o[1]}]
set_property PACKAGE_PIN V12 [get_ports {LEDS_tri_o[2]}]
set_property PACKAGE_PIN W13 [get_ports {LEDS_tri_o[3]}]
下面我们对PL部分的设置进行综合,步骤如下:
首先保存下.XAC约束文件,点击综合的按键,如图所示
点击OK,如下图:
在我们进行综合的过程中,状态栏有显示在进行中,若是完成会跳出界面显示,点击OK进行实现如下图.
RUN implementation实现后,点击下一步生成BIT流,点击OK.
当BIT流文件生成后,我们暂时不用烧写进FPGA,出现的框图点击CANCEL。
4.SDK部分
然后输出硬件,菜单 File ->Export ->Export Hardware
弹出对话框时,记得勾取包含比特流,如下,因为有PL 硬件。
FIle ->Launch SDK就进入SDK编程阶段,在SDK 里, 菜单 File -> New -> New application Project
创建名称为PS_PL_LED,点击NEXT,
下面我们创建还是以HELLO WORLD 为模板,点击FINISH
接下来,我们应用一个LED的模板来设计我们的亮灯试验:
下图主要是我们如何调用模板:
调用模板后,此模板为闪烁一只LED灯,我们需要更改LED的宏定义为0x0f,具体如下:
后面设置PS和PL电路的文件加载,具体设置如下:
配置文件然后我们看到BIT流文件设置,复位设置,PS编程设置打勾,如下图:
点击APPLY,然后点击RUN.....
程序下载进我们米尔开发板中,我们发现程序的四只LED灯没有闪烁。。。
后来发现我们程序中没有添加看门狗,所以我们拔掉JP1,最终程序终于点灯亮起,开心、、、
由于上传不了视频最后上传一张开发板点灯的效果图:在此感谢米尔提供的开发板,和网上
在此感谢米尔提供的开发板以及相关的资料,感谢论坛上很多FPGA的大神们无私的奉献,也感谢米尔的陶(威威)工的耐心指导,
这只是熟悉米尔FPGA开发板的入门也是一个硬件了解FPGA一小步,后面持续更新中。。。。