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.
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
si5338(HDL)
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.