F2 Shell offers two clocks - clk_main_a0
and clk_hbm_ref
to the CL. This is different from F1 Shell, which offers total of 8 clocks from Shell to the CL as described in F1 Shell Interface Spec. Offering fewer clocks from the Shell to CL is beneficial because it does not lock up the routing resources for customers who do not require all the clocks from the Shell.
The clk_main_a0
defaults to 250MHz. Dynamic reconfiguration of the frequency for clk_main_a0
is currently NOT supported. However, this will be supported in future.
The clk_hbm_ref
is a fixed frequency 100MHz clock required for the HBM IP to clock the APB interface.
F2 Developer Kit provides a clocking IP AWS_CLK_GEN for customers who desire to have same clocks and clock recipe support as F1. Table below shows the clock recipes supported in F2.
Clock Group A | |||||
---|---|---|---|---|---|
Recipe Number | clk_main_a0 | clk_extra_a1 | clk_extra_a2 | clk_extra_a3 | Notes |
A0 | 250 | 62.5 | 187.5 | 250 | AWS_CLK_GEN is not required in the CL design for clk_main_a0 recipes. clk_extra_a0/a1/a2 clocks require AWS_CLK_GEN IP instantiated in CL design. |
A1 | 250 | 125 | 375 | 500 | |
A2 | 250 | 15.625 | 125 | 62.5 | |
Clock Group B | |||||
Recipe Number | clk_extra_b0 | clk_extra_b1 | Notes | ||
B0 | 250 | 125 | clk_extra_b0/b1 require AWS_CLK_GEN IP instantiated in the CL design. | ||
B1 | 125 | 62.5 | |||
B2 | 450 | 225 | |||
B3 | 250 | 62.5 | |||
B4 | 300 | 75 | |||
B5 | 400 | 100 | |||
Clock Group C | |||||
Recipe Number | clk_extra_c0 | clk_extra_c1 | Notes | ||
C0 | 300 | 400 | clk_extra_c0/c1 require AWS_CLK_GEN block instantiated in the CL design. | ||
C1 | 150 | 200 | |||
C2 | 75 | 100 | |||
C3 | 200 | 266.667 | |||
Clock Group HBM | |||||
Recipe Number | clk_hbm_axi | NOTES | |||
H0 | 250 | clk_hbm_axi requires AWS_CLK_GEN block instantiated in the CL design. The clk_hbm_axi is used to clock the AXI interface of HBM IP. This clock is not available in F1. | |||
H1 | 125 | ||||
H2 | 450 | ||||
H3 | 300 | ||||
H4 | 400 | ||||
Reference Clock Group | |||||
Recipe Number | clk_hbm_ref | Notes | |||
- | 100 | Fixed frequency 100MHz reference clock from the Shell for HBM IP. |
NOTE: clk_main_a0
supports A0, A1 and A2 clock recipes without requiring AWS_CLK_GEN IP instantiated in the CL design. All other clocks and their respective clock recipes require AWS_CLK_GEN IP instantiated in the CL design and interfaced to the SDA interface from the Shell. CL_MEM_PERF demonstrates how AWS_CLK_GEN is integrated into CL design.
Developers who wish to build CL design for a specific clock frequency defined in the F2 Clock Recipe Table can do so by passing the following arguments at the time of CL builds. Specifying clock recipe at the time of build, automatically adjusts the design clock constraints enabling the Vivado tool to close timing of CL based on chosen clock frequency.
For example, command below shows CL_MEM_PERF built using user specified clock recipes:
cd $CL_DIR/build/scripts/
./aws_build_dcp_from_cl.py --cl=cl_mem_perf --clock_recipe_a=A0 --clock_recipe_b=B3 --clock_recipe_c=C3 --clock_recipe_hbm=H4
When the clock recipe options are not explicitly specified, aws_build_dcp_from_cl.py
defaults to --clock_recipe_a=A1 --clock_recipe_b=B2 --clock_recipe_c=C0 --clock_recipe_hbm=H2
NOTE: If AWS_CLK_GEN IP is not instantiated in the CL design, the recipes for AWS_CLK_GEN clocks will be ignored. Users may see CRITICAL WARNING related to missing AWS_CLK_GEN instantiation during builds.
Support for SW API to do clock frequency dynamic configuration is available using the fpga-load-clkgen-dynamic
and fpga-load-clkgen-recipe
command line interfaces detailed in Amazon FPGA Image (AFI) Management Tools.
-
The
clk_main_a0
is now fixed at 250MHz. It does not support clock recipes or dynamic frequency reconfiguration. However, they will be supported in future. -
F1 designs that relied on additional clocks such as
clk_extra_*
will now have two options in F2:a. Customers can instantiate required number of MMCMs in their CL design to meet the clocking requirement.
b. Alternately, customers can instantiate AWS_CLK_GEN IP in their CL which offers same set of clocks from F1, in addition to
clk_hbm_axi
for HBM clocking. AWS provides SW APIs to simplify clock configuration for the user application. -
F2 supports same clock recipe build switches as F1 to simplify porting of F1 designs into F2.