Lab 0: Introduction to Logisim
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....")
Contents
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.
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
- 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