🎯 圆心 · 目标(每环都从这里出发)
造一台 Salt OS 手机:基于 DeepSeek 的 AI 操作系统,iPhone 4S 外形(含底部圆形 Home 键),开机只有一个 AI(无桌面、无图标),软硬协同设计(OS + 芯片 + 主板一起做),为别人搭台、让别人在平台上赚钱。

🧭 完整框架(同心圆)

①文字闭环 → ②技术深入 → ③挂SRAM → ④权重INT4 → ⑤激活INT4 → ⑥NPU.STORE → …

本环:激活也压成 4bit,权重+激活都 INT4

① 目标是什么

同一个圆心:一台开机只有一个 AI 的手机。上一环把权重压成了 4bit,这一环把激活值也压成 4bit——权重、激活都 INT4,内存带宽再省一半。

② 怎么实现(不脱圆心)

大模型推理的两大数据流——权重和激活——都往 4bit 压。带宽优先这个核心思路,在权重之后,轮到激活。

③ 本环做了什么(真代码)

给 min_bus.sv 的激活路径也加了 INT4 反量化(和权重同一套逻辑):

NPU_A_IN 32bit = 8 个 INT4 激活(每个 4bit)
a4_0 = data[3:0]   → 符号扩展 → a8_0
a4_1 = data[7:4]   → 符号扩展 → a8_1
a4_2 = data[11:8]  → 符号扩展 → a8_2
a4_3 = data[15:12] → 符号扩展 → a8_3
→ 喂给 4×4 脉动阵列

现在权重、激活在内存里都是 4bit,喂进 NPU 时才变回 8bit——两条数据流都省一半带宽。

④ 怎么算成(闭环验证)
2 × 3 = 6 · RESULT=PASS
权重 0x22222222 + 激活 0x00000003,都 INT4 打包,推理结果正确

调试小插曲:一开始激活误写成全 3(0x33333333),结果 4×6=24——这反而证明 4 路激活都正确反量化、都参与了计算;改成单行 3 后,结果精确回到 6。

⑤ 回到目标

本环走完一整圈:目标 → 带宽瓶颈 → 激活 INT4 落地 → 仿真跑通 → 回到目标(权重+激活都 INT4,内存占用降到 1/4,离「手机装下大模型」又实一步)。