|
|
@ -9,9 +9,7 @@ module ram(
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(*mark_debug="true"*)reg [2:0]ram_addr; // 数据深度为8, 地址变化范围 0~7就行了, 每个时钟周期加1, 直到溢出从0开始
|
|
|
|
|
|
|
|
|
|
|
|
(*mark_debug="true"*)reg [2:0]ram_addr; // 数据深度为8, 地址变化范围 0~7就行了
|
|
|
|
|
|
|
|
(*mark_debug="true"*)reg [2:0]in_ram_data; // 数据宽度为3, 假想写入的数据, 数据变化范围是0~7, 只有在 ram_rw 是写入的时候进行累加并写入地址内
|
|
|
|
(*mark_debug="true"*)reg [2:0]in_ram_data; // 数据宽度为3, 假想写入的数据, 数据变化范围是0~7, 只有在 ram_rw 是写入的时候进行累加并写入地址内
|
|
|
|
(*mark_debug="true"*)wire [2:0]out_ram_data;
|
|
|
|
(*mark_debug="true"*)wire [2:0]out_ram_data;
|
|
|
|
|
|
|
|
|
|
|
@ -27,8 +25,8 @@ always @(posedge sys_clk or negedge sys_rst) begin
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(*mark_debug="true"*)reg [7:0]counter; // 计数到15 清零, 变化范围 0~15
|
|
|
|
(*mark_debug="true"*)reg [7:0]counter; // 计数到15 清零, 变化范围 0~15, 0~7是写, 8~15是读
|
|
|
|
wire ram_rw;
|
|
|
|
wire ram_rw; // 是否可写/可读
|
|
|
|
(*mark_debug="true"*)assign ram_rw = ram_en && (counter <= 8'b111); // 计数器 分成读写各占一半时间
|
|
|
|
(*mark_debug="true"*)assign ram_rw = ram_en && (counter <= 8'b111); // 计数器 分成读写各占一半时间
|
|
|
|
always @(posedge sys_clk or negedge sys_rst) begin
|
|
|
|
always @(posedge sys_clk or negedge sys_rst) begin
|
|
|
|
if (!sys_rst) begin
|
|
|
|
if (!sys_rst) begin
|
|
|
|