four0clock 发表于 2010-7-8 11:53:24

关于DATAES(多时钟域数据转换) 求助 急

本帖最后由 four0clock 于 2010-7-8 12:25 编辑

题目是这样:输入是66MHZ的8BIT*8CLK的数据INDATA,转化为40MHZ的16BIT*4CLK的数据OUTDATA输出。输入数据帧由SOF信号引导,由DATAEN使能每一位数据的输入。输出数据帧由FP信号引导。输出有效标志位为VALID。
    小弟刚上手学习FPGA,诸多地方理解不够详尽,希望有高手或做过此题的前辈在此指点。本人已将本题基本构架搭出:三个模块,输入buffer,双口RAM,输出buffer。目前问题的关键在于双口RAM的读写地址及使能端的控制信号。
    进过时域的分析,得出一个结论双口ram的最大可能buffer值为8+66*4/40=14.6,即正常情况下最大当第15个数据写入前能开始输出,且输出频率(40/4=10MHz)>输入频率(66/8=8.25MHz)。即所需BUFFER最大值为14,选用的BUFFER值为16。
    这样会导致双口RAM里最多存有2帧数据。问题是这样子,输出数据帧引导信号FP有可能会出现错误的情况,导致FP≠4CLK(正常情况为4CLK)。此时,如何去检测FP恢复正常时,应该去读双口RAM中的前8位数据,还是后8位数据。
页: [1]
查看完整版本: 关于DATAES(多时钟域数据转换) 求助 急