在 Vivado 中,可以通过以下步骤来查看推断出的 Block RAM。
- 打开 synthesized design,右键单击 Design Sources 并选择 Open synthesized design。
- 在 synthesized design 窗口中,单击左上角的“Hierarchy”选项卡,展开系统顶层模块并选择需要查看的模块。
- 单击“Report”选项卡,在左侧菜单中选择“Design Utilization”。
- 在 Design Utilization 报告中,可以查看 Inferred 和 Used 块 RAM 的数量和位置。
代码示例:
下面的代码段是使用 Block RAM 的简单示例。
module example(clk, read_addr, write_en, write_addr, write_data, read_data);
parameter WIDTH = 8;
parameter DEPTH = 64;
input clk;
input [6:0] read_addr;
input write_en;
input [6:0] write_addr;
input [WIDTH-1:0] write_data;
output [WIDTH-1:0] read_data;
reg [WIDTH-1:0] memory [0:DEPTH-1];
always @(posedge clk) begin
if (write_en) begin
memory[write_addr] <= write_data;
end
read_data <= memory[read_addr];
end
endmodule
在此示例中,我们使用参数 WIDTH 和 DEPTH 定义 Block RAM 的宽度和深度。使用时钟边沿作为触发器,我们读取指定地址的值,并将指定地址写入 RAM。