Fault switches not working
Prince-Joy opened this issue ยท 11 comments
@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
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.
Thank you so much @donn , I am facing another issue can you please look into it.
Though I am using different liberty now, but facing another issue, need some help
For the first issue, try updating IcarusVerilog, I recall having this issue myself with older versions.
Tap is @Manarabdelaty territory. Manar?
@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 ?
@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,
reference: asic-world
After running the following commands
I got the error:
chained.v and json file
up_counter.netlist.v.chained.v.txt
up_counter.netlist.v.cut.v.tv.json.compacted.json.txt
@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.
@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.
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.
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).
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.
Please clarify if I misunderstood.
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.