高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

FPGA双端口存储器映射优化算法

徐宇 林郁 杨海钢

徐宇, 林郁, 杨海钢. FPGA双端口存储器映射优化算法[J]. 电子与信息学报. doi: 10.11999/JEIT190077
引用本文: 徐宇, 林郁, 杨海钢. FPGA双端口存储器映射优化算法[J]. 电子与信息学报. doi: 10.11999/JEIT190077
Yu XU, Yu LIN, Haigang YANG. Optimization Algorithm of Dual-port Memory Mapping on FPGA[J]. Journal of Electronics and Information Technology. doi: 10.11999/JEIT190077
Citation: Yu XU, Yu LIN, Haigang YANG. Optimization Algorithm of Dual-port Memory Mapping on FPGA[J]. Journal of Electronics and Information Technology. doi: 10.11999/JEIT190077

FPGA双端口存储器映射优化算法

doi: 10.11999/JEIT190077
基金项目: 国家自然科学基金(61474120, 61404140, 61704173)
详细信息
    作者简介:

    徐宇:男,1990年生,博士生,研究方向为FPGA软件设计自动化

    林郁:男,1982年生,高级工程师,研究方向为FPGA软件设计自动化

    杨海钢:男,1960年生,研究员/教授,博士生导师,研究方向微电子学与集成电路技术

    通讯作者:

    杨海钢 yanghg@mail.ie.ac.cn

  • 中图分类号: TP391.41

Optimization Algorithm of Dual-port Memory Mapping on FPGA

Funds: The National Natural Science Foundation of China (61474120, 61404140, 61704173)
  • 摘要: FPGA存储器映射算法负责将用户的逻辑存储需求映射到芯片中的分布式存储资源上实现。前人对双端口存储器的映射算法研究相对较少,成熟的商业EDA工具的映射结果仍有不少改进空间。该文分别针对面积、延时、功耗这3个常用指标,提出一种双端口存储器映射的优化算法,并给出了具体配置方案。实验表明,在面向简单存储需求时,与商用工具Vivado的映射结果一致;在面向复杂存储需求时,面积优化和功耗优化的映射结果对比商用工具改善了至少50%。
  • 图  1  AlgoPower映射算法图示(视图${V_k}$)

    图  2  AlgoDelay映射算法图示(视图${V_k}$)

    图  3  ${V_{{\rm{maxR}} }}$纵向存储器块设计

    图  4  AlgoArea映射策略配置方案

    表  1  Virtex-4存储器块配置方式

    i 索引
    1 2 3 4 5 6 7
    地址深度 d[i] 256 512 1k 2k 4k 8k 16k
    地址位宽 b[i] 8 9 10 11 12 13 14
    数据位宽 w[i] 72 36 18 9 4 2 1
    下载: 导出CSV

    表  2  AlgoPower映射策略方案

    序号 视图 配置 地址端口连接 数据端口连接 译码/选通
    #1 V1 1K×18 a9 a8 ··· a1 a0 d33 d32 ··· d17 d16
    V2 1K×18 a10 a9 ··· a2 a1 d25 d24 ··· d9 d8 (a0) = 0
    V3 V4 1K×18 a11 a10 ··· a3 a2 d21 d20 ··· d5 d4 (a1 a0) = 00
    #2 V1 1K×18 a9 a8 ··· a1 a0 d51 d50 ··· d35 d34
    V2 1K×18 a10 a9 ··· a2 a1 d43 d42 ··· d27 d26 (a0) = 0
    V3 V4 1K×18 a11 a10 ··· a3 a2 d21 d20 ··· d5 d4 (a1 a0) = 01
    #3 V1 1K×18 a9 a8 ··· a1 a0 d69 d68 ··· d53 d52
    V2 1K×18 a10 a9 ··· a2 a1 d25 d24 ··· d9 d8 (a0) = 1
    V3 V4 1K×18 a11 a10 ··· a3 a2 d21 d20 ··· d5 d4 (a1 a0) = 10
    #4 V1 1K×18 a9 a8 ··· a1 a0 d87 d86 ··· d71 d70
    V2 1K×18 a10 a9 ··· a2 a1 d43 d42 ··· d27 d26 (a0) = 1
    V3 V4 1K×18 a11 a10 ··· a3 a2 d21 d20 ··· d5 d4 (a1 a0) = 11
    #5 V1 1K×18 a9 a8 ··· a1 a0 d15 d14 ··· d1 d0
    V2 2K×9 a10 a9 ··· a1 a0 d7 d6 ··· d1 d0
    V3 V4 4K×4 a11 a10 ··· a1 a0 d3 d2 d1 d0
    下载: 导出CSV

    表  3  AlgoDelay映射策略方案

    序号 视图 配置 地址端口连接 数据端口连接 译码/选通
    #1 V1 8K×2 a12 a11 ··· a1 a0 d1 d0 (a′15 a′14) = 00
    V2 4K×4 a11 a10 ··· a1 a0 d3 d2 d1 d0 (a′14 a′13) = 00
    V3 V4 2K×8 a10 a9 ··· a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 (a′13 a′12) = 00
    #2 V1 8K×2 a12 a11 ··· a1 a0 d1 d0 (a′15 a′14) = 11
    V2 4K×4 a11 a10 ··· a1 a0 d3 d2 d1 d0 (a′14 a′13) = 11
    V3 V4 2K×8 a10 a9 ··· a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 (a′13 a′12) = 11
    #3 V1 16K×1 a12 a11 ··· a1 a0 d1 (a′15 a′14) = 01
    V2 8K×2 a11 a10 ··· a1 a0 d3 d1 (a′14 a′13) = 01
    V3 V4 4K×4 a10 a9 ··· a1 a0 d7 d5 d3 d1 (a′13 a′12) = 01
    #4 V1 16K×1 a12 a11 ··· a1 a0 d0 (a′15 a′14) = 01
    V2 8K×2 a11 a10 ··· a1 a0 d2 d0 (a′14 a′13) = 01
    V3 V4 4K×4 a10 a9 ··· a1 a0 d6 d4 d2 d0 (a′13 a′12) = 01
    #5 V1 4K×4 a13 a12 ··· a1 a0 d3 d2 d1 d0 (a′15 a′14) = 10
    V2 2K×8 a12 a11 ··· a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 (a′14 a′13) = 10
    V3 V4 1K×16 a11 a10 ··· a1 a0 d15 d14 ··· d1 d0 (a′13 a′12) = 10
    下载: 导出CSV

    表  4  功耗优化实验结果

    序号 地址1 读1 写1 地址2 读2 写2 Vivado平均触发数 AlgoPower平均触发数 优化比例(%)
    1 10 32 32 10 32 32 1 1.00 0
    2 10 32 64 10 32 256 8 1.14 85.7
    3 11 16 32 10 32 256 8 1.09 86.4
    4 11 16 32 10 32 128 4 1.06 73.5
    5 11 16 256 10 32 128 8 1.33 83.4
    6 11 32 32 10 64 64 2 1.00 50.0
    7 11 32 64 10 64 128 4 1.11 72.2
    8 11 16 32 11 16 128 4 1.05 73.8
    下载: 导出CSV

    表  5  延时优化实验结果

    序号 V1(rd) V2(rd) V3(wr) V4(wr) AlgoDelay选通级数
    1 36K×4 72K×2 18K×8 9K×16 V1: 2 V2: 3
    2 81K×16 324K×4 162K×8 162K×8 V1: 3 V2: 5
    3 18K×4 9K×8 36K×2 18K×4 V1: 2 V2: 1
    4 4K×25 2K×50 1K×100 4K×25 V1: 1 V2: 1
    5 16K×4 32K×2 8K×8 4K×16 V1: 1 V2: 2
    下载: 导出CSV

    表  6  面积优化实验结果

    序号 地址1 读1 写1 地址2 读2 写2 Vivado使用资源 AlgoArea使用资源 优化比例(%)
    1 10 32 32 10 32 32 2 2 0
    2 10 32 64 10 32 256 8 4 50
    3 11 16 32 10 32 256 8 4 50
    4 11 16 32 10 32 128 4 2 50
    5 11 16 256 10 32 128 4 4 0
    6 11 32 32 10 64 64 4 4 0
    7 11 32 64 10 64 128 4 4 0
    8 11 16 32 11 16 128 4 2 50
    下载: 导出CSV
  • [1] TRIMBERGER S M. Three ages of FPGAs: A retrospective on the first thirty years of FPGA technology[J]. Proceedings of the IEEE, 2015, 103(3): 318–331. doi:  10.1109/JPROC.2015.2392104
    [2] KUON I and ROSE J. Measuring the gap between FPGAs and ASICs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2007, 26(2): 203–215. doi:  10.1109/TCAD.2006.884574
    [3] WILTON S J E. Architectures and algorithms for Field-Programmable Gate Arrays with embedded memory[D]. [Ph. D. dissertation], University of Toronto, 1997.
    [4] TESSIER R, BETZ V, NETO D, et al. Power-efficient RAM mapping algorithms for FPGA embedded memory blocks[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2007, 26(2): 278–290. doi:  10.1109/TCAD.2006.887924
    [5] HSU T Y and WANG Tingchi. A generalized network flow based algorithm for power-aware FPGA memory mapping[C]. The 45th ACM/IEEE Design Automation Conference, Anaheim, USA, 2008: 30–33.
    [6] DU Fangqing, LIN C Y, CUI Xiuhai, et al. Timing-constrained minimum area/power FPGA memory mapping[C]. The 23rd International Conference on Field programmable Logic and Applications, Porto, Portugal, 2013: 1–4.
    [7] HO W K C and WILTON S J E. Logical-to-physical memory mapping for FPGAs with dual-port embedded arrays[C]. The 9th International Workshop on Field Programmable Logic and Applications, Glasgow, UK, 1999: 111–123.
    [8] CONG J and YAN K. Synthesis for FPGAs with embedded memory blocks[C]. 2000 ACM/SIGDA Eighth International Symposium on Field Programmable Gate Arrays, Monterey, USA, 2000: 75–82.
    [9] MA Yufei, CAO Yu, VRUDHULA S, et al. An automatic RTL compiler for high-throughput FPGA implementation of diverse deep convolutional neural networks[C]. The 27th International Conference on Field Programmable Logic and Applications (FPL), Ghent, Belgium, 2017: 1–8.
    [10] GUAN Yijin, LIANG Hao, XU Ningyi, et al. FP-DNN: An automated framework for mapping deep neural networks onto FPGAs with RTL-HLS hybrid templates[C]. The 25th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa, USA, 2017: 152–159.
    [11] LIANG Shuang, YIN Shouyi, LIU Leibo, et al. FP-BNN: Binarized neural network on FPGA[J]. Neurocomputing, 2018, 275: 1072–1086. doi:  10.1016/j.neucom.2017.09.046
    [12] GUO Kaiyuan, SUI Lingzhi, QIU Jiantao, et al. Angel-eye: A complete design flow for mapping CNN onto embedded FPGA[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(1): 35–47. doi:  10.1109/TCAD.2017.2705069
    [13] MA Yufei, SUDA N, CAO Yu, et al. ALAMO: FPGA acceleration of deep learning algorithms with a modularized RTL compiler[J]. Integration, 2018, 62: 14–23. doi:  10.1016/j.vlsi.2017.12.009
    [14] Xilinx. Virtex-4 FPGA user guide[EB/OL]. https://china.xilinx.com/support/documentation/user_guides/ug070.pdf, 2008.
    [15] Xilinx. LogiCORE IP product guide block memory generator v8.4[EB/OL]. https://china.xilinx.com/support/documentation/ip_documentation/blk_mem_gen/v8_4/pg058-blk-mem-gen.pdf, 2019.
  • [1] 胡东伟.  5G LDPC码译码器实现, 电子与信息学报. 2020, 42(0): 1-8. doi: 10.11999/JEIT200046
    [2] 罗宇, 郭家松.  大位宽情况下的回滚式循环冗余校验算法, 电子与信息学报. 2020, 42(0): 1-7. doi: 10.11999/JEIT200141
    [3] 孙子文, 叶乔.  利用震荡环频率特性提取多位可靠信息熵的物理不可克隆函数研究, 电子与信息学报. 2020, 42(0): 1-8. doi: 10.11999/JEIT191013
    [4] 刘勤让, 刘崇阳.  利用参数稀疏性的卷积神经网络计算优化及其FPGA加速器设计, 电子与信息学报. 2018, 40(6): 1368-1374. doi: 10.11999/JEIT170819
    [5] 田禹泽, 王煜, 代海山, 方华, 刘文清.  基于数字锁相环的星载光谱仪本地时钟源设计, 电子与信息学报. 2017, 39(10): 2397-2403. doi: 10.11999/JEIT170088
    [6] 梁华国, 孙红云, 孙骏, 黄正峰, 徐秀敏, 易茂祥, 欧阳一鸣, 鲁迎春, 闫爱斌.  一种基于FPGA的微处理器软错误敏感性分析方法, 电子与信息学报. 2017, 39(1): 245-249. doi: 10.11999/JEIT160225
    [7] 兰亚柱, 杨海钢, 林郁.  面向DVB-S2标准LDPC码的高效编码结构, 电子与信息学报. 2016, 38(7): 1781-1787. doi: 10.11999/JEIT151198
    [8] 兰亚柱, 杨海钢, 林郁.  动态自适应低密度奇偶校验码译码器的FPGA实现, 电子与信息学报. 2015, 37(8): 1937-1943. doi: 10.11999/JEIT141609
    [9] 薛茜男, 李振, 姜承翔, 王鹏, 田毅.  面向航空环境的多时钟单粒子翻转故障注入方法, 电子与信息学报. 2014, 36(6): 1504-1508. doi: 10.3724/SP.J.1146.2013.01296
    [10] 江洁, 凌思睿.  一种投票式并行RANSAC算法及其FPGA实现, 电子与信息学报. 2014, 36(5): 1145-1150. doi: 10.3724/SP.J.1146.2013.00962
    [11] 王一, 杨海钢, 余乐, 孙嘉斌.  FPGA开关矩阵中基于通道结构的漏电流优化方法, 电子与信息学报. 2013, 35(11): 2784-2789. doi: 10.3724/SP.J.1146.2013.00242
    [12] 谭宜涛, 杨海钢, 黄娟, 郝亚男, 崔秀海.  基于关键路径的三模冗余表决器插入算法, 电子与信息学报. 2012, 34(2): 487-492. doi: TN406
    [13] 张会红, 汪鹏君, 俞海珍.  基于新型极性转换技术的XNOR/OR电路面积优化, 电子与信息学报. 2012, 34(7): 1767-1772. doi: 10.3724/SP.J.1146.2011.01298
    [14] 秋小强, 杨海钢, 周发标, 谢元禄.  长互连链延时功耗建模与基于混合粒子群算法的优化, 电子与信息学报. 2011, 33(6): 1481-1486. doi: 10.3724/SP.J.1146.2010.01114
    [15] 孙红英, 杨鸿武, 陶中幸.  语谱分析的FPGA实现, 电子与信息学报. 2011, 33(5): 1238-1242. doi: 10.3724/SP.J.1146.2010.01005
    [16] 史圣卿, 陈凯, 汪玉, 罗嵘.  基于FPGA的稀疏网络关键节点计算的硬件加速方法研究, 电子与信息学报. 2011, 33(10): 2536-2540. doi: 10.3724/SP.J.1146.2011.00363
    [17] 丁菁汀, 杜歆, 周文晖, 刘济林.  基于FPGA的立体视觉匹配的高性能实现, 电子与信息学报. 2011, 33(3): 597-603. doi: 10.3724/SP.J.1146.2010.00943
    [18] 杨金林, 杨海钢.  可重构存储器无地址冲突的访问机理及比特标识方法研究, 电子与信息学报. 2011, 33(3): 723-728. doi: 10.3724/SP.J.1146.2010.00463
    [19] 李威, 杨海钢, 黄娟.  基于单驱动和多驱动通道形式组合的FPGA互连结构研究, 电子与信息学报. 2010, 32(8): 2023-2027. doi: 10.3724/SP.J.1146.2009.01007
    [20] 李元金, 张万成, 吴南健.  一种基于并行处理器的快速车道线检测系统及FPGA实现, 电子与信息学报. 2010, 32(12): 2901-2906. doi: 10.3724/SP.J.1146.2010.00111
  • 加载中
  • 图(4) / 表ll (6)
    计量
    • 文章访问数:  129
    • HTML全文浏览量:  111
    • PDF下载量:  12
    • 被引次数: 0
    出版历程
    • 收稿日期:  2019-01-28
    • 修回日期:  2020-01-20
    • 网络出版日期:  2020-07-20

    目录

      /

      返回文章
      返回

      官方微信,欢迎关注