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.