- 积分
- 12
- 在线时间
- 34 小时
- 最后登录
- 2010-12-25
- 阅读权限
- 40
- 精华
- 0

- UID
- 176822
- 帖子
- 13
- 精华
- 0
- 经验
- 12 点
- 金钱
- 12 ¥
- 注册时间
- 2010-2-27
|
如果是这样的话,音频CD数据是44.1K,16bit,2通道,即每秒的数据流量是44100频率×16比特×2通道=1411200bit/秒,一张碟子74分钟的数据量为74分钟×60秒×1411200bit/秒=6,265,728,000bit,考虑到绝大多数的普通晶振误差为30ppm,即每百万个脉冲有正反30个脉冲的误差,
则播放一张CD,最多有 6265,728,000/1000000*30=187,971个比特的误差,即23.496K字节的误差,也就是说,如果FIFO的容量为23.496K的两倍,则可保证在播放一张碟子的时候,不会给拉破或溢出。
那么,也就是说,如果能保证有64K的FIFO,则可完全将输入与输出时针隔离。那么使用4片32K的SRAM,即可完成该功能,流程为,开始播放后,先通过单片机控制,将SRAM的第1,第2片满载数据,然后FPGA开始向第1片SRAM读取数据,如果数据输入频率较高,当第一片SRAM中的数据被取完后,单片机已经将第3片SRAM写满,开始对第4片SRAM写入,则第4片SRAM可以看作是一个缓存的FIFO,容量为32K.如果输入频率较慢,当FPGA将第1片SRAM的数据取空后,单片机还没有将数据写满第3片SRAM,FPGA开始读取第2片SRAM的数据,我觉得,利用这种方式可能会比内建FIFO要更可靠,由于存取逻辑的简单,时序的抖动也会跟小。
我把这设想提出来,是想跟大家讨论一下,这个方式是否有什么问题。技术是越讨论越明白,希望能得到大家的指点。要是可行的话,我也想抽点时间,弄块电路玩玩。 |
|