标签:
无标签
对于这个问题,网上有很多讨论。在这里总结一下,提醒自己。
异步复位:
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厂商对两者都有很好的支持。
系统分类:
CPLD/FPGA | 用户分类:
ASIC DESIGN | 来源:
原创 | 【推荐给朋友】