Si5338 (si5338)

Design

A block diagram representation of the implementation is given in Figure 188:. This component is based on the datasheet for the device.

si5338 block diagram.

Figure 188: si5338 block diagram.

Interface

<!--SI5338 Clock Generator I2C Device Worker-->
<HdlDevice language="vhdl" FirstRawProperty="rev_id">
  <ComponentSpec/>
  <!-- Does this chip have an external clock as input? -->
  <Property name="CLKIN_PRESENT_p" type="bool" parameter="1" readback="1" default="0"/>
  <Property name="CLKIN_FREQ_p" type="float" parameter="1" readback="1" default="0"/>
  <!-- Does this chip have a crystal oscillator as input? -->
  <Property name="XTAL_PRESENT_p" type="bool" parameter="1" readback="1" default="0"/>
  <Property name="XTAL_FREQ_p" type="float" parameter="1" readback="1" default="0"/>
  <Property name="OUTPUTS_PRESENT_p" type="bool" arraylength="4" parameter="1" readback="1" default="0"/>
  <Property name="INTR_CONNECTED_p" type="bool" parameter="1" readback="1" default="0"/>
  <!--Device Revision ID -->
  <Property name="rev_id"    type="uchar" readback="true"/>  			        <!-- 0-->
  <!--Padding -->
  <Property name="pad00" type="uchar" padding="true"/> 	                                <!-- 1-->
  <!--Dev Config -->
  <Property name="dev_config"  type="uchar" readback="true" arraylength="4"/>           <!-- 2 - 5-->
  <!--Masking bits -->
  <Property name="mask_bits" type="uchar" volatile="true"  writable="true"/>    	<!-- 6-->
  <!--Padding -->
  <Property name="pad01" type="uchar" padding="true" arraylength="20"/>		        <!-- 7-26-->
  <!--I2C Address -->
  <Property name="i2c_addr" type="uchar" readback="true"/>    	                        <!-- 27-->
  <!--Input Divider Config -->
  <Property name="divin_config" type="uchar" readback="true"  writable="true" arraylength="3"/>  <!-- 28-30-->
  <!--Output Divider Config -->
  <Property name="divout_config" type="uchar" readback="true"  writable="true" arraylength="4"/> <!-- 31-34-->
  <!--VDDO settings -->
  <Property name="vddo_settings" type="uchar" readback="true"  writable="true"/>    	<!-- 35-->
  <!--Clock Format -->
  <Property name="clk_fmt"       type="uchar" readback="true"  writable="true" arraylength="4"/> <!-- 36 - 39-->
  <!--Trim Bits -->
  <Property name="trim_bits"    type="uchar" readback="true"  writable="true" arraylength="3"/> <!-- 40 - 42-->
  <!--Padding -->
  <Property name="pad02" type="uchar" padding="true" arraylength="2"/>		        <!-- 43-44-->
  <!--Override Frequency Calibration -->
  <Property name="fcal_ovrd" type="uchar" readback="true"  writable="true" arraylength="3"/> <!-- 45-47-->
  <!--Phase Frequency Detector Config -->
  <Property name="pfd_config"  type="uchar" readback="true"  writable="true"/>    	<!-- 48-->
  <!--General Configuration -->
  <Property name="gen_config0" type="uchar" readback="true"  writable="true"/>    	<!-- 49-->
  <!--Multisynth Calibration Value -->
  <Property name="ms_cal_val" type="uchar" readback="true"  writable="true"/>    	<!-- 50-->
  <!--Multisynth High Speed Mode -->
  <Property name="ms_hs_mode" type="uchar" readback="true"  writable="true"/>    	<!-- 51-->
  <!--Output Multisynth Parameters -->                                                  <!-- 52-95-->
  <Property name="ms_0_4_params"   type="uchar" readback="true"  writable="true" arraydimensions="4,11"/> 
  <!--Padding -->
  <Property name="pad03" type="uchar" padding="true"/> 	                                <!-- 96-->
  <!--Multisynth N parameters -->
  <Property name="ms_n_param"   type="uchar" readback="true"  writable="true" arraylength="10"/> <!-- 97 - 106-->
  <!--Multisynth Phase Offset, Phase Step, Disabled state -->
  <Property name="ms_0_4_phs_dis_st" type="uchar" readback="true"  writable="true" arraydimensions="4,4"/> <!-- 107 - 122-->
  <!--Multisynth 0 Frequency Increment/Decrement Parameters-->
  <Property name="ms_0_fidp"   type="uchar" readback="true"  writable="true" arraylength="22"/>	<!-- 123 - 144-->
  <!--Padding -->
  <Property name="pad04" type="uchar" padding="true" arraylength="7"/>		        <!-- 145-151-->
  <!--Multisynth 1-3 Frequency Increment/Decrement Parameters-->
  <Property name="ms_1_3_fidp"   type="uchar" readback="true"  writable="true" arraydimensions="3,22"/> <!-- 152 - 217-->
  <!--PLL loss of lock -->
  <Property name="pll_lol"   type="uchar" readback="true"/>    	                        <!-- 218-->
  <!--Padding -->
  <Property name="pad05" type="uchar" padding="true" arraylength="7"/>		        <!-- 219-225-->
  <!--Multisynth Master Reset -->
  <Property name="ms_reset"   type="uchar" volatile="true"/>   	                        <!-- 226-->
  <!--Padding -->
  <Property name="pad06" type="uchar" padding="true" arraylength="3"/>		        <!-- 227-229-->
  <!--Output Enable Low -->
  <Property name="output_en_low"   type="uchar" readback="true"  writable="true"/>    	<!-- 230-->
  <!--Padding -->
  <Property name="pad6" type="uchar" padding="true" arraylength="4"/>		        <!-- 231-234-->
  <!--VCO Frequency Calibration -->
  <Property name="vco_freq_cal"   type="uchar" volatile="true" arraylength="3"/>       <!-- 235-237-->
  <!--Padding -->
  <Property name="pad07" type="uchar" padding="true" arraylength="3"/>		        <!-- 238-240-->
  <!--Disable Loss of Lock -->
  <Property name="dis_lol"   type="uchar" volatile="true"  writable="true"/>    	<!-- 241-->
  <!--Disable Clock to Increment/Decrement State Machine -->
  <Property name="dclk_dis"   type="uchar" readback="true"  writable="true"/>    	<!-- 242-->
  <!--Padding -->
  <Property name="pad08" type="uchar" padding="true" arraylength="3"/>		        <!-- 243-245-->
  <!--Soft Reset -->
  <Property name="soft_reset"   type="uchar" readback="true"  writable="true"/>    	<!-- 246-->
  <!--Loss Sticky Bits -->
  <Property name="loss_stk"   type="uchar" volatile="true"  writable="true"/>    	<!-- 247-->
  <!--Padding -->
  <Property name="pad09" type="uchar" padding="true" arraylength="7"/>		        <!-- 248-254-->
  <!--Page Select -->
  <Property name="page_sel"   type="uchar" readback="true"  writable="true"/>    	<!-- 255-->
  <!--Padding -->
  <Property name="pad10" type="uchar" padding="true" arraylength="31"/>		        <!-- 256-286-->
  <!--Multisynth 0 Spread Spectrum Parameters -->
  <Property name="ms_0_4_ssp"   type="uchar" readback="true"  writable="true" arraydimensions="4,16"/>    	<!-- 287-350-->
  <!-- I2C read/write transactions require additional time to complete -->
  <ControlInterface Timeout="131072"/>               <!--Offset-->
  <!--Need these signals to control i2c_opencores -->
  <Rawprop name="rawprops" master="true"/>
</HdlDevice>

Implementations

Dependencies

The dependencies to other elements in OpenCPI are:

  • assets/hdl/devices/si5338.hdl/si5338.vhd

Limitations

Limitations of si5338 are:

  • None.

Testing

There is no unit test for this device worker.

References