to become an irreplaceable icer!
从「DFT工程师」到「不可替代的IC人」:Blog重构计划 写给自己的路线重构。核心问题:AI时代,什么样的IC工程师不会被淘汰?答案:能做判断和决策的人,而不是翻译spec为代码的人。 一、现状盘点:我已经走到了哪里回顾「从零开始的DFT工程师」前5周 + 特别篇,已完成的内容如下: 已完成 内容 属于哪个能力维度 Week 1 Verilog/SV环境搭建 + 语法复习 编码基础(会被AI替代的层) Week 2 Makefile/Python/TCL 自动化脚本 工程效率(有价值但不稀缺) Week 3 UVM环境搭建 + 第一个测试 验证编码(会被AI替代的层) Week 4 UVM进阶:callback/TLM/RAL 验证编码 + 方法学入门 Week 5 SystemC基础 软硬件协同的种子 特别篇 Synopsys安装/Verdi/远程连接/SV语法 工具使用 课外 GPU...
life reflection 17
欢迎回来。现在是2026年4月1日。 还是先来谈一下近况,首先是毕设。 毕业设计毕业设计的内容是,设计一个数字存算一体阵列架构,并且进行FPGA设计验证。 我首先来说几句官话: 当前,以YOLO、SSD为代表的深度学习目标检测算法在不断提升检测精度的同时,也面临着计算密集与内存访问瓶颈的严峻挑战。在传统冯·诺依曼架构中,处理器与存储器分离,数据在两者之间频繁搬运,导致巨大的功耗开销与延迟,严重制约了系统算力与能效比的提升。这一问题在边缘计算场景中尤为突出——由于对功耗和实时性要求极为苛刻,传统架构已难以满足实际需求。存算一体(Computing-in-Memory, CIM)技术通过将计算功能嵌入存储器内部,直接利用存储单元完成运算,从根本上消除了数据搬运开销,被视为突破“内存墙”瓶颈的革命性路径。 在当前背景之下,设计存算阵列的意义在于,通过在存储单元中原位实现卷积的乘加运算,降低因为数据搬运产生的动态功耗,为低功耗边缘智能设备提供高性能的计算核心。 在3月17日的时候我创建了一个github...
try openclaw
然后就是最近比较火的openclaw,当然也要尝试一手。 install首先安装必要的依赖:npm install -g node-addon-api node-gyp 安装openclaw的方法有三种,首先是arch用户可以通过yay -S openclaw-git通过AUR下载,但是AUR带有git后缀的一般是源码编译,一般来说会比较慢。 不过openclaw本质上是nodejs应用,所以其实应该只是npm安装。 第二种就是直接通过npm/pnpm安装,npm install -g openclaw@latest需要调整nodejs版本为22.16+. 第三种是,ollama现在官方支持使用openclaw,只要ollama launch openclaw就可以完成安装和使用。 考虑到openclaw本身也需要烧token,还是选择使用ollama local model + openclaw. 其实都需要nodejs...
从零开始的DFT工程师!特别篇:verdi
之前一直在用terminal做所有的仿真和测试,看波形的机会没有很多,偶尔看过几次也是用gtkwave看的。但是说实话verdi还是有必要学一下的,毕竟是业界标准仿真工具(逃) why verdi通过$display+gtkwave的方式对于小模块来说完全够用,但是当设计比较复杂的时候,信号线会有很多,想要找到他的驱动源光看waveform还是比较困难。 verdi是synopsys的一个调试平台,这个软件是把波形,源码,原理图等联合到一起,可以从一根有问题的信号线出发,快速定位到他的驱动逻辑。在业界verdi是很常用的debug工具,一般会配合Synopsys VCS/Cadence NC来做simulation. verdi要读取三类文件:design(.v/.sv), testbench(.v/.sv), waveform(.fsdb).其中.fsdb是compiler生成的synopsys系的波形文件。 open...
try codex
也是来尝试使用先进的AI工具了。这次尝试使用一手codex. install首先是通过nvm管理需要的npm(nodejs)环境,因为我这里有同时使用很多不同版本nodejs的需求。 先下载nvm: 1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash 然后在.zshrc中添加路径(如果没有自动添加的话): 1234export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 测试一下安装成功: 1nvm...
gameboy on FPGA
github上面有一个叫gamebub的项目,作者通过chisel(scala)写成,可以在Xilinx XC7A100T FPGA上运行一个支持gameboy/GBC/GBA的复古游戏掌机系统,感觉是非常有意思也很锻炼能力的一个项目。这里决定通过写systemverilog,在Xilinx Zynq7020/kria KV260上完成这个gameboy的复现。 当然也有可能写不下去跳车学chisel.
non-academic projects
这里是我的不定期code能力复健中心,会不定期从各种网站上获取好玩的小玩意进行coding来维持本来也不是很强的code能力。 这个页面主要是项目驱动而不是知识学习和整理。 目前的参考页面有: build your own x C/C++LLM inference engine KV cache memory pool(develop in future) pythonGPU utilization monitor(develop in future) torchmy project like GameNGen : nerual network replace the game engine(develop in future) verilog/systemverilogLLM inference accelerate MAC(develop in future) UVM design verificationverify a LLM RTL design(develop in future) FPGA projectgameboy on...
你醒啦,手术很成功喵
想想一下自己很久没有接触model, CNN, AI agent这些内容,但是最近自己突然由于各种原因需要重新接触这些内容,然后写出(或者是让AI写出)一个可以满足特定小需求的代码。 那当然是简洁,快速,不追求性能好不好,有个结果就可以,很符合我们今天的主题。 假如你现在处在这样的场景中,要做些什么才对呢? environment首先是确认自己的环境还能跑起来。 所幸第一步是非常简单的,我们有很多方法来配置当前所需要的环境,常见的环境管理方式有实际路径(当然是最不推荐的),python venv, conda, rye/uv. 后三个由于是虚拟环境,可以实现项目环境的隔离,不容易把环境整坏,而且也都可以通过requirement.txt/pyproject.toml实现环境的快速迁移和恢复,算是比较推荐的方式。我个人目前比较喜欢用rye来进行python环境的管理,这一部分内容在之前有写过,这里就不再说了,我这里都以rye作为默认python管理工具。 我们可以打开一个jupyter notebook,输入以下内容: 12345import...







