数字逻辑设计器和电路模拟器

2021-03-30 00:11:21

没有安装安装,只需打开digital.zip文件,可供下载。在Linux上启动shellscript和Windows和acos可以直接启动JAR文件。需要java运行时环境(至少JRE 8)运行数字。在Windows上,获得Java的Easiestway是安装AdveropeNjdk。

如果您的系统上启动数字出现任何问题,请尝试从* digital *文件夹中的命令行运行数字:

简单地测试电路:您可以创建测试用例并执行它们以验证您的设计。

许多示例:从传输门D-FLIP-FLOP到完整(简单)MIPS的单周期CPU。

包括有限状态机(FSM)的简单编辑器。然后可以将FSM转换为SateTradition表和实现FSM的电路(参见屏幕截图)。

支持通用电路。这允许在使用时创建可以参数化的电路。这种方式,例如,可以为具有可选位宽度创建枪管移位器。

支持大电路:" Conway' Life&#34的比赛;示例包含约2400个活动零部件,并且工作正常。

可以使用在Java中实现的自定义组件,并在JAR文件中打包。将此示例有关详细信息。

可以使用VHDL或Verilog描述组件。要安装的开源VHDL模拟器GHDLNEEDS要模拟VHDL定义的组件,并且需要开源Verilog模拟器ICarus Verilog来模拟Verilog定义的组件。

可以将电路导出到VHDL或Verilog。还可以直接支持BasyS3板和TinyFPGA BX Board.se文档以获取详细信息。示例文件夹包含示例CPU的变体,在BasyS3板上运行。

可以直接导出JEDEC文件,您可以闪烁到GAL16V8OR A GAL22V10。这些芯片有点过时(1985年推出!)但足以为初学者练习,易于理解和良好的记录。此外,ATF150x芯片还提供多达128个宏小区和系统编程。将文档详细信息。

良好的测试覆盖范围(约80%; THETRAVIS-CI构建服务器上没有GUI测试和HDL模拟器集成测试,因此CodeCov仅测量大约50%)。几乎所有示例都包含测试用例,确保他们正常工作。

尚未发布的最新更改在发布说明中列出。您可以在此处找到最新的预发布版本。在预发布构建中通常不会执行自动GUI测试。所有其他测试,包括HDL测试,包括HDL测试,被执行而没有错误。

该文档以英语,德语,西班牙语,葡萄牙语,法语和简体中文提供。它仍然非常不完整,但它包含一章"第一步"这解释了数字的基本用法。文档还包含可用的74xx芯片列表和可用键盘快捷键列表。

到目前为止,数字是用英语,德语,西班牙语,葡萄牙语,法语和简体中文提供的。如果有人想要添加重新翻译,请告诉我。我可以为您提供一个特殊的翻译文件。此文件比Digital直接使用的文件更容易ToRanslate。所以你不必处理github或thejava源代码。只需将英文提出的相应翻译添加到此文件中,并将其发送回me.如果您想知道如何创建必要的文件,请参阅此处。

如果要发送错误报告或功能请求,请使用Github问题跟踪器。这有助于我改进数字,所以不要犹豫。如果您有一般性问题,您也可以使用NewGithub AccountSto询问您的问题而不会创建问题。

在Digital的开发之前,我使用的Logisim,由Carl Burch开发。如果您熟悉Logisim,您将识别电线配色方案。

Logisim是一个优秀的教学工具,即在2011年之前积极开发。2013年Carl Burch已经开始开发一个名为Toves的新模拟器。在他的博客中,他解释了为什么他决定开发一个新的模拟器而不是改善Logisim.in Short:在他看来,Logisim的弱点'太难以克服的建筑。幸福的地,Toves的发展在一个早期的阶段被停产。

2014年,Carl Burch终于终止了oflogisim的发展。由于Logisim被释放为开源,因此有许多叉子继续在Logisim上的工作:

Logisim-Evolution由一群瑞士机构(HauteécoleSpécialiséeBernoise,Hauteécoleduapsage,D'Ingéniereett'建筑deGenève,Hauteécoled'Ingéniereetde Gestion du Canton de vaud)

但据我所知,这些项目不起解决架构困难。他们更多地有关添加功能和修复错误。例如,在Logisim-Evolution中,添加了VHDL / Verilog导出和一个非常好的FPGA板集成。

因此,我还决定完全从头开始实施一个新的模拟器,并于2016年3月开始实施数字数字。在此期间达到了开发水平,与Logisim相当。在某些领域(电路的性能,电路测试,电路分析,电路分析,电路分析)相当。硬件支持)已超过Logisim。

下面我想简要解释一下让我开始新发展的原因:

在Logisim中没有真实的"开启"电路。在修改它时,模拟也运行。这导致有时是意外的行为。因此,可以建立一个简单的主奴爪絮车,工作正常。但是在一个电路重置后,触发器不起作用.Since电路未打开,有裸体时间将电路带到其完成后的稳定状态。始于掌握JK-FLIP-FLIP-FLIP-FLIP-FLIP-FLOP只能使用复位输入实现,需要激活此功能,以使电路运行。

要了解如何处理此问题的数字处理,您必须了解模拟所在的数字:数字使用基于事件的模拟器方法,即每次Agate在其一个输入之一进行变化,读取新的输入状态,门的输出不会立即更新。只有当所涉及的所有门都读取其输入时,只有更新所有门的输出。所有门似乎都同步地改变,即它们似乎具有所有完全相同的门延迟时间。然而,这种方法的不希望的特征是即使是一个简单的RS触发器可能无法扭转稳定状态。 LogiSim相同的问题。

解决这个问题,"开启"被介绍,在接通电路后右转期间使用不同的仿真模式:每次栅极经历其一个输入之一的变化时,读取所有栅极输入,它们的输出都会立即更新。此时以随机顺序突出不会发生进一步的更改,电路达到稳定状态。门似乎具有随机延迟时间。此方法,主从触发器达到稳定状态之后"开关"但是,最终状态仍未确定。

为了在定义的状态下启动电路,使用特殊的复位门。此门具有在稳定时间和Goeshigh期间的单个输出在稳定时间结束时。

这种方法的缺点是事实上,无法改变运行模拟。为了执行此操作,需要关闭电路,修改和打开。然而,该过程也是建议的真实电路。

使用Logisim,很难找到振荡电路的根本原因。如果LogIsim检测到振荡,则发出相应的消息,但无法更详细地调查原因,因此困难的Toundstand会发生什么。

所有栅茨的同步更新,其中一个输入的改变也可能在数字中引起仿真。在这种情况下,检测振荡并检测振荡停止。但是,也存在单个栅极模式,其允许通过栅极传播信号改变门。此功能允许通过电路进行缩写。在每个步骤之后,突出显示其输入时变化的所有栅极都是突出显示的。这方法可以看出信号变化如何在电路中传播,因此您能够找到振荡的根本原因。

类似于Logisim,Digital还允许在新设计中嵌入先前保存的电路,因此可以创建分层电路。然而,在数字嵌入式电路中,包括经常使用电路。这类似于C程序,其中AllFunction调用被编译为内联的函数。这也类似于真实电路:每个子电路是"物理呈现"经常在设计中使用。虽然这种方法增加了存储器中的模拟模型的数据结构的大小,但它简化了模拟本身。例如,嵌入式电路的输入和输出没有特别处理,他们只是在形成模拟模型后不再是don' texist了。即使是双向连接也可以容易地实现。因为该方法例如,子电路中的嵌入式和门的嵌入式和门在顶层的窗口中表现得完全类似,但对于从同时模拟模型透视图中的这两个变体之间实际上没有区别.Logisim工作有所不同,有时会导致意外信号传播时期的惊喜,并且难以使用双向引脚。

如果模拟完整处理器,则可以在没有Thraphical表示的情况下计算仿真。可以使用120khz时钟(英特尔®酷睿™I5-3230M CPU @ 2.60GHz)模拟简单处理器(参见示例)适用于更复杂的装配练习,如Conway' Live游戏。是一个输入的突破门。如果此输入从低电平变为高电平,则停止此快速运行。此方法,可以实现汇编指令BRK,然后可以用于插入断点汇编语言程序。所以装配程序的调试变得非常简单。

在Logisim中,在模拟处理器中没有简单的方法可以在模拟处理器中调试装配程序.Digital提供简单的基于TCP的遥控器接口,因此使用汇编程序IDECAN来控制模拟器并将装载程序程序加载到模拟处理器中,启动程序,执行步骤等。如果是一个"单步"或者一个"跑到下一个brk指令"由组装IDE触发,程序内存的使用使用的程序存储器返回到汇编IDE。这允许汇编程序IDE突出显示实际执行的指令。通过这种方式,可以很容易地调试由模拟处理器执行的AnasseMbly程序。

Logisim能够从真实表中生成组合电路,反之亦然。在数字中,这也是可能的。此外,可以从适当的状态转换表中生成顺序电路。您可以指定过渡电路和输出电路。表达式的最小化是Quine和McCluskey的方法。实话表也可以导出来自包含简单组合逻辑,D触发器或JK触发器的电路,包括生成状态转换表。注意,但是,没有识别组合栅栏的触发器构建。顺序电路的分析仅适用于纯粹的Combinatorallogic与构建D或JK触发器合并。请执行真理表或状态转换表创建,可以为GAL16V8或GAL22V10导出JEDEC文件。在此之后,该文件可以闪烁到上述这些GALS的适当GAL.AS非常陈旧,但是对于初学者来说,具有8/10宏细胞。如果需要更多宏单元格,了解有关如何设置数字以支持提供32/64宏单元和系统编程的ATF1502和ATF1504 CPLD的详细信息,请参阅PDF文档。也可以将电路导出到VHDL或ve瑞格在FPGA上运行它。但是必要的HDL综合有时有点耗时,在我的经验中,在alab运动中的工作流程太多,特别是如果只需要简单的电路,并且学生再次改变电路。

大多数IDES(Eclipse,NetBeans,Intellij)能够导入POM.xml以创建项目。

如果您想贡献,请首先打开GitHub问题。 在发送Pull请求之前,请确保至少MVN安装运行而没有错误。 尽量保持测试覆盖率。 目标是至少80%的测试覆盖范围。 到目前为止,只有几个GUI测试,使整体测试覆盖率仅略低于80%.TRY以保持未经测试的GUI代码的数量低。 Ivan de Jesus Deras Tabora来自Honduras的TexidadTecnológicaCentroameramanAmeraMented verilog代码生成器,几乎所有必要的Verilog模板。 来自巴西·普罗菲尼亚·普罗迪瓦·弗兰克斯·弗朗克特拉·弗兰卡斯(Católica)巴西的米纳斯Gerais提供了葡萄牙语翻译。 伊斯蒂托德教育伊斯兰省的Ingelmlia IES Virgen de Villadiego在Peñaflor(Sevilla),Spainhas提供了西班牙语翻译。