Circuitjs 分支电路(子电路, subcircuit)功能简介

ops/2024/10/20 1:22:45/

circuitjs 中, 可以使用 分支电路 来实现自定义的"黑盒"器件.

分支电路 也称为 子电路(subcircuit).

因为菜单上已经叫成了 分支电路, 以下均称为 分支电路.

通过分支电路, 可以实现对电路的封装与抽象, 从而达到模块化并简化电路的目的. 更进一步的, 被抽象的黑盒电路还可以继续的参与进一步的抽象与封装, 也即它们是具备 闭包性质 的, 循环往复, 可以以此构建出极为复杂的电路.

视频简介: Circuitjs 分支电路(子电路, subcircuit)功能简介

创建分支电路

下面以一个具体的例子来说明如何去创建一个分支电路.

电路原型

如下一个由四个 与非门 构成的电路, 其功能如下:

如果输入是相同的, 比如同为 0 或同为 1, 则输出为 0;

如果输入是不同的, 比如 0, 1 或 1, 0, 则输出为 1.

另: 截图为旧网址, 新的网址为 https://cc.xiaogd.net/, 下同

<a class=circuitjs 分支电路 subcircuit 原型" />

显然, 如果你了解数字电路, 这其实就是所谓的 异或门.

在确定它的功能达到我们的要求后, 先删除那些测试的逻辑输入输出, 只留下最终的电路.

添加标记节点

下一步是标识出所有的输入/输出, 此步骤通过 添加标记的节点 功能实现, 在"菜单–绘制–输出和标签–添加标记的节点"下:

<a class=circuitjs 分支电路 subcircuit 添加标记的节点" />

拖动以增加标记节点, 并与输入输出的端点相连:

<a class=circuitjs 分支电路 subcircuit 增加标记节点后的电路" />

所有标记的节点默认的名称均为 label, 通过双击这些节点, 在弹出的属性调整窗口中, 一一改为所希望的名称(尽量简短):

<a class=circuitjs 分支电路 subcircuit 修改标记节点名称" />

最终效果如下, 输入端名称为 A 和 B, 输出端为 O:

<a class=circuitjs 分支电路 subcircuit 标记后的结果" />

标记内部节点

如果要在分支电路定义中使用带标记的节点, 但又不想让它们成为输入/输出之一, 则请勾选那些带标签的节点的编辑菜单中的"内部节点"复选框.

<a class=circuitjs 分支电路 subcircuit 内部节点" />

注意: 如果电路存在多余的没有被标记的端点, 创建分支电路时可能会存在异常.

所以, 哪怕是不用对外提供的端点, 你可能依然需要通过"内部节点"去标识它们.

在上述例子中, 没有使用到内部节点.

设置分支电路引脚, 高宽, 名称

然后, 选择"菜单–文件–创建分支电路", 弹出以下窗口:

<a class=circuitjs 分支电路 subcircuit 创建分支电路窗口" />

通过拖动节点可以重新排列引脚:

<a class=circuitjs 分支电路 subcircuit 拖动节点排列引脚 gif" />

注意: 拖动时, 如果发现拖不动或没有效果, 则鼠标光标可以适当移出到模型框线外面一点.

引脚可以是左右或是上下朝向.

如果没有足够的空间供调整, 可以通过单击 宽度 和 高度 旁边的 + 号增加高度和宽度:

<a class=circuitjs 分支电路 subcircuit 增加模型高度和宽度 gif" />

最后, 调整完成后, 可以通过单击 宽度 和 高度 旁边的 - 号减小不必要的高度和宽度.

当然, 你也可以不缩小模型框的最终大小, 但适当保持紧凑会好一点, 后面使用它时也不用占那么大的地方.

引脚位置和宽高调整完成后, 在 模型名称 中输入模型名称, 然后单击"确定".

<a class=circuitjs 分支电路 subcircuit 输入模型名称" />

这将加载子电路模型.

注: 请记得保存该分支电路实现, 否则以后将无法对其进行再次编辑(修改).

使用分支电路

现在, 您可以使用分支电路模型创建电路. 用鼠标右键单击, 然后选择"有源集成电路–添加分支电路实例"项.

<a class=circuitjs 分支电路 subcircuit 有源集成电路--添加分支电路实例" />

或是通过 “菜单–绘制–有源集成电路–添加分支电路实例” 添加.

然后单击并拖动以创建实例.

<a class=circuitjs 分支电路 subcircuit 拖动创建实例 gif" />

注: 连续拖动可以创建多个实例, 如果不再需要创建, 按快捷键 Esc 退出添加状态.

如果创建有多个分支电路模型, 可以通过编辑实例, 然后在弹出窗口的 模型名称 下拉窗口中选择所需的模型.

<a class=circuitjs 分支电路 subcircuit 选择模型" />

默认情况下, 它将使用您刚创建的模型.

当您保存/加载该电路时, 它还将保存/加载分支电路模型, 因此您可以在其他电路中使用它.

另外, 在创建实例后, 你还可以再度编辑模型. 通过在模型实例上 “右键–编辑–编辑模型”:

<a class=circuitjs 分支电路 subcircuit 编辑模型" />

之后, 会再度弹出前述创建分支电路时弹出的窗口, 你可以再度调整引脚位置, 模型高宽.

注意: 如果创建了多个模型实例, 此调整将影响所有已创建的实例!

重新封装现有模块以改变引脚位置

有时候, 有些模块是 app 中已经封装好的, 但它的引脚位置布局可能不是你希望的, 这时您还可以使用分支电路来重新排列内置芯片上的引脚.

选取部分电路来创建分支电路

默认情况, 创建分支电路会使用当前画布上的所有电路.

如果在使用"文件–创建分支电路"之前选择了电路的一部分, 则仅所选元素将被视为分支电路的一部分.

多窗口中使用多个分支电路

虽然在一个窗口(画布)中也可以创建多个分支电路, 但添加实例时缺省都是最后创建的, 多个模型的情况下, 你需要再度编辑模型名称才能调整为其它先前添加的模型的实例.

为清晰起见, 你可以打开多个浏览器窗口, 不同的分支电路在不同的窗口中去创建, 然后拖动生成相应的实例.

最后, 这些实例均支持跨窗口拷贝(粘贴), 因此你也可以通过这种方式将多个分支电路实例整合到一起.

关于 circuitjs 分支电路功能的介绍就到这里.


http://www.ppmy.cn/ops/98737.html

相关文章

11111

诡秘之主 多看版  爱潜水的乌贼著 制作说明 诡秘之主 爱潜水的乌贼◎著 内容简介 蒸汽与机械的浪潮中&#xff0c;谁能触及非凡&#xff1f;历史和黑暗的迷雾里&#xff0c;又是谁在耳语&#xff1f;我从诡秘中醒来&#xff0c;睁眼看见这个世界&#xff1a; 枪械&#xff0…

一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试

接口测试虽然作为版本的一环&#xff0c;但是也是有一套完整的体系&#xff0c;有接口的功能测试、性能测试、安全测试&#xff1b;同时&#xff0c;由于接口的特性&#xff0c;接口的自动化低成本高收益的&#xff0c;使用一些开源工具或一些轻量级的方法&#xff0c;在测试用…

C++相关概念和易错语法(29)(lambda、function、bind)

1.lambda lamba表达式本质是匿名函数 书写格式&#xff1a;[ 捕捉列表 ] ( 参数 ) mutable -> 返回值 { 函数体 } 下面我会由简到难分享lambda的用法和它的理解 &#xff08;1&#xff09;基本使用和理解 我们先来看一段代码 我认为第一次看这个表达式应该还是能够…

[数据集][目标检测]木材缺陷检测数据集VOC+YOLO格式2383张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2383 标注数量(xml文件个数)&#xff1a;2383 标注数量(txt文件个数)&#xff1a;2383 标注…

【前端】浅聊一下跨域

文章目录 背景关于POST&#xff0c;PUT请求跨域检测的步骤浏览器的处理小结 背景 一直以来&#xff0c;对于跨域的问题&#xff0c;都是让服务端配置一下允许cors&#xff0c;保证接口能通就行&#xff0c;而没有进一步深究。但是后端非要和你深究这个事情的时候&#xff0c;咱…

城乡燃气安全监管平台 打造城市安全防护网

随着城市化进程的不断加快&#xff0c;燃气已成为现代生活中不可或缺的重要能源。然而&#xff0c;传统燃气管理方式的局限性逐渐显现&#xff0c;难以应对日益增长的安全监管需求。为此&#xff0c;旭华智能基于其在智慧城市领域的深厚积累&#xff0c;推出了燃气安全监管物联…

oracle备份策略

一、RMAN热备份 1、查看是否开启归档 archive log list;归档未开启 归档开启方法 – 关闭数据库&#xff0c;重启至mount模式 shutdown immediate startup mount– 开启归档模式 alter database archivelog;– 打开数据库 alter database open;– 检查归档模式是否打开 a…

韩国云主机玩游戏性能怎么样

韩国云主机玩游戏性能怎么样&#xff1f;韩国云主机作为高性能的计算服务&#xff0c;为全球游戏玩家提供了一种新的游戏体验方式。用户所关注的韩国云主机在游戏性能方面的表现&#xff0c;可以从多个维度进行详细评估。下面将具体分析韩国云主机用于玩游戏的性能特点&#xf…