Coolquest, Inc. Home Products Support About Contact
cbold_logo_gif C++BOLD Example Design: IROD cbold_logo_gif

Design Home <<  File View  >> Class View Output (partial) Parts Library Examples Home

 

// THIS FILE IS IN THE PUBLIC DOMAIN.
// IT IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
// NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
#ifndef _STD_SYNH_
#define _STD_SYNH_
 
#include "fs6377.h"
 
class CM_StdSyn : public TModule {    // standard synthesizer clock for Clock Generation subsystem
 
public:
// ***** member bundles ***** //
 
// ***** member ports ***** //
  port VCC;     // 3.3V
  port GND;
 
  port IN;         // AC-coupled input
  port OUT;        // series-terminated output (CLK_C)
  port OE;         // output enable, pulled high (enabled)
  port SCLOCK;     // IIC interface
  port SDATA;
  port SEL_CD;     // selects between two sets of operating parameters
 
 
// ***** member modules and parts ***** //
 
  CP_FS6377_01   Syn;
  CP_C220NF      AC_Couple;
  CP_R30         SeriesTerm;
  CP_FERRITE120  Ferrite;
 
  // decoupling
  enum {              vc_cdc_count =  2 };
  CP_CDC_POS  VC_CDC[ vc_cdc_count      ];    // ceramic decoupling
 
 
  virtual void Register() {
// bundles
// ports
    reg(  VCC    );
    reg(  GND    );
    reg(  IN     );
    reg(  OUT    );
    reg(  OE     );
    reg(  SCLOCK );
    reg(  SDATA  );
    reg(  SEL_CD );
 
// parts and modules
    reg(  Syn );
    reg(  AC_Couple );
    reg(  SeriesTerm );
    reg(  Ferrite );
    rega( VC_CDC, vc_cdc_count );
  }
 
  virtual void Connect() {
    "/NC"  <<  Syn.XIN;     // float XIN when not using the crystal oscillator
    "/NC"  <<  Syn.CLK_A;   // not used, should be powered down
    "/NC"  <<  Syn.CLK_B;   // not used, should be powered down
    "/NC"  <<  Syn.CLK_D;   // not used, should be powered down
    "/NC"  <<  Syn.ADDR;    // pulled high (ADDR is part of the IIC interface)
    "/NC"  <<  Syn.PD;      // pulled high (power down portions of chip that have their powerdown enabled)
 
    wire( OE );             // pulled high (outputs always driven, powered down outputs are driven low), user may disable by driving low
    wire( SEL_CD );
 
    SCLOCK  <<  Syn.SCL;
    SDATA   <<  Syn.SDA;
 
    IN  ^ AC_Couple  ^ "XOUT"  << Syn.XOUT;     // datasheet says drive XOUT and float XIN when not using crystal
    OUT ^ SeriesTerm ^ "CLK_C" << Syn.CLK_C;    // use CLK_C:  ok jitter, can use SEL_CD
 
    wireall( GND );
    "VCC_FILT"  ^  Ferrite  ^  VCC;
    "VCC_FILT"  <<  Syn.VCC;
    for ( int i = 0; i < vc_cdc_count; ++ i )  "VCC_FILT"  <<  VC_CDC[ i ].POS;
  }
};
 
#endif

 

Design Home <<  File View  >> Class View Output (partial) Parts Library Examples Home

Legal Copyright © 2007 by Coolquest, Inc. Contact