| 基于简单的FIFO提供数据宽度转换 |
| 类别:电子综合 |
许多设计需要FIFO弹性缓冲器,在不同时钟速率的次系统和通道的需求中形成桥梁。然而,在某些应用中,需要FIFO缓冲器实现数据转换。一个例子是,通过FIFO缓冲器,将8位ADC连接到16位数据总线的微处理器(图1)。不幸地,大部分普遍使用的FIFO缓冲器不适于这个应用。本设计方案描述了为不同宽度读写数据端口的数据宽度转换,怎样基于FPGA的FIFO实现共有时钟(同步)。可以使用Xilinx的Spartan II系列FPGA实现这种FIFO。这个方法使用了片上DLL(延迟锁相环)宏、分布式存储器和简单的计数器逻辑(图2)。
FIFO输入数据的宽度为8位;然而,输出数据的宽度为16位。在读写动作中只使用一个共有时钟。关键是为了使用时钟DLL,它不只是最小化时钟脉冲相位差,还提供双倍输出的时钟频率。所以,可以实现输入数据的双重数据率,write_data_in。通过监测DLL输出时钟的样本,DLL可以补偿走线网络的延迟,有效地消除外部输入端口到设备中单独时钟负载的延迟。替代使用的阻塞存储器,本设计在FIFO中使用分布式存储器保存数据。实际上,选择阻塞存储器还是分布式存储器,依靠系统中FIFO的重要性。如果不是很关键,可以考虑使用分布式存储器。 存储器可以放在FPGA的任何位置。如果坚持使用阻塞存储器,可以简单的改变VHDL代码。可只使用一些RAM宏来替代分布式存储器。点击下载FIFO 的VHDL代码。FIFO一般使用Gray代码计数器或线性反馈移位寄存器作为读或写计数器。为实现逻辑大小的最小化,本设计只使用两个从0到7的整数和带进位的计数器。当读和写计数器相等,且进位为0时,FIFO为空。当写计数器加1等于读计数器,且进位为1时,FIFO为满。
|
相关技术资料
- 海尔空调制冷故障维..
- 2008-1-25
- 大尺寸TFT显示器..
- 2008-1-27
- 利用DC/DC转换..
- 2008-1-27
- 电动车铅酸蓄电池的..
- 2008-1-27
- 大型搅拌站自动配料..
- 2008-1-27
- 城市和工业污水处理..
- 2008-1-27
- 开关电源的数字控制..
- 2008-1-27
- 精密的智能电池使充..
- 2008-1-27
- 基于DSP控制的2..
- 2008-1-27
- 增强型运营商级多服..
- 2008-1-27
- 高效CCD数码相机..
- 2008-1-27
- Atheros 单..
- 2008-1-27
- Philips 推..
- 2008-1-27
- Fujitsu 数..
- 2008-1-27
- 如何给PCI卡选用..
- 2008-1-27
- A/D转换芯片的测..
- 2008-1-27
- 基于CTl技术的交..
- 2008-1-27
- MMIC和RFIC..
- 2008-1-27
- 利用皮弹服务器进行..
- 2008-1-27
- 白色发光二极管及其..
- 2008-1-27



