Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Compile-time forces (NCSIM and VCS)

Status
Not open for further replies.

ads2017

Newbie level 3
Joined
Aug 2, 2017
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
38
Hi

I understand that it is possible to force a signal at compile time (with NCSIM at least) so that it will have a constant value every simulation without the need for run-time intervention. However, I can't seem to find any documentation for this on Google.

Note I would rather not modify the RTL code since this is configuration-dependent and for testing purposes only (not synthesis).

Is this possible? Ideally I would want to do the same in VCS as well.

Many thanks
 

It should be possible in NCSIM.
It is possible in VCS.

Right now I use none of them so this old thread for help - https://www.edaboard.com/threads/343499/

However, I can't seem to find any documentation for this on Google.
They are user guides and so are proprietary. Ideally if you are using the tools, you should have access to the help files.
 

Hi

I understand that it is possible to force a signal at compile time (with NCSIM at least) so that it will have a constant value every simulation without the need for run-time intervention. However, I can't seem to find any documentation for this on Google.

Note I would rather not modify the RTL code since this is configuration-dependent and for testing purposes only (not synthesis).

Is this possible? Ideally I would want to do the same in VCS as well.

Many thanks

Verilog has it's own force command, try that instead. It is not simulator dependent.
 

Verilog has it's own force command, try that instead. It is not simulator dependent.

I know but would that not require a whole new SV file just for the forces? I would prefer to specify them on the command line if possible.
 

I know but would that not require a whole new SV file just for the forces? I would prefer to specify them on the command line if possible.

on the command line? I am so lost. You said compilation time. Can you clarify what you are trying to do? I suspect you are misusing the force statement to generate stimuli data, which is by definition wrong.
 

I suspect you are misusing the force statement to generate stimuli data, which is by definition wrong.

I'm using a force to compensate for the fact that I've removed parts of the DUT to speed up testing, and I now need to automate this process. Since not instantiating parts of the DUT is inherently a compile-time decision, the compensation should be too.

So ideally I would like to force signals in various disparate parts of the remaining DUT (in auto-generated submodules which ARE instantiated), and have these forces reside in a single place, preferably as part of the script which generates arguments to the tool. If this is impossible then it will be necessary to create some sideband information for use at runtime, which I would rather not do.
 

If you've added code to not instantiate some of the components then you should have also added code for setting those forces when you do not instantiate those parts.
 

If you can't make it work with forces, you can replace the modules by a simulation-friendly version of them. Should solve all of your problems.
 

If you've added code to not instantiate some of the components then you should have also added code for setting those forces when you do not instantiate those parts.

Code generation scripts prevent this :( And besides, there's no natural location for the forces to reside - I'm forcing configuration registers, not signals coming out of the missing modules. The test input can't be modified.

If you can't make it work with forces, you can replace the modules by a simulation-friendly version of them. Should solve all of your problems.

Except that 1) that would prevent the use of emulators, and I wonder whether 2) it could introduce additional bugs which could slow down debugging - better to disable the unused blocks completely.

Thanks all for your advice, it sounds like it's not possible to do what I had in mind. I'll probably create a new file to contain the SV forces and conditionally include it. (And hope that SV forces work with the emulator...)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top