to become an irreplaceable icer!
基础部分 contents description systemverilog 在verilog基础上对systemverilog很简短的(部分)新特性描述 UVM 基础的UVM语法和简单的测试流程 verdi synopsys内置调试工具的使用 systemC Chisel 工具使用 contents description python CuTe DSL vLLM SGLang NVIDIA Dynamo NCCL NCCLX 项目驱动 contents description 模块类型 Compute In Memory
to become an irreplaceable icer!(2026.4 v1.0)
现在是刚刚中期答辩结束。在这段时间里深刻地感受到了AI的发展(迫真) 于是在审视之前的计划时发现了很多不合理的地方,包括DV和GPU之类,感觉需要把这些东西放到AI快速发展之后的现在再次重新考虑一下,于是决定把已经写完的东西先保留下来,然后把本来计划要写的东西做成一个更贴近时代的版本。 当然就我的效率来说短期之内肯定写不完,最近AI发展又很快,很多东西又会删删改改,所以决定先把想写的东西整理好,然后一个一个做,每过一段时间重新根据当下的市场和技术发展现状,没写的内容重新思考是否已经过于落后然后整理成贴合当下的版本,已经写好的内容如果感觉很过时可能也重写一下。 这里要写什么内容现在的计划是在当前主线Compute In...
CIM
Compute In Memory目前是我的毕设课题,也是之后想认真继续做的方向。正好最近anker innovation发了第一款首款存算AI芯片Thus,去年也有一些跑在存算ASIC芯片上的模型推训做到了性能追平NVIDIA A600,54-118倍能耗,也可以借势多学一些相关前沿的内容。之后会在这里进行一些相关知识的整理。
chisel
终于来到了敏捷型语言开发。chisel(Constructing Hardware in a Scala EmbeddedLanguage)提供了更高层次的抽象,可以实现更快速的构建硬件,使得硬件更容易被理解和修改。 chisel’s env要使用chisel首先要有java环境,每到这个环节我们一定要引入一个环境管理工具(因为依旧有多版本java的使用需求)。 这里引入的工具是SDKMAN!,他类似于nodejs的nvm和python的pyenv,可以使用SDKMAN!管理java环境的不同版本。 1curl -s "https://get.sdkman.io" | bash 运行以上命令就可以下载SDKMAN!. 我们可以通过SDKMAN!来安装指定版本的OpenJDK. 1sdk install java 17.0.1-open # install openjdk 17.0.1 安装完成之后的切换版本: 123sdk list javasdk use java 17.0.1-opensdk current...
remote coding
上一篇居然是4月初,已经有二十多天没写部落格了(大嘘) 这几天用AI用的很爽了,感觉AI进化太快了。那么我们也不能原地不长进,要多用AI,跟紧时代的步伐防止很快被时代淘汰。只用claude-code或者是codex还是不够的,这次我们尝试加入skill,尽量实现一个完全自动化的流程。 不过要小心数据可别泄露了 openclaw with API之前用的本地模型笨笨的,而且还吃本地内存显存,导致跑不了什么大程序,在本地内存吃力的情况下显然不是一个好选择,我们这次切换成API接入外部模型。 首先重新配置一下openclaw,运行openclaw onboard,这次在config handling选择use existing values来稍微节省一点时间。 这次主要的改变是在模型选择的时候选择(已经买过API的)非本地模型,比如我这里选择Anthropic,在Anthropic auth method下选择Anthropic API...
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...
codex & claude-code
也是来尝试使用先进的AI工具了。这次尝试使用一手codex和claude-code. codex我们先来尝试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...
从零开始的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...
gameboy on FPGA
github上面有一个叫gamebub的项目,作者通过chisel(scala)写成,可以在Xilinx XC7A100T FPGA上运行一个支持gameboy/GBC/GBA的复古游戏掌机系统,感觉是非常有意思也很锻炼能力的一个项目。这里决定通过写systemverilog,在Xilinx Zynq7020/kria KV260上完成这个gameboy的复现。 当然也有可能写不下去跳车学chisel.





