Vivado and Nexys4 -- a long journey

2013: First steps

Xilinx Series-7 and Vivado immediately caught my attention in 2013. It was obvious that Vivado had a superior architecture and potential. A real development environment for a change, not only an aging collection of loosely coupled tools as in ISE. But the first tests with Vivado 2013.2 were sobering. Vivado synthesis failed with hundreds of warnings

  WARNING: [Synth 8-3848] Net nstate in 
     module/entity pdp11_sequencer does not have driver.
  .... many ....
  WARNING: [Synth 8-3848] Net ndpcntl_dsrc_sel in 
     module/entity pdp11_sequencer does not have driver.

Vivado simply didn't understand the coding style used in the w11 project, while ISE had no problems and happily produced bitfiles for Spartan-based boards with the same codebase.

Vivado 2013.3 did a little better, only 137 instead of over 250 warnings, but now timing closure failed with

  Source: IBD_MAXI.IBDR_SYS/IIST.I0/R_REGS_reg[exc_rte][0]_replica/C
  Dest:   CORE/SEQ/R_STATE_reg[0]/D
  Data Path Delay:  14.135ns  (logic 4.664ns route 9.471ns)
  Logic Levels:     23  (CARRY4=2 LUT3=1 LUT4=2 LUT5=2 LUT6=14 MUXF7=2)

Vivado synthesis produced a very long logic path with 19 LUTs, while ISE happily produced performing implementations with the same code base.

2014: Improvements

Vivado 2014.1 was the first version that seemed to handle the w11 code properly, For a sys_w11a_n4 design is Vivado was faster in real time

  ISE 14.7
    XST              REAL 131s  CPU   63s
    map              REAL 356s  CPU  178s
    par              REAL 118s  CPU   62s
    Total            REAL 605s  CPU  303s

  Vivado 2014.1
    synth_design     REAL  95s  CPU  101s
    place_design     REAL  69s  CPU   73s
    phys_opt_design  REAL  68s  CPU   69s
    route_design     REAL  49s  CPU   64s
    Total            REAL 281s  CPU  307s

and produced an implementation with lower resource consumption, 1097 slices compared to ISE with 1333 slices.

2015: Nexys4 procurement

In January 2015 I procured a Nexys4 board. With Vivado 2014.4 I got within a few days a running sys_w11a_n4 design which booted a 2.11BSD system.

2019-07-27: The Nexys4 board is now broken, see blog post