- 积分
- 203
- 在线时间
- 1116 小时
- 最后登录
- 2019-6-3
- 阅读权限
- 50
- 精华
- 0
- UID
- 94615
- 帖子
- 264
- 精华
- 0
- 经验
- 203 点
- 金钱
- 193 ¥
- 注册时间
- 2009-4-7
|
楼主 |
发表于 2010-10-27 10:26
|
显示全部楼层
睡一觉过来,真热闹,有讨论就好,总比帖子无声的沉掉要强。
---------------------
卡西利亚斯 :
“从你帖的手册上看FPGA的抖动小于50PS,通常情况下CPLD会更低,信号通道包含多个逻辑单元的确会累积时钟抖动,但在I2S输出CPLD前,用同步时钟信号对I2S信号锁存然后再输出,完成消除前期累积的时钟抖动,这是数字逻辑电路设计的基础。
这就是问题,既然是数字逻辑电路设计的基础,为什么你不懂?”
A:这种基础性的东西我已经设计在里面了,所以我才反驳你的观点“CPLD带来的端口抖动,最小也有300ps”。
---------------------
卡西利亚斯 :
“我觉得你有点技术,不妨就和你侃多几句。
既然你和时钟可以让源和终端同步,那么用源CD机的DSP芯片FIFO即可,信号到了终端DAC机,只需要做一次锁存就可以了,也就是说只需要对齐1个bit就可以了。完全可以用一个4040和几个74完成,没有必要把FIFO和CPLD搬出来”
A:我的技术如何,一点还是两点,在这个论坛上,我们任何人都没有资格去评论别人,都只是围绕技术展开讨论。
DSP芯片控制FIFO的输出时钟具有的抖动远远大于TCXO分频获得的时钟,所以我们能够观察到I2S数据流里偶尔出现一个bit时间周期以上的数据抖动,这个抖动不会时常出现,但通过特殊方法能够捕捉到, 在低质转盘上出现频率更高,FIFO就是用来缓冲一个bit时间周期以上的数据抖动;用“同步时钟信号对I2S信号锁存”是解决CPLD内部门电路前级固有抖动和传输过程中的抖动,这类抖动多在一个bit时间周期以下。
所以你说的“用一个4040和几个74完成”的方法,只能解决一个bit时间周期以下的抖动,不能解决长于一个bit时间周期的抖动。
至于你说的“没有必要把FIFO和CPLD搬出来。”,我不认为会使用可编程逻辑器件是很高深的技术,真正的高深是恰到好处的发挥器件特性去解决问题。
---------------------
卡西利亚斯 :
“现在你一个CPLD既完成分频,又要完成串到并,并到串,触发时序这么多事情的处理,其实也就是为了尽量减少数据的周期抖动。事实上只有LRCK的周期抖动才是最关键的,但是因为他还是由SCK分频得来,所以MCK生成器的性能和分频器的性能决定LRCK的相位噪音,而BCK只是为了读取数据,所以他有很大让步可以做。
按照你的做法,通过FIFO同步输入输出,肯定不会出现FIFO欠载或者过载的情况,所以我才说用一个锁存就可以了,这才是基础。”
A:“用一个锁存”只能解决一个bit时间以内的时钟抖动,如果出现大于一个bit时间的时钟抖动,LRCK再稳也没用。
在第一楼的系统简图里已经说明我的FIFO是“异步”的,不是你上面提到的“同步”。
---------------------
chenxiuping15 :
A:你的疑问在上面已经有回复。 |
|