首页 > 其他 > 详细

我要做CPU_4

时间:2020-03-20 13:39:39      阅读:41      评论:0      收藏:0      [点我收藏+]

我要做CPU_4

1.下面来分析数据在不同时钟域之间同步的问题

dbclk时钟域的debounce_d2寄存器(多bit)

 技术分享图片

 

 经过组合逻辑,变为int_level_sync_in

 技术分享图片

 

进入pclk_int时钟域进行同步

Int_level_sync_in本身就是组合逻辑,同步到pclk_int时钟域本来就只需要打两拍就够了。

 技术分享图片

 

 不进行时钟同步:

 技术分享图片

 

此处有一个疑问,本人也不是很理解,也从未见过?

就是这个debounce_d2是多比特的寄存器 ,dbclk时钟域,然后通过组合逻辑转成了int_level_sync_in(reg)。但这个int_level_sync_in 寄存器直接用pclk_int 时钟打了两拍到了pclk_int这个时钟域。多比特的寄存器跨时钟域还能这么搞吗?也许这其中的玄机在输入信号debounce操作。

 技术分享图片

 

将得到的int_level信号再用时钟pclk_int打一拍,然后按位进行异或运算,可以检测出int_level信号的边沿。

 技术分享图片

 

此处是输出在int_level跳转出的int_level值。心得体会:想要截取某一信号的哪一部分,首先分析这个信号的规律,然后做出相应的控制逻辑使能信号,最后在做我们想要的输出信号。

 技术分享图片

 

2. gpio_rx_data又一个数据流处理路径

GPIO_EXT_DATA_SYNC_EN宏定义使能时,gpio_rx_data数据在pclk时钟域打两拍,然后与gpio_ext_data_tmp相连,如果宏定义没有被使能,则直接与之相连。

 技术分享图片

 

数据发送使能

输入信号的环出操作

 技术分享图片

 

使用发送使能信号对gpio_ext_data进行输出控制

这里其实就是一个数据的环出操作。

 技术分享图片

 

gpio_int_status_level选择,这里并不知道为什么是这么个逻辑,首先需要进一步弄清楚外部输入控制信号是什么意思,gpio_sw_dir.

技术分享图片

 

不晓得要检测这个边沿搞什么用。

 技术分享图片

我要做CPU_4

原文:https://www.cnblogs.com/chensimin1990/p/12530392.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!