微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog中标量与矢量数据的同步

verilog中标量与矢量数据的同步

时间:10-02 整理:3721RD 点击:
跨时钟域时,连续的数据流或者包可用FIFO做缓冲,那么像状态标志或控制信号之类的变化不频繁的信号,应该不用FIFO用个二级触发器就可以同步了。
      但是这种变化不频繁的一位的标量和多位的矢量数据在用二级触发器时有什么不同吗?

标量数据肯定是用两级触发器同步可以做到,矢量同样可以做到
但是矢量位宽比较大时,就要考虑换一种方式了。比如如果有使能信号,就把使能信号同步过去就可以了,矢量数据可以选择不同步,这样做的前提是矢量信号在使能信号同步期间以及目的时钟的沿前后不会发生变化,也就是保证矢量信号相对稳定。

矢量数据如地址信号最好采用格雷码编码后,再传递。
原理可以看看跨时钟域方面的资料



        恩,您说的跟我在看的项目代码里一致,估计就是这样的了。您描述之后对代码了解更清晰了,呵呵。非常感谢您啊。



   
    奥,是必须的还是最好用这个?原理我明白的,只有一位变化。



    您好,还想再问一下,矢量数据如果直接用二级触发同步可以吗?

这个肯定没有问题的,只是太浪费资源了



    恩。明白了,非常感谢!嘿嘿

矢量数据最好不用两级D触发器的方式同步,因为矢量数据中每根信号的延迟是不同的,在下一个时钟域采样的时候,有些信号已经翻转,但有些信号可能还没有翻转,导致采集的数据错误!



    哦,好像也有道理。那就避免直接把矢量二级触发了,还是产生个同步使能信号比较好

学习了!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top