Coolquest, Inc. | Home | Products | Support | About | Contact | |||
|
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 |