Project Working with Basic Logic Systems DEPRECATED

Representing and implementing logic requirements DEPRECATED

1898

Introduction

presented.

This project provides further experience with logic circuits. First, you must download a prewritten Verilog program to configure your Blackboard with unknown logic circuits. Your assignment is to interact with the circuits, discover their response to all inputs, deduce their SOP and POS logic equations, and then re-implement them yourself. Next, two circuit requirements are presented as worded descriptions, and you must translate those into an engineering formalism (in this case, a truth table), design them, and check their performance on the Blackboard. Many new terms and concepts are introduced, so you are encouraged to read the topic documents as they are

Before you begin, you should:

  • Have the Xilinx Vivado tool installed;
  • Have a Blackboard, and know how to program it;
  • Know how to start a Vivado project and construct a basic logic circuit;
  • Understand logic gates and basic logic circuits.

After you’re done, you should:

  • Be comfortable creating new designs in Vivado;
  • Be able to derive logic functions from truth tables;
  • Be able to define SOP and POS logic functions in Verilog;
  • Be able to translate a worded problem description into Verilog.

Background

Truth Table and Logic Function

A truth table is the primary tool for capturing logical relationships in a concise and universally understood format. A truth table contains a column of each input on the left and one final column for the output on the right. The truth table contains all possible input and output configurations of any given logic equation. A two input AND logic operation is defined using the truth table below:

A B F
false false false
false true false
true false false
true true true

Requirements

1. Verify the Result on Blackboard

Go through TUTORIAL: Truth Tables and program your Blackboard with the generated bitstream and compare the behavior on your board against the truth tables for circuits I, II, III.

2. Try POS Instead

Try to construct POS expressions for Circuit I through III in TUTORIAL: Truth Tables, and implement them in Verilog. Test it out on the board and see if it functions the same as the pre-compiled bit file.

3. Circuit IV

There is another circuit in the pre-compiled bit file that takes SW3~SW6 as input and LD3 as output. Probe that circuit and construct the logic equations for it. Write a Verilog description of your circuit, program it into the Blackboard, and verify that it performs identically.

4. Create a New Circuit

An automobile controller receives several sensor inputs from various engine systems. Four of the sensors are: Coolant Temperature (CT) that outputs a “1” when the coolant temperature exceeds 200 degrees; Coolant Low (CL) that outputs a “1” when the coolant level falls below 60% of capacity; Oil Temperature (OT) that outputs a “1” when the oil temperature exceeds 180 degrees, and Oil Low (OL) that outputs a “1” when the oil level falls below 75% capacity. Design and implement a warning light system that: 1) illuminates a yellow light whenever the Coolant or Oil levels are low by themselves, or when the Oil Temperature is too high and the Oil Level is OK, or when the Coolant Temperature is too high and the Oil Level to too low; and 2) illuminates a Red light (in the same LED package) whenever the Coolant temperature is too high and the Coolant level is too low, or when the Oil Temperature is too high and the Oil Level is too low, or when the Coolant and Oil Temperatures are too high at the same time, or when the Coolant and Oil levels are too low at the same time the Coolant Temperature is too high and the Oil Level is OK.

Create a Verilog description of a circuit that meets these requirements, and implement the circuit on your Blackboard. Use four slide switches for the sensor inputs and a RGB LED for each of the sensor outputs.

Challenges

1. LED Controller Using Switches

Illuminate an LED only when exactly two of the first four slide switches (SW0, SW1, SW2, SW3) are all set to “1”. Illuminate a second LED when exactly three of the remaining switches (SW4, SW5, SW6, SW7) are set to “0”.