设计人员享有完全的灵活性,可进一步修改 RTL 代码。与提供“黑匣子”实现方法的其他解决方案不同,此设计中的代码未加密,设计人员完全可以对设计进行任意修改和进一步定制。输出文件按模块分类,这些模块被应用于此设计的不同构建模块:用户界面、物理层、控制器状态机等等。因此,设计人员可选择对控制组存取算法的状态机进行自定义。由 MIG 工具生成的 Virtex-4 和 Virtex-5 DDR2 的组存取算法彼此不同。Virtex-5 设计采用一种最近最少使用 (LRU) 算法,使多达四组中的一行总是打开,以缩减因打开/ 关闭行而造成的开销。如果需要在一个新组中打开一行,控制器会关闭最近最少使用组中的行,并在新组中打开一行。而在 Virtex-4 控制器实现中,任何时候只有单个组有一个打开的行。每个应用都可能需要有自己的存取算法来最大化吞吐量,设计人员可通过改变 RTL 代码来修改算法,以更加适合其应用的访问模式。
修改可选代码之后,设计人员可再次进行仿真,以验证整体设计的功能。MIG 工具还可生成具有存储器校验功能的可综合测试平台。该测试平台是一个设计示例,用于Xilinx 基础设计的功能仿真和硬件验证。测试平台向存储控制器发出一系列写和读回命令。它还可以用作模板,来生成自定义的测试平台。
设计的最后阶段是把 MIG 文件导入 ISE 项目,将它们与其余 FPGA 设计文件合并,然后进行综合、布局和布线,必要时还运行其他时序仿真,并最终进行硬件验证。MIG软件工具还会生成一个批处理文件,包括相应的综合、映射以及布局和布线选项,以帮助优化生成最终的 bit 文件。