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到来的。这样时钟沿就与数据变化边沿对齐了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本