Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
learn:programmable-logic:tutorials:add_fpgas_to_multisim:start [2022/09/08 20:36] – changed forum.digilentinc.com to forum.digilent.com Jeffrey | learn:programmable-logic:tutorials:add_fpgas_to_multisim:start [2023/10/18 19:23] (current) – Alyssa Holzer | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Adding Digilent FPGA Boards to Multisim ====== | ||
+ | |||
+ | <WRAP group> | ||
+ | This guide will provide a step by step tutorial of how to add a Digilent FPGA board to Multisim. To program your FPGA board through Multisim, follow this guide: [[learn: | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | ===== Prerequisites ===== | ||
+ | <WRAP group> | ||
+ | * a [[https:// | ||
+ | * [[https:// | ||
+ | * Your favorite text editor | ||
+ | * [[https:// | ||
+ | * Only needed for compiling, projects for boards not included originally in Multisim, can't be compiled by LabVIEW FPGA Compilation Tools. | ||
+ | * [[https:// | ||
+ | * Optional: Can be used to determine your board' | ||
+ | |||
+ | **Note:** //This same process can be applied to earlier FPGA boards, but instead of Vivado, [[https:// | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | ===== Creating and Editing the Configuration Files ===== | ||
+ | ==== Download the Constraints File ==== | ||
+ | <WRAP group>< | ||
+ | Multisim needs two configuration files specific to the chosen FPGA board. These two are an ***.xdc** and a ***.mspc** file. The xdc file is called a constraints file (standing for Xilinx Design Constraints) and contains the location constraints assigning physical FPGA chip pins to port names in HDL code. You can also think of this file like the name definitions for physical pins, so later, in your " | ||
+ | |||
+ | For Digilent boards, you can find the xdc file specific to your board on the board' | ||
+ | |||
+ | **Note:** //In this guide, an Arty-S7-50 will be used.// | ||
+ | |||
+ | **Note:** //If you are using an earlier board, compatible with Xilinx ISE, instead of the xdc file, you will need a // | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | |||
+ | ==== Create the Configuration File ==== | ||
+ | <WRAP group>< | ||
+ | Open the downloaded constraints file in a text editor, then create an empty file with the same base name and the ***.mspc** extension (replacing the " | ||
+ | |||
+ | First, create the header and the " | ||
+ | </ | ||
+ | <code html> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | <Pins Locked=" | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP group>< | ||
+ | The **Name** and **BoardName** fields contain the name of the board. This is how the board will appear in Multisim. | ||
+ | |||
+ | The **PartNumber** and **Device** fields contain the name of the FPGA chip. This usually can be found in the board' | ||
+ | |||
+ | The **Family** of the FPGA chip appears in the board' | ||
+ | |||
+ | The **Ucf** field contains the name of the xdc file. | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | |||
+ | <WRAP group>< | ||
+ | The trickiest property is the **Package**. You can check the Resource Center' | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | |||
+ | ==== Modify the Constraints File ==== | ||
+ | <WRAP group>< | ||
+ | In the constraints file, uncomment the lines describing the resources you want to use by deleting the "#" | ||
+ | |||
+ | **Note:** //You can uncomment every resource, as long as there aren't any conflicts: shared pins for multiple resources, like ADC and digital I/O - conflicts are mentioned in the xdc file, in comments.// | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | |||
+ | ==== Fill in the Configuration File ==== | ||
+ | <WRAP group>< | ||
+ | The final step is to add the pins to Multisim, which can be done by adding the line below to the mspc file, for every pin. | ||
+ | |||
+ | <code html>< | ||
+ | |||
+ | In the code snippet, **pin_name** marks the name of the pin (which was set in the xdc file), **pin_mode** marks the mode in which the pin will be used (it can have the values **" | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | ===== Adding the Configuration Files to Multisim ===== | ||
+ | <WRAP group>< | ||
+ | To make your configuration files available for Multisim, copy both files to the **pldconfig** directory of Multisim. The default path of the directory is: “// | ||
+ | |||
+ | Open Multisim, start a new PLD design and select the FPGA board you created the configuration files for. After naming your project, you should be able to select the pins you want to use in your project. | ||
+ | </ | ||
+ | {{ : | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | ===== Next Steps ===== | ||
+ | <WRAP group> | ||
+ | To program your FPGA board through Multisim, follow this guide: [[learn: | ||
+ | |||
+ | If you have any problems with this process, feel free to post your questions to the [[https:// | ||
+ | </ | ||