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

array参数在顶层约束中的情况

一、input_array约束为axisvoid array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {#pragma HLS INTERFACE axis register both portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}rtl仿真结果注意数组指定axis的时候不需要指定depth因为数组默认就已经给定了depth了数组的大小就是depth如果是指针变量就不行指针变量约束为axis,是需要开发者显示的指定detph,否则是死锁的。二、input_array约束为s_axilitevoid array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {#pragma HLS INTERFACE s_axilite register portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}需要注意的是约束为axilte并不是将其约束为寄存器了上述代码将其约束为axilite_ram了。修改代码后void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {#pragma HLS INTERFACE s_axilite register depth4 portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}综合还是生成axilite_bram了。再次修改void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {#pragma HLS ARRAY_PARTITION variabled_i complete dim1#pragma HLS INTERFACE s_axilite register depth4 portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}三、input_array约束为m_axi------------非常常用void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {#pragma HLS INTERFACE m_axi portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}上述是数组设计约束为m_axi的时候不需要指定depth。如果是指针需要指定depth.四、input_array约束为ap_hsvoid array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {//#pragma HLS INTERFACE m_axi depth0 portd_i#pragma HLS INTERFACE ap_hs portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}五、input_array约束为ap_memory---------非常常用void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {//#pragma HLS INTERFACE m_axi depth0 portd_i#pragma HLS INTERFACE ap_memory portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}六、input_array约束为bram---------非常常用void array_FIFO (dout_t d_o[4], din_t d_i[4], didx_t idx[4]) {//#pragma HLS INTERFACE m_axi depth0 portd_i#pragma HLS INTERFACE bram portd_iint i;// Breaks FIFO interface d_o[3] d_i[2];For_Loop: for (i0;i4;i) {d_o[i] d_i[idx[i]];//d_o[i] d_i[i];}}七、input_array约束为ap_fifo八、input_array约束为ap_bus几乎很少用到用到再说九、axilite ap_memory接口的bram-------非常常用这个只要你将数组约束为axilite默认就是生成ap_memorylite接口的bram资源注意这里是生成ram了不只是接口。这个是生成了实实在在的存储资源而不是存储资源接口。
http://www.zskr.cn/news/1348996.html

相关文章:

  • Google I/O 2025 AI落地实战:可部署、可解释、可嵌入的工程化突破
  • ncmdump技术解析:解锁网易云音乐加密格式的数字音乐自由之路
  • 论文之后,表达之前:PPT 是关键一步
  • 罗技鼠标宏压枪脚本:从零到精通的5步实战指南
  • 告别龟速!用WSL2+Ubuntu 22.04给你的Windows开发环境换个‘芯’(附迁移C盘教程)
  • GD32F103RCT6串口通信避坑指南:从寄存器配置到DMA收发实战(附代码)
  • 告别玄学:用Dobby+EdXposed精准Hook安卓Native函数的保姆级避坑指南
  • 无锡上门奢侈品回收机构排行 合规服务对比解析 - 互联网科技品牌测评
  • 告别纯视觉监控:手把手教你用VGGish+I3D搭建多模态暴力检测模型(附PyTorch代码)
  • CANN-昇腾NPU混合精度训练-bf16和fp16选哪个更省心
  • ColabFold终极指南:15分钟免费预测蛋白质三维结构的完整教程
  • Debian查看日志
  • 多智能体路由:从场景定义到Agent解析的工程实践
  • 别再手动复制粘贴了!ChatGPT原生PPT导出功能已上线(仅限Enterprise Tier),3大未公开API接口实测报告
  • NotebookLM默认α=0.05合理吗?(基于127个真实知识图谱实验的P值稳健性评估报告)
  • AI如何终结评估一刀切:从打分到生长地图的范式革命
  • Veo 2K→4K升频质量跃迁的临界点在哪?实测37组参数组合后锁定的4个不可妥协设置(含FFmpeg后处理联动配置)
  • 从NeRF到3DGS:想快速上手三维重建?手把手教你用Colmap+3DGS复现第一个场景
  • 车间管理系统|基于SprinBoot+vue工厂车间管理系统设计与实现(源码+数据库+文档)
  • E-Hentai-Downloader:三分钟搞定漫画批量下载与归档的实用指南
  • 基于ARM核心板的BMS分层硬件方案:从BMU到BAMS的选型与实现
  • 暗黑破坏神2存档编辑器终极指南:免费网页工具轻松修改D2/D2R游戏存档
  • OpenClaw:本地AI协作者,让大模型真正动手执行
  • 2026论文写作工具红黑榜:一键生成论文工具怎么选?一篇讲透:
  • 深入解析OBS macOS虚拟摄像头插件的架构设计与实现原理
  • 万方AIGC检测原理2026年深度解读:万方与知网检测差异完整对比分析
  • 【限时技术解禁】ElevenLabs未开放的Yunnan-Dialect Mode参数详解(含beta版voice_id生成逻辑与tone contour injection指令)
  • MoE架构揭秘:万亿参数如何通过稀疏激活实现高效推理
  • DownGit终极指南:3分钟掌握GitHub精准下载技巧
  • 告别10套系统10个密码:ASP统一身份认证SSO+RBAC全流程,5分钟对接远程接入网关实录