Rapid Prototyping of Digital Systems: A Tutorial Approach