Crosstalk 的使命宣言是,我们希望它能重拾动手 tinkering、从零开始设计事物,以及花时间创造新东西或复现复古技术/移植酷炫软件的乐趣。我们在计算领域已很少见到这种精神。
Crosstalk 是一套用于创建自定义计算机架构、RTL 设计和软件的工具集。它包含一个带有模拟器和电子构建仿真器的沙盒。玩家可以构建和编程计算器、LED 控制器和复杂计算机等设备。它附带门级 SystemVerilog 模拟器、细化器(elaborator)、综合器(synthesizer)和 C 代码生成器,以及 Clang 编译器,该编译器编译生成的 C 代码并运行以实现更快的设计执行。C 代码源自玩家自己的 SystemVerilog。
默认工作流程是打开 RTL 工作区,进入 shell,用 SystemVerilog 描述设计,对其进行编程,然后为其编写软件。游戏支持网络模式,玩家可以与其他玩家协作。
设计、相应的软件以及仿真器都可以通过创意工坊分享。
串行接口
Crosstalk 可以使用游戏中的虚拟串行端口或运行机器的物理串行接口与设备进行交互,Unix 系统上为 /dev/ttyUSB<n> 和 /dev/ttyACM<n> ,Windows 系统上为 COM<n> ,或者使用其自带的 shell 接口。因此,外部设备可以直接插入设计中,并由替代部件表示。玩家可以使用微控制器、传感器、物理按钮或其他计算机。
提供的真彩色终端模拟器可用作串行终端 I/O 设备。它兼容 ANSI/VT100/xterm/kitty,并可以通过 PTY/ConPTY 与主机交互
串行 I/O 可与物理设备配合使用。上图显示的是 TX(发送)。
RX(接收)
示波器与作用域
在构建过程中,查看运行中设计的内存视图和示波器是必不可少的工具,因此两者都已包含在内,方便玩家随时访问。
内存视图和运行时活动指示
连接到信号(如声音输出)的示波器
显示输出
如果设计具有视频显示输出,玩家可以使用三种内置显示模式之一:CRT、气体等离子体和现代 LCD。使用的具体接口是 CGA(用于 CRT 和气体等离子体)和 VGA。
CGA 气体等离子体显示输出类型,游戏中显示 DANGLING 内核在 i386 兼容 CPU 上启动
游戏内显示器是可交互的
CPU 架构设计
玩家可以定义指令集架构(ISA),并在开发过程中在游戏内查看帮助横幅。稍后将发布一个包含引导式 ISA 设计功能集的 DLC。
最小指令集计算机(MISC)ISA
运行时寄存器状态概览
显示故障追踪的堆栈视图
程序定位器概览
程序级 Profiler 模式显示程序运行期间的时间消耗分布
SystemVerilog
FPGA 设计可以使用供应商中立的 SystemVerilog 进行描述。这些设计可以进行 RTL 模拟。为了加速模拟,有一个内置选项可以使用 Crosstalk 的工具链和附带的 Clang 编译器从提供的 SystemVerilog 生成 C99 代码,或者在仿真模式下运行,这会禁用设计精度保证,转而使用内置仿真器以行为方式复现设计行为。对于高分辨率模拟,提供门级模拟器,它运行设计的综合变体。这是一项昂贵的操作,因此耗时更长,并且仅限于较小的设计。
内置的 Profiler 显示 SV 设计中周期消耗分布的概览
交互式原理图查看器同时显示 RTL 和门级原理图,并在分析模式下高亮显示热点单元
最小指令集计算机 ISA + DANGLING 逻辑单元 CPU
游戏自带自定义指令集架构及其首款 CPU,它们既作为参考 SystemVerilog 实现,也作为不想制作自定义架构的玩家的目标平台。尽管非常精简,MISC 已经能够运行复杂的程序。
游戏附带的 LLVM 可以为 MISC 架构编译代码
运行原生 MISC 代码的游戏。此处演示了运行时内存操作
MISC 的首款定制原生游戏 Hardware Sniffers,将作为免费 DLC 推出
热门 crafting 游戏的 MISC 原生 C99 重制版,作为屏幕角色的客户端运行,视角来自另一个客户端,该客户端运行叠加在 Crosstalk 上的原始 Java 客户端,以便更清晰地进行视觉演示。C99 客户端通过操纵内存中的位置和动作来控制显示的角色。在这种情况下,只有 C99 文本客户端在 MISC 下运行,独立于原始客户端和 Java
沙盒模式
单人游玩子模式
沙盒模式是默认的 Crosstalk 体验。玩家可以创建一个自定义工作区,其中包含可调整大小、可定位和对齐的浮动窗口。大多数用例始于打开主机的 shell 会话,调用编辑器,并编写 SystemVerilog。一旦有了有效的设计,就可以在 Crosstalk 内部进行模拟。
网络子模式
在此子模式中,玩家可以通过 Steam Networking 与他人组队并共同构建。其结构与单人游玩模式相同,但启用了网络功能。
由于 Crosstalk 主要是一个沙盒,游玩时间很容易达到很高的小时数。这仅仅是自 Crosstalk 接入 Steam 以来的时间统计(我们玩得太多了)
评论