ROM#
只读存储器
.coe 文件生成#
%% 在coe文件中写入sin-cos波形数据
清除所有;
clc;
N = 4096;
y = zeros(N, 1);
for i = 1:1:N
x = i;
y(i, 1) = ceil(127 * sin(x * 2 * pi / N)) + 127;
%y(i,1) = ceil( 127*cos(x*2*pi/N) ) + 127 ;
end
plot(y);
hold on;
fid = fopen('cos_4096.coe', 'wt');
%- 标准格式
fprintf(fid, 'MEMORY_INITIALIZATION_RADIX = 10;\n');
fprintf(fid, 'MEMORY_INITIALIZATION_VECTOR =\n');
%- 在coe文件中写入数据
for i = 1:1:N
fprintf(fid, '%d,\n', y(i, 1));
end
fclose(fid);
Block Memory Generator 参数#
产生地址信号#
module ADDR_Gen(
clk,
rst_n,
addr,
ena
);
input clk;
input rst_n;
output [11:0] addr;
output ena;
reg [11:0] addr;
assign ena=1'b1;
always @(posedge clk or negedge rst_n ) begin
if(rst_n==1'b0)
begin
addr<=0;
end
else if(addr==12'b1111_1111_1111)begin
addr<=12'b000_000_000_000;
end
else begin
addr<=addr+1'b1;
end
end
endmodule
BD 图#