这是本文档旧的修订版!
1、新建一个工程名为pll的工程,然后点击Tool →Megawizard Plug-In Manager,如图21.2所示。
2、在下面界面中保持默认,直接Next即可,如图21.3所示。
3、在该界面中选择双口RAM IP核、芯片类型、硬件描述语言类型及IP核相关文件存储位置,如图21.4所示。
4、在该对话框中选择真双口RAM(两个输入两个输出),存储深度以字节为单位,如图21.5所示。
6、在此对话框选择时钟信号输入方式、增加读使能信号,如图21.7所示。
9、选择读出的数据是新数据还是老数据,一般设置新数据(New Data),如图21.10所示。
//------------------------------------------------// //spi_ram //负责存储SPI通信的数据(具体的存储位置可通过spi命令寄存器设置) //双口RAM的缺点是与单口RAM相比,相同容量的RAM占用逻辑资源比较多。 //优点在于具有2个输入2个输出端口,两个端口都可用于输入输出,可实现同时读写,便于控制。 //数据从A端口写入,从B端口读出 spi_ram u0( .address_a(address_a), .address_b(address_b), .data_a(receive_byte), .data_b(8'd0), .inclock(wr_clk), .outclock(rd_clk), .rden_a(1'd0), .rden_b(rd_en), .wren_a(wr_en), .wren_b(1'd0), .q_a(a_dataout), .q_b(data_out) );
2、打开putty串口调试工具,打开设备管理器查看对应的端口信息,在putty中打开对应的端口,用于打印串口信息及控制RAM读写;
3、将编写好的FPGA代码进行编译,并下载到开发板中;
4、将编写好的ARM代码编译,并下载到开发板中,putty工具中会打印相应的SPI通信相关信息(若想多次测试,查看结果在putty中输入“test”即可);
5、观察实验现象及putty终端打印信息——FPGA_LED闪烁,putty终端打印如图21.16所示.
1.通过Signaltap观察RAM读写时序是否和参考时序一致。