加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ZYNQ—7020进行调试时复位PL

(2017-05-29 17:03:07)
分类: ZYNQ

    最近在调试zynq7020的板子,但是只要点击触发按钮,就会只出现最后一拍数据,所以想能不能复位PL看到第一拍的数据啊?(体想法就是先点击触发按钮,然后进行PL复位,这样会出现第一拍波形)。研究了几天最终出了结果,觉得有点意义,所以就记下!

这种操作我一共想到了两种方法(如有其它请指教):

第一种方法:制作一个IP核,通过PS(在SDK中写寄存器的方法)给该IP核中的寄存器写入一个值,让该IP核输出一个信号(高电平或者低电平),并将此信号直接连接到PL的复位端,依次来复位PL。具体结构架和SDK中的代码如下

 

http://s3/mw690/006F6HhWzy7bsg8RiH812&690 

http://s6/bmiddle/006F6HhWzy7bsgeK52585&690 

第二种方法:直接利用zynq模块中的FCLK_RESET0_N信号来使PL复位。具体的就是使FCLK_RESET0_N输出一个高电平信号来使PL复位。这种方法比较简单!但是考虑的事情比较多(下面会讲到)。

具体的结构和SDK中的代码如下:

 

http://s8/mw690/006F6HhWzy7bsgizGhV87&690 

http://s6/bmiddle/006F6HhWzy7bsgoidbD75&690 

最后的调试波形如下:

http://s3/mw690/006F6HhWzy7bsgrqQ7M12&690 

记得上面提到这种方法考虑的事情比较多:主要是因为zynq的寄存器具有“写保护”,如果直接将数据写入FCLK_RESET0_N对应的寄存器中,则无法实现想要的功能。所以在进行对FCLK_RESET0_N的对应寄存器写数据之前应该把“写保护”模式关闭,然后再将数据写入FCLK_RESET0_N的寄存器中,这样才能有效实现想要的功能。最后不要忘记再将“写保护”模式开启。

对应的开启和关闭“写保护”的寄存器地址以及FCLK_RESET0_N的寄存器地址,在UG585文档中都有相应的描述。他分别对应的寄存器名称为:SCLR_LOCKSCLR_UNLOCKFPGA_CLR_CTRL。下面我也将对应的寄存器内容进行了截图,以供参考!

http://s9/bmiddle/006F6HhWzy7bsgQMHlm18&690 

 

http://s7/bmiddle/006F6HhWzy7bsgvqGTIc6&690 

http://s2/bmiddle/006F6HhWzy7bsgxmmBz51&690 

http://s6/bmiddle/006F6HhWzy7bsgytmvzb5&690 

http://s10/bmiddle/006F6HhWzy7bsgzj72Fd9&690 


ZYNQ—7020进行调试时复位PL          ZYNQ—7020进行调试时复位PL                    

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有