文号
951738
阅读
1070
回复
7
收藏
3
自主指令集的32位CPU与全自动FPGA开发
2026/08/16
IP:广东

参考我的老文章《一个简单的自主指令集的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开发板,接通电源

PXL_20260816_114717820.jpg


usb烧写线连接到一台I5小主机上,同时把DE2的VGA输出也通过usb采集卡接到I5小主机上,这样电脑就可以“看”得到FPGA输出的内容

PXL_20260816_114738867.jpg


这个电脑上安装了quartus软件和hermes agent,可以远程使用飞书操控,但是hermes 写代码有些差,所以还是用最新的deepseek harness。


接着在网页端提需求,让他接着我的项目工程搞,给这个项目添加VGA显卡,原来的只支持LED数码管和1620 LCD

2.png


然后AI就开始干活了,甚至可以告诉他quartus的路径和已经连接了vga采集卡,他能自己烧写并用VGA采集卡采集显示数据!

然后判断显示的内容对不对! 之前我使用hermes就是这样开发的,全程不用人守在电脑旁,只要用手机遥控即可,等deepseek harness的手机工具出来,估计也可以


AI写完之后,烧写固件,我去,效果还可以

WIN_20260816_19_57_36_Pro.jpg

甚至还有动态小球跳动的效果


WIN_20260816_19_57_39_Pro.mp4  点击下载 ‎

总共消耗了125M的token,cache命中率高达100%!可能只花费了一块钱不到,其实严格意义上只有80M左右,因为后面的是在让他装软件转化markdown文件

3.png


看了一下代码,AI给我添加了几条新的指令,把这个CPU从玩具变成了使用的东西,性能甚至可能不输STM32或者MIPS!

这个是全部的指令集定义

attachment icon INSTRUCTION_SET.md 12.93KB MD 1次下载


白皮书

attachment icon INSTRUCTION_SET.pdf 176.83KB PDF 12次下载 预览


全部代码开源

attachment icon DE2_Top_v1.0.zip 234.31KB ZIP 3次下载



这个东西甚至比我一直做了好久的6502 nes还靠谱,我前几天尝试把小霸王红白机的6502和ppu移植到DE2上,把DE2变成游戏机,结果消耗了190M的token,做出来效果很垃圾,就这下面的效果,还有好几个bug没解决

WIN_20260815_20_57_51_Pro.jpg


后面继续完善这个项目,给他添加MMU、网卡、SDRAM、SD卡、USB之类的ip。再给他实现一个C语言的编译器,移植操作系统和TypeScript等高级语言,更加具有实用性,比折腾6502有成就多了,哈哈哈哈

[ 修改于2个月15天前 - 2026/08/16 20:29:23 ]
smith作者
2个月15天前IP:广东
951739
1楼

DE2做6502小霸王是另外一个项目,AI搞了很久,差不多也做了快30块钱的token了,依然连CPU正确读写PPU都没完全跑通,6502的历史太老了,指令集也太拉,另外由于是热门CPU,有很多数据污染,AI做起来都费力,感觉是一直没做好的原因

引用
评论
2
smith作者
2个月15天前IP:广东
951742
2楼

WIN_20260816_21_38_16_Pro.jpg

还能计算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

```

attachment iconPI_CALC.pdf120.08KBPDF4次下载预览

引用
评论
2个月14天前IP:重庆
951760
3楼

好玩,很厉害哦

引用
评论
smith作者
2个月11天前IP:广东
951826
4楼

我记得大学大三对MCU的设计买了一本书,当时好像是西电的一个老师,自己设计的一个八位单片机,然后自己写了一个汇编器,把这些工作写成了一本书,当时觉得这书和很多只教课本上知识的不同,有很强实践性,我买了一本。


现在AI加持,自己也能做出来了

引用
评论
2个月9天前IP:广东
951876
5楼
引用smith发表于1楼的内容
DE2做6502小霸王是另外一个项目,AI搞了很久,差不多也做了快30块钱的token了,依然连CPU正确读写PPU都没完全跑通,6502的历史太老了,指令集也太拉,另外由于是热门CPU,有很多数据污...

现阶段的AI,还是比较适合人机结合、瀑布流式。先设计框架、接口,确认后,严格限定工作范围逐个实现

引用
评论
smith作者
2个月7天前IP:广东
951899
6楼

deepseek-v4-flash-vision-exp发布了,现在那些需要实现界面的应用,建议直接换成deepseek-v4-flash-vision-exp,可以让它看见完成的内容然后微调

引用
评论
1
smith作者
1个月21天前IP:广东
952171
7楼

前些天DeepSeek上线视觉模型,我让它给我检查我画的飞控电路板,它洋洋撒撒地消耗了我3块钱的token,说没问题,然后我一投嘉立创,回来万用表一侧,哎哟我操,MP9943的VCC引脚接到VIN上了,只要一上电就烧

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的