﻿ Digital Circuits and Systems - Circuits i Sistemes Digitals (CSD) - EETAC - UPC
 Bachelor's Degree in Telecommunications Systems and in Network Engineering

### 8-bit subtractor using Subtractor_1bit

1. Specifications

We want to implement a circuit for subtracting 8-bit binary radix-2 numbers as represented in Fig. 1.

The same project is proposed in Chapter 3 for learning the basics of μC software organisation and basic digital I/O.

 Fig. 1. The entity of a Subtractor_8bit and the operands range.

The strategy is to use plan C2, chaining 1-bit subtractors instead of the standard way based on 1-bit adders and two's complement convention discussed in P4. Thus, the circuit will work only with radix-2 numbers. Fig. 2 shows the building block Substractor_1bit.

 Fig. 2. The entity of a Subtractor_1bit and its truth table.

So, we can chain many Subtractors_1bit by connecting the "borrows" in the same way we connect the "carry" when adding:

 Fig. 3. Algorithm for a chained 8-bit subtraction.

Some questions:

- Try at least three operations:

A = 230, B = 45; A = 187, B = 177; A = 177, B = 187

- Draw a sketch of a timing diagram.

2. Planning

Conceiving the Subtractor_1bit component:

Option plan A: Implement the Subtractor_1bit using only NAND2 gates.

Some notes on its solution.

Option plan B: Write the code for the Subtractor_1bit in VHDL using a behavioural approach.

Conceiving the Subtractor_8bit

Plan C2:

Draw the schematic of the 8-bit ripple subtractor (Subtractor_8bit) and describe it in VHDL, using components.

Implement the logic circuit of a pair of flags or indicators to detect special events like:

- A zero result D = A - B = 0

- A negative number D < 0 (A<B)

Develop the circuit targeting an Intel FPGA MAX II and inspect the RTL and the technology view.

Test your circuit writing a VHDL simulation testbench from the timing diagram in the specifications.