ECE 2090 Logic and Computing Devices Laboratory (2023 Fall, 2023 Spring, 2022 Fall)

Undergraduate lab, Clemson University, Holcombe Department of Electrical and Computer Engineering, 2023

Introduction to designing, building, simulating and testing digital logic circuits. Topics include SSI and MSI ICs; general combinational circuits; adders, decoders and multiplexors; general sequential circuits; shift registers, counters and memory.

This webpage displays a curated collection of elements utilized during the instruction of this lab.

Lab course background

This lab is accompanied with ECE 2010 Logic and Computing Devices at Clemson University. Students are expected to perform circuit board building using 74-series chips and gate level logic simulation using Logisim Evolution, with lab related simulation detials listed in Logisim Evolution tutorial.

This lab serves as a gateway, offering more than just a surface-level understanding. Beyond the apparent simplicity lies a foundation for intricate knowledge, laying the groundwork for the intricate tapestry of electrical and computing principles. The concepts introduced here not only provide immediate practical application but also form the stepping stones for advanced explorations in the realm of digital design. The extra materials for students’ interests aims not only to captivate curiosity but to ignite a passion for delving deeper into the intricate world of logic and computing.

In this lab course, the final evaluation takes the form of a final/capstone project instead of an exam. Students are tasked with designing a larger-scale digital project to meet the course requirements. While lab final project prompts provide possible topics, students have the freedom to choose their own based on their interests.

Logisim Evolution tutorial

Download address

Logisim Evoluion is convinently avaliable from website https://github.com/logisim-evolution/logisim-evolution

Download the package as listed for different operation systems: Windows user, please use logisim-evolution-.msi Mac user, please use logisim-evolution-.dmg Linux user, please use logisim-evolution--1.x86_64.rpm.

Note that there may be an issue with logisim evolution, making some download files to .circ extension. You can fix it using the method here. 

https://github.com/logisim-evolution/logisim-evolution/issues/1471#issuecomment-1332917265

“Removing the registry key HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/octet-stream\Extension instantly resolves the issue.”

Basic usage tutorial

The draft of the basic usage is avalible below:

Extra materials for students' interests

There are 10 lab sessions of this lab courses, below are the collected extra materials apart from the lab manual that related to the corresponding lab content from theory, simulation, and circuit board building. The original webpage was designed for Canvas page. You can click the image, and it will redirect you to the corresponding Youtube url.

Lab 01 Course Description

Lab 02 Logic Gates

Lab 03 Encoding/Decoding

Lab 04 Combinational Circuit

Lab 05, 06, 07 Binary arithmetic, MSI circuit, Multiplier

Lab 08 Mux and serial communication

Lab 09 Memory, Cache

Lab 10 Sequential design

Lab 01 Course Description

What’s inside the breadboard?

What's inside the breadboard

What’s inside Analog Discovery 2 from the signal path?

What's inside Analog Discovery 2

PCB manufacturation.

PCB manufacturation

First 74 series chip.

First 74 series chip.

Resistor value distribution.

Resistor value distribution

Why was the resistor burned?

Why was the resistor burned?

How to use IC pin straightener?

How to use IC pin straightener?

Difference between TTL & CMOS, 74LS/74HC.

Difference between TTL & CMOS, 74LS/74HC.

Switch mode power supply, Boost Converters and Buck Converters: Power Electronics

Switch mode power supply

Blowing Up LEDs for Science

Blowing Up LEDs for Science

Lab 02 Logic Gates

Decapping ICs.

Decapping ICs

Introduction to digital logic.

Introduction to digital logic I Introduction to digital logic II

Digi Comp II.

Digi Comp II

Logic gates from transistor

Logic gates from transistor

CPU built from TTL logic

http://www.magic-1.org

What's inside the breadboard

MEGAprocessor

https://www.megaprocessor.com/index.html

Another CPU built from TTL logic

https://www.ttlcpu.com//articles/4-bit-ttl-scratchbuilt-computer

Gigatron TTL computer 

Gigatron TTL computer 

A computer built from NOR gates: inside the Apollo Guidance Computer 

https://www.righto.com/2019/09/a-computer-built-from-nor-gates-inside.html

Lab 03 Encoding/Decoding

Nixie Tube display

Nixie Tube display

RGB LED Matrix display

RGB LED Matrix display

Bad apple on the LCD screen

Bad apple on the LCD screen

Bad apple on the oscilloscope 

Bad apple on the oscilloscope

UTF-8/Unicode for general encoding

https://en.wikipedia.org/wiki/UTF-8

UTF-8/Unicode

Lab 04 Combinational Circuit

Quine–McCluskey algorithm

https://en.wikipedia.org/wiki/Quine%E2%80%93McCluskey_algorithm

ABC: System for Sequential Logic Synthesis and Formal Verification

https://github.com/berkeley-abc/abc

Error correction code

https://en.wikipedia.org/wiki/Error_correction_code

Hamming code

Hamming code

Hamming code inventor’s famous talk: You and your research.

You and your research

A brief introduction to LDPC code

A brief introduction to LDPC code 

LDPC code’s inventor Prof Robert Gallager talks about his advisor Shannon, father of information theory

Prof Robert Gallager's talk

Lab 05, 06, 07 Binary arithmetic, MSI circuit, Multiplier

Binary arithmetic extension

Various adders(Brent–Kung adder, Kogge–Stone adder)

Various multiplier trees(Wallace tree, Dadda tree)

CORDIC algorithm for computing sin/cos/sqaure function

CORDIC algorithm https://en.wikipedia.org/wiki/CORDIC

How computer calculate?

How computer calculate?

Approximate computing 

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9165786 https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9170586

HDL tutorials

https://inst.eecs.berkeley.edu/~cs61c/resources/verilog.pdf

https://inst.eecs.berkeley.edu/~eecs151/fa23/

https://en.wikipedia.org/wiki/Verilog

https://en.wikipedia.org/wiki/VHDL

http://vhdl.us/

Chisel 

Chisel

High level synthesis (HLS)

High level synthesis

FPGA introduction

FPGA introduction

Karatsuba algorithm

Karatsuba algorithm

Lab 08 Mux and serial communication

What is the difference between serial and parallel communication and why need serial communication

Serial/Parallel communication

Round-robin scheduling from the Operating system

Round-robin scheduling

Difference between FDMA, TDMA, and CDMA from the communication system. 

https://www.geeksforgeeks.org/difference-between-fdma-tdma-and-cdma/

Hedy Lamarr: Inventor of CDMA 

https://en.wikipedia.org/wiki/Hedy_Lamarr Hedy Lamarr 

TDD and FDD in 4G LTE

TDD and FDD in 4G LTE

Screen Refresh rate experiment 

Screen Refresh rate

Persistence of vision

https://en.wikipedia.org/wiki/Persistence_of_vision

Persistence of vision

How does a Universal Serial Bus(USB) work

USB

USB 101

https://www.infineon.com/dgdl/Infineon-AN57294_USB_101_An_Introduction_to_Universal_Serial_Bus_2.0-ApplicationNotes-v09_00-EN.pdf?fileId=8ac78c8c7cdc391c017d072d8e8e5256

Lab 09 Memory, Cache

3.5 inch floppy disk(the A disk)

A disk

5.25 inch Floppy disk(the B disk)

B disk

World’s Most Expensive Hard Drive Teardown 

Hard Drive Teardown 

More detailed lecture on memory hierarchy 

memory hierarchy

Block RAM/ROM in FPGA.

Block RAM/ROM in FPGA

BUS control/protocol

BUS control/protocol

Memresistor

Memresistor 1 Memresistor 2

Advantages of Near Flash Computing with Arvind

https://cap.csail.mit.edu/podcasts/advantages-near-flash-computing-arvind

Rowhammer attack

Rowhammer attack

Universal Memory Interface 

https://github.com/zeroasiccorp/umi

Lab 10 Sequential design

David Patterson: Computer Architecture and Data Storage

Computer Architecture and Data Storage

View from the Top: Professor David Patterson

View from the Top

New Golden Age for Computer Architecture - John Hennessy 

New Golden Age for Computer Architecture

Static timing analysis 

STA

Computer history museum

https://computerhistory.org/

1401 N Shoreline Blvd, Mountain View, CA 94043

Intel Museum 

https://www.intel.com/content/www/us/en/company-overview/intel-museum.html

2200 Mission College Blvd, Santa Clara, CA 95054

Lab final project possible topics

This list was last updated by the end of Fall 2023, and will no longer updated here in this site. Feel free to use it if you need them.

Final project objective

This open-ended project involving design, simulation, and analysis of a digital circuit related to a concept of students’ choice. Students are tasked with thoroughly exploring all available components within the simulation software. Additionally, students are encouraged to consider integrating this project into their future endeavors across various courses.

Elements allowed and forbidden for simulation-only designs

Logic function exploration (extension of Lab 02 to Lab 04)

Various board game:

Topics:

  • 2D version X and O. 
  • 3D version X and O. 
  • Chess. 
  • Rock, Paper, Scissors, Lizard, Spock. 
  • Soduku game. 
  • Connect 4 games.
  • Connect 4 games, geographic version, inspired by this video: https://www.youtube.com/watch?v=oZSUxdzgA08
  • Gomoku game. 
  • Monopoly game.

Details:

  • You need to design the basic game design for two players using combinational logic. Some games may involve underlying physical rules you need to follow. Please consider how to handle it.
  • You can enumerate/compute all possible winning/losing/tie games for the players. You are recommended to design this part by using the combinational analysis.
  • Design a simple strategy allowing a human-machine game interaction. It might be as simple as placing the O on the left of X or you may refer to algorithms to simplify it to a more complicated decision logic.
  • The player needs to be prohibited from moving/changing other player’s moves. You also need to consider if the win/lose/tie happens, the player is no longer allowed to play unless the game is reset.
  • User-friendly display to identify win/lose/tie situations.
  • Store and update the player’s gaming record, win/tie/loss after every game. You can probably consider using an integrated counter to tick the clock once such a case happens.
  • The size of the “board” is highly recommended to be limited to 10 x 10 rather than a full/large scale, and the player number is limited to 2.

Meaningful LED display

Topics:

  • Led display for public transportation.

Details:

  • Store the letter for the LED display in memory or using combination logic (not recommended). Only including A~Z & 0~9 is fine, while you may consider other graphic displays (airplane signs) that may incur more overhead.
  • Allow multiple patterns/colors for display:
  • CATbus’s screen may display the pattern with rotation of RED-CLEMSON/RED-CENTRAL/GO TIGERS/BEAT XXX(change based on a specific football game)/Merry Christmas/Have a Nice Day.
  • Long string display within the limited LED space: Suppose the screen can only display 5 characters to allow the user to see the entire word of CLEMSON. You need to display 【CLEMS】【LEMSO】,【EMSON】 cyclically. The shift register may realize this function.

Binary computation for different purposes (extension of Lab 05 to Lab 07)

General-purpose binary computing

Topics:

  • Calculator
  • Fast adder realization.
  • Multiplier tree realization.
  • Modular computation.
  • Sequence generator

Details:

  • Calculator
    • 8-bit Addition/Subtraction/Multiplication. Please do this part by extending your design from labs 5, 6, 7 or using available 74-series chips in Logisim Evolution.
    • Try out 8-bit Division.
    • Fixed-point decimal operation.
    • Show current computation type using LED matrix.
    • Store prior computation results.
    • Allow CE/C to function as the real calculator does.
  • Fast adder and multiplication tree realization:
    • Multiple fast adders and multiplier trees are introduced in the lab slide, which are listed as extra materials for students’ interest here. Please try to search for related references and design them.
    • Try to examine the difference between different fast adders and multiplier trees.

Modular computation

Sequence generator

  • Generate the sequence by computation following the rule of generation. A typical example of a Fibonacci array.
  • Show the sequence and sequence types using the display.

Sport scoreboard

Topics:

  • Americal football scoreboard
  • Basketball scoreboard.
  • Tennis scoreboard.

Details:

  • High-performance player/Team player statistics.
  • Consider timeout countdown, resetting the clock. One example could be the clock countdown in a basketball game. When the remaining second is less than ten, it will display one-tenth of a second.
  • Resetting the scoreboard.
  • English letter display for personal fouls.
  • Simple time-multiplexed display for concurrent games.
  • Other necessary display features.

Quiz buzzer

Topics:

  • Quiz buzzer.

Details:

  • Suppose there are multiple players/teams. You are expected to find the player who first presses the button and tries to answer the quiz.
  • It is an add-on to the timer and clock. You need to design additional registers to sample the simulated push signal by using pins.
  • It would be great to record whoever comes to the second and third, etc.
  • It can also include a scoreboard as a subset to record team scores if they answer the question correctly or not.

Daily transaction

Topics

  • Parking meter.
  • Vending machine.
  • Pill separator.

Details:

  • For parking meter/vending machine:
  • Accept quarter/half-dollar/$1, $2, $5 bills. You can consider penny/dime/nickel.
  • Counting the remaining available spots using sensors (use switch here to simulate).
  • For pill separator: ** Count-down timer to decide which types of pills should be consumed. The time intervals can be reconfigured. ** Allow purchasing/consuming multiple types of parking time/merchandise/types of pills.
  • Give change if needed using comparison logic. A good 74-seris chip is 7485 in Logisim Evolution. Return bills if needed.
  • Warning sign if low in stock/parking time is about to expire.
  • Allow the user to load a custom amount of goods/pills if they are out of stock and change the stock after loading.
  • This design is supposed to be a sequential design. Every time (let’s say every second) you insert one bill/coin, the machine must record it, and use the recorded money value to return changes and goods.

Integrated counter application (extension of Lab 08, 10)

Topics:

  • Traffic light (counter-based/memory-based).
  • Using counters to replicate iPhone clock.
  • Fitness watch design.
  • Washing machine simulation.
  • Oven simulation.
  • Microwave simulation.
  • Refrigerator simulation.

Details:

Traffic light:

  • Use integrated counter or memory to design the traffic light.
  • Left turn/pedestrian signal/sensor-based signal.
  • Configurability of the different traffic phase-switching patterns (peak hour/night hour).
  • Countdown clock for red & green light.
  • Low traffic blinking light (blinking red/blinking yellow)
  • Consider a train going through Level crossing https://en.wikipedia.org/wiki/Level_crossing
  • 4-arrow left turn signal.
  • Consider green wave design for multiple intersections https://en.wikipedia.org/wiki/Green_wave.
  • All sensor/external triggers can be abstracted as input pins.

Clock based design for IPhone clock/Fitness clock/Home Appliances

  • Basic clock feature with hour/min/sec with the decimal display.
  • Basic timer for counting down with set/reset/display.
  • Basic meter for counting up with set/reset/display.
  • Record lap-wise time.
  • The alarm clock design allows snoozing.
  • Include possible simple control signals to the motor.
  • You may consider displaying the time from 00:00 to 23:59 rather than 12:00 am to 11:59 pm.

Memory applications (extension of Lab 09)

Topics:

  • Digital circuit functionality checker.
  • Memory tester.

Details:

Digital circuit functionality checker for multiple 74-series

  • You need to record the possible input/output pairs for the 74-series chips like the physical one in the lab.
  • The physical tester in the lab room includes sequential 74-series chips, which could be challenging. You may consider how to extend it.
  • The tester may need to automatically detect if the chip is 14 pins or 16 pins or more.
  • Connect the IC tester with the 74-series chip, and the tester enumerates all possible input vectors(multiple input pins) stored in the memory.
  • You need to design a custom malfunctioning 74-series chip to verify its capability to indicate malfunctioning chips.
  • Warning sign if the DUT has different functions and displays the malfunctioning input/output.
  • Give hints for possible fixing methods with the proper display.

Memory tester

  • This is similar to memory/cache lab. However, here, you need to write the RAM using input/output pins rather than ROM.
  • Create a RAM with read and write capability.
  • Write in the custom meaningful data with bit-width 8 in two ways:
  • Initialize the value stored in the RAM (all 0 is the special case), you need to find your own possible meaning full initial values.
  • User custom data input (possibly with input/output pins or other good interface).
  • Read the data from the RAM and properly store and display it.
  • Users determine whether the current state is a read process or a write process. You can design your own read/write process patterns. Use LED indicator for interaction.
  • A pratical example is:
  • You store data “Hello World” in your memory by external output NOT by intialize the stored value by hand as did in Lab 9.
  • Once the write process finish, you read the memory, and possibly show the “Hellow world” in the way you want to display.
  • Introduce error during multiple read/write iterations, and the stored data may become “Hello Morld”, and your display can show such a difference.
  • Once you find there is an error, you can again, write back the “Hello World” back to the RAM.

Processor design (extension of Lab 08)

Topics:

  • Simple ALU/processor design.
  • Watchdog simulation.

Details:

  • Simple ALU/processor design

  • A typical instruction-based processor involves 5 stages: IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back, refer to https://en.wikipedia.org/wiki/Instruction_pipelining

  • Here, having ID, EX, and WB stages using the gate-level design is doable. Having the EX stage is a plus. This design is required to have a clock signal.

  • In the ID stage, you retrieve the instruction code from the register (D flip-flop)
  • In the EX stage, you perform the instruction (arithmetic/logic operations). You have already done something similar in the MSI circuit lab; here, you need to extend it to a larger context.
  • In the WB stage, you extract the computation result from the ALU, and display/store it in the way you want.
ALU instruction execution clock cycle-wise explanation
clk 0 (ID stage)clk 1~ -1 (EX stage)clk -1 (WB stage)

Extract the data from the data register.

Extract the instruction code from the instruction register.

Both instruction & data registers are connected with input pins.

Perform the computation within the ALU.

It is possible the instruction may take multiple clock cycles. Here, at most, 3 clock cycles for computations are enough.

Extract the computation result from the ALU.

Use the proper way to display (LED/7-seg)

  • Using MUX to instruct the processor for different operations for given operands.
  • Possible operation include basic logic operation(AND/OR/XOR/XNOR etc) & basic arithmetic operation(ADD/SUB/Multiplication/Mod operation/Exponential operation)
  • You can also make the design interactive by highlighting the current operation stage the ALU is working at.
  • Try to minimize the total number of gates/ICs (make some of the gates/ICs multi-functional)
  • Please refer to this link https://github.com/grself/CIS221_Lab_Manual/tree/master for alternative discussion.

Details:Real-life system design (extension of all labs)

Topics:

  • Digital lock.
  • Elevator simulation.

Details:

Digital lock

  • Set and store the correct password with 4~10 digits using input buttons
  • Enter the correct password to unlock using the same input buttons.
  • Cool down the period if the user has entered multiple incorrect passwords.

Elevator simulation

  • Design the elevator for at least five floors.
  • Users can push the up/down button to access the elevator.
  • Consider possible override by firefighter/elevator operator.
  • Please refer to this document for a more detailed description here in this file.

Other related online resources