DSP Flow for SmartFusion2 and IGLOO2 Devices - Libero SoC v11.7 TU0312 Quickstart and Design Tutorial Contents 1 Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1 1.2 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 DSP Flow for SmartFusion2 and IGLOO2 Devices - Libero SoC v11.7 . . . . . . . . . . 6 2.1 2.2 2.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Tutorial Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 Project Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Synphony Model Compiler ME (Microsemi SoC Products Group Edition) Software and License Availability .................................................................................6 3 Using Synphony Model Compiler ME J-2015.03M with Libero SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1 3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Tutorial Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.1 Step1: Create an RTL from the DSP Block in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.2 Step 2: Create a New Libero SoC Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.3 Step 3: Import the RTL, Testbench, and Test Vector Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.4 Step 4: Set Up the Simulation Environment and Perform Simulation . . . . . . . . . . . . . . . . . . . 22 3.2.4.1 Setting Up the Stimulus File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.5 Step 5: Synthesize the Design with Synplify Pro ME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2.6 Step 6: Place-and-Route the Design Using Libero SoC Tool . . . . . . . . . . . . . . . . . . . . . . . . . 31 4 Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5 Product Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1 5.2 5.3 5.4 5.5 5.6 Customer Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contacting the Customer Technical Support Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 My Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Outside the U.S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ITAR Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Revision 7 34 34 34 34 34 34 34 35 35 2 Figures Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Figure 30. Figure 31. Figure 32. Figure 33. Figure 34. Figure 35. Figure 36. DSP Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 DDC Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Setting the Output Port Q_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Setting the Output Port I_out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 DDC Design After Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Synphony Model Compiler ME User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Implementation Options - Target Options Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Implementation Options - RTL Options Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Implementation Options - Design Options Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Run Synphony Model Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 VHDL Files Generated by Synphony Model Compiler ME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Verilog Files Generated by Synphony Model Compiler ME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Libero SoC New Project – Project Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Libero SoC New Project – Device Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Enhanced Constraint Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Tool Profiles Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Importing VHDL Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Importing Verilog Source Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Imported VHDL Source Files into Libero SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Imported Verilog Source Files into Libero SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Set as Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Organize Stimulus File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Organize Stimulus Dialog Box for VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Organize Stimulus Dialog Box for VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Project Settings – Simulation Options Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ModelSim User Interface for VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ModelSim User Interface for Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Open Manage Constraints view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 New Constraint File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Constraint File Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Organize Constraint Files of ddc for Synthesis, Place and Route and Timing Verification Tool . . . 29 Synplify Pro GUI for VHDL Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Implementation Options for Verilog Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Synplify Pro GUI for Verilog Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Implementing Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Verify Timing Completed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Revision 7 3 Tables Table 1. Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Revision 7 4 Preface 1 Preface 1.1 Purpose This document gives step-by-step instructions on how to run Synphony Model Compiler ME and import the design files, testbench, and test vector files into Libero® System-on-Chip (SoC). It also describes the options and settings required by Libero SoC for a smooth design flow. 1.2 Intended Audience This tutorial is intended for: • • FPGA designers System-level designers Revision 7 5 DSP Flow for SmartFusion2 and IGLOO2 Devices - Libero SoC v11.7 2 DSP Flow for SmartFusion2 and IGLOO2 Devices - Libero SoC v11.7 2.1 Introduction This tutorial describes the flow for generating the RTL files from the design or higher level algorithm created in the Mathworks MATLAB® Simulink® software. It assumes that the Mathworks MATLAB Simulink software and license are already installed. In addition, the Synopsys® Synphony Model Compiler ME must be installed. The Synphony Model Compiler ME can only be launched from the MATLAB Simulink tool. For more information about MATLAB Simulink software, visit www.mathworks.com/products/product_listing/index.html. For Synphony Model Compiler ME, visit http://www.microsemi.com/products/fpga-soc/design-resources/design-software/synphony#downloads. 2.2 Tutorial Requirements Table 1 shows the tutorial requirements. Table 1 • Software Requirements Software Requirements Description Libero SoC v11.7 ModelSim v10.4c Synphony Model Compiler ME J-2015.03M MATLAB Simulink – 2.2.1 Project Files The following are the project files associated with this tutorial: • • • Source Solution Readme file Download the project files from: • • SmartFusion2 http://soc.microsemi.com/download/rsc/?f=m2s_tu0312_liberov11p7_df IGLOO2: http://soc.microsemi.com/download/rsc/?f=m2gl_tu0312_liberov11p7_df Refer to the Readme.txt file for the complete directory structure. 2.3 Synphony Model Compiler ME (Microsemi SoC Products Group Edition) Software and License Availability The Synphony Model Compiler ME software and licenses are available for free to Microsemi SoC Products Group customers at: http://www.microsemi.com/products/fpga-soc/fpga-and-soc. Revision 7 6 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3.1 Introduction The Synphony Model Compiler ME translates a design from a higher level algorithm description in Simulink into RTL code that can be synthesized using Synplify Pro ME. The Synphony Model Compiler ME also creates an HDL testbench for the design by capturing the stimulus used to test the design within the Simulink environment. This facilitates verification and makes the RTL-bit and cycle accurate, when compared to the Simulink model of the DSP design. Currently MATLAB Simulink and Synphony Model Compiler ME are not integrated in Libero SoC. Also, the current Synphony Model Compiler ME supports SmartFusion®2 system-on-chip (SoC) field programmable gate array (FPGA) and IGLOO®2 FPGA devices. To infer the multiply-accumulate (MACC) blocks, the SmartFusion2 SoC FPGA or IGLOO2 FPGA device is used for RTL generation in Synphony Model Compiler. This tutorial uses digital down converter (DDC) model design. This design is created in Simulink using Synphony Model Compiler Blockset. For more information about creating design using Simulink, visit www.mathworks.com. Figure 1 on page 8 shows the overall DSP design flow using MATLAB Simulink and Libero SoC with Synplify Pro ME. The Synphony Model Compiler ME translates the DSP design created in Simulink into register-transfer level (RTL) code. The RTL code can be imported to Libero SoC to facilitate smooth synthesis, simulation, place-and-route, and programming of the design. Revision 7 7 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 1 • DSP Design Flow MATLAB Environment MATLAB Simulink Synphony Model Compiler ME J-2015 .03M Synplify Pro ME Place-and-Route ME ModelSim Libero SoC Environment User Design (optional ) Microsemi SoC FPGA 3.2 Tutorial Steps This tutorial is demonstrated by selecting the SmartFusion2 device as the family. For IGLOO2 devices, select IGLOO2 as the family. This tutorial comprises the following steps: Step1: Create an RTL from the DSP Block in MATLAB Step 2: Create a New Libero SoC Project Step 3: Import the RTL, Testbench, and Test Vector Files Step 4: Set Up the Simulation Environment and Perform Simulation Step 5: Synthesize the Design with Synplify Pro ME Step 6: Place-and-Route the Design Using Libero SoC Tool Step 1 is performed in the MATLAB environment and the remaining steps are performed in Libero SoC. Revision 7 8 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3.2.1 Step1: Create an RTL from the DSP Block in MATLAB The following steps describe how to open MATLAB and create RTL code using Synphony Model Compiler ME: 1. 2. 3. 4. 5. 6. Download the required source files from Microsemi website: http://soc.microsemi.com/download/rsc/?f=m2s_tu0312_liberov11p7_df Extract the design files to the C:\demo. Copy the files from C:\demo\m2s_tu0312_liberov11p76_df\Source_Files\DDC to C:\demo Open MATLAB and set the current folder location as C:\demo. Double-click the ddc.mdl file to open the design file. This file is located in C:\demo. The ddc.mdl design is shown in Figure 2. Ignore the messages that pops-up by clicking OK and if ddc_obsolete.mdl pops-up, close the file. Figure 2 • DDC Design Revision 7 9 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 7. Click Q_out, and on the Function Block Parameters dialog box select the Capture test vectors for RTL Test bench and Register output check boxes, as shown in Figure 3. Figure 3 • Setting the Output Port Q_out 8. Click I_out, and on the Function Block Parameters dialog box select the Capture test vectors for RTL Test bench and Register output check boxes, as shown in Figure 4. Figure 4 • Setting the Output Port I_out Revision 7 10 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 9. Click the arrow button to simulate the design, as shown in Figure 5. The spectrum can be viewed in the scope. Figure 5 • DDC Design After Simulation Revision 7 11 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 10. Double-click the SHLS Tool toolbox inside the model file and launch the Synphony Model Compiler ME J-2015.03M, as shown in Figure 6. Figure 6 • Synphony Model Compiler ME User Interface 11. Click New Implementation and in the Target Options tab, select SmartFusion2 or IGLOO2 as the Technology. Figure 7 • Implementation Options - Target Options Tab Revision 7 12 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 12. On the RTL Options tab, select the Generate VHDL, Generate Verilog, and Generate RTL testbench check boxes, as shown in Figure 8. Figure 8 • Implementation Options - RTL Options Tab 13. Click the Design Options tab and set the options, as shown in Figure 9. Figure 9 • Implementation Options - Design Options Tab The Flip Flop Reset Sensitivity can either be Synchronous or Asynchronous, as shown in Figure 9. 14. Click OK to accept all the other implementation settings. Revision 7 13 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 15. Click Run to run synthesis with the Synphony Model compiler, as shown in Figure 10. Figure 10 • Run Synphony Model Compiler Revision 7 14 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 16. After the synthesis is done, close the Synphony Model compiler. The Synphony Model Compiler ME creates files in the path: C:\demo\ddc_impl_1\vhdl, including the RTL, as shown in Figure 11. Figure 11 • VHDL Files Generated by Synphony Model Compiler ME Revision 7 15 Using Synphony Model Compiler ME J-2015.03M with Libero SoC For Verilog flow, Synphony Model Compiler ME creates files at: C:\demo\ddc_impl_1\verilog, as shown in Figure 12. Figure 12 • Verilog Files Generated by Synphony Model Compiler ME 17. Close MATLAB. The RTL files generated from the MATLAB Simulink software using Synphony Model Compiler ME J-2015.03M are ready to be used and evaluated on a hardware platform. The Libero SoC is the comprehensive software suite for designing SmartFusion2 and IGLOO2 devices, managing the entire design flow from design entry, synthesis and simulation through place-and-route, and timing and power analysis with enhanced integration of the embedded design flow. 3.2.2 Step 2: Create a New Libero SoC Project The following steps use the Libero SoC software to create a project for the tutorial design. A Libero SoC project sets the design name, the HDL flavor (VHDL or Verilog), and the tool locations. 1. 2. Double-click the Libero SoC icon on the desktop to start the Libero SoC Project Manager. In the Project menu, select New Project. This displays the New Project dialog box, as shown in Figure 13 on page 17. 3. Set the following values in the New Project dialog box: • Project name: DDC_top • Project location: C:\demo • Preferred HDL type: VHDL Note: For Verilog flow, preferred HDL type: Verilog. Revision 7 16 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 13 • Libero SoC New Project – Project Details 4. Set the following values, as shown in Figure 16: • Family: SmartFusion2 • Die: M2S050T • Package: 896 FBGA • Speed: STD • Core voltage: 1.2 V • Range: COM Revision 7 17 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 14 • Libero SoC New Project – Device Selection 5. 6. 7. 8. Click Next to continue. On the Design template window, select None for Design templates and creators. Click Next to continue and then click Finish. Select the Use Enhanced Constraint Flow as shown in Figure 15. Figure 15 • Enhanced Constraint Flow Revision 7 18 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 9. Choose the appropriate tools settings, if they are not already selected, as shown in Figure 16. The tools shown in this dialog box depend on the installation. To change the default tool settings, refer to the Libero SoC Online Help. Note: FPGA programming is not performed as a part of the tutorial. Therefore, the programming tool selection is not important for this tutorial. Figure 16 • Tool Profiles Dialog Box 3.2.3 Step 3: Import the RTL, Testbench, and Test Vector Files The following steps describe how to import the RTL, testbench, and test vector into Libero SoC: 1. Navigate to the File menu in Libero SoC, and choose Import Files. For Files of type select HDL source files (*.vhd,*.v,*.h) and import the ddc.vhd, SynLib_asynch.vhd, files from the path c:\demo\ddc_impl1\vhdl, as shown in Figure 17. In this design tutorial, only the ddc.vhdl file and its associated files generated in Step 2: Create a New Libero SoC Project are used. Figure 17 • Importing VHDL Source Files Revision 7 19 Using Synphony Model Compiler ME J-2015.03M with Libero SoC For Verilog flow, import ddc.v, SynLib.v, and define.h files, from the path c:\demo\ddc_impl1\verilog, as shown in Figure 18. Figure 18 • Importing Verilog Source Files 2. In the File menu in Libero SoC, select Import Files. For Files of type, select HDL Stimulus file (*.vhd,*.v) and import the ddc_Test.vhd file. For Verilog flow, import ddc_Test.v file. Revision 7 20 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3. In the File menu in Libero SoC, select Import Files. For Files of type, select Simulation files (*.mem,*.bfm,*.dat,*.txt,*. do) and import all the *.dat files. The required files are copied into the respective folders, as shown in Figure 19. The Verilog files are copied into the respective folders, as shown in Figure 20 on page 22. Figure 19 • Imported VHDL Source Files into Libero SoC Revision 7 21 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 20 • Imported Verilog Source Files into Libero SoC 4. 5. 3.2.4 In VHDL flow, open the ddc.vhd, SynLib_asynch.vhd,files. Use the Libero SoC Find and Replace feature to replace SHLSLib with work and save the file. This change is required to use work, a default library, so that ModelSim and Synplify can find the package definition from the work library. In Verilog flow, open the ddc.v file and add include "define.h" before module declaration and save the file. Step 4: Set Up the Simulation Environment and Perform Simulation After the RTL, testbench, and test vector files are imported, use ModelSim to perform a pre-synthesis simulation. Associate a stimulus file with the design. This lets the ModelSim tool to know which testbench to be used for the simulation. Revision 7 22 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3.2.4.1 Setting Up the Stimulus File 1. For a VHDL flow, on the Design Hierarchy tab, right-click ddc.vhd and select Set As Root, whereas for a Verilog flow, right-click ddc.v and select Set As Root, as shown in Figure 21. Figure 21 • Set as Root 2. Under Verify Pre-synthesized Design, right-click Simulate and select Organize Input files > Organize Stimulus Files, as shown in Figure 22. The Organize Stimulus dialog box is displayed, as shown in Figure 23 on page 24. Figure 22 • Organize Stimulus File Revision 7 23 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3. Select User option to add the stimulus file under Associated Stimulus Files, as shown in Figure 23 for VHDL flow and Figure 24 for Verilog flow. Figure 23 • Organize Stimulus Dialog Box for VHDL Figure 24 • Organize Stimulus Dialog Box for VHDL After selecting the stimulus file, set the simulation environment. 4. 5. 6. In the Project menu, select Project Settings to open the Project Settings dialog box, as shown in Figure 25 on page 25. In the Simulation options, click the Do tab and set the following: • Simulation runtime: -all • Testbench module name: test_ddc • Top Level instance: i_ddc Click Save. Revision 7 24 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 25 • Project Settings – Simulation Options Dialog Box 7. Under Verify Pre-synthesized Design, right-click Simulate and select Open interactively. The ModelSim VHDL simulator opens and runs simulation using the run.do file, as shown in Figure 26. Figure 26 • ModelSim User Interface for VHDL For VHDL, the following message appears after the successful completion of testbench simulation. The testbench simulation takes two seconds to complete. Time: 2000275 ns Iteration: 5 Instance: /test_ddc # ** Note: ******* VHDL Verification Successful! ******* Revision 7 25 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 27 • ModelSim User Interface for Verilog For Verilog, the following message appears after the successful completion of testbench simulation: ******* Verilog Verification Successful! ******* Time: 2000275 ps Iteration: 2 Instance: /test_ddc 8. Click Yes to finish Verilog simulation. Revision 7 26 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3.2.5 Step 5: Synthesize the Design with Synplify Pro ME The following steps describe how to generate an EDIF netlist (*.edn file) by synthesizing the design with Synplify Pro ME, as shown in Figure 32. Synplify Pro ME instantiates I/O buffers, synthesizes logic for the behavioral blocks in the design, utilizes hardcore mathblocks for multiplication and addition operations, and generates an EDIF netlist for you to place-and-route. 1. To add timing constraints go to Design Flow>Constraints>Manage Constraints and double-click to open as shown in Figure 28. Figure 28 • Open Manage Constraints view Revision 7 27 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 2. Click on New tab and give name as ddc, as shown in Figure 29 and Figure 30. Figure 29 • New Constraint File Figure 30 • Constraint File Name 3. 4. Double-click on the ddc.sdc file to open ddc.sdc file. Copy and paste the below mentioned sdc commands to the file. create_clock -name {clk} -period 25 -waveform {0 12.5 } [ get_ports { clk } ] create_clock -name {clkDiv64} -period 1600 -waveform {0 800 } [ get_ports { clkDiv64 } ] create_clock -name {clkDiv128} -period 3200 -waveform {0 1600 } [ get_ports { clkDiv128 } ] Mark this ddc.sdc file for synthesis, place and route, and timing verification, as shown in Figure 31. Revision 7 28 Using Synphony Model Compiler ME J-2015.03M with Libero SoC Figure 31 • Organize Constraint Files of ddc for Synthesis, Place and Route and Timing Verification Tool 5. 6. 7. Under Implement design, right-click Synthesize and click Open Interactively. Ignore the pop-up messages displayed. This launches the Synopsys Synplify Pro ME tool with the appropriate design files, as shown in Figure 32. Set the Frequency to 40 MHz (Default). For VHDL flow, select Run to synthesize the design. After successful synthesis, in the Project Status tab, under Area Summary, click Detailed report for the number of DSP math blocks inferred for multiplier operations, as shown in Figure 32. Figure 32 • Synplify Pro GUI for VHDL Flow Revision 7 29 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 8. 9. For a Verilog flow, under Synopsys Synplify Pro ME, click Implementation Options and select Verilog language as Verilog2001, as shown in Figure 33. Select Run to synthesize the design, as shown in Figure 32 on page 29. Figure 33 • Implementation Options for Verilog Flow In Figure 34, note the number of DSP mathblocks inferred for multiplier operations in DDC design. Figure 34 • Synplify Pro GUI for Verilog Flow Revision 7 30 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 3.2.6 Step 6: Place-and-Route the Design Using Libero SoC Tool The following steps describe how to place-and-route the design in a SmartFusion2 M2S050T device using the Microsemi SoC Products Group designer software. 1. To run place and route tool, right-click Place and Route, select Run as shown in the Figure 35. Figure 35 • Implementing Place and Route Revision 7 31 Using Synphony Model Compiler ME J-2015.03M with Libero SoC 2. On the Design flow tab, right-click Verify Timing and select Run. After successful completion, a green tick mark is displayed next to Verify Timing, as shown in Figure 36. Figure 36 • Verify Timing Completed Revision 7 32 Revision History 4 Revision History The following table shows important changes made in this document for each revision. Revision Changes Revision 7 (April 2016) Updated the document for Libero SoC v11.7 software release (SAR 77759). Revision 6 (November 2015) Updated the document for Libero SoC v11.6 software release (SAR 73097). Revision 5 (April 2013) Updated the document for 11.0 production SW release (SAR 47103). Revision 4 (February 2013) Updated the document for Libero v11.0 beta SP1 software release (SAR 45203). Revision 3 (November 2012) Updated the document for Libero v11.0 beta SPA software release (SAR 42881). Revision 2 (October 2012) Updated the document for Libero v11.0 beta launch (SAR 41733). Revision 1 (May 2012) Updated the document for LCP2 software release (SAR 38955). Revision 7 33 Product Support 5 Product Support Microsemi SoC Products Group backs its products with various support services, including Customer Service, Customer Technical Support Center, a website, electronic mail, and worldwide sales offices. This appendix contains information about contacting Microsemi SoC Products Group and using these support services. 5.1 Customer Service Contact Customer Service for non-technical product support, such as product pricing, product upgrades, update information, order status, and authorization. From North America, call 800.262.1060 From the rest of the world, call 650.318.4460 Fax, from anywhere in the world, 408.643.6913 5.2 Customer Technical Support Center Microsemi SoC Products Group staffs its Customer Technical Support Center with highly skilled engineers who can help answer your hardware, software, and design questions about Microsemi SoC Products. The Customer Technical Support Center spends a great deal of time creating application notes, answers to common design cycle questions, documentation of known issues, and various FAQs. So, before you contact us, please visit our online resources. It is very likely we have already answered your questions. 5.3 Technical Support For Microsemi SoC Products Support, visit http://www.microsemi.com/products/fpga-soc/design-support/fpga-soc-support. 5.4 Website You can browse a variety of technical and non-technical information on the Microsemi SoC Products Group home page, at http://www.microsemi.com/products/fpga-soc/fpga-and-soc. 5.5 Contacting the Customer Technical Support Center Highly skilled engineers staff the Technical Support Center. The Technical Support Center can be contacted by email or through the Microsemi SoC Products Group website. 5.5.1 Email You can communicate your technical questions to our email address and receive answers back by email, fax, or phone. Also, if you have design problems, you can email your design files to receive assistance. We constantly monitor the email account throughout the day. When sending your request to us, please be sure to include your full name, company name, and your contact information for efficient processing of your request. The technical support email address is [email protected]. 5.5.2 My Cases Microsemi SoC Products Group customers may submit and track technical cases online by going to My Cases. Revision 7 34 Product Support 5.5.3 Outside the U.S. Customers needing assistance outside the US time zones can either contact technical support via email ([email protected]) or contact a local sales office. Visit About Us for sales office listings and corporate contacts. 5.6 ITAR Technical Support For technical support on RH and RT FPGAs that are regulated by International Traffic in Arms Regulations (ITAR), contact us via [email protected]. Alternatively, within My Cases, select Yes in the ITAR drop-down list. For a complete list of ITAR-regulated Microsemi FPGAs, visit the ITAR web page. Revision 7 35 Microsemi Corporation (Nasdaq: MSCC) offers a comprehensive portfolio of semiconductor and system solutions for communications, defense and security, aerospace, and industrial markets. Products include high-performance and radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs, and ASICs; power management products; timing and synchronization devices and precise time solutions; voice processing devices; RF solutions; discrete components; enterprise storage and communications solutions, security technologies, and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs and midspans; custom design capabilities and services. Microsemi is headquartered in Aliso Viejo, California, and has approximately 4,800 employees worldwide. Learn more at www.microsemi.com. Microsemi Corporate Headquarters One Enterprise, Aliso Viejo, CA 92656 USA Within the USA: +1 (800) 713-4113 Outside the USA: +1 (949) 380-6100 Sales: +1 (949) 380-6136 Fax: +1 (949) 215-4996 E-mail: [email protected] © 2016 Microsemi Corporation. All rights reserved. Microsemi and the Microsemi logo are trademarks of Microsemi Corporation. All other trademarks and service marks are the property of their respective owners. Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of its products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the application or use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have been subject to limited testing and should not be used in conjunction with mission-critical equipment or applications. Any performance specifications are believed to be reliable but are not verified, and Buyer must conduct and complete all performance and other testing of the products, alone and together with, or installed in, any end-products. Buyer shall not rely on any data and performance specifications or parameters provided by Microsemi. It is the Buyer's responsibility to independently determine suitability of any products and to test and verify the same. The information provided by Microsemi hereunder is provided “as is, where is” and with all faults, and the entire risk associated with such information is entirely with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other IP rights, whether with regard to such information itself or anything described by such information. Information provided in this document is proprietary to Microsemi, and Microsemi reserves the right to make any changes to the information in this document or to any products and services at any time without notice. 50200312-7/4.16