APP下载

基于FPGA片内存储器读写控制与仿真

2018-05-14王晓鹏

农村经济与科技 2018年14期

王晓鹏

[摘 要]如今在FPGA系统设计当中,系统的复杂程度越来越高,对内存的要求也越来越高,综合体积、容量等都要考虑,DDR2已成为FPGA系统的首选。本文档以AX515开发板为例,为大家介绍ALTEMPHY IP核的设置步骤,DDR读写和控制及仿真的方法。

[关键词]FPGA;ALTMEMPHY;DDR2

[中图分类号]TP333 [文献标识码]A

1 AX515 DDR2原理图

在进行片内 DDR2读写控制和 设计时,FPGA 的管脚分配要加以注意,不能随意分配。在 AX515 开发板上使用 FPGA 的 Bank3 和 Bank4 要跟 DDR2 连接,两个 Bank 的 IO 电压都为 1.8V,这里使用 Bank3 的 2 个区域 DQ3B 和 DQ5B 來连接 DDR2 的数据,使用 DQ3B 连接 DDR2 数据的高 8 位DQS1 和 DM1; 使用 DQ5B 连接 DDR2 数据的低 8 位,DQS0 和 DM0。在每个区域内 DQS 和 DM 的引脚是固定的,数据 DQ 是可以交换的,但 DQ3B 和 DQ5B 之间不允许交换。

AX515 开发板上使用了 Micron DDR2 的颗粒 MT47H64M16, 此 DDR 芯片的容量为 1Gb。DDR2和 FPGA 之间的连接的数据宽度都为 16bit,开发板板上对 DDR2 的地址线和控制线端接电阻,以保证信号的质量。

2 ALTMEMPHY IP 核设置

ALTMEMPHY IP 控制器是 ALTERA 公司为用户提供的一个 DDR 控制的 IP, 这样用户即使不了解 DDR的控制和读写时序也能通过 ALTMEMPHY IP 控制器方便地读写 DDR 存储器。其步骤是首先在 Quartus 里新建一个项目并命名,选择菜单 Tools->MegaWizard Plug-In Manager 打开 IP 生成向导,在 IP 向导界面的第一页选择默认的 Create a new custom megafunction variaion, 在 IP 向导界面的第二页的 IP 列表中选择 External Memory/DDR2 SDRAM 目录下的 DDR2 SDRAM Controller with ALTMEMPHY,然后在“What name do you want for the output file?”栏中输入 IP 存放的目录及名称,然后在工程目录下新建了一个目录 ipcore 用于存放输出的文件。

打开 Preset Editor 设置 DDR 的参数,这里的 DDR2 的参数设置分为 3 种:DDR2 SDRAM 属性设置,DDR2 SDRAM 初始化选项和 DDR2 SDRAM 时序参数设置,修改 Row address width 行的参数,完成后保存;在 Board Settings 里输入电路板设置参数来消除板级时序影响,保留默认的设置即可。在 Controller Setting 里设置 DDR 控制器点击下一步,点击 Finish 按钮完成 DDR2 IP 的配置。

3 编译文件并仿真

项目中添加 ddr2_example_top.v设置为 top 文件,打开菜单 Tool->Tpin_assignments.tcl 文件并运行配置 ddr Pin 脚的电平约束,打开 Pin Planner 来具体配置一下 FPGA 的管脚约束,管脚的约束必须和开发板的硬件设计一致,这里我们设置 test_complete 信号连接到 led0 上,如果 led0灯熄灭,说明 ddr 测试完成,编译 ddr2_example_top 顶层文件并生成 sof 文件。

仿真 DDR2 程序要用 ModelSim AE 或者 ModelSim SE 软件, 不要使用只支持单语言仿真的软件,仿真步骤为:

选择菜单 Assignments->Settings, 再在Category目录下选择 Simulation。在右边 Tool Name 栏选择 ModelSim, 在Settings里选择Compile, 再点击右边的Benches按钮。在Bench Settings 界面里输入ddr2_example,再在simulation files 里添加软件生成的测试文件 ddr2_example.v和ddr2 的模型文件 ddr2_model.v。

点击确认按钮返回 Quartus 开发环境,单击菜单 Tools->Run Simulation Tool->RTL Simulation 调用 ModelSim,ModelSim就会首先编译 Altera 的库文件,编译完成后ModelSim自动开始仿真DDR2, 对DDR2的每个Banks进行读写操作,仿真结束后显示“SIMULATION PASSED”在波形图上,我们可以看到具体的DDR2的仿真波形,仿真接收后其信号变大,说明 DDR2的仿真成功。

4 结论

到此为止,DDR2 的读写测试和仿真全部完成,AX515 开发板的 DDR2 部分能够稳定的工作在166.7Mhz 时钟频率上,因为 DDR2 采用上下沿读写数据,所以数据读写传输数率可达到 330Mhz。本实验的 mem_burst_v2 模块很重要,它简化了我们对 DDR2 IP 接口和时序读写控制的难度,从实验仿真现象来看,与预期结果一致,有一定的实用参考价值。

[参考文献]

[1] 夏于闻.Verilog数字系统设计教程[M].北京航空航天大学出版社,2010.

[2] 薛小刚.FPGA/CPLD设计指南[M].人民邮电出版社,2008.