取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
wangdong_nudt
Visitor
Visitor
1,623 次查看
注册日期: ‎06-02-2019

关于使用IP核Clocking Wizard v5.4的AXI lite端口配置动态时钟,时钟锁定,但是输出频率错误?

问题描述:

工程中使用IP核Clocking Wizard v5.4的AXI lite端口配置动态时钟,输入时钟为25.6MHz,输出时钟0为25.6MHz,输出时钟1为51.2MHz,输出时钟2为51.2MHz,输出时钟3为51.2MHz,进行上千次配置之后,会出现输入时钟为25.6MHz,输出时钟0为102.4MHz,输出时钟1为102.4MHz,其他的没监测。

监控措施:

1、回读配置的寄存器,发现Clocking Wizard v5.4内部寄存器的值和配置的一致;

2、断开输入的25.6MHz(输入IP核的时钟为0),然后再恢复成25.6MHz,输出时钟正常,输出时钟0为25.6MHz,输出时钟1为51.2MHz,输出时钟2为51.2MHz,输出时钟3为51.2MHz。

3、没有重复2的过程,将寄存器组再次进行配置,时钟正常。

请问有哪位大神能知道这是哪里出问题了呢?万分感谢!

0 项奖励
10 回复数
shengjie
Moderator
Moderator
1,527 次查看
注册日期: ‎07-01-2019

你好 @wangdong_nudt ,

 

pg065的53页有一个编程示例,可以参考一下示例中配置寄存器的步骤。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
clocking wizard.jpg
0 项奖励
wangdong_nudt
Visitor
Visitor
1,337 次查看
注册日期: ‎06-02-2019

谢谢,你说的这个方法是 Example for Dynamic Reconfiguration through AXI4-Lite方式的,我工程中用了 Example for Dynamic Reconfiguration using Write to DRP方式(附件两幅图),我需要改变频率时,我的操作步骤如下:

1、把0x300~0x358寄存器组写入时钟IP核;

2、向0x35C写入0x03,启动发送;

3、等待锁定信号。

请大神指点,那里可能还存在问题呢,谢谢!

另外,pg065手册中给出了这么一段话,这个的应用场景是什么呢?谢谢大神!

Note: For Clocking Wizard v5.2 and later, you need to write 0x00000111 followed by 0x00000010 into the Clock configuration register 23, to consolidate the redundant bits IP has upgraded. Now, you can just initiate the transaction by writing 0x00000011 to the clock configuration register 23, but the
backward compatibility still exists.

图片1.PNG
图片2.PNG
0 项奖励
shengjie
Moderator
Moderator
1,312 次查看
注册日期: ‎07-01-2019

你好 @wangdong_nudt ,

 

你按照这个步骤测试结果有问题吗?

有一处需要注意的是,需要修改某个寄存器的话,也是要将所有的寄存器重新配置一遍的,见文档20页描述:

Note: You need to write all the register sets with the required values, even if you want the change only in one particular register.

你提到的这一段话是针对Example for Dynamic Reconfiguration through AXI4-Lite方式的,你的应用场景不需要考虑这个。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
wangdong_nudt
Visitor
Visitor
1,257 次查看
注册日期: ‎06-02-2019

谢谢,按照这个流程配置仍然存在问题,上千次配置出问题之后,输入时钟是25.6MHz,四路输出时钟均为102.4MHz,不是我的期望值。出问题之后,我查询过clk_wiz v5.4的IP核里寄存器的值,和我写入进去的值是一样的,感觉是复位了,写入更新寄存器的值没有生效,也就是给0x35C写入0x03没起作用,在将所有的寄存器的值打一遍后就正常。什么原因会导致时钟IP核复位呢?我没有复位操作,所以这点我没想明白。比如在配置过程中输入的25.6MHz的时钟突然断再恢复?

图片3.PNG
0 项奖励
shengjie
Moderator
Moderator
1,238 次查看
注册日期: ‎07-01-2019


在将所有的寄存器的值打一遍后就正常。

这一步操作是指所有相关的寄存器全部重新配一遍吗?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
wangdong_nudt
Visitor
Visitor
1,218 次查看
注册日期: ‎06-02-2019

是的,把这个过程重新来一遍

1、把0x300~0x358寄存器组写入时钟IP核;

2、向0x35C写入0x03,启动发送;

3、等待锁定信。

感谢指导!

0 项奖励
shengjie
Moderator
Moderator
1,197 次查看
注册日期: ‎07-01-2019

你好 @wangdong_nudt ,

 

如我前面一条帖子所说,这个IP只要修改一个寄存器,就要将寄存器组全部配置一遍。文档中有这一部分描述:

 

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
clocking wiz.jpg
0 项奖励
wangdong_nudt
Visitor
Visitor
1,050 次查看
注册日期: ‎06-02-2019

谢谢,我是两组寄存器:

1、输入25.6MHz,输出0是25.6MHz,输出1是51.2MHz,输出2是51.2MHz,输出3是51.2MHz;

2、输入32.512MHz,输出0是32.512MHz,输出1是32.512MHz,输出2是32.512MHz,输出3是32.512MHz;

这两组寄存器值不一样,我都是整个寄存器组(0x300~0x358)写入时钟IP核,下午又做了实验,当出现输出频率不对时,读取时钟IP核里的寄存器的值和我配置的一样,但就是频率不对,然后,我给0x035C写入0x03后,输出频率正常,可以确定就是没更新成功,为什么没有更新成功呢?跟那里有关系呢?求大神指点!

 

0 项奖励
Sparkwang1
Contributor
Contributor
417 次查看
注册日期: ‎06-18-2020

老哥,你问题解决了吗??

0 项奖励
shengjie
Moderator
Moderator
407 次查看
注册日期: ‎07-01-2019

抱歉才看到这个帖子 你可以看下PG065 page22的描述,之前配置的内容可以理解为写入了缓存中,但未生效,需要通过对0x35C这个寄存器写入0x3来讲配置信息导入,使其生效。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励