使用 KTechLab 进行计算机逻辑设计
几周前,我写了一篇关于一个名为 ksimus 的数字和模拟电路模拟器的文章。我的一位读者询问 ksimus 和 ktechlab 之间的区别是什么,所以我认为我应该看看 ktechlab。我只想说这两个程序都非常有趣。
我对 ktechlab 的第一印象是,它拥有更丰富的组件种类,可以用来构建电路。与 ksimus 不同,ktechlab 包括可寻址存储器以及 DAC、ADC 甚至 PIC 微控制器!正如我稍后将讨论的那样,我不得不使用 Google 来查找某些组件是什么。Ktechlab 的文档似乎相当完整,尽管该程序的网站有很多链接失效。该网站确实向用户社区发出了求助呼吁,因此如果您发现该程序有用,也许您可以帮助该程序的开发人员维护网站。
ktechlab 中的组件大致分为以下几类:源、分立元件、开关、输出、逻辑电路、连接和集成电路。
令人惊讶的是,ktechlab 配备了十个电压源,包括一些我从未听说过的!我不是电气工程师,但我确实觉得同时拥有电池和固定电压源有点多余。这两个组件都具有可配置的电压输出。电压信号源提供具有可配置幅度和频率的正弦波。方波时钟发生器具有可配置的频率和占空比,尽管它有点违反直觉地被归类为逻辑组件而不是源。
Ktechlab 还提供分立元件,让您可以构建简单的模拟电路。在这里我们找到了电阻器、电容器、电感器、二极管和晶体管。我们还找到了各种各样的开关。我们有瞬时接触和瞬时断开开关,以及 SPST、DPST、SPDT、DPDT 和旋转开关。
ktechlab 提供的输出也同样多样化。我们有简单的 LED 和灯泡。我们还有双向 LED、七段 LED 和点阵显示器。点阵显示器几乎可以制成您能想象到的任何尺寸。我们还找到了电压表和电流表。最后,我们可以使用逻辑、电压或电流探针在应用程序屏幕的底部获得一个图表。图 1 显示了一个我构建的简单电路,用于演示几个不同的开关、一个电池、一个灯泡、一个电压表和一个电位器。
Ktechlab 有一个连接部分,其中有一些意想不到的好东西。在这里我们找到了带有所有引脚标签的串行和并行端口!Ktechlab 还有一个总线连接,允许我们将多个导体组合在一起,以便可以将它们作为一个整体进行布线和连接。例如,存储器芯片的所有地址线都可以组合成一条总线。我们可以使用外部连接来构建模块,然后在更大的项目中使用这些模块。
当我们进入数字组件时,事情开始变得真正有趣起来。一般来说,您会找到您期望的所有门和逻辑电平,并且门可以是您想要的任何尺寸。创建一个具有 50 个输入的 OR 门是很疯狂的,但 ktechlab 会让您做到这一点。我们还找到了 JK、SR 和 D 触发器。然后我们继续研究更复杂的集成电路,如 DAC、ADC、运算放大器、2 位加法器、多路复用器、解复用器和计数器。此时,您可以称零件清单相当完整,但还有更多。Ktechlab 有一个 BCD 到 7 段显示编码器以及一个矩阵显示驱动器。我们甚至可以使用 555 定时器芯片!还记得那些吗?
图 2 显示了我创建的另一个简单电路。这次我们有一个时钟源驱动一个 8 位计数器。计数器的输出用作点阵显示驱动器的数据,该驱动器驱动点阵显示器的单个字符。正如您所见,我有一个使能、向上/向下和一个复位按钮。因此,当使能按钮闭合时,时钟启动,显示器循环显示所有可能的字符。如果您按下复位按钮,它将重新开始。如果您切换向上/向下按钮,显示器将向另一个方向循环。这是一个简单的电路,但它很好地演示了 ktechlab 的一些更出色的功能。
接下来我们遇到了两个我从未期望在模拟器中找到的芯片。其中一个电路是一个 RAM 芯片,地址总线最多可达 32 位!当我达到 90 位时,我停止增加数据字大小!
另一个我没想到会在如此通用的电路仿真软件包中找到的芯片是 PIC 微控制器!Ktechlab 允许您在设计中使用 P16F84 PIC。Ktechlab 不仅会模拟 PIC,还会让您配置和编程它!在真正的 PIC 上,每个引脚都可以配置为输入或输出。此配置是通过将特定的位模式写入配置寄存器来完成的。Ktechlab 使初始 PIC 配置变得简单;您可以通过单击每个引脚在高电平和低电平之间切换来设置初始逻辑电平。您可以通过单击引脚并沿您希望数据在该引脚上流动的方向拖动鼠标,将每个引脚配置为输入或输出。每个引脚旁边都有一个箭头,指示该引脚是输出还是输入。
图 3 显示了一个以 PIC 微控制器和并行端口为特色的虚构电路。很容易看出,只需稍作研究,使用 PIC 构建并行接口电路可能非常简单。Ktechlab 允许您设计和建模这样的电路。
一旦您配置好 PIC(ktechlab 将帮助您完成此操作),您就可以以 .asm、.c 或 .microbe 格式将程序加载到其中。如果您的程序是 .asm 格式,ktechlab 将在程序在电路中时模拟该程序。
PIC 汇编语言可能有点令人生畏,但 ktechlab 帮助简化了 PIC 编程。借助 ktechlab,您实际上可以通过组合流程图元素来创建简单的程序。实际上,展示比描述更容易,所以请看图 4。在左上角,您可以看到 PIC,其引脚已标记。每个引脚旁边都有一个箭头,指示该引脚是输出还是输入。您还可以看到一个简单程序和一个子程序的框架。因此,ktechlab 为您提供了一个统一的环境,您可以在其中编程、模拟 PIC 微控制器并与之交互。
我在 ktechlab 以及 ksimus 中发现明显缺少的一件事是将信号电平输出到文件或将其作为电路输入读入的能力。这将为能够使用真实世界的输入来模拟电路打开大门。您还可以将模拟的输出与已知的正确结果进行比较。可悲的是,ktechlab 和 ksimus 都没有提供此功能。
我出于好奇遇到了 ksimus 并安装了它。Ktechlab 是一位读者向我指出的。这两个程序都很有趣且功能齐全。Ksimus 可能更擅长使用其卓越的浮点函数来建模模拟电路。Ktechlab 在进行计算机逻辑设计方面非常出色,因为它提供了更广泛的组件。