Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fault switches not working #14

Open
Prince-Joy opened this issue Feb 11, 2021 · 10 comments
Open

Fault switches not working #14

Prince-Joy opened this issue Feb 11, 2021 · 10 comments

Comments

@Prince-Joy
Copy link

@donn
I am facing issues with fault, after completion of the installation procedure, when I am trying to get version using fault --version/-V
It's showing me the help menu every time, not only that, only subcommand are working like

  1. fault synth --top xyz -l xyz.lib xyz.v > its working
  2. fault cut xyz.netlist.v > its also working but when I am trying to run fault --cellModel xyz.v filename its not working instead showing help menu every time.
    image
    image
@donn
Copy link
Member

donn commented Feb 11, 2021

If you check the resulting help menu, you will notice that one other option is required, namely --clock.

Please add the missing option and retry.

@Prince-Joy
Copy link
Author

Prince-Joy commented Feb 12, 2021

Thank you so much @donn , I am facing another issue can you please look into it.
image

Though I am using different liberty now, but facing another issue, need some help
image

@donn
Copy link
Member

donn commented Feb 13, 2021

For the first issue, try updating IcarusVerilog, I recall having this issue myself with older versions.

Tap is @Manarabdelaty territory. Manar?

@Manarabdelaty
Copy link
Member

@Prince-Joy Can you make sure of the following ? 

  • if the reset signal is asynchronous, you will need to add it to the ignored inputs during simulation; using --ignoring.This is because generating a test pattern for an asynchronous reset could arbitrarily reset the circuit if it is set to either 0 or  1. (You will need to specify the --ignoring for the main option and and both the chain and tap sub-commands)

If this is not the case with your design, can you post the chained.v file and .bin files ?

@Prince-Joy
Copy link
Author

Prince-Joy commented Feb 15, 2021

@donn I am using the latest iverilog from github https://github.com/steveicarus/iverilog, can you send me any link of iverilog which is working fine.
@Manarabdelaty In my code reset is synchronous,
image
reference: asic-world
After running the following commands
image
I got the error:
image

chained.v and json file

up_counter.netlist.v.chained.v.txt
up_counter.netlist.v.cut.v.tv.json.compacted.json.txt

@PiyushSaini97
Copy link

@Prince-Joy I'm facing similar issues. When I try to run anything using osu035, I get the same at Test Vector generation. This is bypassed when nangate is used. However, at fault asm I encounter the mismatch of json and scan chain registers. I tried ignoring clock and reset with the help of fault -i command but the same error. Also, there seems to be a mismatch of just 1 input and scan register each time.

@donn donn reopened this Jun 30, 2021
@PiyushSaini97
Copy link

@Prince-Joy I found the reason for mismatch. Please ensure that you ignore your reset signal for TV generation step by appending -i reset option to fault command (your clock automatically gets ignored when --clock command is used. While running fault chain command, you are ignoring reset and clock using --reset and --clock respectively. If you had not ignored this at TV generation step then you basically got one extra test vector input as compared to the total scan chain register.

@donn please verify whether this explanation is correct or not.

@donn
Copy link
Member

donn commented Jun 30, 2021

That's actually correct, yeah. You're supposed to add the reset to -i.

Maybe for consistency, I should add the --reset option to the fault command.

@PiyushSaini97
Copy link

But wouldn't that cause issue for the designs that don't necessarily use reset?
For example, in the folder /Benchmarks/ISCAS_89, some of the designs don't use reset. I tried running s298.v.
The module does not contain reset(or none of the inputs resemble a reset signal).

s298

I tried creating TV for the same but ran into an error. And without much idea I cant consider any of the input as reset.
error_s298

Please clarify if I misunderstood.

@donn
Copy link
Member

donn commented Jun 30, 2021

Good point, though the thing is I don't think it would be easy to make scan chains that cannot be reset. I'll have to discuss with the team whether we want to support no-reset designs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants