Lab 0: Introduction to Logisim

From Microlab Classes
Revision as of 17:40, 23 January 2025 by Lawrence Quizon (talk | contribs) (Created page with "= Quick Logisim Tutorial = == Setting up == 1) Download Logisim evolution from https://github.com/logisim-evolution/logisim-evolution/releases. Get the latest .jar version....")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Quick Logisim Tutorial

Setting up

1) Download Logisim evolution from https://github.com/logisim-evolution/logisim-evolution/releases. Get the latest .jar version.

2) To run the JAR file, install Java 16 or higher. Recommended: Adoptium OpenJDK 17 from https://adoptium.net/temurin/releases/

  • For Windows: Get the .msi installer
  • For MacOS: Get the .pkg installer

3) Once Java is installed, double-click the JAR file to run it.

Navigating Logisim

Interface Tools

Finger Pointer Tool
Allows clicking circuit elements to change values
Lets you inspect wire values during simulation
Cursor Pointer Tool
Used to manipulate circuit elements
Create wire connections between different elements

Circuit Elements

Wiring Elements

Splitter
Combines or splits multi-bit wires
Configurable splitting options
Pin
Introduces inputs to logic gates/blocks
Can be clicked to change values (0 or 1)
Probe
Checks wire values anywhere in the circuit
Can display multi-bit wire values
Tunnel
Creates 'portals' to reduce wire clutter
Connections made by matching tunnel names

Logic Gates

  • Located in the Gates folder
  • Configurable options:
    • Data Bits (input/output width)
    • Number of Inputs
    • Facing direction

Advanced Logic Blocks

Plexers (Multiplexers/Demultiplexers/Decoders)
Configurable select bits
Determine number of inputs
Arithmetic Blocks
Includes adders, subtractors, comparators

Memory Elements

Registers
Multiple-bit inputs/outputs
Require 1-bit clock input
Write Enable (WE) pin controls updating
RAM and ROM
Addressable memory blocks
Configurable address and data bit widths
User-preset contents possible

Memory Configuration

  • Right-click RAM/ROM module
  • Select "Edit Contents..."
  • Enter hexadecimal values
  • Can save and load memory contents

Navigation Tips

  • Infinite workspace - zoom in/out
  • Use CTRL + mouse wheel to zoom
  • Switch between cursor and pointer tools
  • Hover over pins for information
  • Save designs frequently

Debugging Wire Colors

Green
Normal signal state (0 or 1)
Red
Conflicting wire values
Multiple drivers on same wire
Blue
Floating wire (no driver)
Orange
Mismatched wire widths
Incompatible multi-bit connections

Common Problems

  • Avoid connecting multiple output ports
  • Ensure consistent wire widths
  • Have a single driver per wire
  • Check for floating wire values

Accessibility

  • Color scheme can be customized
  • Go to File → Preferences → Simulation Tab