LogicLoom

LogicLoom

一个通过红石从Verilog设计构建逻辑电路的模组

工具

LogicLoom

一个用于根据 Verilog 设计创建逻辑电路和计算机的 Minecraft 模组。

教程

逻辑综合

确保已安装 Yosys。
首先用 Verilog 2001 编写所需的逻辑。
然后从本仓库获取 Synth.ys 脚本,并在文件顶部添加 read_verilog 命令来读取你的设计。

用以下命令运行脚本:

yosys Synth.ys

输出的 JSON 文件将命名为 mc_chip_maker.json。使用以下命令将其加载到游戏中:

/logicloom load_json FILE_PATH

限制

不支持方向为 Inout 的端口。
JSON 文件只能包含一个模块。仅读取第一个模块,其他模块会被忽略。

设置参数

放置步骤的最大迭代次数:

/logicloom param max_iter NUMBER_HERE

沿 X 和 Y 轴的放置区域大小:

/logicloom param chip_size NUMBER_HERE

放置期间用于扩散单元的初始力乘数:
应为较小的值。默认值为 0.05

/logicloom param force_const NUMBER_HERE

每次放置迭代时力乘数的放大倍数:
应为较小的值。默认值为 1.047

/logicloom param force_mul NUMBER_HERE

当两点间的直线布线因障碍物无法进行时,会使用波传播算法。
为加速该算法,会基于两点构建一个包围盒。波传播可超出该包围盒的最大距离为 router_max_search。
默认值为 13

/logicloom param router_max_search NUMBER_HERE

由 Yosys 生成的文件路径:

/logicloom load_json FILE_PATH

固定点

固定点与其他单元类似,但具有固定位置。它们可用于按需移动设计。
你需要至少添加一个固定点才能获得有用的结果。
目前只能添加与设计中所有单元连接的固定点。

设计中的所有端口都是固定点,通过权重为 1 的连接与相关单元相连。

固定点的位置相对于当前起始点存储。
如果在添加固定点后更改了起始点,该固定点在游戏世界中的位置也会相应改变。

要修改固定点,请使用:

/logicloom fixed_points

布局与布线

放置逻辑门:
确保区域完全平坦,且所有地面方块上均可放置红石线和中继器。

/logicloom place

放置导线:

/logicloom route

修复不良导线

目前,导线放置算法存在缺陷,因此可使用此命令检查断线:
此命令会比较所有导线的起始点,并检查所有端点的信号强度是否一致。
如果不一致,有问题的导线会显示在聊天栏中。如果存在问题,通常很明显。

即使一切看似正常,此命令也能找出不良导线,因为这些不良导线可能当前未影响输出。
你必须等待所有信号传播完毕,否则会得到错误结果。
你可以使用 /tick sprint 加速此过程:

/logicloom misc check_wires

为确保所有导线都被检查,你可以使用以下命令强制所有导线处于:

  1. 激活状态

    /logicloom misc force_power_wire ON

  2. 未激活状态

    /logicloom misc force_power_wire OFF

  3. 恢复正常状态

    /logicloom misc force_power_wire Normal

执行此命令后,请运行 check_wires 命令。

画廊

一个能够进行加法、减法、乘法和除法的 8 位计算器。