我们可以从下面的几点来分析一下pci:
1 、首先,pci系统是一个同步时序的体统,而且是common clock方式进行的。
2、 pci的电平特点是依靠发射信号叠加达到预期的电平设计。
3 、pci系统一般是多负载的情况,一个pci的桥片最多按照pci的规范可以带6个负载(好像一般系统也不会操作5个)。
4、 pci的拓扑结构可以是菊花链等多种拓扑结构,选择什么样的拓扑结构需要根据系统的布局和仿真结果进行设计。
5、 另外pci的ad信号线是双向的,需要在布局和仿真的时候关注pci的slave和master之间的关系。
指导了上面的几个问题我们可以根据pci规范以及pci的仿真结果大致得到下面的几个约束:
1 、pci的各个时钟之间的skew不要大于2ns。
2 、pci的flight time不要超过10ns(自己拿一个系统计算就知道为什么这样规定了),这个是针对33m pci进行越是的,这个延时只的信号从一个设备传输到另一个设计后,经过反射回到最初的芯片的传输延时,包括,pcb走线延时,和因为驱动器buffer(包括拓扑)造成的信号畸变的延时。
3、 pci的阻抗设计需要根据实际的系统进行仿真决定,pci规范的推荐值在50-110ohm之间。
4 、需要考虑一些特殊的信号走线的延时,比如req#。可以查一下规范我记着应该有特殊的要求。
5 、pci规范上面规定的2.5"和1.5"的大小那是为了规范各个不同的pci厂家的规范进行的。如果你在系统的板上面进行设计,只要计算的时序满足要求就可以了。
6 、如果存在pci的桥片,这些桥片一般都会通过pll或者dll的时钟调节pci设计的setup和hold时间,这些时钟的处理可以根据实际的芯片进行调整,一般的要求是延时和pci clk的一样,记住这里的延时不仅仅是指pcb走线的延时。
7 、如果你设计的是cpci系统,终端电阻是需要考虑的。大家如果有研究就会发现cpci系统的槽间距是有要求的,好像是0.8",为什么?从时序和pci信号反射的角度考虑,而且需要仿真决定stub长度以及电阻的大小。 |