异步时序通信都有哪几种方法
uart算是异步,但是两边的baudrate是事先订好的,所以没有普遍性,而且速度很低,高速是不能这么干的。
SPI是有时钟的,肯定不是异步。
不知道你的异步怎么定义,像usb这些也是没有传时钟的。
我想说的就是在不同时钟域之间进行数据交换,这样的异步通信。
方法很多,但要具体情况具体分析。
单bit信号可以扩展成电平,采上升/下降沿;
多bit信号如果要pipe,可以用fifo;如果不要pipe,可以用使能信号、握手。
再复杂一点可以使用通讯协议,就海了去了。
对于单bit的,我也想到过用时钟沿进行同步,但是在快时钟到慢时钟,至少要同步几拍呢?您有没有什么相关的资料啊
signal_a是clk_a (快时钟)的脉冲信号。
reg_a1;reg_a2;reg_a3;
always @(posedge clk_a)reg_a1 <=signal_a;
always @(posedge clk_a)reg_a2 <=reg_a1;
always @(posedge clk_a)reg_a3 <=reg_a2;
wire sig_a = reg_a1 | reg_a2 | reg_a3;
reg sig_b1;
reg sig_b2;
reg sig_b3;
always @(posedge clk_b) sig_b1 <= sig_a ;
always @(posedge clk_b) sig_b2 <= sig_b1 ;
always @(posedge clk_b) sig_b3 <= sig_b2 ;
wire sig_b = sig_b2 && ~sig_b3;
这样就会同步过来了
sig_a的拍数需要知道clk_a, clk_b时钟的频率关系吧
异步fifo和握手信号
