对于FPGA来说,要尽可能避免异步设计,尽可能采用同步设计。
同步设计的第一个关键,也是关键中的关键,就是时钟树。
一个糟糕的时钟树,对FPGA设计来说,是一场无法弥补的灾难,是一个没有打好地基的大楼,崩溃是必然的。
具体一些的设计细则:
1)尽可能采用单一时钟;
2)如果有多个时钟域,一定要仔细划分,千万小心;
3)跨时钟域的信号一定要做同步处理。对于控制信号,可以采用双采样;对于数据信号,可以采用异步fifo。需要注意的是,异步fifo不是万能的,一个异步fifo也只能解决一定范围内的频差问题。
4)尽可能将FPGA内部的PLL、DLL利用起来,这会给你的设计带来大量的好处。
5)对于特殊的IO接口,需要仔细计算Tsu、Tco、Th,并利用PLL、DLL、DDIO、管脚可设置的delay等多种工具来实现。简单对管脚进行Tsu、Tco、Th的约束往往是不行的。
ok,先说到这里,下次再讲。
用户1373642 2007-11-7 14:17
受益了
ash_riple_768180695 2006-11-23 16:42
好文,投你一票。
个人认为FPGA还是不要说时钟树的问题为好:FPGA内部有专用的时钟通路(skew很小),是通过布局布线工具把时钟信号分配到这些通路上的;通常ASIC要做时钟树,可以得到skew较小的时钟。