Closed narutozxp closed 4 months ago
@narutozxp Output of MUX (which has constant 1) is zero because constant values do not pass through input buffer but output buffer. So constant 1 will be inverted and output will be zero.
But I think, VPR will be generate a LUT for that $false and use it. I know that MUX constant inputs are not used in benchmarks because VPR do not know there is a constant 0 or 1.
@mustafaarslan0 However, our muxes have no input buffer or output buffer. Besides, According to my experiment, if there is an output pin that drivers more than one input pin, these input pins will be set to the constant of MUX.
@tangxifan It would be very helpful if you could provid me some suggustions.
@narutozxp For the constant signals applied to your heterogeneous blocks, where 0 or 1 matters, please enable the option --constant_net_method route
when calling vpr.
Take the following example:
There is a bug that puzzles me a lot, and OpenFPGA does not raise any error while the bitstream seems not correct. I have a name.blif file, and its contents are as follows.
the $false should represent constant 1. However, the sim shows that the values of all the pins connected with $false are 0. I have no idea about the reason for such a bug. I guess that the following code makes MUX provide the constant 1, and the constant 1 is used as zero by OpenFPGA.