DE2做6502小霸王是另外一个项目,AI搞了很久,差不多也做了快30块钱的token了,依然连CPU正确读写PPU都没完全跑通,6502的历史太老了,指令集也太拉,另外由于是热门CPU,有很多数据污染,AI做起来都费力,感觉是一直没做好的原因
参考我的老文章《一个简单的自主指令集的32位RISC处理器》https://www.kechuang.org/t/90270,两年前我自己手动实现了一个冯诺伊曼架构的CPU,只实现了一些基础的功能,当时AI编程还在初期,我尝试用千问、Claude、Gemini等工具去帮我优化这个CPU,当时还是各种网页端问答工具,效果都不是很理想。
直到最近各种AI Agent工具开始发展起来,我打算让AI增强我这个项目,帮我自动完成这个CPU工程(shit mountain)项目,于是说干就干,需求提起,开发板DE2,用上最新的DeepSeek harness,乘着最近token没涨价,看看是如何的效果
先说一下硬件配置,DE2-35开发板,接通电源
usb烧写线连接到一台I5小主机上,同时把DE2的VGA输出也通过usb采集卡接到I5小主机上,这样电脑就可以“看”得到FPGA输出的内容
这个电脑上安装了quartus软件和hermes agent,可以远程使用飞书操控,但是hermes 写代码有些差,所以还是用最新的deepseek harness。
接着在网页端提需求,让他接着我的项目工程搞,给这个项目添加VGA显卡,原来的只支持LED数码管和1620 LCD
然后AI就开始干活了,甚至可以告诉他quartus的路径和已经连接了vga采集卡,他能自己烧写并用VGA采集卡采集显示数据!
然后判断显示的内容对不对! 之前我使用hermes就是这样开发的,全程不用人守在电脑旁,只要用手机遥控即可,等deepseek harness的手机工具出来,估计也可以
AI写完之后,烧写固件,我去,效果还可以
甚至还有动态小球跳动的效果
WIN_20260816_19_57_39_Pro.mp4 点击下载
总共消耗了125M的token,cache命中率高达100%!可能只花费了一块钱不到,其实严格意义上只有80M左右,因为后面的是在让他装软件转化markdown文件
看了一下代码,AI给我添加了几条新的指令,把这个CPU从玩具变成了使用的东西,性能甚至可能不输STM32或者MIPS!
这个是全部的指令集定义
白皮书
全部代码开源
这个东西甚至比我一直做了好久的6502 nes还靠谱,我前几天尝试把小霸王红白机的6502和ppu移植到DE2上,把DE2变成游戏机,结果消耗了190M的token,做出来效果很垃圾,就这下面的效果,还有好几个bug没解决
后面继续完善这个项目,给他添加MMU、网卡、SDRAM、SD卡、USB之类的ip。再给他实现一个C语言的编译器,移植操作系统和TypeScript等高级语言,更加具有实用性,比折腾6502有成就多了,哈哈哈哈
DE2做6502小霸王是另外一个项目,AI搞了很久,差不多也做了快30块钱的token了,依然连CPU正确读写PPU都没完全跑通,6502的历史太老了,指令集也太拉,另外由于是热门CPU,有很多数据污染,AI做起来都费力,感觉是一直没做好的原因
还能计算pi,计算的主要汇编程序,程序很快就跑完,速度很快
```
; ============================================================================
; compute_pi - compute pi in fixed point, scale 10^8, into r3
; pi*10^8 = 16*arctan(1/5) - 4*arctan(1/239) (Machin's formula)
; result: r3 = 314159264 (=> 3.1415926)
; uses: r1,r5,r8,r9,r13,r14 (stack: r10, r15)
; ============================================================================
compute_pi:
LDL r1, 5
LDL r13, 25
call pi_arctan ; r9 = A5 (10^8 * arctan(1/5))
MOV r8, r9 ; keep A5 in r8
LDL r1, 239
LDL r13, 57121
call pi_arctan ; r9 = A239 (10^8 * arctan(1/239))
MOV r13, r9
; pi*10^8 = 16*A5 - 4*A239 -> r3
LDL r1, 16
MUL r8, r1 ; r4 = 16*A5
MOV r14, r4
LDL r1, 4
MUL r13, r1 ; r4 = 4*A239
MOV r1, r4
SUB r14, r1 ; r4 = 16*A5 - 4*A239
MOV r3, r4
ret
```
我记得大学大三对MCU的设计买了一本书,当时好像是西电的一个老师,自己设计的一个八位单片机,然后自己写了一个汇编器,把这些工作写成了一本书,当时觉得这书和很多只教课本上知识的不同,有很强实践性,我买了一本。
现在AI加持,自己也能做出来了
deepseek-v4-flash-vision-exp发布了,现在那些需要实现界面的应用,建议直接换成deepseek-v4-flash-vision-exp,可以让它看见完成的内容然后微调