Logisim 是课上用于模拟仿真电路的一个软件。
特殊部件与属性
Splitter
Fan out
:表示将几路数据进行合并,或者将数据分成几路Bit Width In
: 总线的数据位宽,这里不一定是输入的位宽,也有可能是合并,输出之后的位宽Appearance
:器件的外观,这里选择的是左手手性还是右手Bit 0-31
:用于决定总线输入中的某一位数据,将从分线管脚的哪一位输出
Pin
Output?
:决定该 Pin 属于输入管脚还是输出管脚、Three-state?
:表示是否支持三状态:0
、1
、x
Pull Behavior
:是否增加上,下拉电阻。对于输入引脚,该属性指定应如何处理来自父级电路的浮空值。该属性可以实现加法器的进位输入为 x 状态(或者不连)时,默认进位是 0(自建加法器时会用到):unchanged
:浮空值作为浮动值发送至父级电路中pull up
:浮空值在被送入父级电路之前被转换为 1pull down
:浮空值在被送到父级电路之前被转换为 0
Probe
Radix
:数据显示的进制
Tunnel
不详述
Clock
High Duration/Low Duration
:高点平与低电平的持续时间。例如,如果选择 High Duration 为 2 tick,则在一个周期内,高点平持续 2/3 周期,低电平持续 1/3 周期默认选择 1 tick 即可。
Gates
- 数据位宽,输入数目等
Negate 1-5
:表示在对应的输入端口增加一个非门
MUX
Disabled Output
:若选择无数据输入,则输出值的表现,可选择浮空值,或者是 0Include Enable?
:是否增加使能端。如果增加使能端,在使能端有效的时候或者处于浮空状态时,均可正常工作,但若使能端处于 0 状态时,输出端口将会成为浮空状态
Decoder
Three-state?
:表示是否支持三状态:0
、1
、x
Disabled Output
:若选择无数据输入,则输出值的表现,可选择浮空值,或者是 0Include Enable?
:是否增加使能端。如果增加使能端,在使能端有效的时候或者处于浮空状态时,均可正常工作,但若使能端处于 0 状态时,输出端口将会成为浮空状态
DMX
Three-state?
:表示是否支持三状态:0
、1
、x
Disabled Output
:若选择无数据输入,则输出值的表现,可选择浮空值,或者是 0Include Enable?
:是否增加使能端。如果增加使能端,在使能端有效的时候或者处于浮空状态时,均可正常工作,但若使能端处于 0 状态时,输出端口将会成为浮空状态
Arithmetic
包括加减乘除取负数,不详述。
Comparator
Numeric Type
:表示数据的数据种类,二进制的补码形式或无符号类型
Shifter
Shift Type
:移位模式Logical Left
:逻辑左移Logical Right
:逻辑右移Arithmetic Right
:算数右移Rotate Left
:循环左移Rotate Right
:循环右移
Register
Trigger
:触发模式Rising Edge
:上升沿存入Falling Edge
:下降沿存入High Level
:高电平存入Low Level
:低电平存入
Memory
编辑地址时,点击存储值显示区域以外,Enter
表示下一行,Backspace
表示上一行,Space
表示向下翻页,即四行。
编辑数据时 Enter
表示下一行,Backspace
表示回到上一个位置,Space
表示向后一个。
文件输入时,要在头部加上 v2.0 raw
。可以用 16*00
表示一行出现 16
个 00
。也可以用 #
添加注释。输入数据要和存储器的数据位宽相匹配,否则会出现数据截断。
RAM
Data Interface
:控制数据传输方式One Synchronous Load/Store port
:同一个端口读写。当ld
端口为1
时读取,否则存储。One asynchronous Load/Store port
:同上,不用时钟。Separate load and store ports
:读写用两个端口(通常情况)
ROM
不详述。
Counter
Action On Overflow
:将要溢出时做什么Wrap Around
:变成 0(或最大值)重新开始计数Continue Counting
:继续计数Stay At Value
:保持在最大值(或最小值)(常用)Load Next Value
:从 D 端读入下一个数据
进阶功能
子电路
- 添加子电路:
Project
→Add Circuit
- 为电路添加元件和连线
- 编辑电路外观:
Project
→Edit Circuit Appearance
Wire Bundles
组合逻辑分析
Logisim 中的逻辑分析的功能可以实现组合电路,真值表,布尔表达式三者间的转换。
- 打开组合分析窗口:
Windows
→Combinational Analysis
生成电路时可以选择 Use Two-Input Gates Only
或 Use NAND Gates Only
。
仿真与调试
- 打开仿真:
Simulate
→Simulation Enabled
- 重置仿真:
Simulate
→Reset Simulation
- 仿真进行一步:
Simulate
→Step Simulation
(好用) - 时钟前进一步:
Simulation
→Tick Once
- 时钟启动:
Simulation
→Ticks Enabled
- 改变时钟频率:
Simulation
→Tick Frequency
Logging
Simulation
→Logging
可以记录每一个时刻元器件的值
常用电路
给寄存器赋初始值
注意 counter 的 Action On Overflow
属性要设置为 Stay At Value
,Maximum Value
要设置为 0x1
。
MUX 上部为初始值,下部为 0
。
或门上部为之后的步骤中给寄存器赋的值。
Logisim 自动化浅谈
Logisim 的文件实际上是一个 XML,由 3 种标签组成: - <circuit>
是电路或子电路的标签,用于标记整个电路 - <wire>
标签用于连线,通过 x-y
属性定位 - <comp>
标签拥有 loc
和 name
属性,用于调用库元件
可以通过代码生成 XML 来实现构造重复性电路。