floooh/chips
GitHub: floooh/chips
一套以无依赖 C 头文件形式实现的 8 位芯片和完整计算机系统模拟器,通过引脚位掩码机制实现芯片互联。
Stars: 1266 | Forks: 94
# 芯片
[](https://github.com/floooh/chips/actions)
一个包含 8 位芯片模拟器、辅助代码以及完整可嵌入式
系统模拟器的工具箱,全部采用无依赖的 C 头文件实现(属于 C99 的一个子集,可在
gcc、clang 和 cl.exe 上编译)。
测试和示例代码位于单独的代码库中:https://github.com/floooh/chips-test
编译为 WebAssembly 的示例模拟器:https://floooh.github.io/tiny8bit/
有关原理图、手册和研究资料,请参阅:https://github.com/floooh/emu-info
这些芯片模拟器的 USP(独特卖点)在于,它们通过“引脚位掩码”(pin bit mask)与外部世界进行通信:
一个“tick”函数接受一个 uint64_t 作为输入,其中的位代表芯片的输入/输出引脚,
该 tick 函数会检查引脚位,计算一个 tick,并返回一个(可能已修改的)引脚位掩码。
这样一来,一个完整的计算机模拟基本上就是像在面包板上一样,将这些芯片模拟器连接在一起。
实际上,大多数模拟器并没有那么“纯粹”(因为这样会对性能造成太大影响,或者使模拟过程复杂化):
一些芯片模拟器包含少量的回调函数,而且系统模拟器中的地址解码通常会走捷径,
而不是去模拟真实的地址解码芯片(有一个例外:lc80 模拟器)。
标签:8位芯片, AI工具, WebAssembly, 头文件库, 客户端加密, 嵌入式, 系统模拟器