zynq中PL与PS间的交互方式

  1. 使用PSEMIO端口控制PL端的LED

1.1创建处理器系统(PS):创建Block Design文件,添加ZYNQ7处理器系统IP。

1.2配置ZYNQ7处理器系统IP: 进入 MIO Configuration -> I/O Peripherals -> GPIO,勾选 EMIO GPIO,配置需要的宽度,配置对应bank的电压。

1.3为了界面简洁,取消勾选不需要使用的端口:

FCLK_RESET0_N:PS-PL-Configuration >> General >> Enable Clock Reset

M AXI GP0 interface:PS-PL-Configuration >> AXI Non Secure Enablement >> GP Master AXI Interface

FCLK_CLK0:Clock Configuration >> PL Fabric Clocks

若不需要使用DDR,取消勾选 Enable DDR : DDR Configuration 

Ps:如果GPIO_0没有自动引出,我们在管脚处右键点击,在下拉菜单中点击Make External

引出来的管脚的名字可以更改。

1.4在Design Source中选择.bd文件,先选择Generate Output Products(生成.bd文件对应的网表文件),再选择Create HDL Wrapper(给.bd文件加一个verilog顶层)。

1.5综合,添加管脚约束和时序约束。重新综合实现,生成.bit文件。

1.6将 Vivado Block Design导入Procise:新建一个空的 Procise 工程。在process上方菜单选择 PSOC->From Vivado,加入Vivado生成的system.bd文件与PS的IP配置(.xci)文件。后来选择需要的第三方开发平台模板工程,然后process会自动启动IAR,然后就可以在IAR工程目录下编辑需要的.c文件。

1.7通过vivado下载.bit文件到FPGA,使用IAR进行PS调试。

Ps: 实际使用时ZYNQ又把GPIO分成MIO、EMIO和PL端的IO这三种类型:

MIO只属于PS端,PL端无法进行操作;

EMIO从物理属性来说属于PL端IO,但PS端可以通过软件映射连线来对EMIO进行操作,且使用效果与MIO一致;

PL端所有IO都属于常规的FPGA的IO口,可进行输入输出操作,但是如果PS端不对EMIO控制时,PL端可以随意的使用EMIO。

  1. PS通过AXI总线控制PL端的LED灯

2.1创建处理器系统(PS):创建Block Design文件,添加ZYNQ7处理器系统IP,添加AXI GPIO-IP。在ZYNQ7处理器系统IP中配置bank电压,取消不需要使用的DDR管脚;配置AXI GPIO-IP的GPIO位宽与输入输出模式。

2.2点击Run Block Automation,然后点击Run Connection Automation。

2.3在Design Source中选择.bd文件,先选择Generate Output Products(生成.bd文件对应的网表文件),再选择Create HDL Wrapper(给.bd文件加一个verilog顶层)。

2.4综合,添加管脚约束和时序约束。重新综合实现,生成.bit文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值