Some of the most important quality aspects of an FPGA are:
a) Functional quality. Does the FPGA perform its intended tasks – for all corner cases – and with no hiccups?
b) Ease of modification. How easy is it to modify the design or add functionality – during or after the initial design?
c) Readability and understandability. How easy is it (especially for somebody else) to understand the design – e.g. for a handover Proper functional verification may help you a long way with the “soft” part of the functional quality, but not with the hardware-related issues like timing and clocking. Lint-tools may help detect some bad coding style and check coding conventions, but this is a very minor part of designing for modification, readability and understandability.
Thus in order to achieve the right quality we need good walk-throughs and reviews.
Unfortunately however, most reviews are close to useless.
This presentation exemplifies some critical quality aspects and suggests solutions on how to handle these.