floooh/chips

GitHub: floooh/chips

一套以无依赖 C 头文件形式实现的 8 位芯片和完整计算机系统模拟器,通过引脚位掩码机制实现芯片互联。

Stars: 1266 | Forks: 94

# 芯片 [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0c4ef0b9b52a0f612ecfc4f4ce89f44182b6c59b37745a970f616dd32fae05a3.svg)](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, 头文件库, 客户端加密, 嵌入式, 系统模拟器