典型IP设计流程

1. 设计前期规划

1.1 设计需求分析

  • IP要完成哪些功能,如何分步实现
  • 输入输出分别是什么
  • 用到哪些资源

1.2 IP分类:算法模型、接口

  • 将算法翻译称为逻辑电路,涉及到算法优化使得其更容易被实现,如数据定点化、整形化;
  • 接口如USB、SATA等,对算法的要求不高,但是要对协议足够理解;

1.3 数据结构定义

  • 每一个子模块需要什么变量
  • 若需要memory,数据如何在memory中排布
  • 通过数据结构应能够描述清楚IP的功能流程,看着数据能够描述功能如何实现
  • 下面是一个卷积神经网络数据结构的截图:
    在这里插入图片描述

1.4 系统框架定义、功能级流水线划分

  • 整个的IP顶层接口如何
  • 如何将大的IP划分成多个小的功能模块
  • 模块间功能流水线是怎样的
  • 预先考虑是否需要FIFO、RAM等资源,需求量、位宽如何
  • 预先考虑是否需要DDR,需要多大容量,带宽如何

1.4.1 一个IP的大框架示意图

在这里插入图片描述

1.4.2 子模块划分

在这里插入图片描述

1.4.3 功能级流水示意图

在这里插入图片描述

  • 按照算法功能划分各个模块的功能,以流水线的形式表达出来

1.4.4 数据在DDR中的结构

在这里插入图片描述

1.5 子模块功能定义

  • 将上述1.4.3 功能级流水示意图中各个功能模块进行功能定义

1.6 子模块电路结构定义、时序级流水划分

  • 子模块内部也需要数据结构
  • 完成功能需要如何设计流水线或状态机

2. 设计中期RTL coding

2.1 子模块RTL设计

2.2 子模块RTL仿真、验证

  • 大的IP有必要做子模块的仿真验证,这样比较快
  • 总的模块仿真时候bug累积太多不易排查、仿真验证速度太慢,影响效率。

2.3 IP集成与IP系统级别仿真验证

  • 顶层例化与连线,信号名最好有关联,这样比较容易
  • IP级别的仿真验证

2.4 代码检查

  • 是否生成latch
  • 是否有信号未赋值

2.5 总的设计检查

  • 将最初的设计目标进行检测,如功能是否完全实现、带宽是否匹配

3. 设计后期综合与验证

3.1 逻辑综合

3.2 形式验证

  • 检查RTL设计与综合的网表是否匹配,防止EDA软件出错。

3.3 FPGA验证

  • 看FPGA上运算结果是否和算法模型一致,从而确认RTL设计无误

3.4 release

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arist9612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值