首页
学习
活动
专区
圈层
工具
发布

IC设计:如何学习一个现成的设计模块

在IC设计过程中,我们时常需要接触新模块,因此如何高效学习一个新的模块尤为重要。

本文将简述自上而下结合自下而上的学习方式。

自上而下,即从整体到细节:首先了解模块核心功能,其模块在系统中的位置,数据流是如何处理的

自下而上,即从细节到整体:从通过模块代码、详细设计说明文档等细节点梳理功能是如何实现的。

自上而下

明确模块定位

首先理清楚模块的定位,用简单文字描述模块作用,可以找熟悉的同事请教。

模块的功能定位有很多,例如控制调度、数据缓存(Cache)、数据校验(CRC)、数据搬运(DMA)等等。

例如,在 SoC 设计中,一个新的 DMA 模块,其核心目标是实现外设与内存之间的高速数据搬运,以减轻 CPU 负担;而一个 PCIe 模块则是作为芯片与外部设备的通信接口,负责数据的高速传输。

明确模块间的交互

梳理当前模块与其他模块之间存在哪些接口,以及接口的作用

数据接口。

例如:一个读请求接口能够发起读请求,一个读响应接口能够接收读数据,例如一个发包接口,将收到的读数据按协议格式将数据包发送出去。

流控接口

流控接口能够了解反压是如何实现的

时钟、复位信号等等

整理模块数据流

梳理模块数据流是如何处理的,不同的数据流分布经过了哪些模块,进行了哪些处理步骤。

例如以太网帧在MAC模块会添加前导码、帧起始定界符(SFD)、目的 MAC 地址(DA)、源 MAC 地址(SA)、类型 / 长度字段(Type/Length)、添加CRC字段,并且填充帧间隔。

通过仿真波形查询

阅读配置流程说明文档

通过阅读配置流程说明文档了解模块配置步骤,进一步理解其功能作用

自下而上

自下而上,即从细节到整体:从通过模块代码、详细设计说明文档等细节点梳理功能是如何实现的。

采用2H+5W方法对自己提出问题,寻找答案

5W(明确问题)

What(是什么)、Why(为什么)、Who(谁)、When(何时)

2H(明确执行的具体方式)

How to do(如何做)、How much(多少 / 程度)

可以从如下角度使用2H5W进行分析

接口上模块的输入、输出信号入手

内部逻辑从memory、fifo 的读写使能信号入手

案例说明

请求信号vld是如何产生的、是如何产生的

收到的rsp data存到了哪里

Data buffer中的数据是如何写入的,是何时读出的

memory读写信号是如何产生的,是何时产生的

调度模块的请求是如何产生的,是如何产生的

什么操作触发了数据读写请求,在何时产生的

文章来源于IC小鸽,作者IC小鸽

报名即将关闭

西门子EDA大会

8月28日 上海

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_eWNILjF8E-q0NdgM618tww0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券