同步设计与异步设计
同步设计实际上就是选择器,异步实际上是用的寄存器的复位端
先谢谢小编。
个人愚笨 还不是很明白。换个问法: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
异步的时候,时序由你自己保证
同步的时候,时序工具可以帮你保证
谢谢各位指点
谢谢!
