36
FPGA Block Modular Design Tutorial 1 FPGA Block Modular Design Tutorial Introduction This tutorial describes the Block Modular Design (BMD) methodology and relative tools in ispLEVER that assist distributed teams in collaborating on large FPGA designs. BMD can also be employed as part of a incremental design strategy that is especially effective when isolated changes to a design are required and there is a need to minimize the impact to other modules in the design. In this tutorial you will implement a small Verilog HDL design that will be partitioned between a top-level project and two sub-module projects. Throughout the tutorial you will act both in the role of the team leader and a team member. As the team leader, you will be responsible for the organization and management of the overall project and its files, area and resource budgeting, and final assembly of all modules in the top-level project. In the role of a team member, you will be responsible for preparing sub-modules for final assembly, that is, implementing each sub-module in its own child project to create physical design (.ncd) files. Team members must coordinate their sub-module designs based on the resources and timing objectives assigned by the team leader. Learning Objectives When you have completed this tutorial, you should be able to: Understand and follow the recommended team methodology for a team to collaborate on a large FPGA design. Partition and budget logic resources for multiple sub-modules. Define the relative location of the data paths between sub-modules.

FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

FPGA Block Modular Design Tutorial 1

FPGA Block Modular Design Tutorial

IntroductionThis tutorial describes the Block Modular Design (BMD) methodology and relative tools in ispLEVER that assist distributed teams in collaborating on large FPGA designs. BMD can also be employed as part of a incremental design strategy that is especially effective when isolated changes to a design are required and there is a need to minimize the impact to other modules in the design.

In this tutorial you will implement a small Verilog HDL design that will be partitioned between a top-level project and two sub-module projects. Throughout the tutorial you will act both in the role of the team leader and a team member. As the team leader, you will be responsible for the organization and management of the overall project and its files, area and resource budgeting, and final assembly of all modules in the top-level project. In the role of a team member, you will be responsible for preparing sub-modules for final assembly, that is, implementing each sub-module in its own child project to create physical design (.ncd) files. Team members must coordinate their sub-module designs based on the resources and timing objectives assigned by the team leader.

Learning ObjectivesWhen you have completed this tutorial, you should be able to:

Understand and follow the recommended team methodology for a team to collaborate on a large FPGA design.

Partition and budget logic resources for multiple sub-modules.

Define the relative location of the data paths between sub-modules.

Page 2: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Introduction

FPGA Block Modular Design Tutorial 2

Establish location and timing objectives for the top-level design.

Archive and deploy sub-module projects.

Implement a sub-module project.

Perform incremental verification of the top-level project.

Assemble and verify the top-level project.

Time to Complete This TutorialThe time to complete this tutorial is about 45 minutes.

System RequirementsThis section lists following software requirements, installation configurations, and software versions used in this tutorial. To run this tutorial successfully through completion, ensure that you have the following:

Installed version of ispLEVER software version 5.0 SP1 or higher.

Installed ispLEVER or ispLEVER Starter software package with active licenses for Mentor Graphics Precision RTL Synthesis or Synplicity Synplify with Verilog HDL support.

At least the OEM version of Mentor Graphics’ Precision or Synplicity’s Synplify for synthesis of HDL source files. The body of the tutorial uses the Precision synthesis flow and alternate procedures for the Synplify synthesis flow are given in the appendix.

You must use the tutorial design files in the bmd_tutor.zip file in the <install>\examples\tutorial folder after installation of ispLEVER. This tutorial bmd_tutor.pdf file you are using is located in the <install>\ispcpld\tutorial directory path.

This tutorial is PC-based; however, it can also be run on UNIX/Linux if you are familiar enough with the ispLEVER interface on both platforms.

About the Tutorial DesignThe tutorial design is a small data path design featuring one sub-module named (multreg16) with a multiplexer, multiply, with a registered output followed by another register stage named (rotate) that provides an optional rotate function. "Block Diagram of the Tutorial Design" on page 3 provides a high level block diagram of the system.

Page 3: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Introduction

FPGA Block Modular Design Tutorial 3

Figure 1: Block Diagram of the Tutorial Design

Page 4: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Introduction

FPGA Block Modular Design Tutorial 4

The Block Modular Design MethodologyThis section describes the Block Modular Design (BMD) methodology and its major process steps. The tutorial follows this approach, either taking you though each procedure step-by-step, or providing you with a finished input for illustrative purposes. The following is brief overview of each step:

Step 1: Block Modular Design Entry In the first step, the top-level design is written in HDL and each sub-module is instantiated along with synthesis compiler directives to treat them as “black-boxes.” The team leader should take special consideration that each design module is a good sub-module candidate. The ispLEVER online help provides guidelines on this topic. See the Block Modular Design Step Guide in the FPGA Flow Help system and the Block Modular Design Wizard Help system. In the tutorial, this step is already completed for you as these source Verilog HDL design files are supplied.

Step 2: Block Modular Design Synthesis In the second step, the RTL of each sub-module is synthesized. This step can be performed in parallel with or before Step 3; however, the device resource utilization report generated by logic synthesis will help ease the team leader’s task of budgeting area size and region for each sub-module in Step 3. The tutorial guides you through synthesis of the top-level and sub-module designs using Precision RTL Synthesis and Synplify. Synplify synthesis flow procedures are given in the appendix.

Step 3: Top-Level Block Module Configuration During Step 3, the team leader budgets logic resources and the location of each sub-module on the target device floorplan. The size and location of each sub-module must accommodate the synthesized logic produced in Step 2. Timing constraints are initially defined in this step. Global device resources like I/Os and PLLs are also assigned at this point.

The team leader should adhere to the configuration requirements described in ispLEVER online help in the “Top-Level Design Configuration Requirements” topic in the Block Modular Design Step Guide in the FPGA Flow Help. In the tutorial, preferences are already set for you in a supplied preference file and can be viewed to illustrate how a designer takes existing area and resource considerations into account.

Step 4: Block Module Implementation In Step 4, each sub-module is implemented by respective team members concurrently to produce physical design (.ncd) files to be merged next step, that is, final assembly. The top-level or “parent” project lends its logical translated netlist (.ngo) file and logical preference (.lpf) file to guide this process. Each sub-module is implemented into .ncd files ready for final assembly with other sub-modules and the top-level project. Timing objectives established in Step 3 by the team leader are applied and often extended by the team member responsible for the sub-module. The tutorial guides you through this step.

Step 5: Block Modular Design Assembly In the final assembly step, the top-level and all sub-modules are merged together into one design. The tutorial guides you through this step.

Page 5: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Introduction

FPGA Block Modular Design Tutorial 5

The Tutorial Process FlowThis section describes the sequence of processors and major data files you will apply during the tutorial tasks. The tutorial tasks lead you through the typical routine within the ispLEVER design environment to follow the BMD methodology described earlier.

Figure 2: Top-Level Process Flow

Page 6: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Introduction

FPGA Block Modular Design Tutorial 6

Figure 3: Sub-Module Process Flow

Before You BeginBefore beginning, you must set up the tutorial design files to be used with this tutorial. To work with this tutorial, please take the following steps:

1. Go to the <install_dir>\examples\tutorial\bmd_tutor directory and create a directory called “ispLEVER” to work with this tutorial.

Please note that you can set up your tutorial directory anywhere you wish; however, this tutorial will instruct you to this file path in procedures. All files in this “ispLEVER” folder will be consistent in a relative manner to whatever file path you use to run this tutorial, that is, all recursive directories and files should be the same.

2. In the .\examples\tutorial\bmd_tutor folder, open the bmd_tutor.zip file and extract the files to the ..\bmd_tutor\ispLEVER directory.

Restoring the Tutorial Installation After running through this tutorial one time, you may want to repeat it or allow someone else to run it locally or over the network. To restore the original state of the tutorial installation, remove contents of the ispLEVER sub-directory you created in the bmd_tutor directory. The original source files for this tutorial will remain undisturbed in the bmd_tutor.zip file in the source directory in .\examples\tutorial\bmd_tutor.

Page 7: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 1: Top-Level Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 7

Task 1: Top-Level Module Design Entry and SynthesisIn this task, you act in the role as the team leader and examine a pre-defined top-level tutorial design using either Mentor Graphics Precision RTL Synthesis or Synplicity Synplify. The top-level design is written in Verilog HDL and each sub-module is instantiated along with synthesis compiler directives to treat each as a “black-box.” Black boxes are passed into the EDIF netlist as-is with no internal logic defined.

"Block Diagram of the Tutorial Design" on page 3 illustrates the top-level organization and sub-module interconnect between sub-modules multreg16 and rotate.

Note You can choose between using Precision RTL Synthesis or Synplify in this task to synthesize the top-level design. We use the Precision tool throughout the body of the tutorial. Synplify procedures are in the appendix.

Top-Level Synthesis with Precision RTL SynthesisUse the following procedure to synthesize the top-level design using Precision RTL Synthesis. If you prefer to use Synplify for this step, please refer to "Task 1: Top-Level Synthesis with Synplify" on page 33 in the appendix.

To create a Precision RTL Synthesis project, inspect the top-level design, and synthesize it to EDIF:

1. From the Start menu, select Programs > Lattice Semiconductor > Accessories > Precision RTL Synthesis. The Mentor Graphics Precision main window appears with the Transcript window active.

Note that if this option is not in your Start Menu due to your installation, you can open the ispLEVER program and select Tools > Precision Synthesis in the Project Navigator.

2. Click OK to close the Tip of the Day dialog box.

3. Select File > New Project. The New Project dialog box appears.

4. Specify the following for the new project:

Project Name: veriloghdsnProject Folder: ...\examples\tutorial\bmd_tutor\precision\veriloghdsn

Page 8: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 1: Top-Level Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 8

5. Click OK to implement the new project or Yes to implement project with newly created directories. This is dependent upon the version of the software.

6. If not already activated, click the Design Center tab at the bottom center of the main window and then select the Input Files folder. The Design Center view includes windows for Project Files and Design Hierarchy.

7. In the Project Files view, right-click on the Input Files folder and select Add Input Files from the popup menu.

8. In the Open dialog, browse to the ..\bmd_tutor\ispLEVER folder, control-click to select veriloghdsn.v and LatticeEC_66MHz_PLL.v and click Open. Your Open dialog should default to this directory. Note that you

must perform the steps in the Before You Begin section to have these tutorial files available to you from the Open dialog.

9. In the Design Bar on the left, click the Setup Design icon. The Project Settings dialog box appears.

10. In the Project Settings dialog, double click on Lattice in the Technology list box to expand device listings underneath it and select the settings below as shown in the following graphic:

Page 9: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 1: Top-Level Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 9

Technology: LatticeECPDevice: LFECP6ESpeed Grade: -4Package: TQFP144Design Frequency: Current Frequency

Tutorial Errata: Some versions of Precision may not include a TQFP144 package selection in the Package dropdown menu in the Setup Design dialog box. To target the correct device, enter the following setup_design command in the Precision Trascript window:

setup_design -package TQFP144

11. Click OK.

12. Click the Save button to save the current project.

13. If it is not already selected, click the Design Center tab to activate the Project Files view and expand the Input Files folder.

Page 10: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 1: Top-Level Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 10

14. Below the Input Files folder, double-click the veriloghdsn.v file to open it in Precision’s built-in text editor.

15. Using the scroll bar, page down in the file to the module instantiations for multreg16 and rotate.

Make note of the Precision RTL Synthesis compiler directives added to the instantiations of multreg16 and rotate. The dont_touch command directs the compiler to pass the module instance untouched into the EDIF netlist.

// multiplexer/multiply/register multreg16 multreg16_1 (.q(reg_out), .dataa(a), .datab(b), .datac(c), .sel(sel), .clk(clk), .rst(rst)); //pragma attribute multreg16_1 dont_touch // register or rotate rotate rotate_1 (.q(q), .data(reg_out), .clk(clk), .r_l(r_l), .rst(rst)); // pragma attribute rotate_1 dont_touch

Page 11: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 1: Top-Level Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 11

16. Select Tools > Set Options. The Options dialog box appears.

17. In the Options dialog, select the Output option then specify:

Output File Base Name: veriloghdsn Output Formats: EDIF

18. Click OK.

19. In the Design Bar on the left click Synthesize. The EDIF netlist file is created as veriloghdsn.edf.

20. Click the Design Center tab and in the Project Files list box double-click veriloghdsn.edf file. The netlist opens in the text editor.

21. Click File > Save Project to save the current project. You have completed this task.

Your project ..examples\tutorial\bmd_tutor\precision\veriloghdsn directory should now include the following:

veriloghdsn.psp (master project file)

precision.log (session log file)

\veriloghdsn_imp_1 (default implementation folder)

\veriloghdsn_temp_1 (project’s temporary results folder)

22. Click File > Close Project to close the project.

23. Go to "Task 2: Sub-Module Design Entry and Synthesis" on page 12.

Page 12: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 2: Sub-Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 12

Task 2: Sub-Module Design Entry and SynthesisIn this task, you will act in the role of a team member responsible for the design of a sub-module. You will synthesize the tutorial HDL source files for each sub-module.

In this scenario you define and optionally debug sub-module logic that is independent of the top-level design or other sub-modules. After synthesis you will use the utilization report of the compiler to make a rough estimate of the FPGA resources that will be required to accommodate the sub-module. This information will help the team leader make a better choice about location and size of the sub-module on the device floorplan.

Note You can choose between using Precision RTL Synthesis or Synplify in this task to synthesize the sub-module designs. We use the Precision tool throughout the body of the tutorial. Synplify procedures are in the appendix.

Sub-Module Synthesis of “multreg16” with Precision RTL SynthesisUse the following procedure to synthesize the “multreg16” sub-module design using Precision RTL Synthesis. If you prefer to use Synplify for this step, please refer to "Task 2: Sub-Module Synthesis of “multreg16” with Synplify" on page 34 in the appendix.

To create a Precision RTL Synthesis project for the “multreg16” sub-module and synthesize it to EDIF:

1. If Precision RTL Synthesis is not already running, from the Start menu select Programs > Lattice Semiconductor > Accessories > Precision. The Mentor Graphics Precision Transcript Window appears.

Note that if this option is not in your Start Menu due to your installation, you can open the ispLEVER program and select Tools > Precision Synthesis in the Project Navigator.

2. Click OK to close the Tip of the Day dialog box.

3. Select File > New Project. The New Project dialog box appears.

Note that if a popup dialog appears to click Yes to implement the new project. Whether this appears depends upon the version.

Page 13: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 2: Sub-Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 13

4. Specify the following for the new project:

Project Name: multreg16Project Folder: ...\tutorial\bmd_tutor\precision\multreg16

5. Click OK to implement the new project.

6. At the bottom center of the main window, click the Design Center tab.

7. In the Project Files view, select the Input Files folder, right-click, and select Add Input Files from the popup menu.

8. In the Open dialog, browse to the ..bmd_tutor\ispLEVER folder, select multreg16.v, and click Open.

9. In the Design Bar on the left, and click Setup Design icon. The Project Settings dialog box appears.

10. Click on Lattice in the Technology list box and select the following settings:

Page 14: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 2: Sub-Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 14

Technology: LatticeECP-DSPPart: LFECP6ESpeed: -4Speed Grade: TQFP144

11. Click OK.

12. Select Tools > Set Options. The Options dialog box appears. The Options dialog box appears.

13. In the Options dialog, select the Optimization option, uncheck Add IO Pads and click Apply.

14. Select the Output option then specify:

Output File Base Name: multreg16Output Formats: EDIF

15. Click OK.

16. Click File > Save Project to save the current project.

Page 15: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 2: Sub-Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 15

17. In the Design Bar on the left and click Synthesize. The EDIF netlist file multreg16.edf is created.

18. Click the Design Analysis bar at left and then click Report Area. The multreg16_area.rep tab appears.

The following resources will be required:

LUTs: 8 of 6100 => 4 slices (or 1 PFU) required to accommodate the multiplexer logic.

PFUs: 1 of 1525 => 4 slices required for register logic 1 PFU to hold the multiplexer logic.

DSP 9-Bit Elements: 1 of 32 => 1 sysDSP block required for the MULT9X9 inferred by the multiply operator and registered output.

***********************************************Device Utilization for LFECP6E-4T144CES***********************************************Resource Used Avail Utilization-----------------------------------------------IOs 43 97 44.33%LUTs 8 6100 0.13%PFUs 1 1525 0.07%Flipflops 0 6100 0.00%DSP 9-Bit Elements 1 32 3.13%Block RAMs 0 10 0.00%

-----------------------------------------------

19. Click File > Save Project to save the current project.

20. Click File > Close to close the project.

Sub-Module Synthesis of “rotate” with Precision RTL SynthesisUse the following procedure to synthesize the “rotate” sub-module design using Precision RTL Synthesis. If you prefer to use Synplify for this step, please refer to "Task 3: Sub-Module Synthesis “rotate” with Synplify" on page 35 in the appendix.

1. Repeat steps 3 through 18 from the procedure above using the rotate.v source file. Use the same folder naming convention as you did for multreg16.

2. Click the Design Analysis bar at left and then click Report Area. The rotate_area.rep tab appears.

The following resources will be required:

LUTs: 16 of 6100 => Accommodates the rotate logic. Eight slices are required for other logic.PFUs: 2 of 1525 => Four slices are required for register logic. Flipflops: 16 of 6100 => Eight slices are required for register logic.

***********************************************Device Utilization for LFECP6E-4T144CES***********************************************

Page 16: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 2: Sub-Module Design Entry and Synthesis

FPGA Block Modular Design Tutorial 16

Resource Used Avail Utilization-----------------------------------------------IOs 35 97 36.08%LUTs 16 6100 0.26%PFUs 2 1525 0.13%Flipflops 16 6100 0.26%DSP 9-Bit Elements 0 32 0.00%Block RAMs 0 10 0.00%

-----------------------------------------------

3. Click File > Save Project to save the current project.

4. Select File > Exit. You have completed this task.

5. Go to "Task 3: Top-Level Block Module Configuration" on page 17.

Page 17: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 17

Task 3: Top-Level Block Module ConfigurationIn this task, you will act again as the team leader and budget logic resources for each sub-module, assign I/Os, and define top-level timing objectives. To get started, you will first set up your BMD “parent” project which contains your top-level design and import all of your sub-modules into it. In reality, you are reserving area on the chip for the sub-modules prior to actually incorporating the sub-module logic into the final design.

Sub-module area resources are defined using the ispLEVER Block Modular Design Wizard (BMD Wizard) application. In the BMD Wizard, the Device Region view provides an abstraction of the device floorplan to help you interactively locate and assign specific physical resources for each sub-module. The primary outputs of the BMD Wizard are MODULE preferences stored as part of the top-level preference file and a sub-module project file (.syn) for the ispLEVER Project Navigator. MODULE preferences specify allowable regions for placement of sub-module resources.

Figure 4: Simplified LatticeECP-DSP Block diagram and Sub-modules

"Simplified LatticeECP-DSP Block diagram and Sub-modules" on page 17 shows the simplified block diagram of the ECP6 device’s hardware resources illustrating approximately where the two sub-modules will be located.

The following are examples of key design characteristics that will influence module size and location:

Position of top-level signal and logic contained in PICs.

In the tutorial design, external ports: a, b, and c occupy PICs of the left-hand side.

Page 18: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 18

Sub-module data flow. In the tutorial design, the reg_out bus between “multreg16” and “rotate” implies where they should be in proximity.

Logic resources required. In the tutorial, by reviewing the device resources required for each sub-module during "Task 2: Sub-Module Design Entry and Synthesis" on page 12, it was discovered that each sub-module requires a small number of slice resources. We know that multreg16 must be positioned so that a sysDSP block resource is available for the 9X9 MULT component inferred during logic synthesis.

Defining Sub-Modules and Budgeting Logic ResourcesIn the following procedures you will define the sub-module projects and allocate specific physical resources to for each using the BMD Wizard. You must, however, first create your top-level project.

Creating your top-level project In this step you will create the top-level project for your block modular design. This is the “parent” project that will be used to merge the other “child” project sub-module designs into one merged design.

To create a project for the top-level design:

1. Start the ispLEVER system, if it is not already running.

2. In Project Navigator, select File > New Project to open the Project Wizard dialog box.

Note that if the Create New Project dialog appears instead of the Project Wizard, select Options > Environment to change the default setting. In the Advanced tab, the Use Project Wizard to Create New Design option should be checked.

3. In the Project Wizard dialog box, select or specify the following:

Project Name: veriloghdsn Location: ...\examples\tutorial\bmd_tutor\ispLEVER Design Entry Type: EDIFSynthesis Tools: Precision (or Synplify if you used this tool in Task 1 and Task 2)

Page 19: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 19

Click Next.

4. In the Project Wizard – Select Device dialog box, select the following:

Family: LatticeECP-DSP Device: LFECP6E Speed Grade: -4Package Type: TQFP144 Operating Conditions: IndustrialClick Next.

5. In the Project Wizard – Add Source dialog box, select Add Source.

Page 20: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 20

6. In the Import File (EDIF) dialog, browse to the veriloghdsn_impl_1 directory in ..\bmd_tutor\precision\veriloghdsn\veriloghdsn_impl_1 and select veriloghdsn.edf, click Open, and then click Next.

7. In the Project Wizard – Project Information dialog box, click Finish.

The new EDIF-based project is created with an EDIF netlist of the tutorial design added to the source file list in the Sources window.

Floorplanning and project setup in the BMD Wizard In the next procedure you will first convert the EDIF netlist into a logical database (.ngd) file in Project Navigator and then use the Block Modular Wizard to budget area placement of sub-modules on the device floorplan. Figure 2, "Top-Level Process Flow" on page 5 illustrates the data flow details.

To create a logical netlist reader file (.ngo) and launch the BMD Wizard.

1. Select the veriloghdsn.edf file in the Sources window.

2. In the Processes window, double-click Compile EDIF File process for the current source list.

The Report Viewer will automatically open the automake.log file showing all the process commands and indicating it has completed successfully.

3. In the Report Viewer, click File > Exit to close the automake.log.

Page 21: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 21

4. In Project Navigator, select Tools > Block Modular Design Wizard or click the BMD Wizard icon in the toolbar. The BMD Wizard appears.

5. Look in the Device Region view on the right. In the Device Region view, an abstract, top-level representation of the ECP6 device floorplan appears. The gray shaded boxes indicate PFUs, a row of blue colored boxes indicate sysDSP blocks, and the second row of rectangular boxes indicate sysMEM EBR memory blocks.

6. Click the Zoom In button on the toolbar to increase the view of the ECP6 floorplan.

7. Place your cursor over the first shaded box top-left in the top left. The floorplan coordinate, R2C2D, appears in a yellow box to the upper right of the Device Region view.

Page 22: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 22

Experiment with this dynamic reporting by moving the cursor over the floorplan. The anchor point for module definitions must be located at a slice coordinate.

8. Select Settings > Sub Module. The Sub Module Settings dialog box appears.

9. In the Sub Module Settings dialog, click Create. The Create Module dialog box appears.

10. In the Create Module dialog, specify the following:

Module Name: multreg16Display Color: As DesiredSite: Row: 2Site: Column: 2BBox: Height: 9BBox: Width: 6

11. Click OK.

Page 23: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 23

12. If a Block Modular Design Wizard dialog box appears, select Yes. A colored region named multreg16 appears in the upper left area of the floorplan.

13. In the Sub Module Settings dialog, click Create. The Create Module dialog box appears.

14. In the Create Module dialog, specify the following:

Module Name: rotateDisplay Color: As DesiredSite: Row: 2Site: Column: 8BBox: Height: 8BBox: Width: 6

15. Click OK. If a Block Modular Design Wizard dialog box appears, select Yes. A colored region named rotate appears in the upper left area of the floorplan.

16. In the Sub Module Settings dialog, click Close.

17. Select the multreg16 source file icon in the Projects window. You can also click on the sub-module multreg16 region in the Device Region view.

The module definition and resources included within its dimensions is reported in the Message Board tab:

Module "multreg16": Site [Row 2, Column 2]; BBox [Height 9, Width 6] => 48 PFUs, 192 Slices

In the earlier tasks you examined the physical resource estimates reported by logic synthesis. The two sub-modules defined here will provide plenty of logic to hold the synthesized logic, and in the case of the

Page 24: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 24

multreg16 sub-module, the design requires a sysDSP block to accommodate the MULT9X9.

18. Click the DRC Check button in the toolbar. The BMD Wizard confirms the basic module definition rules pass and reports no errors.

19. In the popup dialog, click OK at the BMD Wizard prompt.

20. Click the Save Module Region button in the toolbar. This will save those MODULE definitions to the top-level preference (.lpf) file.

21. Select File > Exit. The BMD Wizard creates new project resources and an updated top-level preference file.

The following new ispLEVER project files and subdirectories are created:

ispLEVER project file: ...\bmd_tutor\ispLEVER\veriloghdsn\multreg16\multreg16.synispLEVER project file: ...\bmd_tutor\ispLEVER\veriloghdsn\rotate\rotate.synTop-level preference file: veriloghdsn.lpf

Page 25: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 25

22. In the Sources window in Project Navigator, select the LFECP6E-4T144I device icon. On the right, the Processes window display will show the implementation flow.

Take notice of following two processes particular to the Block Modular Design flow:

Build Toplevel DatabaseAssemble Database

23. In the Processes window under the Build Toplevel Database process, double-click Edit Preferences (ASCII). The top-level preference file appears in the Text Editor.

Note the module preferences created by the BMD Wizard in the logical preference (.lpf) file:

INDUSTRIAL ;BLOCK RESETPATHS ;BLOCK ASYNCPATHS ;MODULE "multreg16" BBOX 9 6 SITE "R2C2D" ;MODULE "rotate" BBOX 8 6 SITE "R2C8D" ;

NotePlease note that error messages may appear from NGDBUILD in the automake.log file reporting missing sub-module .ncd files. These messages can be safely ignored.

24. Select File > Exit to close the Text Editor.

25. If open, choose File > Exit to close the Report Viewer.

Importing top-level location and timing constraints In the next procedure you will import predefined location and timing preferences for the top-level design. Normally, you would use the Design Planner (Pre-Map) process in Project Navigator to establish these constraints. We have already set these constraints for you, so you only need to import the tutorial preference file into your project.

To import location and timing preferences:

1. Select Source > Import Constraint/Preference File. The Import Preference File dialog box appears.

2. Navigate to the .\bmd_tutor\ispLEVER directory, select All Files in the Files of Type dropdown, select veriloghdsn_p.prf and click Open. This

Page 26: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 3: Top-Level Block Module Configuration

FPGA Block Modular Design Tutorial 26

preference file is for the Precision RTL Synthesis flow. If you are using Synplify for RTL synthesis, select veriloghdsn_s.prf.

3. In the Import Constraints dialog box, click OK to save a backup file.

4. Select No in the dialog that prompts you to reset your project status. You have completed this task.

5. Save your project and close ispLEVER.

NoteThe Block Modular Design approach was designed for a distributed team environment. After the Top-level Block Module Configuration step, you will typically use the Project Navigator Archive Project feature to create a ZIP archive of each sub-module project and related resources in preparation to deploy them to team members. In the tutorial procedures you will implement and assemble the entire design on the same system.

Go to "Task 4: Block Module Implementation" on page 27.

Page 27: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 4: Block Module Implementation

FPGA Block Modular Design Tutorial 27

Task 4: Block Module ImplementationIn this task, you will act in the team member role and implement the two sub-modules, multreg16 and rotate, as shown in Figure 1, "Block Diagram of the Tutorial Design" on page 3. The output of this task is a physical database (NCD) file for each sub-module to be used in the final assembly stage in the top-level project.

Be aware that in a real design scenario each one of these sub-module projects can be implemented in parallel by team members. See Figure 3, "Sub-Module Process Flow" on page 6 for details of the sub-module process flow.

To implement the sub-module projects:

1. Start the ispLEVER system, if it is not already running.

2. In Project Navigator’s Sources in Project window, double click the multreg16 sub-module project icon. The multreg16 project that you created earlier by in the BMD Wizard appears in Project Navigator.

3. Select Source > Import. The Import Source dialog box appears.

4. In the file path …\bmd_tutor\precision\multreg16\multreg_impl_1 select the multreg16.edf file and click Open.

This file is for the Precision RTL Synthesis flow. If you are using Synplify for RTL synthesis, select multreg16.edf in the …bmd_tutor\synplify\multreg16\multreg16.edf file path.

5. In the Processes window under Map Design, double-click Map Report (multreg16.mrp). The design mapper runs and the Map Report (.mrp) file appears.

Take note of the sub-module resource utilization shown in Map Report file. Unlike a typical .mrp file, this sub-module report reflects design resources allocated by the team leader in "Task 3: Top-Level Block Module Configuration" on page 17. For example, the number of module SLICEs reflects the number of slices used within the sub-module border for multreg16 defined earlier in the BMD Wizard.

Page 28: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 4: Block Module Implementation

FPGA Block Modular Design Tutorial 28

From the Map Report file:

Module Design Summary---------------------

Number of SLICEs: 8 out of 192 (4%) SLICEs(logic/ROM): 8 out of 144 (6%) SLICEs(logic/ROM/RAM): 0 out of 48 (0%) As RAM: 0 As Logic/ROM: 0 Number of PFU registers: 0 Number of logic LUT4s: 8 Number of distributed RAM: 0 (0 LUT4s) Number of ripple logic: 0 (0 LUT4s) Number of shift registers: 0 Total number of LUT4s: 8 Number of block RAMs: 0 out of 0

Complete Design Summary-----------------------

Number of registers: 0 PFU registers: 0 PIO registers: 0 Number of SLICEs: 8 out of 3072 (0%) SLICEs(logic/ROM): 8 out of 2304 (0%) SLICEs(logic/ROM/RAM): 0 out of 768 (0%) As RAM: 0 As Logic/ROM: 0 Number of logic LUT4s: 8 Number of distributed RAM: 0 (0 LUT4s) Number of ripple logic: 0 (0 LUT4s) Number of shift registers: 0 Total number of LUT4s: 8 Number of external PIOs: 27 out of 97 (28%) Number of PIO IDDR/ODDR: 0 Number of PIO FIXEDDELAY: 0 Number of 3-state buffers: 0 Number of PLLs: 1 out of 2 (50%) Number of block RAMs: 0 out of 10 (0%) Number of GSRs: 1 out of 1 (100%) JTAG used : Yes Readback used : No Oscillator used : No Startup used : No

6. Click File > Exit to close the Report Viewer.

7. In the Processes window, double-click Place & Route Design. The Project Navigator implements the sub-module project with the constraints you imported.

NoteNote here that the Place & Route Design process may not appear as though it has successfully completed routing. Please check the automake log file window to ensure it has so you can proceed. Also, it is likely that this process will not complete without some warning or error messages

Page 29: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 4: Block Module Implementation

FPGA Block Modular Design Tutorial 29

causing the yellow exclamation point symbol to appear next to the process in the Processes window instead of the expected green check mark.

Please be aware that there are many false warning and error messages associated with this process flow that can be safely ignored. Please refer to the “Block Modular Design Troubleshooting” topic in the Block Modular Design Step Guide in the FPGA Flow Help for details.

8. In Project Navigator’s Sources in Project window, double click on the veriloghdsn top-level project icon. Your top-level project will open.

9. In Project Navigator’s Sources in Project window, double click on the “rotate” project icon to open it.

10. Repeat steps 2 through 7 for the rotate.syn sub-module project.

NoteThe Block Modular Design approach was designed for a distributed team environment. After the Block Module Implementation step, you will typically use the Project Navigator Archive Project feature to create a ZIP archive of each sub-module project and related resources and return it to the team leader for assembly. In the next step, you will implement and assemble the entire design on the same system.

Go to "Task 5: Block Modular Design Assembly" on page 30

Page 30: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 30

Task 5: Block Modular Design AssemblyIn this final task, you will act as the team leader and merge all sub-modules with the top-level design. Refer to Figure 2, "Top-Level Process Flow" on page 5 for details of the process flow.

Verifying Submodule Project StatusBefore you assemble the design, take notice of the Project hierarchy tree in the Sources in Project window in Project Navigator. This shows all of the sub-module projects present in the top-level design. Each sub-module project is represented with a <project_name>.syn file name next to the project icon. You can double click on these different project file icons to jump back and forth between projects.

In addition, the top-level designer can check on the readiness of the submodule designs in the in the Sources in Project window automatically. If there is a green check mark by a submodule, it has been successfully placed and routed. No check mark indicates the submodule is not ready. After this step has been completed, both submodule projects should have check marks by them in the Sources window.

To assemble the top-level design:

1. Start the ispLEVER system, if it is not already running.

2. In the Project Navigator, select File > Open Project. The Open Project dialog box appears.

3. Browse to the .\bmd_tutor\ispLEVER folder, select veriloghdsn.syn, and click Open. The “parent” block modular design project veriloghdsn appears.

4. Click on the Device icon in the Sources window to view the implementation processes in the Processes window on the right.

Page 31: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 31

5. In the Processes window, double-click the Design Planner (Post-Map) process. The Design Planner opens in the default Spreadsheet view.

6. In the Spreadsheet view, click File > Close View.

7. From the Design Planner Control window select View > Floorplan View.

The ECP6 floorplan appears. Note the colored regions in the upper left. These indicate sub-module preferences created earlier by the BMD Wizard. The Floorplanner displays the MODULE preference in a read-only mode as a colored border to represent the bounding box of the area. To directly edit a MODULE preference you must use the BMD Wizard or the ASCII Text Editor to modify the preference file.

Page 32: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 32

8. In the Floorplan View, click the Show Ratsnets button in the toolbar to enable this feature and zoom in to see the connections.

In this Floorplan view, notice that colored lines showing signal routes are now visible. These signals were imported from the sub-module projects. Cyan colored lines indicate routed signals and yellow lines indicate partially routed signals between modules. In the final place-and-route assembly phase these logical connections will be routed.

9. In the Floorplan view, click File > Close View.

10. From the Design Planner Control window, select File > Exit.

11. In the popup dialog prompting you to save the changed design select No.

12. In the Processes window in Project Navigator, double-click Place & Route Design. The PAR program connects the remaining connections for the design.

Page 33: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 33

Appendix

The appendix provides supplemental information outside of the immediate scope of the tutorial. For example, the appendix provides procedures for performing synthesis with Synplicity’s Synplify tool for Task 1 and Task 2. Make sure that you have read all of the front matter in this tutorial with a special emphasis on the section, "Before You Begin" on page 6 which instructs you to set up some directory paths referred to in these instructions.

Task 1: Top-Level Synthesis with SynplifyUse the following procedure to synthesize the design using Synplify.

To create a Synplify project, inspect the top-level design, and synthesize it to EDIF:

1. From the Start menu, select Programs > Lattice Semiconductor > Accessories > Synplify for Lattice. The Synplicity Synplify for Lattice interface appears.

2. Select File > New Project. A default project “proj.prj” appears.

3. Click the Add button. The Select Files to Add to Project dialog appears.

4. Browse to the ..\bmd_tutor\ispLEVER folder, select veriloghdsn.v and LatticeEC_66MHz_PLL.v, click Add, and then click OK.

Note that you should have already set up the ..\bmd_tutor\ispLEVER folder as described in the section, "Before You Begin" on page 6.

5. Move the veriloghdsn.vhd file to the bottom of the list by selecting then dragging it to the bottom of the Verilog folder listing.

6. Create a folder ...\examples\tutorial\bmd_tutor\synplify\veriloghdsn.

7. Select File > Save. The Save As dialog appears.

8. Browse to the ...\examples\tutorial\bmd_tutor\synplify\veriloghdsn folder, specify veriloghdsn.prj, and click Save.

9. Click the Change button near the Target. The Options for Implementation: veriloghdsn : rev_1 appears.

10. Select the following settings:

Technology: LatticeECPPart: LFECP6ESpeed Grade: -4Package: T144I

11. Click the Implementation Results tab and select the following:

Results Directory: ...\examples\tutorial\bmd_tutor\isplever\veriloghdsn Result File Name: veriloghdsn.edf

Page 34: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 34

12. Click OK.

13. Right click on veriloghdsn.v under the Verilog tab, then select Open. The top-level Verilog module appears in the Text Editor.

14. Page down to the module declarations for multreg16 and rotate.

Make note of the Synplify compiler directives added to the module declarations of multreg16 and rotate. The “syn_black_box” command directs the compiler to pass the module instance untouched into the EDIF netlist.

module multreg16(q, dataa, datab, datac, sel, clk, rst) /* synthesis syn_black_box */;

output [15:0] q; input [7:0] dataa, datab, datac; input clk /* synthesis syn_isclock = 1 */; input sel, rst; reg [15:0] q; endmodule

module rotate(q, data, clk, r_l, rst) /* synthesis syn_black_box */;

output [15:0] q; input [15:0] data; input clk /* synthesis syn_isclock = 1 */; input r_l, rst;

15. Click RUN. Synplify creates an output EDIF netlist (veriloghdsn.edf) for the implementation.

16. From the veriloghdsn window, double-click veriloghdsn.edf. The netlist opens in the text editor.

Task 2: Sub-Module Synthesis of “multreg16” with SynplifyUse the following procedure to synthesize the design using Synplify.

To create a Synplify project for the sub-module and synthesize it to EDIF:

1. If Synplify is not already running, from the Start menu, select Programs > Lattice Semiconductor > Accessories > Synplify. The Synplicity Synplify for Lattice interface appears.

2. Select File > New Project.

3. A default project “proj.prj” appears.

4. Click the Add button. The Select Files to Add to Project dialog appears.

5. Browse to the .\bmd_tutor folder, select multreg16.v, click Add, and then click OK.

6. Create a folder ...\examples\tutorial\bmd_tutor\synplify\multreg16.

7. Select File > Save. The Save As dialog appears.

8. Browse to the ...\examples\tutorial\bmd_tutor\synplify\multreg16 folder, specify multreg16.prj, and click Save.

9. Click the Change button near the Target. The Options for Implementation: multreg16 : multreg16 appears.

10. Select the Device tab and select the following:

Page 35: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 35

Technology: LatticeECPPart: LFECP6ESpeed Grade: -4Package: T144IDevice Mapping Options: Disable I/O Insertion (Enable)

11. Click the Implementation Results tab and select the following:

Results Directory: ...\examples\tutorial\bmd_tutor\Synplify\multreg16Result File Name: multreg16.edf

12. Click OK.

13. Select the multreg16.prj window.

14. Click RUN. Synplify creates an output EDIF netlist (multreg16.edf) for the implementation.

15. Double-click the log file multreg16.srr.

Note the Resource Usage Report section of the log file. This estimate of physical FPGA resources required to accommodate the sub-module is helpful information for the lead system engineer when the entire design is budgeted.

In this example the following resources will be required:

Register bits: 0 of 6144 => 0 slices required for register logic.DSP primitives: 1 => 1 sysDSP block required for the MULT9X9 inferred by the multiply operator and registered output.ORCALUT4: 8 => 4 slices (or 1 PFU) required to accommodate the multiplexer logic.

---------------------------------------Resource Usage ReportPart: lfecp6e-4

Register bits: 0 of 6144 (0%)I/O cells: 0DSP primitives: 1

Details:MULT9X9: 1ORCALUT4: 8VHI: 1VLO: 1

16. Select File > Save.

Task 3: Sub-Module Synthesis “rotate” with SynplifyUse the following procedure to synthesize the rotate sub-module design using Synplify.

1. Repeat steps 2 through 12 from the procedure above using the rotate.v source file. Use the same folder naming convention as you did for multreg16.

2. Double-click the log file rotate.srr.

The following resources will be required:

Page 36: FPGA Block Modular Design Tutorialapplication-notes.digchip.com/030/30-20992.pdf · ispLEVER Tutorials Introduction FPGA Block Modular Design Tutorial 2 Establish location and timing

ispLEVER Tutorials Task 5: Block Modular Design Assembly

FPGA Block Modular Design Tutorial 36

Register bits: 16 of 6144 => 8 slices (or 2 PFUs) required for register logic.ORCALUT4: 16 => 8 slices (or 2 PFUs) required for other logic.

---------------------------------------Resource Usage ReportPart: lfecp6e-4

Register bits: 16 of 6144 (0%)I/O cells: 0

Details:FD1S3DX: 16ORCALUT4: 16VHI: 1VLO: 1

3. Select the rotate.prj window.

4. Select File > Save.

5. Select File > Exit.

6. Go to "Task 3: Top-Level Block Module Configuration" on page 17.