- Double-click the System Generator token to open the Properties Editor.
- Select the Clocking tab.
- Click Enable multiple clocks.Note: The FPGA clock period and the Simulink system period are now greyed out. This option informs Vitis Model Composer that clock rate will be specified separately for each hierarchy. It is therefore important the top level contains only subsystems and FIFOs; no other logic should be present at the top level in a multi-rate design.
- Click OK to close the Properties
Editor.
You will now specify a new clock rate for the CTRL block. The CTRL block will be driven from a CPU which executes at 100 MHz.
- Select the System Generator token.
- Press the Ctrl+C key or right-click to copy the token.
You will specify a new clock rate for the CTRL block. This block will be clocked at 100 MHz and accessed using an AXI4-Lite interface.
- Double-click the CTRL block to navigate into the subsystem.
- Press the Ctrl+V key or right-click to paste a System Generator token into CTRL.
- Double-click the System Generator token to open the Properties Editor.
- Select the Clocking tab.
- Deselect Enable multiple clocks (this was inherited when the token was copied).
- Change the FPGA clock period to 1e9/100e6.
- Change the Simulink system period to 1/100e6.
- Click OK to close the Properties Editor.
- Double-click the Gateway In instance POWER_SCALE to open the Properties Editor.
- Change the Sample period to 1/100e6 to match the new frequency of this
block.
In the Implementation tab, note that the Interface is set to AXI4-Lite. This will ensure this port is implemented as a register in an AXI4-Lite interface.
- Click OK to close the Properties Editor.
- Select and copy the System Generator token.
- Click the Up to Parent toolbar button
to return to the top level.
You will now specify a new clock rate for the Gain Control block. The Gain Control block will be clocked at the same rate as the output from the DDC, 61.44 MHz.
- Double-click the Gain Control block to navigate into the subsystem.
- Press the Ctrl+V key or right-click to paste a System Generator token into Gain Control.
- Double-click the System Generator token to open the Properties Editor.
- Select the Clocking tab.
- Change the FPGA clock period to 1e9/61.44e6.
- Change the Simulink system period to 1/61.44e6.
- Click OK to close the Properties Editor.
Note that the output signals are prefixed with
M_AXI_DATA_
. This will ensure that each port will be implemented as an AXI4 interface, because the suffix for both signals is a valid AXI4 signal name (tvalid
andtdata
). - Click the Up to Parent toolbar
button to return to the top level.
The DDC block uses the same clock frequency as the original design, 491 MHz, because this is the rate of the incoming data.
- In the top-level design, select and copy the System Generator token.
- Double-click the DDC block to navigate into the subsystem.
- Press the Ctrl+V key or right-click to paste a System Generator token into the DDC.
- Double-click the System Generator token to open the Properties Editor.
- Select the Clocking tab.
- Deselect Enable multiple clocks. The FPGA clock
period and Simulink system period are now
set to represent 491 MHz.
- Click OK to close the Properties Editor.
- Use the Up to Parent toolbar button to return to the top level.
- Save the design.
- Click the Run simulation button to simulate the design and confirm the same
results as earlier.
The design will now be implemented with three clock domains.
- Double-click the top-level System Generator token to open the Properties Editor.
- Click Generate to compile the design into a hardware description.
- Click Yes to dismiss the simulation warning.
- When generation completes, click OK to dismiss the Compilation status dialog box.
- Click OK to dismiss the System Generator token.
- Open the file \HDL_Library\Lab4\IPP_QT_MCD_0001\DDC_HB_hier\ip\hdl\lab4_1.vhd
to confirm the design is using three clocks, as shown in the following.
entity lab4_1 is port ( ctrl_clk : in std_logic; ddc_clk : in std_logic; gain_control_clk : in std_logic;
In this step you will specify a different clock domain for each subsystem.