Re: [Gtkwave-users] Finding edges of specific signal in FST
Brought to you by:
gtkwave,
joel1234567
|
From: <by...@nc...> - 2020-03-06 00:48:15
|
Documentation outside of the fstapi.h header is pretty much in the sourcecode: vcd2fst, fst2vcd, fstminer, and fst.c for gtkwave itself. The usages are quite straightforward. rtlbrowse uses the value at time reading, but I don't recommend it if you need to read a lot of data out of the FST file. For fstReaderIterBlocks, to modify specific signals to the list iterated through, use void fstReaderClrFacProcessMask(void *ctx, fstHandle facidx); void fstReaderClrFacProcessMaskAll(void *ctx); void fstReaderSetFacProcessMask(void *ctx, fstHandle facidx);void fstReaderSetFacProcessMaskAll(void *ctx); These modify the time range for the callback iterator, but only at the block level. You'll still have to ensure that your times are within range. void fstReaderSetLimitTimeRange(void *ctx, uint64_t start_time, uint64_t end_time); void fstReaderSetUnlimitedTimeRange(void *ctx); -Tony -----------------------------------------From: "Roman Popov" To: gtk...@li... Cc: Sent: Thursday March 5 2020 7:03:31PM Subject: [Gtkwave-users] Finding edges of specific signal in FST Hi all,Is there any documentation for FST API? I need to find edges for specific signals in FST. What is the best way to do it?I'm looking into fstapi.h, looks like there are two ways to read signal values: - fstReaderGetValueFromHandleAtTime I guess this one returns value at specific time, but how can I find time where value changed? - fstReaderIterBlocks This one seem to be an iterator over all value changes for all signals in waveform? Is there a way to restrict iteration for specific signals?Is there a way to start iteration from specific point in time? Thanks,Roman |