input: vcd: support 1 bit vectors
Use the new process_bit() function to parse 1 bit vectors, too. This is the first step to fix bug #723. Minimal testcase vcd: $timescale 1 ns $end $var wire 1 n0 addr_0 $end $var wire 1 n1 addr_1 $end $enddefinitions $end #0 0n0 b1 n1 #1 1n0 b0 n1 #2 0n0 b1 n1 #3 1n0 b0 n1 Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
36dacf17bc
commit
34724ffa34
|
@ -428,14 +428,28 @@ static void parse_contents(const struct sr_input *in, char *data)
|
||||||
inc->skip_until_end = TRUE;
|
inc->skip_until_end = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (strchr("bBrR", tokens[i][0]) != NULL) {
|
} else if (strchr("rR", tokens[i][0]) != NULL) {
|
||||||
sr_dbg("Vector values not supported yet");
|
sr_dbg("Real type vector values not supported yet!");
|
||||||
if (!tokens[++i])
|
if (!tokens[++i])
|
||||||
/* No tokens left, bail out */
|
/* No tokens left, bail out */
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
/* Process next token */
|
/* Process next token */
|
||||||
continue;
|
continue;
|
||||||
|
} else if (strchr("bB", tokens[i][0]) != NULL) {
|
||||||
|
bit = (tokens[i][1] == '1');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bail out if a) char after 'b' is NUL, or b) there is
|
||||||
|
* a second character after 'b', or c) there is no
|
||||||
|
* identifier.
|
||||||
|
*/
|
||||||
|
if (!tokens[i][1] || tokens[i][2] || !tokens[++i]) {
|
||||||
|
sr_dbg("Unexpected vector format!");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
process_bit(inc, tokens[i], bit);
|
||||||
} else if (strchr("01xXzZ", tokens[i][0]) != NULL) {
|
} else if (strchr("01xXzZ", tokens[i][0]) != NULL) {
|
||||||
char *identifier;
|
char *identifier;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue