Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求比特位边缘检测信号快慢原理,dpv信号为什么能代表j信号的原理 #16

Open
XHX00008888 opened this issue Nov 30, 2023 · 2 comments

Comments

@XHX00008888
Copy link

您好,已star and follow,
在usbfs_bitlevel.v文件中,有如下代码段:
image
想请问您,在usb host中,我查阅的频率为48Mhz,而在本仓库的代码需要提供60Mhz,如果进行5分频,就是12Mhz,和usb host的频率不同步,希望您能解答一下我的疑问。
还有一个疑问就是dpv和dnv两个信号的代表的意义是什么,按照我的理解是代表在三种不同时钟下的j信号,但我不太明白其中的原理。

@nihaonihao996996
Copy link

您好,我也是最近刚上手这个项目,也产生了同样的疑问,dpv、dnv的具体含义是什么以及检测时钟过快过慢的原理。

@churchmice
Copy link

我来解释一下这个问题
用60M的过采样,实际上fs只有12Mbps,也就是说对于一个USB的bit有5个采样点,保存在dpl[4:0]里面,其中dpl[4]是第一个采样点,dpl[0]是最后一个采样点

假设一开始是完全对齐的,那我们就有dpl[4] == dpl[3] == dpl[2] == dpl[1] == dpl[0]
假设本地的时钟比较快,并且USB线上相邻的两比特发生了跳变,那会出现什么情况呢? 本设计考虑了两种

  1. 第一次采样的点还是旧值,但是后面四个采样点采样到的是新值,也就是dpl[4]!= dpl[3], 但是dpl[3] == dpl[2] == dpl[1] == dpl[0]
  2. 前两次采样的点都是旧值,但是后面3个采样点采样到的是新值,也就是dpl[4] == dpl[3], dpl[3] != dpl[2], dpl[2] == dpl[1] == dpl[0]

检测本地时钟慢的逻辑同理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants