HomeProjectsPeoplePublicatons
Search:
   
 

Module Functionality Specification Web Page

This page is intended to identify the specifications needed for module generation and design.  The initial components are developed on Simulink and broken down into modules derived from Simulink's Fixed Point Blocksets.

Specifications

Each Simulink model should give enough specification so that the module designer can adequately design the total functionality of the module.   Below are the current list of general design parameters needed by the module designers(Dave, Ben, and Kelvin).

  • Voltage supply should be designed for 1.0 volts.
  • Power - Our primary purpose is to optimize for power.  Considerations such as propagation delay and area are up to the module designers.
  • Number of Bits (dimensions)
  • There will be 3 metal layers used, except for the multiplier.
  • Pinlist Specifications (Location of Pinouts, Functionality, Timing Waveforms)
  • Pipeline Stages??

 


Modules

The modules listed below are what is currently needed for the module design library.   Specifications are given with each model so that the module designers can effectively build functional modules.  Foundamental modules from Simulink libraries will be designed in order to create different modules within a library.  The names of the Simulink blocks should match the names of the modules.  The Simulink library is located in Sourcesafe ($/scr/receiver/digital/structural/fundamental.mdl)

Registers

Module Module Name Parameter Functionality Inputs Outputs Complexity Status/ Certfication(Rhett AND Paul)
Reg Reg data_type

data_scale

T (chip period)

scan_reg (checkbox)

Stores a real value

IZ[n] = IA[n-1]

If scan_reg = 1, implement scan register

IA

Enable

IZ Fundamental Completed   
Reset-able Register Reg_R data_type

data_scale

T  (chip period)

scan_reg

Stores a real value and has a resetable switch.

IZ[n] = IA[n-1]

IZ = 0 if Reset = 0

If scan_reg = 1, implement scan register

IA

Enable

Reset

IZ Fundamental     

Adders

Modules Module Name Parameters Functionality Inputs Outputs Complexity Status Certfication(Rhett AND Paul)
Real Adder Add adder_type - 'Ripple Carry' or 'Carry Bypass'

out_data_type

out_scaling

T  (chip period)

Adds real values

IZ = IA + IB

IA

IB

Enable

IZ Fundamental Completed  
Subtractor Sub adder_type - 'Ripple Carry' or 'Carry Bypass'

out_data_type

out_scaling

T  (chip period)

Subtracts real values

IZ = IA - IB

IA

Enable

Reset

IZ Fundamental    
Adder and Subtractor Add_Sub adder_type - 'Ripple Carry' or 'Carry Bypass'

add

out_data_type

out_scaling

T  (chip period)

Adds or Subtracts

If add = 1:

  if Add = 1, IZ = IA + IB

  if Add = 0, IZ = IA - IB

If add = 0:

  If Add = 1, IZ = IA - IB

  If Add = 0, IZ = IA + IB

IA

IB

Add

IZ  Fundamental 

MUX

Modules Module Name Parameters Functionality Inputs Outputs Complexity Status Certfication(Rhett AND Paul)
MUX MUX data_type

data_scale

Multiplexor

If SEL = 1, IZ = IA

If SEL = 0, IZ = IB

IA

SEL

IZ Fundamental          

MACS

Modules Module Name Parameters Functionality Inputs Outputs Complexity Status Certfication(Rhett AND Paul)
Multiply and accumulator MAC mult_data_type

mult_scaling

out_data_type

out_scaling

T  (chip period)

Multiplies and Accumulates

IZ[n] = IA * IB + IZ[n-1]

IA

IB

Reset

IZ Fundamental           
Complex mutilply and accumator MAC_C mult_data_type

mult_scaling

out_data_type

out_scaling

T  (chip period)

Multiplies and Accumulates

IZ[n] = IA * IB - QA * QB + IZ[n-1]

QZ[n] = IA * QB + QA * IB + IZ[n-1]

IA

QA

IB

QB

Reset

Enable_mult

Enable_acc

IZ

QZ

Fundamental    

Multipliers

Modules Module Name Parameters Functionality Inputs Outputs Complexity Status Certfication(Rhett AND Paul)
Multiplier Mult out_data_type

out_scaling

T  (chip period)

Multiplies real values

IZ = IA * IB

IA

IB

IZ Fundamental       
Complex multiplier Mult_C out_data_type

out_scaling

T  (chip period)

Multiplies complex values

IZ = IA * IB - QA * QB

QZ = IA * QB + QA * IB

IA

QA

IB

QB

IZ

QZ

Fundamental    

Other

Modules Module Name Parameters Functionality Inputs Outputs Complexity Status Certfication(Rhett AND Paul)
Comparator Comp data_type

data_scale

Compare A and B

If A > B, Z = 1

If A < B, Z = 0

A

B

Z

Fundamental

       
2's Complement Neg none Z = -A A Z

Fundamental

   
3-bit input Variable Shifter Var_3Shift var_step

data_type

data_scale

Shift A right by Shift * var_step bits and truncate A

Shift

Z Fundamental    
2-bit input Variable Shifter Var_2Shift var_step

data_type

data_scale

Shift A right by Shift * var_step bits and truncate A

Shift

Z Fundamental    

** The column labeled 'Complexity' are the fundamental modules that will be placed in the Simulink library.  Modules labeled 'Complex' are blocks that will be need but can be built using various fundamental blocks.


Links

  • The Module Design Manifesto web page explains the constraints  placed on the Cadence schematics and layout for modules to ease the design flow.
  • IC design flow meetings have been taken so that others can stay abreast on what has transpared.

 

 


Maintained by Paul Husted
phusted@eecs.berkeley.edu