Orcad bus names using leading 0's

I am accustomed to using two digits in my bus numbering so that signal names sort correctly. That means I would name a bus BUS[15:00] instead of BUS[15:0] so that the lower signals would be BUS00, BUS01... I am getting errors in Orcad about wires with only one connection. Is this the reason? I don't see anything in the help that says I can or can't do this.

Reply to
rickman
Loading thread data ...

In Orcad, I'm accustomed to using BUS[0..15] (note: 2 dots). There may be alternatives; I've never tried to find them ;). A bus thus named is equivalent to 16 single wires named BUS0 through BUS15.

Heh - just looked in the manual (whodathunk?):

Reply to
Steve at fivetrees

Thanks for your reply. I also posted to the Orcad web site forum and a couple of other newsgroups. One of them got a reply that said using a leading zero on the number is not allowed. Once I knew what to look for, I found it in the help.

I know I have done this and made it a part of my standard bus numbering method since it allows signal names to alpha sort correctly. But I must be remembering my VHDL rather than my Orcad designs. This may work with Viewlogic (or whatever they are called now) since that is the only other schematic package I have used.

Steve at fivetrees wrote:

Reply to
rickman

You are correct in that Viewlogic (now dxDesigner) allows leading zeros in bus member names, which makes it much easier to do alphanumeric sorting. Yet another reason why I think DxDesigner kicks Captures butt - unfortunately the pervasiveness of Orcad requires that I use it for most of my consulting.

When I have finished a schematic design, I like to import it into excel and sort the nets by name, then look for errors. Having bus members where the bus bit numbers are the same width is the key to sorting properly in excel, which is where the leading zeros in the bus bit number are essential.

I have written a perl utility which reads a PADs netlist and outputs a delimited text file which can be easily imported into excel. This utility, which I call 'p2e', does the following during the translation:

o Adds a netlist column with numeric net suffixes extended to 3 digits. The netlist can be sorted on this field, yet the original netname is still retained in the record.

o Adds a column with the number of nodes (pins) in each net. This is a handy field to sort on, as I've found errors to typos when sorting on this key.

o The node list for each net is broken into 9 columns. The first 8 columns have a single node only, and the last column has the remainder of the nodes. This allows one to get a good feel for the 'important' nodes on a net.

o The order of the nodes is properly sorted, first by reference designator, then by pin number. The refdes and pin number fields are each properly alphanumerically evaluated during the sort.

The following nodes on a net, X2 U2.AA20 U2.AA3 U10.1 C1 would be sorted as follows:

C1 U2.AA3 U2.AA20 U10.1 X2

o There is a facility so that a list of 'priority' reference designators can be specified in the perl script, and nodes are first sorted using this reference designator list. I like to have chip, active part and connector pins appear before cap and resistor pins. Here's the current refdes sort order in the script.

$refdes_priority = "U,Q,D,DN,DS,J,P,CN,H,RN,FB,R";

My intent is have the refdes sort order specified in a text file, but I haven't had time to implement this yet.

o A header row is also included to make the resulting excel file easier to sort.

There are a number of things that can be easily change by modifying variables in the script, including:

  1. Width of extended numeric suffix.
  2. Refdes sort order
  3. Excel filed separator (currently set to '|')

Here's a clip from an output file from the script.

NET NAME|MOD NET NAME|NODE COUNT|NODE 1|NODE 2|NODE 3|NODE 4|NODE 5|NODE

6|NODE 7|NODE 8|NODES 9- N22534502|N22534502|2|U11.8|L6.1 ADDR_IBUF_B7|ADDR_IBUF_B007|4|U7.A30|U13.U2|RP20.3|RP20.4 RXD_USB|RXD_USB|2|U7.AJ31|U18.30 N207157090|N207157090|2|U35.28|LA60.1 ADDR_IBUF_A6|ADDR_IBUF_A006|4|U7.D6|U12.T7|RP7.3|RP7.4 NRTS_USB|NRTS_USB|2|U7.AE8|U18.8 N207157440|N207157440|2|R311.1|C643.2 ADDR_IBUF_B9|ADDR_IBUF_B009|4|U7.C22|U13.U3|RP16.1|RP16.2 NCTS_USB|NCTS_USB|2|U7.AB22|U18.32 ADDR_IBUF_B8|ADDR_IBUF_B008|4|U7.B22|U13.U8|RP4.3|RP4.4 ADDR_IBUF_A7|ADDR_IBUF_A007|4|U7.D7|U12.U2|RP19.3|RP19.4

I'll gladly either send you the script or post it on my website. Since I'm a perl hack, the code needs a bit of cleanup and some updated internal comments/docs.

This code has evolved and I'd be embarassed to tell you how much time I've spent on it over the years. But, I've come to rely upon when checking a new design or analying a customer's design.

I'm sure the code could be made much more efficient, or modified to translate other netlist formats. But, since a PADS netlist is easily created in Orcad Capture, I don't have any motivation to add other formats.

Urb snipped-for-privacy@hotmail.com

rickman wrote:

Reply to
Paul Urbanus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.