首先是目标:
A 芯片满足带宽需求(两个view,一个是bps,另外一个是pps)
B 芯片穿透最大延时
C 芯片的成本(面积约束)
F 芯片功能需求
具体到实现:
A 芯片Memory的规格(DDR4 SDRAM, SRAM,CAM)
B 芯片的主要工作频率(时钟域)(满足后端工艺要求)
C 芯片主数据路径的位宽
D 芯片模块的划分(满足后端布局布线要求,功能分割合理,可维护性好,给出穿透延时要求)
F 芯片接口的定义
H 整体流水线结构的合理分配(大流水+小流水)
在接口上我们使用bps衡量带宽,在芯片内部通常转换为pkt(包,或者帧)采用pps
基于芯片带宽和业务流程,可以计算出数据包访问SRAM的带宽, 可以选择SRAM的规格,为了满足最小穿透延时,需要尽量选择SRAM的读延时最小。
通常,为了提高吞吐量,我们可以在核心模块,采用面积换速率的策略(复制核心模块功能为多份)来提高SRAM访问的效率,减小SRAM固有延时。 //至于选择那个核心模块,就是架构设计的细节考量
大模块之间采用大流水,模块内部使用小流水,大流水如和切分,小模块内流水的安排,需要仔细考虑
另外,就是SRAM等Memory,如果采用集中管理访问,那么各个模块访问SRAM的请求之间的GAP,会影响SRAM的返回延时,进而影响,访问SRAM的流水的FIFO(数据包)的深度。
另外,SRAM等访问的GAP的设计,可以使用时间轴法,同时需要调整小流水范围的时间点,和大流水之间的时延。
以上都需要ESL仿真,以明确芯片功能正确,以及满足性能(主要是带宽)要求。
备注:小模块访问SRAM的模块设计
A FIFO+硬件逻辑处理; 根据SRAM的返回延时,以及主数据位宽,可以算出模块入口FIFO深度;硬件逻辑节省面积,FIFO面积大,模块穿透延时为SRAM的读延时+硬件逻辑延时
B 多套硬件逻辑+仲裁; 根据SRAM的读延时,可以大概计算出硬件逻辑的套数(想通逻辑复制);硬件逻辑面积X几倍,增加了仲裁逻辑,模块的吞吐量大,可以隐藏。。。。。。。