FPGA Block Modular Design Tutorial

Size: px
Start display at page:

Download "FPGA Block Modular Design Tutorial"

Transcription

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 Tutorial 1

2 Introduction 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 Tutorial The time to complete this tutorial is about 45 minutes. System Requirements This 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 Design The 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. FPGA Block Modular Design Tutorial 2

3 Introduction Figure 1: Block Diagram of the Tutorial Design FPGA Block Modular Design Tutorial 3

4 Introduction The Block Modular Design Methodology This 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 toplevel 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. FPGA Block Modular Design Tutorial 4

5 Introduction The Tutorial Process Flow This 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 FPGA Block Modular Design Tutorial 5

6 Introduction Figure 3: Sub-Module Process Flow Before You Begin Before 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. FPGA Block Modular Design Tutorial 6

7 Task 1: Top-Level Module Design Entry and Synthesis Task 1: Top-Level Module Design Entry and Synthesis In 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 Synthesis Use 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: veriloghdsn Project Folder:...\examples\tutorial\bmd_tutor\precision\veriloghdsn FPGA Block Modular Design Tutorial 7

8 Task 1: Top-Level Module Design Entry and Synthesis 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, controlclick 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: FPGA Block Modular Design Tutorial 8

9 Task 1: Top-Level Module Design Entry and Synthesis Technology: LatticeECP Device: LFECP6E Speed Grade: -4 Package: TQFP144 Design 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 TQFP 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. FPGA Block Modular Design Tutorial 9

10 Task 1: Top-Level Module Design Entry and Synthesis 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 FPGA Block Modular Design Tutorial 10

11 Task 1: Top-Level Module Design Entry and Synthesis 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. FPGA Block Modular Design Tutorial 11

12 Task 2: Sub-Module Design Entry and Synthesis Task 2: Sub-Module Design Entry and Synthesis In 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 Synthesis Use 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. FPGA Block Modular Design Tutorial 12

13 Task 2: Sub-Module Design Entry and Synthesis 4. Specify the following for the new project: Project Name: multreg16 Project 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: FPGA Block Modular Design Tutorial 13

14 Task 2: Sub-Module Design Entry and Synthesis Technology: LatticeECP-DSP Part: LFECP6E Speed: -4 Speed Grade: TQFP 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: multreg16 Output Formats: EDIF 15. Click OK. 16. Click File > Save Project to save the current project. FPGA Block Modular Design Tutorial 14

15 Task 2: Sub-Module Design Entry and Synthesis 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 % LUTs % PFUs % Flipflops % DSP 9-Bit Elements % Block RAMs % 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 Synthesis Use 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 multreg 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 *********************************************** FPGA Block Modular Design Tutorial 15

16 Task 2: Sub-Module Design Entry and Synthesis Resource Used Avail Utilization IOs % LUTs % PFUs % Flipflops % DSP 9-Bit Elements % Block RAMs % 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. FPGA Block Modular Design Tutorial 16

17 Task 3: Top-Level Block Module Configuration Task 3: Top-Level Block Module Configuration In 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 submodule. 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 lefthand side. FPGA Block Modular Design Tutorial 17

18 Task 3: Top-Level Block Module Configuration 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 submodule 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 Resources In 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: EDIF Synthesis Tools: Precision (or Synplify if you used this tool in Task 1 and Task 2) FPGA Block Modular Design Tutorial 18

19 Task 3: Top-Level Block Module Configuration Click Next. 4. In the Project Wizard Select Device dialog box, select the following: Family: LatticeECP-DSP Device: LFECP6E Speed Grade: -4 Package Type: TQFP144 Operating Conditions: Industrial Click Next. 5. In the Project Wizard Add Source dialog box, select Add Source. FPGA Block Modular Design Tutorial 19

20 Task 3: Top-Level Block Module Configuration 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. FPGA Block Modular Design Tutorial 20

21 Task 3: Top-Level Block Module Configuration 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. FPGA Block Modular Design Tutorial 21

22 Task 3: Top-Level Block Module Configuration 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: multreg16 Display Color: As Desired Site: Row: 2 Site: Column: 2 BBox: Height: 9 BBox: Width: Click OK. FPGA Block Modular Design Tutorial 22

23 Task 3: Top-Level Block Module Configuration 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: rotate Display Color: As Desired Site: Row: 2 Site: Column: 8 BBox: Height: 8 BBox: Width: 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 FPGA Block Modular Design Tutorial 23

24 Task 3: Top-Level Block Module Configuration multreg16 sub-module, the design requires a sysdsp block to accommodate the MULT9X 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.syn isplever project file:...\bmd_tutor\isplever\veriloghdsn\rotate\rotate.syn Top-level preference file: veriloghdsn.lpf FPGA Block Modular Design Tutorial 24

25 Task 3: Top-Level Block Module Configuration 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 Database Assemble 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" ; Note Please 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 FPGA Block Modular Design Tutorial 25

26 Task 3: Top-Level Block Module Configuration 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. Note The 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. FPGA Block Modular Design Tutorial 26

27 Task 4: Block Module Implementation Task 4: Block Module Implementation In this task, you will act in the team member role and implement the two submodules, 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. FPGA Block Modular Design Tutorial 27

28 Task 4: Block Module Implementation 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. Note Note 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 FPGA Block Modular Design Tutorial 28

29 Task 4: Block Module Implementation 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. Note The 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 FPGA Block Modular Design Tutorial 29

30 Task 5: Block Modular Design Assembly Task 5: Block Modular Design Assembly In 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 Status Before 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 submodule 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. FPGA Block Modular Design Tutorial 30

31 Task 5: Block Modular Design Assembly 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. FPGA Block Modular Design Tutorial 31

32 Task 5: Block Modular Design Assembly 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. FPGA Block Modular Design Tutorial 32

33 Task 5: Block Modular Design Assembly 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 Synplify Use 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 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: LatticeECP Part: LFECP6E Speed Grade: -4 Package: T144I 11. Click the Implementation Results tab and select the following: Results Directory:...\examples\tutorial\bmd_tutor\isplever\veriloghdsn Result File Name: veriloghdsn.edf FPGA Block Modular Design Tutorial 33

34 Task 5: Block Modular Design Assembly 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 Synplify Use 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\multreg 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: FPGA Block Modular Design Tutorial 34

35 Task 5: Block Modular Design Assembly Technology: LatticeECP Part: LFECP6E Speed Grade: -4 Package: T144I Device Mapping Options: Disable I/O Insertion (Enable) 11. Click the Implementation Results tab and select the following: Results Directory:...\examples\tutorial\bmd_tutor\Synplify\multreg16 Result 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 Report Part: lfecp6e-4 Register bits: 0 of 6144 (0%) I/O cells: 0 DSP primitives: 1 Details: MULT9X9: 1 ORCALUT4: 8 VHI: 1 VLO: Select File > Save. Task 3: Sub-Module Synthesis rotate with Synplify Use 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 multreg Double-click the log file rotate.srr. The following resources will be required: FPGA Block Modular Design Tutorial 35

36 Task 5: Block Modular Design Assembly 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 Report Part: lfecp6e-4 Register bits: 16 of 6144 (0%) I/O cells: 0 Details: FD1S3DX: 16 ORCALUT4: 16 VHI: 1 VLO: 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. FPGA Block Modular Design Tutorial 36

FPGA Block Modular Design Tutorial

FPGA Block Modular Design Tutorial 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

More information

Generating Parameterized Modules and IP Cores

Generating Parameterized Modules and IP Cores Generating Parameterized Modules and IP Cores Table of Contents...3 Module 1: Verilog HDL Design with LPMs Using the Module/IP Manager...4 Task 1: Create a New Project...5 Task 2: Target a Device...7 Task

More information

Programming and Logic Analysis Tutorial

Programming and Logic Analysis Tutorial Programming and Logic Analysis Tutorial Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR 97124 (503) 268-8000 May 2007 Copyright Copyright 2007 Lattice Semiconductor Corporation. This

More information

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial 1 Table of Contents Design Flow in Libero TM IDE v2.3 Step 1 - Design Creation 3 Step 2 - Design Verification

More information

PlanAhead Software Tutorial

PlanAhead Software Tutorial PlanAhead Software Tutorial Team Design NOTICE OF DISCLAIMER: The information disclosed to you hereunder (the Information ) is provided AS-IS with no warranty of any kind, express or implied. Xilinx does

More information

Verilog Design Entry, Synthesis, and Behavioral Simulation

Verilog Design Entry, Synthesis, and Behavioral Simulation ------------------------------------------------------------- PURPOSE - This lab will present a brief overview of a typical design flow and then will start to walk you through some typical tasks and familiarize

More information

FPGA Design with isplever Tutorial

FPGA Design with isplever Tutorial FPGA Design with isplever Tutorial Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR 97124 (503) 268-8000 April 2008 Copyright Copyright 2008 Lattice Semiconductor Corporation. This document

More information

Using the ispxpga Floorplanner

Using the ispxpga Floorplanner Using the ispxpga Floorplanner Table of Contents USING THE ISPXPGA FLOORPLANNER...3 Task 1: Open the Design...4 Task 2: Open a Floorplanner Design File...5 Task 3: Tour the Graphical User Interface - The

More information

PlanAhead Software Tutorial

PlanAhead Software Tutorial PlanAhead Software Tutorial RTL Design and IP Generation The information disclosed to you hereunder (the Information ) is provided AS-IS with no warranty of any kind, express or implied. Xilinx does not

More information

PlanAhead Release Notes

PlanAhead Release Notes PlanAhead Release Notes What s New in the 11.1 Release UG656(v 11.1.0) April 27, 2009 PlanAhead 11.1 Release Notes Page 1 Table of Contents What s New in the PlanAhead 11.1 Release... 4 Device Support...

More information

Using Synplify Pro, ISE and ModelSim

Using Synplify Pro, ISE and ModelSim Using Synplify Pro, ISE and ModelSim VLSI Systems on Chip ET4 351 Rene van Leuken Huib Lincklaen Arriëns Rev. 1.2 The EDA programs that will be used are: For RTL synthesis: Synplicity Synplify Pro For

More information

Lattice Semiconductor Design Floorplanning

Lattice Semiconductor Design Floorplanning September 2012 Introduction Technical Note TN1010 Lattice Semiconductor s isplever software, together with Lattice Semiconductor s catalog of programmable devices, provides options to help meet design

More information

isplever Reed-Solomon Encoder User s Guide October 2005 ipug05_03.0

isplever Reed-Solomon Encoder User s Guide October 2005 ipug05_03.0 isplever TM CORE Reed-Solomon Encoder User s Guide October 2005 ipug05_03.0 Introduction Lattice s Reed-Solomon Encoder core provides an ideal solution that meets the needs of today s Reed-Solomon applications.

More information

AN 839: Design Block Reuse Tutorial

AN 839: Design Block Reuse Tutorial AN 839: Design Block Reuse Tutorial for Intel Arria 10 FPGA Development Board Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents

More information

Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web:

Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web: Circuit Design and Simulation with VHDL 2nd edition Volnei A. Pedroni MIT Press, 2010 Book web: www.vhdl.us Appendix C Xilinx ISE Tutorial (ISE 11.1) This tutorial is based on ISE 11.1 WebPack (free at

More information

Quick Front-to-Back Overview Tutorial

Quick Front-to-Back Overview Tutorial Quick Front-to-Back Overview Tutorial PlanAhead Design Tool This tutorial document was last validated using the following software version: ISE Design Suite 14.5 If using a later software version, there

More information

13. LogicLock Design Methodology

13. LogicLock Design Methodology 13. LogicLock Design Methodology QII52009-7.0.0 Introduction f Available exclusively in the Altera Quartus II software, the LogicLock feature enables you to design, optimize, and lock down your design

More information

Intel Quartus Prime Pro Edition User Guide

Intel Quartus Prime Pro Edition User Guide Intel Quartus Prime Pro Edition User Guide Block-Based Design Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. Block-Based Design Flows...

More information

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018 University of California, Davis Department of Electrical and Computer Engineering EEC180B DIGITAL SYSTEMS Spring Quarter 2018 LAB 2: FPGA Synthesis and Combinational Logic Design Objective: This lab covers

More information

2D Edge Detector IP Core User s Guide

2D Edge Detector IP Core User s Guide 2D Edge Detector IP Core User s Guide February 2011 IPUG86_01.0 Table of Contents Chapter 1. Introduction... 3 Quick Facts... 3 Features... 3 Chapter 2. Functional Description... 4 Key Concepts... 4 Block

More information

Block-Based Design User Guide

Block-Based Design User Guide Block-Based Design User Guide Intel Quartus Prime Pro Edition Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Block-Based

More information

RTL Design and IP Generation Tutorial. PlanAhead Design Tool

RTL Design and IP Generation Tutorial. PlanAhead Design Tool RTL Design and IP Generation Tutorial PlanAhead Design Tool Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products.

More information

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification

EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification EE 5327 VLSI Design Laboratory Lab 8 (1 week) Formal Verification PURPOSE: To use Formality and its formal techniques to prove or disprove the functional equivalence of two designs. Formality can be used

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

Item Number Change for Sage Accpac ERP

Item Number Change for Sage Accpac ERP SAGE ACCPAC Sage Accpac Options Item Number Change for Sage Accpac ERP User Guide 2008 Sage Software, Inc. All rights reserved. Sage Software, Sage Software logos, and all Sage Accpac product and service

More information

IP Module Evaluation Tutorial

IP Module Evaluation Tutorial isplevercore TM IP Module Evaluation Tutorial Table Of Contents Getting Started... 2 Other Tutorial Versions and Formats... 2 Supported Technologies... 2 Tutorial Location... 2 Directory Path Description...

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip 1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based

More information

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly!

and 32 bit for 32 bit. If you don t pay attention to this, there will be unexpected behavior in the ISE software and thing may not work properly! This tutorial will show you how to: Part I: Set up a new project in ISE 14.7 Part II: Implement a function using Schematics Part III: Simulate the schematic circuit using ISim Part IV: Constraint, Synthesize,

More information

SmartTime for Libero SoC v11.5

SmartTime for Libero SoC v11.5 SmartTime for Libero SoC v11.5 User s Guide NOTE: PDF files are intended to be viewed on the printed page; links and cross-references in this PDF file may point to external files and generate an error

More information

Using Project Navigator

Using Project Navigator UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Overview Xilinx Project Navigator is an Integrated Development Environment for digital

More information

Using the LogicLock Methodology in the

Using the LogicLock Methodology in the Using the LogicLock Methodology in the Quartus II Design Software June 2003, ver. 3.3 Application Note 161 Introduction TM Available exclusively in the Altera Quartus II software, the LogicLock TM block-based

More information

DESIGN STRATEGIES & TOOLS UTILIZED

DESIGN STRATEGIES & TOOLS UTILIZED CHAPTER 7 DESIGN STRATEGIES & TOOLS UTILIZED 7-1. Field Programmable Gate Array The internal architecture of an FPGA consist of several uncommitted logic blocks in which the design is to be encoded. The

More information

Xilinx Vivado/SDK Tutorial

Xilinx Vivado/SDK Tutorial Xilinx Vivado/SDK Tutorial (Laboratory Session 1, EDAN15) Flavius.Gruian@cs.lth.se March 21, 2017 This tutorial shows you how to create and run a simple MicroBlaze-based system on a Digilent Nexys-4 prototyping

More information

CS152 FPGA CAD Tool Flow University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences

CS152 FPGA CAD Tool Flow University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences CS152 FPGA CAD Tool Flow University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences Compiled: 4/3/2003 for CS152 Spring 03, Prof. John Kubiatowicz

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

Power Estimation and Management for LatticeECP/EC and LatticeXP Devices

Power Estimation and Management for LatticeECP/EC and LatticeXP Devices for LatticeECP/EC and LatticeXP Devices September 2012 Introduction Technical Note TN1052 One of the requirements when using FPGA devices is the ability to calculate power dissipation for a particular

More information

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015 UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180A DIGITAL SYSTEMS I Winter 2015 LAB 1: Introduction to Quartus II Schematic Capture and ModelSim Simulation This

More information

Don t expect to be able to write and debug your code during the lab session.

Don t expect to be able to write and debug your code during the lab session. EECS150 Spring 2002 Lab 4 Verilog Simulation Mapping UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Lab 4 Verilog Simulation Mapping

More information

Implementation of a Fail-Safe Design in the Spartan-6 Family Using ISE Design Suite XAPP1104 (v1.0.1) June 19, 2013

Implementation of a Fail-Safe Design in the Spartan-6 Family Using ISE Design Suite XAPP1104 (v1.0.1) June 19, 2013 Implementation of a Fail-Safe Design in the Spartan-6 Family Using ISE Design Suite 12.4 Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection

More information

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Best Practices for Incremental Compilation Partitions and Floorplan Assignments Best Practices for Incremental Compilation Partitions and Floorplan Assignments December 2007, ver. 1.0 Application Note 470 Introduction The Quartus II incremental compilation feature allows you to partition

More information

FPGA Design Tutorial

FPGA Design Tutorial ECE 554 Digital Engineering Laboratory FPGA Design Tutorial Version 5.0 Fall 2006 Updated Tutorial: Jake Adriaens Original Tutorial: Matt King, Surin Kittitornkun and Charles R. Kime Table of Contents

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide Using the Vivado IDE Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To

More information

Tutorial for Altera DE1 and Quartus II

Tutorial for Altera DE1 and Quartus II Tutorial for Altera DE1 and Quartus II Qin-Zhong Ye December, 2013 This tutorial teaches you the basic steps to use Quartus II version 13.0 to program Altera s FPGA, Cyclone II EP2C20 on the Development

More information

AN 567: Quartus II Design Separation Flow

AN 567: Quartus II Design Separation Flow AN 567: Quartus II Design Separation Flow June 2009 AN-567-1.0 Introduction This application note assumes familiarity with the Quartus II incremental compilation flow and floorplanning with the LogicLock

More information

Analyzing Designs with Quartus II Netlist Viewers

Analyzing Designs with Quartus II Netlist Viewers 19 QII51013 Subscribe This chapter describes how you can use the Quartus II Netlist Viewers to analyze and debug your designs. As FPGA designs grow in size and complexity, the ability to analyze, debug,

More information

Using the LogicLock Methodology in the

Using the LogicLock Methodology in the Using the LogicLock Methodology in the Quartus II Design Software December 2002, ver. 3.2 Application Note 161 Introduction TM Available exclusively in the Altera Quartus II software, the LogicLock TM

More information

Lattice Diamond User Guide

Lattice Diamond User Guide Lattice Diamond User Guide Copyright Copyright 2012 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to any electronic

More information

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Embedded Processor Hardware Design October 6 t h 2017. VIVADO TUTORIAL 1 Table of Contents Requirements... 3 Part 1:

More information

Altera Technical Training Quartus II Software Design

Altera Technical Training Quartus II Software Design Altera Technical Training Quartus II Software Design Exercises Quartus II Software Design Series: Foundation 2 Quartus II Software Design Series: Foundation Exercises Exercise 1 3 Exercises Quartus II

More information

Vivado Design Suite Tutorial. Design Flows Overview

Vivado Design Suite Tutorial. Design Flows Overview Vivado Design Suite Tutorial Design Flows Overview Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products. To

More information

Tutorial 2 Implementing Circuits in Altera Devices

Tutorial 2 Implementing Circuits in Altera Devices Appendix C Tutorial 2 Implementing Circuits in Altera Devices In this tutorial we describe how to use the physical design tools in Quartus II. In addition to the modules used in Tutorial 1, the following

More information

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall

AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall AccelDSP tutorial 2 (Matlab.m to HDL for Xilinx) Ronak Gandhi Syracuse University Fall 2009-10 AccelDSP Getting Started Tutorial Introduction This tutorial exercise will guide you through the process of

More information

Using Verplex Conformal LEC for Formal Verification of Design Functionality

Using Verplex Conformal LEC for Formal Verification of Design Functionality Using Verplex Conformal LEC for Formal Verification of Design Functionality January 2003, ver. 1.0 Application Note 296 Introduction The Altera Quartus II software, version 2.2, easily interfaces with

More information

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim

CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim CPEN 230L: Introduction to Digital Logic Laboratory Lab #6: Verilog and ModelSim Purpose Define logic expressions in Verilog using register transfer level (RTL) and structural models. Use Quartus II to

More information

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14

Contents. Appendix B HDL Entry Tutorial 2 Page 1 of 14 Appendix B HDL Entry Tutorial 2 Page 1 of 14 Contents Appendix B HDL Entry Tutorial 2...2 B.1 Getting Started...2 B.1.1 Preparing a Folder for the Project...2 B.1.2 Starting Quartus II...2 B.1.3 Creating

More information

Part II: Laboratory Exercise

Part II: Laboratory Exercise SYDIC-Training Course on Digital Systems Testing and Design for Testability Part II: Laboratory Exercise Gert Jervan (gerje@ida.liu.se) Embedded Systems Laboratory (ESLAB) Linköping University March, 2003

More information

Xilinx Tutorial Basic Walk-through

Xilinx Tutorial Basic Walk-through Introduction to Digital Logic Design with FPGA s: Digital logic circuits form the basis of all digital electronic devices. FPGAs (Field Programmable Gate Array) are large programmable digital electronic

More information

Lab 3 Verilog Simulation Mapping

Lab 3 Verilog Simulation Mapping University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences 1. Motivation Lab 3 Verilog Simulation Mapping In this lab you will learn how to use

More information

2 TUTORIAL. Overview. VisualDSP Getting Started Guide 2-1 for SHARC DSPs

2 TUTORIAL. Overview. VisualDSP Getting Started Guide 2-1 for SHARC DSPs 2 TUTORIAL This chapter contains the following topics. Overview on page 2-1 Exercise One: Building and Running a C Program on page 2-3 Exercise Two: Calling an Assembly Routine and Creating an LDF on page

More information

Quartus II Version 14.0 Tutorial Created September 10, 2014; Last Updated January 9, 2017

Quartus II Version 14.0 Tutorial Created September 10, 2014; Last Updated January 9, 2017 Quartus II Version 14.0 Tutorial Created September 10, 2014; Last Updated January 9, 2017 This tutorial will walk you through the process of developing circuit designs within Quartus II, simulating with

More information

PlanAhead Software Tutorial

PlanAhead Software Tutorial RTL Design and IP Generation with CORE Generator UG 675 (v 12.1) May 3, 2010 Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design ) to you for use in the development of

More information

Vivado Design Suite User Guide

Vivado Design Suite User Guide Vivado Design Suite User Guide System-Level Design Entry Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products.

More information

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow

Introduction. Design Hierarchy. FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow FPGA Compiler II BLIS & the Quartus II LogicLock Design Flow February 2002, ver. 2.0 Application Note 171 Introduction To maximize the benefits of the LogicLock TM block-based design methodology in the

More information

Adding Custom IP to the System

Adding Custom IP to the System Lab Workbook Introduction This lab guides you through the process of creating and adding a custom peripheral to a processor system by using the Vivado IP Packager. You will create an AXI4Lite interface

More information

Table 17-3: Symbols in the Schematic View

Table 17-3: Symbols in the Schematic View 17-12 Schematic s With multiple tabbed view, schematics can be displayed in different tabs. Selection is independent between tabbed views, but selection in the tab in focus is synchronous with the Netlist

More information

RTL and Technology Schematic Viewers Tutorial. UG685 (v13.1) March 1, 2011

RTL and Technology Schematic Viewers Tutorial. UG685 (v13.1) March 1, 2011 RTL and Technology Schematic Viewers Tutorial The information disclosed to you hereunder (the Information ) is provided AS-IS with no warranty of any kind, express or implied. Xilinx does not assume any

More information

Vivado Design Suite Tutorial. Design Analysis and Closure Techniques

Vivado Design Suite Tutorial. Design Analysis and Closure Techniques Vivado Design Suite Tutorial Design Analysis and Closure Techniques Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx

More information

Vivado Tutorial. Introduction. Objectives. Procedure. Lab Workbook. Vivado Tutorial

Vivado Tutorial. Introduction. Objectives. Procedure. Lab Workbook. Vivado Tutorial Lab Workbook Introduction This tutorial guides you through the design flow using Xilinx Vivado software to create a simple digital circuit using Verilog HDL. A typical design flow consists of creating

More information

Quartus II Incremental Compilation for Hierarchical

Quartus II Incremental Compilation for Hierarchical Quartus II Incremental Compilation for Hierarchical and Team-Based Design 3 QII51015 Subscribe About Quartus II Incremental Compilation This manual provides information and design scenarios to help you

More information

AN 826: Hierarchical Partial Reconfiguration Tutorial for Stratix 10 GX FPGA Development Board

AN 826: Hierarchical Partial Reconfiguration Tutorial for Stratix 10 GX FPGA Development Board AN 826: Hierarchical Partial Reconfiguration Tutorial for Stratix 10 GX FPGA Development Board Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF

More information

PlanAhead Software Tutorial

PlanAhead Software Tutorial RTL Design and IP Generation with CORE Generator UG 675 (v 12.3) September 21, 2010 Xilinx is disclosing this Document and Intellectual Property (hereinafter the Design ) to you for use in the development

More information

UTAS CMS. Easy Edit Suite Workshop V3 UNIVERSITY OF TASMANIA. Web Services Service Delivery & Support

UTAS CMS. Easy Edit Suite Workshop V3 UNIVERSITY OF TASMANIA. Web Services Service Delivery & Support Web Services Service Delivery & Support UNIVERSITY OF TASMANIA UTAS CMS Easy Edit Suite Workshop V3 Web Service, Service Delivery & Support UWCMS Easy Edit Suite Workshop: v3 Contents What is Easy Edit

More information

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board

AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Development Board AN 825: Partially Reconfiguring a Design on Intel Stratix 10 GX FPGA Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents Partially Reconfiguring

More information

Design Analysis and Floorplanning Tutorial. PlanAhead Design Tool

Design Analysis and Floorplanning Tutorial. PlanAhead Design Tool Design Analysis and Floorplanning Tutorial PlanAhead Design Tool Xilinx is disclosing this user guide, manual, release note, and/or specification (the Documentation ) to you solely for use in the development

More information

CECS LAB 1 Introduction to Xilinx EDA Tools

CECS LAB 1 Introduction to Xilinx EDA Tools NAME: DUE DATE: STUDENT ID: POSSIBLE POINTS: 10 COURSE DATE & TIME: OBJECTIVE: To familiarize ourselves with the Xilinx Electronic Design Aid (EDA) Tools. We will simulate a simple 4-to-1 Multiplexor using

More information

Quartus II Tutorial. September 10, 2014 Quartus II Version 14.0

Quartus II Tutorial. September 10, 2014 Quartus II Version 14.0 Quartus II Tutorial September 10, 2014 Quartus II Version 14.0 This tutorial will walk you through the process of developing circuit designs within Quartus II, simulating with Modelsim, and downloading

More information

Median Filter IP Core User s Guide

Median Filter IP Core User s Guide Median Filter IP Core User s Guide December 2010 IPUG87_01.0 Table of Contents Chapter 1. Introduction... 4 Quick Facts... 4 Features... 4 Chapter 2. Functional Description... 6 Key Concepts... 6 Block

More information

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston

Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Lab 1 Modular Design and Testbench Simulation ENGIN 341 Advanced Digital Design University of Massachusetts Boston Introduction This lab introduces the concept of modular design by guiding you through

More information

Intel Quartus Prime Pro Edition User Guide

Intel Quartus Prime Pro Edition User Guide Intel Quartus Prime Pro Edition User Guide Design Compilation Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. Design Compilation...

More information

Lattice Diamond User Guide

Lattice Diamond User Guide Lattice Diamond User Guide August 2013 Copyright Copyright 2013 Lattice Semiconductor Corporation. This document may not, in whole or part, be copied, photocopied, reproduced, translated, or reduced to

More information

Vivado Design Suite Tutorial. Design Analysis and Closure Techniques

Vivado Design Suite Tutorial. Design Analysis and Closure Techniques Vivado Design Suite Tutorial Design Analysis and Closure Techniques Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx

More information

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

1 Design Process HOME CONTENTS INDEX. For further assistance,  or call your local support center 1 Design Process VHDL Compiler, a member of the Synopsys HDL Compiler family, translates and optimizes a VHDL description to an internal gate-level equivalent. This representation is then compiled with

More information

Adding the ILA Core to an Existing Design Lab

Adding the ILA Core to an Existing Design Lab Adding the ILA Core to an Existing Introduction This lab consists of adding a ChipScope Pro software ILA core with the Core Inserter tool and debugging a nonfunctioning design. The files for this lab are

More information

Using Sitecore 5.3.1

Using Sitecore 5.3.1 Using Sitecore 5.3.1 An End-User s Guide to Using and Administrating Sitecore Author: Sitecore Corporation Date: December 12, 2007 Release: Rev. 1.0 Language: English Sitecore is a registered trademark.

More information

PLD Design Flow: GAL, Verilog

PLD Design Flow: GAL, Verilog Summary PLD Design Flow: GAL, Verilog This document describes the step-by-step process to create, simulate, and implement a digital design on a GAL PLD using the Cadence/Orcad design suite for simulation

More information

Chapter 2 Getting Hands on Altera Quartus II Software

Chapter 2 Getting Hands on Altera Quartus II Software Chapter 2 Getting Hands on Altera Quartus II Software Contents 2.1 Installation of Software... 20 2.2 Setting Up of License... 21 2.3 Creation of First Embedded System Project... 22 2.4 Project Building

More information

Partial Reconfiguration Tutorial. PlanAhead Design Tool

Partial Reconfiguration Tutorial. PlanAhead Design Tool Partial Reconfiguration Tutorial PlanAhead Design Tool This tutorial document was last validated using the following software version: ISE Design Suite 14.5 If using a later software version, there may

More information

Banks, Jasmine Elizabeth (2011) The Spartan 3E Tutorial 1 : Introduction to FPGA Programming, Version 1.0. [Tutorial Programme]

Banks, Jasmine Elizabeth (2011) The Spartan 3E Tutorial 1 : Introduction to FPGA Programming, Version 1.0. [Tutorial Programme] QUT Digital Repository: http://eprints.qut.edu.au/ This is the author version published as: This is the accepted version of this article. To be published as : This is the author s version published as:

More information

Lab 3: Xilinx PicoBlaze Flow Lab Targeting Spartan-3E Starter Kit

Lab 3: Xilinx PicoBlaze Flow Lab Targeting Spartan-3E Starter Kit Lab 3: Xilinx PicoBlaze Flow Lab Targeting Spartan-3E Starter Kit Xilinx PicoBlaze Flow Demo Lab www.xilinx.com 1-1 Create a New Project Step 1 Create a new project targeting the Spartan-3E device that

More information

Gamma Corrector IP Core User Guide

Gamma Corrector IP Core User Guide Gamma Corrector IP Core User Guide March 2015 IPUG64_1.3 Table of Contents Chapter 1. Introduction... 4 Quick Facts... 4 Features... 5 Chapter 2. Functional Description... 6 Block Diagram... 6 Gamma Correction

More information

SCHOOL COLLABORATION SITES Reference Guide

SCHOOL COLLABORATION SITES Reference Guide SCHOOL COLLABORATION SITES Reference Guide Information Technology Services SCHOOL COLLABORATION SITES Reference Guide Information Technology Services 13135 SW 26 ST Miami, FL 33176 Phone 305.995.3770 Fax

More information

ChipScope Demo Instructions

ChipScope Demo Instructions UNIVERSITY OF CALIFORNIA AT BERKELEY COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Overview ChipScope is an embedded, software based logic analyzer. By inserting an intergrated

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip 1 Lab Objectives EE8205: Embedded Computer Systems NIOS-II SoPC: PART-I This lab has been constructed to introduce the development of dedicated

More information

UNIVERSITI MALAYSIA PERLIS

UNIVERSITI MALAYSIA PERLIS UNIVERSITI MALAYSIA PERLIS SCHOOL OF COMPUTER & COMMUNICATIONS ENGINEERING EKT 124 LABORATORY MODULE INTRODUCTION TO QUARTUS II DESIGN SOFTWARE : INTRODUCTION TO QUARTUS II DESIGN SOFTWARE OBJECTIVES To

More information

ORCA Series 4 Quad-Port Embedded Block RAM

ORCA Series 4 Quad-Port Embedded Block RAM August 2002 Introduction ORCA Series 4 Quad-Port Embedded Block RAM Technical Note TN1016 The ORCA Series 4 FPGA platform provides embedded block RAM (EBR) macrocells to compliment it s distributed PFU

More information

Digital Circuit Design Using Xilinx ISE Tools

Digital Circuit Design Using Xilinx ISE Tools Digital Circuit Design Using Xilinx ISE Tools Poras T. Balsara and Prashant Vallur Table of Contents 1. Introduction 2. Programmable logic devices: FPGA and CPLD 3. Creating a new project in Xilinx Foundation

More information

Lab 1: FPGA Physical Layout

Lab 1: FPGA Physical Layout Lab 1: FPGA Physical Layout University of California, Berkeley Department of Electrical Engineering and Computer Sciences EECS150 Components and Design Techniques for Digital Systems John Wawrzynek, James

More information

ECP5 Product Families Update - Errata to Soft Error Detection (SED) Function

ECP5 Product Families Update - Errata to Soft Error Detection (SED) Function Product Bulletin PB1384 April 2017 Rev 1.0 ECP5 Product Families Update - Errata to Soft Error Detection (SED) Function Product Affected: All ECP5 TM product families (ECP5, ECP5-5G, ECP5 Automotive) are

More information

UG0787 User Guide PolarFire FPGA Block Flow

UG0787 User Guide PolarFire FPGA Block Flow UG0787 User Guide PolarFire FPGA Block Flow NOTE: PDF files are intended to be viewed on the printed page; links and cross-references in this PDF file may point to external files and generate an error

More information

AN 818: Static Update Partial Reconfiguration Tutorial

AN 818: Static Update Partial Reconfiguration Tutorial AN 818: Static Update Partial Reconfiguration Tutorial for Intel Stratix 10 GX Updated for Intel Quartus Prime Design Suite: 18.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. Static

More information