1、前级(如另外一个芯片,PCB布线,驱动接口元件)输出的延迟是随机的,或者有可能变动,如何在后级完成数据的同步?
答:在前级后加入RAM或FIFO缓存在读取的方法。这种方法的关键是必须要有堆栈满和空的指示信号来管理数据的读入和读取,以防止数据的丢失。
2、数据有固定的帧格式,数据的起始位置如何确定?
答:1)增加一条表示数据起始位置的信号线;2)对与异步系统,则常常在数据中插入一段有特殊码型的同步码(同步头),接收端通过相关运算检测到同步头。
3、级联的两个模块的基本时钟是异步时钟域的,如何把前级输出的数据准确地传送到下一级模块中?
答:1)同频率时:可以直接用本级芯片的主时钟对输入数据寄存器采样,完成输入数据的同步;
2)异步时钟时:特别是当两个时钟的频率不是由同一石英晶体分频产生的,则起码对输入做两次采样寄存,但是这样会读入错误数据。为了避免异步时钟时发生错误,我们经常使用双口RAM(DPRAM)、FIFO缓存的方法完成异步时钟域之间的数据传输。
4、总结
产生这种可靠的已同步时钟为基准的产生多个使能控制信号的电路就是下面要讲解的同步状态机。外部的异步信号若要高度可靠地引入芯片电路,必须符合一定的要求,并必须经过认真的同步处理。否者很容易出现电路隐患,审计工作者必须严格设计,小心谨慎。
made by qidaiYMM, your comment is appreciated.
email:1519882610@qq.com