\( \)

Booth’s Multiplication with FSMs

Contents

  1. Introduction
  2. Circuit Structure
    1. Controller Pinout
    2. Multiplier Pinout

Introduction

Our Booth’s multiplier from Lab 2 had an obvious shortcoming. Even though we could “skip” add operations during long strings of 1’s or 0’s in our multiplier, our circuit still performed the operation! (Though, the result of the operation was discarded on cycles where the add/sub wasn’t needed.) The natural next step is to provide functionality to skip unnecessary add and subtract operations. With your new expertise in finite state machines, it is now possible to design a new controller that can skip those operations!

We ask that you implement the new controller twice: once as a Mealy machine and once as a Moore.

Circuit Structure

Failure to follow this structure can result in grading of the lab to be delayed or incorrect.

You will create four circuits for this part, MealyController.dig, MooreController.dig, and BoothsMultiplierMealy.dig and BoothsMultiplierMoore.dig that follows the same pinouts from Lab 2.

Controller Pinout

The pinouts for the controller can be found in the following sections at the bottom.

The pins we specify here are the minimum required pins for a component. You can have more inputs or outputs if you want for debugging purposes, we will not be touching them.

Multiplier Pinout

Port Direction Port Name Active Port Width (bits) Description
INPUT CLK Rising 1 Clock input used for controlling the multiplier
INPUT CLR High 1 Clears the multiplier to allow it for later reuse
INPUT MULTIPLIER - 13 13-bit signed decimal input as multiplier
INPUT MULTIPLICAND - 13 13-bit signal decimal input as multiplicand
OUTPUT RESULT - 26 26-bit signed decimal output as a result from your multiplication
OUTPUT OP_DONE - 2 The operation you have performed (addition, subtraction, or no-op)
OUTPUT DONE High 1 Set high when you have finished the multiplication

Table of contents


This page was last updated on November 30 2024 at 05:47 AM (UTC).