Crosstalk 的使命宣言是,我们希望它能重拾动手 tinkering、从零开始设计事物以及慢工出细活的乐趣,同时让人们能够连接与协作。在计算领域,这种体验已不多见。
Crosstalk 是一个带有模拟器和仿真器的 RTL 沙盒,用于构建电子设备。玩家可以构造和编程从计算器到复杂计算机的各种设备。它配备了一个门级 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(接收)
示波器
在构建过程中,查看运行中设计的内存视图和示波器是必不可少的工具,因此两者均已包含在内,方便玩家随时访问。
</img>
内存视图和运行时活动指示
</img>
连接到信号(如声音输出)的示波器
显示输出
如果设计具有视频显示输出,玩家可以使用三种内置显示模式之一:CRT(阴极射线管)、气体等离子体和现代 LCD。使用的具体接口是 CGA(用于 CRT 和气体等离子体)和 VGA。
</img>
CGA 气体等离子体显示输出类型,展示游戏中 i386 兼容 CPU 上启动的 DANGLING 内核
</img>
游戏内显示器是可交互的
CPU 架构设计
玩家可以定义指令集架构(ISA),并在开发过程中在游戏内查看帮助横幅。稍后将发布一个包含引导式 ISA 设计功能集的 DLC。
</img>
最小指令集计算机 ISA
</img>
运行时寄存器状态概览
</img>
堆栈视图,显示故障时的跟踪信息
</img>
程序定位器概览
</img>
程序级性能分析器模式显示程序运行期间的时间消耗分布
SystemVerilog
FPGA 设计可以使用供应商中立的 SystemVerilog 进行描述。这些设计可以进行 RTL 模拟。为了加速模拟,有一个内置选项可以使用 Crosstalk 的工具链和附带的 Clang 编译器从提供的 SystemVerilog 生成 C99 代码,或者在仿真模式下运行,这会禁用设计精度保证,转而使用内置仿真器以行为方式复现设计行为。对于高分辨率模拟,提供了一个门级模拟器,它运行设计的综合变体。这是一项开销较大的操作,因此耗时更长,并且仅限于较小的设计。</img>
内置的性能分析器显示了 SV 设计中周期消耗的位置概览
</img>
</img>
</img>
交互式原理图查看器同时显示 RTL 和门级原理图,并在性能分析模式下突出显示热点单元
最小指令集计算机 ISA + DANGLING 逻辑单元 CPU
游戏附带了一种自定义指令集架构及其首款 CPU,它们既作为参考 SystemVerilog 实现,也为不想制作自定义架构的玩家提供了目标。尽管 MISC 非常精简,但它已经能够运行复杂的程序。
</img>
游戏附带的 LLVM 可以为 MISC 架构编译代码
</img>
运行原生 MISC 代码的游戏。此处演示了运行时内存操作
</img>
MISC 的首款自定义原生游戏 Hardware Sniffers,将作为免费 DLC 推出
沙盒模式
单人游玩子模式
沙盒模式是默认的 Crosstalk 体验。玩家可以创建一个自定义工作区,其中包含可调整大小、可定位和对齐的浮动窗口。大多数用例始于打开指向主机的 shell 会话,调用编辑器,并编写 SystemVerilog。一旦有了有效的设计,就可以在 Crosstalk 内部进行模拟。
联网子模式
在此子模式中,玩家可以通过 Steam Networking 与他人组队并共同构建。其结构与单人游玩模式相同,但启用了联网功能。