This design is a minor modification of ROTFPGA v2a, intended as a "control group" for testing latches on IHP. If ROTFPGA v2b works but v2a doesn't, it indicates an issue with latches. Otherwise it might be a problem with the design itself.
Most of the documentation carries over from ROTFPGA v2a and is not repeated here. The differences are:
Latches are replaced with flip-flops that operate on the "latch clock" whereas original flip-flops are modified to act on the "flop-flop clock".
In practice the "latch clock" and the "flip-flop clock" are gated versions of clk
,
enabled by in_l_gate
and in_ff_gate
respectively.
To add in_l_gate
and in_ff_gate
to the inputs, the number of existing inputs had to be
reduced. Since in_cfg
is typically only used when in_se
is high and in_lbc
is
typically only used when in_se
is low, they were combined into in_cfg_lbc
.
The changes above were incorporated into the test suite. Every clock tick in the original test was replaced by 50 "latch clocks" followed by a single "latch and flip-flop clock" and then by 50 more "latch clocks".
None
# | Input | Output | Bidirectional |
---|---|---|---|
0 | tile(0,0) left in | tile(7,0) right out | _scan enable_ input |
1 | tile(0,1) left in | tile(7,1) right out | _scan chain_ input |
2 | tile(0,2) left in | tile(7,2) right out | _configuration_ / _loop breaker class_ input bit 0 |
3 | tile(0,3) left in | tile(7,3) right out | _configuration_ / _loop breaker class_ input bit 1 |
4 | tile(0,4) left in | tile(7,4) right out | _loop breaker enable_ input |
5 | tile(0,5) left in | tile(7,5) right out | clock gating for flip-flops |
6 | tile(0,6) left in | tile(7,6) right out | clock gating for simulated latches |
7 | tile(0,7) left in | tile(7,7) right out | _scan chain_ output |