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

同步设计与异步设计

时间:10-02 整理:3721RD 点击:
有同步逻辑异步逻辑,同步电路异步电路,那同步设计与异步设计之间区别呢?

同步设计实际上就是选择器,异步实际上是用的寄存器的复位端


先谢谢小编。
个人愚笨  还不是很明白。换个问法:1.网上说“同步逻辑是时钟之间有固定因果关系”,这个“因果关系”是?2.一个设计中两个模块,module1使用clk1,module2使用clk1分频产生的clk2,两个模块的寄存器都是时钟沿触发。这个是同步设计吗?
3.module1使用clk1,寄存器都是时钟沿触发。module2也使用clk1,有的寄存器不是时钟沿触发。这个是同步设计吗?



    同步设计,时钟之间满足确定的相位关系,都可以当做同步时钟来处理,但是要保证低速率时钟能采集到高速率时钟域的信号。
   异步,时钟没有确定的相位关系,需要通过 打拍,AFIFO,DMUX等电路做跨时钟域处理。



    问题2,可以设计为同步电路,但是快时钟发出端口的信号到慢时钟,时间要留够。也可以当做异步处理,就是信号打拍,FIFO等处理。
   问题3,不明确相位关系的时钟,都要当做异步设计

同步复位设计
always @ (posedge sys_clk) begin
     if(reset)
          cnt <= 0;
     else
          cnt <= cnt + 1;
end
异步复位设计
always @ (posedge sys_clk or posedge reset) begin
        if(reset)
            cnt <= 0;
        else
            cnt <= cnt + 1;
end

异步的时候,时序由你自己保证
同步的时候,时序工具可以帮你保证

谢谢各位指点

谢谢!

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

网站地图

Top