1. 今日任务
小梅哥视频:21A 认识并理解FPGA中的存储器模型_哔哩哔哩_bilibili 21B 学习使用Vivado中的存储器资源_哔哩哔哩_bilibili |
2. FPGA中的存储器类型
只读ROM eg.CMOS摄像头初始化、DDS信号发生器(固定波形数据的形式) |
数据量比较多 数据值已知 数据值不需要更改 |
可读可写RAM eg. DDS信号发生器(波形可调) |
数据量相对较大 数据要求能被更改 数据要能重复使用 |
eg. 高速数据采集系统 |
数据速率不匹配 数据消耗速率 慢于 数据生产速率 数据总量有限 |
eg. 以太网 or USB传输 |
数据速率不匹配 数据消耗速率 快于 数据生产速率 数据消耗时要求连续 |
3. 存储器资源使用
4. matlab生成coe文件
【FPGA】:matlab生成coe文件-CSDN博客
sin-cos wave |
%% sin-cos wave data write in coe file width = 10;//与幅值有关 |
triangle wave |
%% triangle wave data write in coe file |
rectangle wave |
%% rectangle wave data write in coe file clear all ; clc ; width = 10;//与幅值有关 N = 4096 ; // depth 数据个数 y = zeros(N , 1) ; for i = 1:1:N if(i < 2049) y(i,1) = 255 ; else y(i,1) = 0 ; end end plot(y); hold on; fid = fopen('rectangle_4096.coe','wt'); %- standard format fprintf( fid, 'MEMORY_INITIALIZATION_RADIX = 10;\n'); fprintf( fid, 'MEMORY_INITIALIZATION_VECTOR =\n'); %- write data in coe file for i = 1:1:N fprintf(fid,'%d,\n',y(i,1)); end fclose(fid); |
5. rom_tb
`timescale 1ns / 1ns module rom_1_tb( ); endmodule |