Simulate Translate Test

QA: WGL - Attempting to Mask Output Side of Bidirectional Bus Masks Input Side Instead. How Do I Mask the Output Side?

Tuesday, 09 January 2018 15:33
Our support team here at Source III is dedicated to your success. We are always available to answer any questions you may have about our products, or respond to any needs you may have when they arise. When we see a particularly valuable quesiton that we believe may be relevant to the entire Source III community, we will sometimes share it here on our blog. The following is a great question asked by one of our customers:
I'm translating to a WGL file, and I'm attempting to mask the output side of a bidir bus called DATA[7:0], but it's masking the input side of the bus instead.  The original line in the (unmasked) WGL looks like this:

  ... 00000000-------- ];

I then apply a mask with VTRAN with the following statement in my command file (PROC_BLOCK):

  mask_pins DATA[7..0];

The resulting line in the (now masked) WGL now looks like this:

 ... XXXXXXXX-------- ];
How do I mask the output side of the bidirectional bus?

When masking a bidirectional pin or bus, you must append a ".O" suffix to apply masking to the output track.  Without this suffix, VTRAN applies masking to the input track.

Your mask command should therefore look like:

  mask_pins DATA.O[7..0];

The resulting masked bus in the WGL file will look like this:

 ... --------XXXXXXXX ];

The ".O" suffix is also required when addressing individual bidir bus pins as well as scalar bidir pins, e.g.:

  mask_pins DATA.O[2];
  mask_pins SCAL.O;

This feature allows you to mask the input and output tracks independently.  The two commands shown here demonstrate how the input and output tracks can both be masked, in this example at overlapping times: from 0 to 900ns for the inputs, and from 300-900ns for the outputs:

  mask_pins DATA[7..0] @ 0, 900;
  mask_pins DATA.O[7..0] @ 300, 900;
You can change the default mask character, which is 'X', by using the "mask_character" option to MASK_PINS, e.g.:
  mask_pins mask_character='Z' DATA.O[7..0];
For more information on VTRAN's masking capabilities, refer to the dedicated AppNote on pin masking, available here, as well as in the VTRAN User Guide, Chapter 4, in the section entitled "Vector Processing Commands".