当前位置: 首页 > news >正文

双口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,不好意思啊,我不按照你的搞了,忽略你的综合指令。

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

http://www.jsqmd.com/news/728568/

相关文章:

  • 半导体产业的经济逻辑、技术瓶颈与AI芯片格局:一份学习笔记
  • Cursor/VS Code多项目工作区效率优化:钉选插件使用指南
  • 2026年至今,广安市优质饮用水厂家如何选?深度解析龙霄饮品 - 2026年企业推荐榜
  • 自动恢复骚扰信息——硅基接待过滤(6)—东方仙盟
  • 高新企业水钻材料技术解析与合规生产实践 - 优质品牌商家
  • 2026年4月广东印刷版采购指南:为何衡阳市慧诚柔印制版有限公司成口碑首选? - 2026年企业推荐榜
  • 2026年4月沈阳及周边高档礼品回收机构排行一览 - 优质品牌商家
  • 对比使用Taotoken前后在模型选型与切换上的效率提升
  • 1分钟搞定iPhone USB网络共享:Windows终极驱动安装指南
  • 【flutter for open harmony】第三方库Flutter 鸿蒙版 上拉加载 实战指南(适配 1.0.0)✨
  • 112312313123123123
  • 首饰镶嵌锆石工艺要点与优质供应厂商指引:异型钻源头厂家,异形钻定制加工,江西国贸饰品配件,排行一览! - 优质品牌商家
  • 2026年4月更新指南:广安家庭如何选择可靠的本地送水直销厂家 - 2026年企业推荐榜
  • DIO54056 数据手册 - 50~1000mA 单节锂离子电池线性充电器
  • 宏基因组病毒鉴定工具大乱斗:geNomad、VirSorter2等6款工具实战对比与结果整合脚本分享
  • DIO6931 测试 chris-blogs
  • 混响语音数据集RIR-Mega-Speech构建与应用解析
  • OneNET 平台 API 交互开发完全教程与避坑指南
  • 别再让ChatGLM说车轱辘话了!手把手教你用Hugging Face的LogitsProcessor解决LLM重复生成
  • Laravel 12正式支持PHP 8.3 JIT后,AI推理服务QPS提升41%?3个被90%候选人忽略的底层优化点
  • 2026年论文AI率高达90%?收藏5个“0成本”降AI狠招,手把手降重教学(附降AI工具包) - 降AI实验室
  • 无锡奶油风瓷砖技术选型推荐:无锡佛山瓷砖,无锡哑光砖,无锡大理石瓷砖,无锡大规格瓷砖,无锡客厅瓷砖,实力盘点! - 优质品牌商家
  • 2026年4月仓储货架工厂选型指南:深度剖析瑞圣天诚仓储设备有限公司 - 2026年企业推荐榜
  • 2026年第二季度武汉加厚一次性纸杯制造商综合能力深度剖析与选择指南 - 2026年企业推荐榜
  • 2026年4月山西镀锌格栅板采购必读:专业厂家实力解析 - 2026年企业推荐榜
  • C语言的基本编写规范你了解吗
  • 终极指南:3分钟实现Adobe Illustrator到Photoshop的无损图层转换
  • 5G协议栈里的‘时钟’:深入理解SMTC如何同步服务小区与邻区的SSB
  • 别再用WebSocket硬扛LLM!Swoole原生StreamChannel+自定义协议实现毫秒级上下文保持(延迟降低62%,资源占用下降81%)
  • 昆明德飞科技:2026年4月更新,玉溪专业车载台批发与一站式通信解决方案服务商 - 2026年企业推荐榜