6502 即服务 (6502 as a Service)
PicoNES for Android 现已可用!在此了解更多信息。
⭅ Previous (拆焊 IC) | Next (尝试更高速度的芯片) ⭆
---|---
Chiplab 中提供 6502
针对真实的 6502 运行你的程序。6502 即服务 (6502 As A Service)。
6502 现在已在 Chiplab 中提供! 这允许你上传你的程序,以便排队在真实的 6502 芯片上运行。对于执行的每个周期,你都可以观察物理芯片所有总线的值。
这可以代替模拟器使用,以高度准确的方式测试你的 6502 程序。它也可以用来研究这个芯片的行为,我相信这将是开发高度准确的模拟器的有效方法。在文章的最后,我将分享一个 repo,以防你想提供帮助。
你可以立即针对真实的 6502 芯片运行你的程序。本文的其余部分将介绍使芯片上线所涉及的一些技术细节。
使用 6502 Chiplab。
该系统旨在允许你用汇编语言编写代码,或上传你预先汇编的程序。 这些程序将被排队以便在芯片上执行。 轮到你后,你的程序将被允许运行 100 个周期,大约需要 1 秒钟。
程序运行完成后,你将获得一个跟踪信息。 这显示了地址(16 位)和数据(8 位)总线的值。 如果你想在跟踪信息中看到一些结果,你的程序可以写入内存。
它是如何工作的?
6502 通过内存总线与所有外围设备交互。 6502 有一些无法直接查看的内部状态,但除此之外,可以认为是从内存中重复读取和写入。
包括 6502 和其他外围设备(如内存)在内的系统通过称为时钟的信号同步。 当时钟信号改变时,所有连接的外围设备都将其视为可以执行额外一步工作的信号。 在时钟的每次更改时,chiplab 都会监视地址总线,并更新数据总线以提供与你的程序在该地址对应的值。 这样,实验室可以模拟 6502 周围的环境。
有点像“黑客帝国”,但适用于 6502。 你可以在之前关于模拟 6502 的程序 rom的帖子中阅读更多详细信息。
为什么要这样做?
通过这些读取和写入,我们可以了解芯片的内部运作。 现在对于 6502 来说,这有点不必要,因为芯片的内部操作已经广为人知。
但是,对于许多系统来说,内部运作尚不清楚。 这个 chiplab 最初使用 6502 进行测试,应该提供一种学习和构建这些不太了解的芯片模型的方法。
尝试使用此设置重建 6502 实际上是对未来更高级系统的测试。 欢迎提供帮助。
还有至少几个芯片涉及嵌入式 6502 和一些其他定制电子设备。 因此,构建 6502 也是对这些其他芯片进行建模的直接垫脚石。
构建数字 6502 模型
真实测试的行为可用于为该芯片的模拟版本生成测试用例。 幸运的是,6502(和大多数其他 IC)具有许多独立的独立功能。 这允许逐步虚拟表示芯片。
可以通过编写仅使用该指令的 6502 程序来创建小型隔离测试,例如针对单个指令的测试。 通过捕获真实芯片运行时的总线的逐周期跟踪,我们知道模型的行为应该是什么样的。
想帮忙吗? 查看 Github 上的 6502_model 存储库。 该模型是用 Rust 的一个简单子集编写的。 目标是捕获系统的行为,而不一定是构建可以为硅合成的东西。 传统的编程语言比典型的硬件描述语言 (HDL) 更具表现力。 即使你不了解 Rust,如果你有其他编程语言的经验,那么大多数逻辑也应该很容易理解。
有问题/意见? 请给我发送电子邮件,你可以在网站页脚中找到它。 感谢你的阅读!
⭅ Previous (拆焊 IC) | Next (尝试更高速度的芯片) ⭆
---|---
我们每周发布大约 1 篇文章,讨论仿真和复古系统。 加入我们的电子邮件列表,以便在新帖子发布时收到通知。 你可以随时取消订阅。
© EmulationOnline