复杂的事情简单化或者说可执行化,人类惯用的手段就是分而治之(分层次,分结构)。
负责的人类社会管理在古代中国有三省六部,在当下中国有国务院,省,市,县,乡。
简言之,事物由大分小则足以处理。
逻辑设计亦然。
负责的逻辑设计可以分为五个层次:需求,架构,微架构,基本单元,基础单元。
需求需要考虑的有:
1 功能+性能(带宽或吞吐量以及容量)
2 成本
3 面积
4 功耗
5 端口
6 工艺
7 外设(IP)
架构需要考虑的方面:
1 数据路径位宽
2 控制路径和流控
3 芯片工作频率
4 芯片功能的灵活性支持(内嵌专用处理器内核)
5 芯片穿透延时(lattency)
6 芯片结构(总线型,串行,流水型 + 功能模块划分(granularity))
7 芯片时钟复位
8 芯片寄存器规划
9 芯片DFT(JTAG+BIST)
10 芯片中断
11 芯片IP(带宽,端口,穿透延时,乱序特性)
12 芯片端口以及内部模块互联接口
微架构:
1 中流水(fifo+逻辑处理单元)
2 cache
3 控制和数据通路的分离
4 跨时钟域
5 片上memory(fifo+ram+rom)
基本单元
1 字节序(大小端)、bit序
2 状态机控制
3 流水线(寄存器流水)
4 memory字节编址
5 fifo/ram/rom
6 arbiter
7 串并转化
8 乒乓操作
9 寄存器(编址,数据类型field的location对齐到nibble)
10 模块端口寄存器输出
11 三态端口
基础单元
1 D寄存器
2 锁存器
3 编码器
4 译码器
5 加法器
6 乘法器
7 计数器
8 移位器
9 选择器
10 CRC
11 伪随机数发生器
12 ...