微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 异步时序通信都有哪几种方法

异步时序通信都有哪几种方法

时间:10-02 整理:3721RD 点击:
如题,我想知道异步时序通信常用的都有哪几种方法?我之前做过一个异步时序的FIFO。想问问UART,SPI算吗?还有没有其他的。还有在异步时序中,最重要的是什么?求大神指教~

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和握手信号

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

网站地图

Top