Cross-Network Cosimulation Search Help Documentation Toggle navigation Documentation Home HDL Verifier Examples Functions and Other Reference Release Notes PDF Documentation Verification with Cosimulation MATLAB Cosimulation HDL Verifier Verification with Cosimulation Simulink Cosimulation Cross-Network Cosimulation On this page Why Perform Cross-Network Cosimulation? Preparing for Cross-Network Cosimulation Performing Cross-Network Cosimulation Using MATLAB Performing Cross-Network Cosimulation Using Simulink Cross-Network Cosimulation Why Perform Cross-Network Cosimulation? You can perform cross-network cosimulation when your setup comprises one machine running MATLAB® and Simulink® software and another machine running the HDL simulator. Typically, a Windows®-platform machine runs the MATLAB and Simulink software, while a Linux® machine runs the HDL simulator. However, these procedures apply to any combination of platforms that HDL Verifier™ and the HDL simulator support. Preparing for Cross-Network Cosimulation Before you cosimulate between the HDL simulator and MATLAB or Simulink across a network, perform the following steps: Create your design and testing files. ModelSim Users Create and compile your HDL design, and create your MATLAB function (for MATLAB cosimulation) or Simulink model (for Simulink cosimulation). If you are going to cosimulate with Simulink, use the -novopt option when you compile so that the design is not optimized, and include the -novopt option when you issue the vsim command (see Performing Cross-Network Cosimulation Using Simulink). Using the -novopt option retains some unused signals from the design which are required by the Simulink model to run and display the results. Incisive Users Create, compile, and elaborate your HDL design, and create your MATLAB function (for MATLAB cosimulation), or Simulink model (for Simulink cosimulation). Copy HDL Verifier libraries to the machine with the HDL simulator Go to the system where you installed MATLAB. Then, find the folder in the MATLAB distribution where the HDL Verifier libraries reside. You can usually find the libraries in the default installed folder: matlabroot/toolbox/edalink/extensions/adaptor/platform/productlibraryname_
compiler_tag.ext where the variable shown in the following table have the values indicated. Variable Value matlabroot The location where you installed the MATLAB software; default value is "MATLAB/version" where version is the installed release (for example, R2009a). adaptor incisive or modelsim platform The operating system of the machine with the HDL simulator, for example, linux32. (For more information, see HDL Verifier Libraries.) productlibraryname The name of the library files for MATLAB and for Simulink (for example, liblfmhdlc, liblfmhdls for ModelSim® users; liblfihdlc, liblfihdls for Incisive® users).See HDL Verifier Libraries. compiler_tag The compiler used to create the library (for example, gcc32 or spro). For more information, see HDL Verifier Libraries. ext dll (dynamic link library—Windows only) or so ( shared library extension) For a list of all the HDL Verifier HDL shared libraries shipped, see Default Libraries. From the MATLAB machine, copy the HDL Verifier libraries you plan to use (which you determined in step 2) to the machine where you installed the HDL simulator. Make note of the location to which you copied the libraries; you'll need this information when you are actually establishing the connection to the HDL simulator. For purposes of this example, the sample code refers to the destination folder as HDLSERVER_LIB_LOCATION. If you now want to cosimulate with MATLAB, see Performing Cross-Network Cosimulation Using MATLAB. If you want to cosimulate with Simulink, see Performing Cross-Network Cosimulation Using Simulink. Performing Cross-Network Cosimulation Using MATLAB To perform an HDL-simulator-to-MATLAB cosimulation session across a network, follow these steps: ModelSim Users In MATLAB, get an available socket using hdldaemon: hdldaemon('socket',0) Or assign one (that you know is available): hdldaemon('socket',4449) On the machine with the HDL simulator, launch the HDL simulator from a shell with the following command: vsim -foreign "matlabclient /HDLSERVER_LIB_LOCATION/library_name;" design_name where the arguments shown in the following table have the values indicated. Argument Value library_name The name of the library you copied to the machine with the HDL simulator (in Preparing for Cross-Network Cosimulation). design_name The VHDL® or Verilog® design you want to load In the HDL simulator, schedule the test bench or component (matlabcp or matlabtb). Specify the socket port number from step 1 and the name of the host machine where hdldaemon is running. Incisive Users In MATLAB, get an available socket using hdldaemon: hdldaemon('socket',0) Or assign one: hdldaemon('socket',4449) Create a MATLAB configuration file (for loading the functions used in the HDL simulator) with the following contents: //Command file for MATLAB HDL Verifier.
//Loading of foreign Library and HDL simulator functions.
-loadcfc /HDLSERVER_LIB_LOCATION/library_name:matlabclient
//TCL wrappers for MATLAB commands
-input @proc" "nomatlabtb" "{args}" "{call" "nomatlabtb" "\$args}
-input @proc" "matlabtb" "{args}" "{call" "matlabtb" "\$args}
-input @proc" "matlabcp" "{args}" "{call" "matlabcp" "\$args}
-input @proc" "matlabtbeval" "{args}" "{call" "matlabtbeval" "\$args}
Where library_name is the name of the library you copied in Preparing for Cross-Network Cosimulation. You may name this configuration file anything you like. On the machine with the HDL simulator, launch the HDL simulator from a shell with the following command: ncsim -gui -f matlab_config.file design_name where the arguments shown in the following table have the values indicated. Argument Value matlab_config.file The name of the MATLAB configuration file (from step 3) design_name The VHDL or Verilog design you want to load In the HDL simulator, schedule the test bench or component (matlabcp or matlabtb). Specify the socket port number from step 1 and the name of the host where hdldaemon is running. Performing Cross-Network Cosimulation Using Simulink When you want to perform an HDL-simulator-to-Simulink cosimulation session across a network, follow these steps: ModelSim Users Launch the HDL simulator from a shell with the following command: vsim -foreign "simlinkserver /HDLSERVER_LIB_LOCATION/library_name;
-socket socket_num" -novopt design_name where the arguments shown in the following table have the values indicated. Argument Value library_name The name of the library you copied to the machine with the HDL simulator (in Preparing for Cross-Network Cosimulation). socket_num The socket number you have chosen for this connection design_name The VHDL or Verilog design you want to load On the machine with MATLAB and Simulink, start Simulink and open your model. Double-click on the HDL Cosimulation block to open the Function Block Parameters dialog box. Click on the Connections tab. Clear "The HDL simulator is running on this computer." HDL Verifier changes the Connection method to Socket. In the text box labeled Host name, enter the host name of the machine where the HDL simulator is located. In the text box labeled Port number or service, enter the socket number from step 1. Click OK to exit block dialog box, and save your changes. Incisive Users Launch the HDL simulator from a shell with the following command: ncsim -gui -loadvpi "/HDLSERVER_LIB_LOCATION/library_name:simlinkserver"
+socket=socket_num design_name where the arguments shown in the following table have the values indicated. Argument Value library_name The name of the library you copied to the machine with the HDL simulator (in Preparing for Cross-Network Cosimulation). socket_num The socket number you have chosen for this connection design_name The VHDL or Verilog design you want to load On the machine with MATLAB and Simulink, start Simulink and open your model. Double-click on the HDL Cosimulation block to open the Function Block Parameters dialog box. Click on the Connections tab. Clear the check box labeled The HDL simulator is running on this computer. HDL Verifier changes the Connection method to Socket. In the Host name box, enter the host name of the machine where the HDL simulator is located. In the Port number or service box, enter the socket number from step 1. Click OK to exit block dialog box, and save your changes. Next, run your simulation, add more blocks, or make other desired changes. For instructions on using Simulink and the HDL simulator for cosimulation, see Simulink as a Test Bench or Component Simulation with Simulink. Was this topic helpful? HDL Verifier Documentation Examples Functions and Other Reference Release Notes PDF Documentation Other Documentation Simulink MATLAB HDL Coder Documentation Home Support MATLAB Answers Installation Help Bug Reports Product Requirements Software Downloads © 1994-2016 The MathWorks, Inc. Terms of Use Patents Trademarks Acknowledgments