1 / 10

Shortening Verification Processes by Using DPF with MATLAB Runtime Package

Shortening Verification Processes by Using DPF with MATLAB Runtime Package. May 13, 2019. Presenter : Shmuel Amrusi CEO Simplus Verification. MATLAB: powerful tool for components with multi mathematical calculation, such as wireless, modem and others. Problems (1):

germainem
Télécharger la présentation

Shortening Verification Processes by Using DPF with MATLAB Runtime Package

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Shortening Verification Processes byUsing DPF with MATLAB Runtime Package May 13, 2019 Presenter: Shmuel Amrusi CEO Simplus Verification

  2. MATLAB: powerful tool for components with multi mathematical calculation, such as wireless, modem and others Problems (1): MATLAB code is not accessible to the verification environment The verification environment duplicates the effort to build the Golden Model (GM) in System-Verilog/SPECMAN/etc. MATLAB test vectors for reading/comparing/driving the verification environment result in hundreds mega bytes space Parsers are required for each data type The effort to achieve same GM is expensive and there is no reuse for code changes

  3. MATLAB: powerful tool for components with multi mathematical calculation, such as wireless, modem and others Problems (2): Need MATLAB license for any simulation When an error is detected, the effort to understand if the problem is in MATLAB or HDL is extremely large Long test is problematic need to restart MATLAB engine many times - expensive in terms of Runtime need a big disk space The effort to return feedback from design to MATLAB, is extremely large Such as communication channels that are influenced by history

  4. Bad Verification Process Texts Creation, Writing Files, Parsing and Processing Verification environment Call MATLAB Parse results The overhead of calling MATLAB, is around 5-6 seconds per call, except text parsing. Create configuration files SV/E/C++ Drivers + Monitor Golden Model MATLAB Simulation DUT MATLAB simulation results To text Files Checkers /Coverage

  5. Solution: DPF - Digital Processing FrameworkImport any MATLAB capabilities to Verification Environment DPF: MATLAB interface library for calling MATLAB functions Create Shared-Library/H file (with mcc) M call, Becomes a C++ function.. DPF: higher level library. C++/SV/E Objects, wrapper of object MATLAB 'mxArray’ mxArray: father of all MATLAB objects. Pointer to MATLAB engine in Runtime. Transferring information from side to side. Using pointer only. MATLAB & Simulator & Verification 1 CPU process. Using Runtime MAT library- No need license & Faster. DPF: MATLAB interface C++/SV/E Interface

  6. DPF:Instead Files, Live Objects BB PSU BCH LDPC PLF PFB File File File File File File File function [Bb, Psu, Bch, Ldpc, Plf, Pfb] = RefModem(NFrames, ModCode, FrmSiz, PilotsOn, SymRate, Debug) Using MATLAB C COMPILER – export m files to C++ function mlfRef_modem(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]);//Vector In / Vector Out Vector In, parameter from TB (Test Configuration). Vector Out, Stimuli and Test points results.

  7. Performance Improvement using DPF MATLAB is run only once. save 5-6 seconds for each iteration (could have been hundreds) Saving 1-2 weeks for parser building There is no need for coordination between Algorithm/Verification/Hard-Ware engineers A new code of algorithms engineers goes directly into the testing environment MATLAB project translated to 1 SO/H file, just need to include and compile. This process takes 60 seconds, done 1 time per a new MATLAB code version The simulation time for MATLAB code is very short because of ‘C’ compiled code A call to MATLAB is done without reading files, but rather by calling to function C, where parameters are living objects Restoring running results is easy - just use the same seed

  8. Example: Using MATLAB Result in Simulation // Main Function using MATLAB as Golden Model for (unsigned pktInd = 0; pktInd < m_NumPacket; pktInd ++) { m_MatlabModem->CallModem();//Call MATLAB to simulate modem + Prepare all test point //Using result in verification environment cout<<" Start Drive packet "<<pktInd<<" T: "<<SimTime()<<endl; DriveBBDescriptor(pktInd); SetPlHeader(pktInd); DriveBBFrame(pktInd); //Collectors monitor Coverage working always tolisten and check the design. }

  9. Debug Simulation by Eclipse

  10. Thank You! Shmuel@RtlVerification.com

More Related