AG32 FPGA 的 Block RAM 资源:M9K 使用

ops/2025/1/23 2:05:12/

1. 概述

AG32 FPGA 包含了 4 个 M9K 块,每个 M9K 块的容量为 8192 bits,总计为 4 个 M9K(4K bytes)。这使得 AG32 的内部存储非常适合嵌入式应用,能够有效地利用片上资源。

M9K 参数

参考自《AGRV2K_Rev2.0.pdf》。
在这里插入图片描述

2. M9K 的全同步存储限制

在M9K 参数介绍中提到,M9K 不支持异步或非寄存器化的存储输入。这意味着,M9K 块只能用于全同步(fully-synchronous)的 SRAM 操作模式,所有读写操作必须依赖于时钟信号,而不能在没有时钟控制的情况下进行。这有助于确保操作的时序稳定性和数据的正确性。

同步操作

同步操作依赖时钟信号的边沿(通常是上升沿)来触发数据传输。所有存储的写入和读取操作都需要时钟的参与。
示例代码:

always @(posedge clk) beginif (write_enable)my_ram[addr] <= data_in;  // 写操作发生在时钟上升沿elsedata_out <= my_ram[addr]; // 读操作发生在时钟上升沿
end

异步操作

异步操作则不依赖时钟信号,数据的传输随时可以进行。这种操作方式在 M9K 中是不支持的。
示例代码:

always @(*) beginif (write_enable)my_ram[addr] = data_in;  // 写操作异步进行else if (read_enable)data_out = my_ram[addr]; // 读操作异步进行
end

3. M9K 的使用模式

Altera官方文档指出,M9K 支持多种操作模式,具体模式可在官方链接中找到。常见的两种使用方式如下:

方式1:通过 IP 核进行存储控制

使用 IP 核(如 FIFO、RAM 等)可以灵活配置 M9K 资源。
在这里插入图片描述

可以在设置过程中选择不同的资源类型。例如下图中FIFO IP的配置:
在这里插入图片描述

方式2:使用 ramstyle 合成属性

Verilog 中的 ramstyle 属性允许我们通过 HDL 代码来指定 FPGA 内部的存储资源。通过设置该属性,我们可以将寄存器数组映射到特定的 BRAM(Block RAM)资源上。
官方关于 ramstyle 的文档可以在这里找到,截图如下:
在这里插入图片描述

示例代码:

  1. 在以下代码中,指定了my_ram应使用M144K内存块实现:
(* ramstyle = "M144K" *) reg [0:7] my_ram[0:63]; 
  1. 另外,也可以在推断RAM的变量声明之后的注释中嵌入合成属性:
reg [0:7] my_ram[0:63] /* synthesis ramstyle = "M144K" */;

在上面两个例子中,my_ram 数组被指定为使用 M144K 块。

此外,Altera FPGA其他可用的存储类型包括(具体与FPGA型号有关):
在这里插入图片描述

通过这种方式,我们可以精确控制存储资源的使用,确保设计的存储需求与 FPGA 的硬件资源相匹配。

4. Block RAM存储设计的注意事项

  1. 在使用 M9K 存储时,需要确保操作是同步的。由于 M9K 不支持异步操作,因此我们必须确保读写操作与时钟同步,即使用合适的时钟信号控制数据传输。
  2. 在实际使用中,发现AG32的M9K只能通过IP核的形式进行调用,不支持ramstyle 合成属性。

http://www.ppmy.cn/ops/152337.html

相关文章

力扣面试经典题

目录 前言 一、合并两个有序数组 二、移除元素 三、删除有序数组的重复项 四、删除有序数组的重复项Ⅱ 五、取数组中出现次数大于数组长度/2的元素 六、移动数组元素 七、计算数组中相差最大的值 八、字母异位词分组 九、最长连续序列 十、移动0 十一、盛水最多的容…

Centos7系统下安装和卸载TDengine Database

记录一下Centos7系统下安装和卸载TDengine Database 安装TDengine Database 先看版本信息 [root192 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) [root192 ~]# uname -r 3.10.0-1160.119.1.el7.x86_64 [root192 ~]# uname -a Linux 192.168.1.6 3.10…

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中&#xff0c;开始在所有平台上推出这一功能。 1.1. 更新版本&#xff1a; Chrome 126 在 ChromeOS、Linux、Mac、Windows 上&#xff1a;在 1% 的稳定版用户…

SQL-杂记1

PIVOT的使用: 行转列IIF()的使用:IIF( boolean_expression, true_value, false_value)多个字段使用MX()函数 SELECTD.ID,字段1,字段2,字段3,字段4,字段5,X.MinDateValue FROM 表名 D WITH(NOLOCK) OUTER APPLY (SELECT MIN(DateValue) AS MinDateValueFROM (VALUES (字段1),(字…

Windows图形界面(GUI)-QT-C/C++ - QT 对话窗口

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 模态对话框 非模态对话框 文件对话框 基本概念 静态函数 常见属性 颜色对话框 基本概念 静态函数 常见属性 字体对话框 基本概念 静态函数 常见属性 输入对话框 基本概念 …

Python 电脑定时关机工具

Python 电脑定时关机工具 相关资源文件已经打包成EXE文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着开源精神的想法&#xff0c;望大家喜欢&#xff0c…

2025年大模型气象预测架构与商业化影响

随着人工智能技术,尤其是大模型(如深度学习、大规模神经网络)的飞速发展,气象预测的传统方法正在经历深刻变革。2025年,气象预测将借助大模型技术进入一个新的阶段。本文将从架构角度详细探讨2025年大模型在气象预测中的应用,并分析其对商业化的潜在影响。 一、2025年大模…

AIP-111 平面

编号111原文链接AIP-111: Planes状态批准创建日期2023-06-17更新日期2023-06-17 API上的资源和方法可以根据所属或执行操作的 平面 分类。API上下文中定义了以下平面&#xff1a; 管理平面 &#xff1a;统一的、面向资源的API&#xff0c;主要用于配置和资源检索。数据平面 &…