Skip to content

Lab2

这里会将一些比较普遍、集中的问题汇总,如果这里什么都没写,说明我忘记更新了


常量 or 引脚

你应该在实验的时候看过一句话:

请勿修改引脚名称、电路名称及电路封装外观

我们进入封装编辑模式,发现整个电路实现作为一个单独的元件显示。事实上,评测 OJ 进行评测的时候,就是调用这个封装后的元件,接输入输出进行测试

image-20260402213103099

那么,为什么要提到常量和引脚呢?在完成部分电路的时候,你会发现某些输入是恒为定值的

image-20260402213326102

如果你用输入引脚,并手动设置为 0/1,尝试代替常量的功能,那么本地测试通过的情况下,评测 OJ 会给出 Error 的结果:

  • 你引入了新的引脚,改变了封装外观(你新引入的引脚不会被评测 OJ 连接,相当于蓝色的不定态,而不是你在本地设置好的 0/1)

未知的封装问题

书接上文,在实验中,有时会遇到这种情况:可以确定自己的电路实现正确,但是评测结果非常奇怪

image-20260423174012866

如图,这大概率又是封装要背锅了。cslab 的评测机对封装元件的接口是硬编码相对位置的,因此需要确保封装引脚的相对位置(那个绿色的圆圈是元件的锚点)是正确的

以 Lab2.1 为例,左边是错误的,右边是正确的。不清楚为什么引脚会乱掉,只能受着了

image-20260423174825258

因此再次提醒:不要让 main 电路的封装引脚有任何变化(子电路是可以的)

MUX 的输入端

只是想提醒你,实验 PDF 文件中给的原理图中:

image-20260413014047986

和 Logisim 中 MUX 的输入是反的

image-20260413014139245

分线器

依旧是桶形移位器的实验,为了将多位输入拆分,我们需要分线器

依旧只是想提醒你,分线器并不是只能逐位分线,它比你想象的更加自由

image-20260413014306439

以助教本人的连线为例:

image-20260413015011181

我很难想象如果分线器是逐位分出的,电路会是什么样的🤦

此外,分线器可以反向使用,即“集线器”

哦对了,这个图里你还能看到扩展器这个元件,有了这个元件你就不需要用分线器进行神秘操作了。注意扩展器分零扩展和符号扩展