对于这个问题,网上有很多讨论。在这里总结一下,提醒自己。
异步复位:
always @(posedge clk or posedge reset)
begin
if(reset)
// reset逻辑
else
// 同步逻辑
end
同步复位:
always @(posedge clk)
begin
if(reset)
// reset逻辑
else
// 同步逻辑
end
ASIC设计中,同步复位要比异步复位多耗资源,但是在FPGA中两者差不多,因为FPGA中的寄存器同步复位和异步复位都提供资源。异步复位会对复位信号上的毛刺产生错误复位。
在ASIC设计中,通常的做法是使用异步复位,在异步复位信号的根部进行总体同步。
2007年十月份,由于工作安排参加了IBM的芯片后端process的培训,了解了IBM关于后端process的流程、阶段定义和tool chain。当问到IBM的工程师关于异步复位还是同步复位的问题时,他们的回答是都可以,对于IBM的technology来说两者都没有问题,不需要设计者特别考虑。真是高人呀!看来二者的争论是没有多大必要的了。一般的foundry厂商对两者都有很好的支持。
用户75640 2009-5-2 17:58
用户162489 2009-4-9 19:16
用户75640 2009-3-20 20:27
用户162489 2009-3-13 19:30
用户1612138 2008-4-4 10:13
用户75640 2008-2-13 22:50
用户13179 2008-1-22 21:04
看到你的Blog非常受启发!我是一个大学学生,专业是电力电子。打算以后在嵌入式系统这个方面深入学习,但是却不知道从何做起。以后我会常来你的Blog看的~
另外,我和几个同学正在做一个智能避障小车,想要找一个直流电机驱动芯片,希望发热不会太大,价格不太贵,能请你比较一下常用的驱动芯片的特点吗?
THX!
用户119502 2007-10-22 11:13
用户75640 2007-8-25 09:43
用户304942 2007-8-18 10:33