ZYNQ_MPSOC学习笔记(一)

ZYNQ_MPSOC学习笔记(一)

本系列文章主要介绍阶段性学习ZYNQ_MPSOC所遇棘手问题及其解决办法,此外对于个人遗忘或者未曾学过的一些知识进行补充。

zynq PL端与PS端同时使用

在官方所给教程中,将PL端的LED项目与PS端的hello项目联合烧写到开发板的说法为:

根据本章的 PS 端添加 ZYNQ 核并配置,最简单的方法就是在本章工程的基础上添加 LED 实
验的 verilog 源文件,并进行例化,组成一个系统,并需要生成 bitstream。

在这里插入图片描述
由于本人数电知识还是三年前所学,盲目相信了官方说法,直接将引脚绑定文件导入。然而在加入了TOP后,led仅仅只是一个模块,并不能直接与外部连接。所以在top模块的设计时,需要定义led所需输入输出,并将其在例化lde模块时与led的输入输出连接。此处需要注意的是,top模块的output led定义时不能采用reg型,它仅仅是将led的reg型输出通过wire与外部连接,所以在top中,led_top删去了reg,定义为wire型。由于与外部连接的是top模块,那么led.xdc文件中的引脚约束自然也就毫无意义。所以需要修改管xdc文件,将需要的led管脚全部改成top模块的管脚。

最终top.v如下:

module top(
input sys_clk_top,
 input rst_n_top,
output  [3:0] led_top
);
design_1_wrapper design_1_wrapper_inst();
led led_inst(
 .sys_clk(sys_clk_top),
 .rst_n(rst_n_top),
.led(led_top)
);    
    
endmodule

top.xdc如下:

set_property PACKAGE_PIN AB13 [get_ports {led_top[3]}]
set_property PACKAGE_PIN AA12 [get_ports {led_top[2]}]
set_property PACKAGE_PIN Y12 [get_ports {led_top[1]}]
set_property PACKAGE_PIN W13 [get_ports {led_top[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_top[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_top[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_top[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led_top[3]}]
set_property PACKAGE_PIN AA13 [get_ports rst_n_top]
set_property PACKAGE_PIN AB11 [get_ports sys_clk_top]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n_top]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk_top]

create_clock -period 40.000 -name sys_clk_top -waveform {0.000 20.000} [get_ports sys_clk_top]

其余文件不做修改,至此PL端的编写已经完成,烧写到开发板运行正常,可以看见开发板led灯闪烁。接下来是PS端的配置。PS端的配置其实很简单,但是这里有一个误区很容易掉进去,本人在此处浪费了不少时间。由于教程中hello是直接通过创建APP工程导入,此处自然也通过创建APP工程创建,而这也导致出现问题。在创建APP工程的过程中,出现了

 ERROR :
org.eclipse.core.runtime.CoreException: CDT Project already configured

查阅资料发现这个问题的原因是自制IP,我并未完全理解其中原理,但是我观察到其实在创建APP工程时,其实是会先生成design的平台的,只是在后续创建hellosystem的时候,全面崩溃,导致平台也被删除。于是突发奇想,先只创建平台工程,在平台的基础上再创建一个APP工程hello,这时终于不再报错了,按流程烧写到开发板可以同时看到led闪烁和串口打印helloworld,至此,PL端与PS的同时使用正式试验成功,过程并不容易。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值