Xapp134 Synthesizable High Performance SDRAM Controller
Source Files
Xapp134 is taken off from Xilinx public website. But the design is still in the Xilinx example designs.
C:\Xilinx\11.1\ISE\ISEexamples
Clock
设计使用两个DCM,其中一个DCM做external feedback,一个DCM做internal feedback,充分利用DCM的deskew功能,使得:
内部反馈那个DCM的时钟输出与FPGA时钟输入PIN相位对齐;外部反馈到后端设备的时钟与FPGA时钟输入PIN相位对齐。
这样,有四个点的时钟信号是对齐的:
-
FPGA CLK PIN
-
FPGA CLK_FB PIN
-
SDRAM CLK PIN (当FEEDBACK约束与实际情况相符时)
-
FPGA internal feedback DCM output after BUFG
设计的period周期为16 ns。External feedback设置为12 ns。其实板上的延时一般小于1 ns。
设置为12 ns主要是想将SDRAM端的CLK相位移到data的中间,保证最大的建立时间和保持时间。整个时序过程可以这样理解:
-
内部时钟0 ns变化
-
数据经过OBUF和板上延时,到达SDRAM DATA PIN时大约为4 ns,因为周期为16 ns,数据会保持到20ns。
-
由于FEEDBACK约束设置为12 ns,但是板上延时其实可以忽略不计,这样也就是说,SDRAM_CLK PIN的上升沿其实是在-12 ns或者4ns到来的。这样时钟沿就与数据变化边沿对齐了。