HOME       UP       PREV       NEXT (Multiplier Answer)  

Example: Sequential Long Multiplication

Multipliers are typically fully-pipelined and so the only structural hazard they present is that they can only complete one operation per clock cycle. Bit this was goes busy for a variable latency and can be said to create a hazard (to the commencement of fresh multiplies) while it is busy.

Multiplier schematic symbol.
Behavioural algorithm:
  while (1)
  {
     wait (Start);
     RA=A; RB=B; RC=0;
     while(RA>0)
     {
       if odd(RA) RC=RC+RB;
       RA = RA >> 1;
       RB = RB << 1;
     }
     Ready = 1;
     wait(!Start);
     Ready = 0;
   }

(Either HLS or hand coding can 
give the illustrated datapath
and sequencer structure:)
images/mpxer.png
This implements conventional long multiplication.

It is certainly not fully-pipelined, it goes busy for many cycles, depening on the log of the A input. The illustration shows a common design pattern consisting of a datapath and a sequencer. Booth's algorithm (see additional material) is faster, still using one adder but needing half the clock ticks.


40: (C) 2008-18, DJ Greaves, University of Cambridge, Computer Laboratory. Flash Player Upgrade Needed   PLAY/PAUSE  READY    STOP DOWNLOAD