news 2026/5/1 1:03:25

双口RAM和单口RAM的综合设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
双口RAM和单口RAM的综合设计

方案一:这种设计情况,ap_memory才是会设计为双口RAM的接口
void xxx_top
(
hls::stream< >& src,
hls::stream< >& dst,
ap_uint<32> cfg_mem[1024]
){
//#pragma HLS ARRAY_PARTITION variable=cfg_mem block factor=2 dim=1
//#pragma HLS INTERFACE bram port=cfg_mem
//#pragma HLS ARRAY_PARTITION variable=cfg_mem complete dim=1
//#pragma HLS INTERFACE ap_stable port=cfg_mem
#pragma HLS RESOURCE variable=cfg_mem core=RAM_T2P_BRAM
#pragma HLS INTERFACE axis register both port=src
#pragma HLS INTERFACE axis register both port=dst
//#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE s_axilite port=return bundle=CONTROL_BUS
//#pragma HLS INTERFACE s_axilite port=cfg_mem bundle=CONTROL_BUS

static struct ccc_param_S ccc_param;
#pragma HLS ARRAY_PARTITION variable=ccc_param_S.ccc_param cyclic factor=2 dim=1
#pragma HLS RESOURCE variable=ccc_param_S.ccc_param core=RAM_2P_LUTRAM



for(ap_uint<16> k=0;k<N;k=k+2){
#pragma HLS PIPELINE II=1
ccc_param_S.ccc_param[k] = cfg_mem[k];
ccc_param_S.ccc_param[k+1] = cfg_mem[k + 1];
}


}


方案二:下面代码的设计方案,综合工具只会将你的设计综合为单口RAM
void xxx_top
(
hls::stream< >& src,
hls::stream< >& dst,
ap_uint<32> cfg_mem[1024]
){
//#pragma HLS ARRAY_PARTITION variable=cfg_mem block factor=2 dim=1
//#pragma HLS INTERFACE bram port=cfg_mem
//#pragma HLS ARRAY_PARTITION variable=cfg_mem complete dim=1
//#pragma HLS INTERFACE ap_stable port=cfg_mem
#pragma HLS RESOURCE variable=cfg_mem core=RAM_T2P_BRAM
#pragma HLS INTERFACE axis register both port=src
#pragma HLS INTERFACE axis register both port=dst
//#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE s_axilite port=return bundle=CONTROL_BUS
//#pragma HLS INTERFACE s_axilite port=cfg_mem bundle=CONTROL_BUS

static struct ccc_param_S ccc_param;
#pragma HLS ARRAY_PARTITION variable=ccc_param_S.ccc_param cyclic factor=2 dim=1
#pragma HLS RESOURCE variable=ccc_param_S.ccc_param core=RAM_2P_LUTRAM



for(ap_uint<16> k=0;k<N;k=k+1){
#pragma HLS PIPELINE II=1
ccc_param_S.ccc_param[k] = cfg_mem[k];
}


}

方案二的核心代码不变的情况下,你对顶层接口怎么优化,都是端口RAM,因为你的优化并不会被综合工具采纳。
综合工具认为,你这要求的双口RAM没啥用啊,你在上面for循环中赋值,这种顺序的方式进行赋值,就是当单口RAM用啊,
你却让我综合为双口RAM,不好意思啊,我不按照你的搞了,忽略你的综合指令。

总结:
综合工具并不总是按照用户的方式进行综合和会有,你的优化指令只是指导和告知综合工具的作用,至于综合工具会不会
按照你的要求进行优化,它自己是有一套判断逻辑的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 0:59:28

对比使用Taotoken前后在模型选型与切换上的效率提升

使用 Taotoken 简化模型选型与切换的技术实践 1. 传统模型接入的痛点 在 Taotoken 平台出现之前&#xff0c;开发者接入不同大模型厂商的 API 需要面对一系列繁琐流程。每个厂商都有独立的注册流程、API Key 申请方式和文档体系。以常见的三个模型为例&#xff0c;开发者需要…

作者头像 李华
网站建设 2026/5/1 0:58:01

智慧农业之辣椒疾病识别 辣椒坏死识别 辣椒缺陷识别数据集 农作物病虫害数据集 辣椒缺陷识别数据集 图像数据集yolo第10313期

数据集说明文档数据集核心信息表信息类别具体内容数据集类别疾病相关计算机视觉数据集&#xff0c;聚焦于实例分割任务&#xff0c;仅包含 1 个核心类别 “tanger&#xff09;”数据数量包含 212 张图像数据&#xff0c;所有图像均用于支撑实例分割模型的训练与验证数据集格式种…

作者头像 李华
网站建设 2026/5/1 0:56:40

扩散模型内部引导策略:原理、实现与优化

1. 扩散模型内部引导策略解析扩散模型作为当前生成式AI的核心架构&#xff0c;其质量优化一直是研究热点。内部引导策略&#xff08;Internal Guidance Strategy&#xff09;不同于传统的外部条件控制&#xff0c;它通过干预模型内部特征表达来提升生成结果的精确度和可控性。这…

作者头像 李华