1 Reply Latest reply on Mar 5, 2019 5:49 AM by weston_beal

    HyperLynx Vx.2.3: How do I delete a component (or mark unpopulated) on an imported board?

    t_blikstad

      I'm using HyperLynx vx2.3.

       

      I would like to be able to mark a component as depopulated, or delete it entirely, on a board I imported from CR-5000 board files.

       

      I successfully imported the board and can run SI simulations. However, when I attempt to simulate certain nets, I receive an error about a missing IBIS model for a component that is depopulated on my board. It's possible that in the CR-5000 output files, it wasn't properly marked depopulated and so was imported as a populated component. A roundabout way of excluding this component from my simulation would be to create an IBIS model with all pins represented as 100 Mohm resistors or something, but it has a number of pins and I'm not sure how to go about this anyways. If there is a simple way to remove it from the simulation, that would be preferable.

       

      Thanks in advance for any help.

        • 1. Re: HyperLynx Vx.2.3: How do I delete a component (or mark unpopulated) on an imported board?
          weston_beal

          The best option for this case is to assign and IBIS component with an NC model on each pin. The NC model is a reserved word that doesn't need any actual model syntax. I created a VBScript file to help with this. Copy the text below into a separate file with .vbs extension. Edit the script to work for your needs, especially changing the reference designator string. Run this in HyperLynx SI and then use the resulting text file as the pin list for your NC component model.

           

          '

          '

          '====================

           

          Dim App : Set App = Application

          Dim objFso : Set objFso = CreateObject( "Scripting.FileSystemObject" )

          Dim strFilePath : strFilePath = App.FileName

          Dim strPath : strPath = Mid( strFilePath, 1, InStrRev(strFilePath, "\") )

          Dim objReportFile : Set objReportFile = objFso.CreateTextFile( strPath & "pin_nc.txt" , true)

          Dim objDesign : Set objDesign = App.Design

          ' dialog to pick refdes(s)

          strRefdes = "U1"

          If strRefDes <> "" Then

          Dim objComp: Set objComp = objDesign.FindComponent( strRefdes )

          End If

           

           

          Dim arrDiffPreSuf(1000, 4) ' 2D array. each field is array of prefix string, suffix string, P pin, N pin

          arrDiffPreSuf(0, 0) = 0

          arrDiffPreSuf(0, 1) = 1

          Dim strNet

          intMaxPinLen = 0

          intMaxNetLen = 0

           

           

          objReportFile.WriteLine "DDR pins with NC model:"

           

           

          For Each objPin in objComp.Pins

          strNet = objPin.Net.Name

          If StrComp( Left( strNet, 4 ), "DDR4" ) = 0 Then

          strMod = objPin.Model.PinModel

          If StrComp( strMod, "NC" ) = 0 Then

          objReportFile.WriteLine objPin.Name & "   " & strNet

          End If

          End If

          Next

           

           

          objReportFile.Close

           

           

          MsgBox( "Wrote IBIS style pin list for " & strRefdes & " to file" & vbNewLine & strPath & "pinlist.txt" )

           

           

           

            '====================

          Function IndexArray( arrIn, str1, str2 )

          '====================

            blnReturn = 0

            intLen = arrIn(0,0)

            If intLen > 0 Then

          For ii = 1 to intLen

          If ( arrIn( ii, 0 ) = str1 ) AND ( arrIn( ii, 1 ) = str2 ) Then

          blnReturn = ii

          Exit For

          End If

          Next ' ii

          End If

           

          IndexArray = blnReturn

          End Function ' InArray

          '====================