3.3 24bit/16bit数据转换器的设计 [5] [6]
片外高速数据传输芯片为 16位输入数据总线 [4],而由 fpga内部读缓冲区读出的是 24位并行数据,因此需要将 24bit数据转换成 16bit数据再输出。考虑到传送 12个 16bit数据可以等效为 8个 24bit数据,故将数据输出时钟 Dclk用一个 0~11的计数器进行计数,然后取其中的 8个连续时钟读取 24bit数据,这样就解决了 16bit数据和 24bit数据在传输上时钟不匹配的问题。读取的 24bit数据随后被分成两个 12bit数据依次装入 16个 12bit移位寄存器中,再由 Dclk一位一位打出并拼装成 16bit数据,发送给帧同步产生及高速传输芯片控制器进行码头加载,将自己编写的 16bit数据头校验码以及其他一组信息码插入数据流中输出给高速数据传输芯片,完成整个数据转换和发送过程。
4.实际测试结果
用 TLK1501[4]高速数据传输芯片集成的数据接收端口接收其发送端传输的高速串行数据流,在芯片内部自解码之后再恢复成 16bit数据传给 fpga,通过比对发送数据和接收数据的一致性就可以对逻辑设计、时序等方面进行验证,以保证设计正确。在实际测试时,用一组设计好的 24bitDVI数据取代实际传输的像素信号,而其他同步信号则仍为实际 DVI同步信号,这样做的目的就是可以对发送数据进行控制,方便与接收数据进行比对,设计的发送数据为一串依次加“1”的规律 24bit数,因此如果接收回的数据信号仍为依次加 “1”的 24bit数,则说明逻辑设计和时序方面没有问题,设计方案可以用于实际操作中。
图四上为发送数据波形图,图六下为接收数据波形图。由图中对比可以看出,接收数据同发送数据均为依次加“1”的 24bit数据,实际测试结果证实整个高速实时数据传输系统设计满足设计要求,可以用于实际操作中。
5.结语
本系统在实际测试中,发送端数据时钟为 40MHz,由于高速数据传输芯片——TLK1501[4]可以传输 20倍频的串行数据流,因此实际在信道中传输的数据速度可以达到 800MHz,如此高的传输速度可以满足一般情况下的工程要求,而且本系统由于所选片外存储器的容量和操作速度上限制,没能将 TLK1501高速传输的特点充分发挥出来,相信在系统改进之后,传输速度达到 1G甚至更高的实时数据应该可以实现!
本文作者创新点:提出了一种片外 sram地址空间转换模式,将一维的存储空间抽象为二维存储,可以使视频象素点与存储空间一一对应;提出了一种 24bit/16bit转换模块设计方式。