
LogicLoom
一个使用红石从Verilog设计构建逻辑电路的mod
LogicLoom
一个用于根据 Verilog 设计创建逻辑电路和计算机的 Minecraft 模组。
教程
逻辑综合
确保您已安装 Yosys。首先用 Verilog 2001 编写所需的逻辑。然后从本仓库获取 Synth.ys 脚本,并在文件顶部添加 read_verilog 命令以读取您的设计。
运行脚本,输入
> yosys Synth.ys
输出的 JSON 文件名为 mc_chip_maker.json,使用以下命令将其加载到 MC 中
>/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
布局与布线(P&R)
放置逻辑门。确保区域完全平坦,且所有地面方块上都可以放置红石线和中继器。
>/logicloom place
放置导线
>/logicloom route
修复错误的导线
目前,导线放置算法存在缺陷,因此可以运行此命令来检查损坏的导线。此命令会比较所有导线的起点,并检查所有终端的电源是否相同。如果不是,则会在聊天中打印有问题的导线。如果有任何问题,通常都是明显的。
即使一切看起来运行正常,此命令也能发现坏导线,因为这些坏导线可能目前不影响输出。您必须等待所有信号传播完毕,否则会得到错误的结果。您可以使用 /tick sprint 加速此过程
>/logicloom misc check_wires
为确保所有导线都被检查,您可以使用此命令强制所有导线处于以下状态:
-
通电
>
/logicloom misc force_power_wire ON -
断电
>
/logicloom misc force_power_wire OFF -
恢复正常状态
>
/logicloom misc force_power_wire Normal
运行此命令后,请运行 check_wires 命令。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。