Hmm. I am unable to exactly replicate the problem. I should've saved the bad bitstream source in a separate directory.
I eliminated the last flop on SD_MISO. Now EhBASIC fails to load with
Code:
Memory siz
, but in Forth, doing 'hex C000 c@' does not lock up. Hmm. Well, EhBASIC fails anyway, which is significant.
So the problematic case shows:
Code:
Timing Summary:
---------------
Speed Grade: -5
Minimum period: 13.312ns (Maximum Frequency: 75.118MHz)
Minimum input arrival time before clock: 2.288ns
Maximum output required time after clock: 15.964ns
Maximum combinational path delay: No path found
At 45MHz the clock period is 22ns, so it seems ok. The longest path delay shown is:
Code:
Timing Detail:
--------------
All values displayed in nanoseconds (ns)
=========================================================================
Timing constraint: Default period analysis for Clock 'clk'
Clock period: 13.312ns (frequency: 75.118MHz)
Total number of paths / destination ports: 200508 / 569
-------------------------------------------------------------------------
Delay: 17.750ns (Levels of Logic = 17)
Source: mycpu/state_FSM_FFd12 (FF)
Destination: mycpu/ALU/CO (FF)
Source Clock: clk rising 0.8X
Destination Clock: clk rising 0.8X
...
That seems OK.
There is this to consider
Code:
NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE.
FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT
GENERATED AFTER PLACE-and-ROUTE.
I haven't found the post-place-and-route report yet. I may have to fiddle with switches somewhere to enable it.
EDIT: trying the same thing with the final flop enabled.