Changes between Version 7 and Version 8 of cores/w3_clock_controller


Ignore:
Timestamp:
Jan 28, 2015, 11:40:50 PM (9 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • cores/w3_clock_controller

    v7 v8  
    88
    99Clock configuration in a WARP v3 FPGA design occurs in three stages:
    10  1) '''Pre-boot:''' the minimum set of registers are written directly by the w3_clock_controller_axi HDL to achieve an 80MHz clock from the sampling clock buffer to the FPGA. All FPGA logic clocked by the sampling clock
    11  2) '''Driver initialization:''' the w3_clock_controller_axi driver {{{clk_init()}}} function writes additional registers in the sampling and RF reference clock buffers, establishing a default configuration suitable for most applications
    12  3) '''Software application:''' the user application running in the MicroBlaze calls other functions in the w3_clock_controller_axi driver to customize the clock configuration
     10 1. '''Pre-boot:''' the minimum set of registers are written directly by the w3_clock_controller_axi HDL to achieve an 80MHz clock from the sampling clock buffer to the FPGA. All FPGA logic clocked by the sampling clock
     11 1. '''Driver initialization:''' the w3_clock_controller_axi driver {{{clk_init()}}} function writes additional registers in the sampling and RF reference clock buffers, establishing a default configuration suitable for most applications
     12 1. '''Software application:''' the user application running in the MicroBlaze calls other functions in the w3_clock_controller_axi driver to customize the clock configuration
    1313
    1414The sections below describe these three stages in detail.
     
    1919
    2020Establishing a stable 80MHz clock from the sampling clock buffer requires:
    21  1) Selecting (and possibly configuring) the clock source for the sampling clock buffer
    22  2) Configuring the divider and logic level of the buffer's output to the FPGA
     21 1. Configuring the divider and logic level of the buffer's output to the FPGA
     22 1. Selecting (and possibly configuring) the clock source for the sampling clock buffer
    2323
    2424These steps require writing registers in the AD9512 buffer via its SPI interface. However the primary SPI master in the w3_clock_controller_axi core is part of logic attached to the AXI interconnected, clocked by the (not yet running) master clock. Thus the w3_clock_controller_axi HDL integrates a secondary SPI controller to perform initial setup of the clock circuits.
     25
     26The w3_clock_controller_axi HDL also supports run-time selection of various clock configurations using the switches on the CM-PLL and CM-MMCX clock modules. The core implements 7 configurations by default:
     27
     28
     29{{{#!th
     30Clock Module
     31}}}
     32{{{#!th
     33Switches
     34}}}
     35{{{#!th
     36Config
     37}}}
     38{{{#!th
     39Default Settings
     40}}}
     41|----------------------------
     42{{{#!td style="background: #fff"
     43None
     44}}}
     45{{{#!td style="background: #fff"
     46---
     47}}}
     48{{{#!td style="background: #fff"
     49---
     50}}}
     51{{{#!td style="background: #fff"
     52 * Select WARP v3 80MHz TCXO as sampling clock source
     53 * Set output to FPGA as LVDS, bypass divider
     54}}}
     55|----------------------------
     56{{{#!td rowspan=3 style="background: #ffe"
     57CM-PLL
     58}}}
     59{{{#!td style="background: #ffe"
     60[[Image(cmpll_dipsw_cfgsel_101.png,nolink)]]
     61}}}
     62{{{#!td style="background: #ffe"
     63CM_PLL_A
     64}}}
     65{{{#!td style="background: #ffe"
     66 * Configure RF reference clock buffer to output 10MHz to clock module
     67 * Set PLL reference clock frequency to 10MHz
     68 * Select clock module (CM-PLL 80MHz VCXO) as sampling clock source
     69 * Set output to FPGA as LVDS, bypass divider
     70}}}
     71|----------------------------
     72{{{#!td style="background: #ffe"
     73[[Image(cmpll_dipsw_cfgsel_110.png,nolink)]]
     74}}}
     75{{{#!td style="background: #ffe"
     76CM_PLL_B
     77}}}
     78{{{#!td style="background: #ffe"
     79 * Set PLL reference clock frequency to 10MHz
     80 * Select clock module (CM-PLL 80MHz VCXO) as sampling clock source
     81 * Set output to FPGA as LVDS, bypass divider
     82}}}
     83|----------------------------
     84{{{#!td style="background: #ffe"
     85[[Image(cmpll_dipsw_cfgsel_111.png,nolink)]]
     86}}}
     87{{{#!td style="background: #ffe"
     88CM_PLL_C
     89}}}
     90{{{#!td style="background: #ffe"
     91 * Set PLL reference clock frequency to 80MHz
     92 * Select clock module (CM-PLL 80MHz VCXO) as sampling clock source
     93 * Set output to FPGA as LVDS, bypass divider
     94}}}
     95|----------------------------
     96{{{#!td rowspan=3 style="background: #fff"
     97CM-MMCX
     98}}}
     99{{{#!td style="background: #fff"
     100[[Image(cmmmcx_sipsw_cfgsel_10.png,nolink)]]
     101}}}
     102{{{#!td style="background: #fff"
     103CM_MMCX_A
     104}}}
     105{{{#!td style="background: #fff"
     106 * Select WARP v3 80MHz TCXO as sampling clock source
     107 * Set output to FPGA as LVDS, bypass divider
     108}}}
     109|----------------------------
     110{{{#!td style="background: #fff"
     111[[Image(cmmmcx_sipsw_cfgsel_01.png,nolink)]]
     112}}}
     113{{{#!td style="background: #fff"
     114CM_MMCX_B
     115}}}
     116{{{#!td style="background: #fff"
     117 * Select clock module (MMCX Jack "Samp In") as sampling clock source
     118 * Set output to FPGA as LVDS, bypass divider
     119}}}
     120|----------------------------
     121{{{#!td style="background: #fff"
     122[[Image(cmmmcx_sipsw_cfgsel_00.png,nolink)]]
     123}}}
     124{{{#!td style="background: #fff"
     125CM_MMCX_C
     126}}}
     127{{{#!td style="background: #fff"
     128 * Select clock module (MMCX Jack "Samp In") as sampling clock source
     129 * Set output to FPGA as LVDS, bypass divider
     130}}}
    25131
    26132[[Image(w3_clock_controller_block_diagram.png, width=500)]]