Test Techniques for System-on-Chip: Problems and solutions