One of the key stages in designing any chip is the testing you do when you get the first silicon back. This is where you finally see the results of all your careful work and determine whether the chip is performing as designed, and as simulation told you it would. This is known as IC validation. The focus of validation is on functional test – checking that the chip in silicon meets the original requirements. This usually involves a certain amount of characterization as well as tests of basic functionality to make sure that no bugs have slipped into the design.
The validation step is separate from production test, where the focus is on quickly and accurately finding any chips with manufacturing defects so they can be discarded. Here, the focus is usually on getting the test completed to an acceptable level of accuracy in the fastest time. This is because the cost per chip will increase with every extra second the chips spend in the tester.
In contrast, in the validation step the primary focus is generally not on the speed of the testing but on the quality of the data you can extract from the chip. This is not to say that speed is irrelevant, and if you can get good results quickly, then that is always a good thing. Building automation into the testing process at the validation stage has numerous benefits:
- Speeding up tests
By automating tests, they can be performed in a more efficient manner. It is possible to have each test lined up and ready to start after the previous test completes. It is also possible to have test running 24/7 without the need for engineers to work night shifts.
- Process Improvement
One of the best aspects of any sort of automation and one that is often overlooked is the way it forms a basis for process improvement. At its heart, an automated test is a concrete expression of all the steps necessary for that test. Describing them enables each step to be analysed; any learning from this analysis can then be fed back into the algorithm which is then improved for all users. Normally, an engineer may manually stumble across a better way of doing things, but such learnings are often not fed back into the process.
- More consistent testing
By definition, automated tests are repeatable and thus automation allows for more consistent testing of chips in a given batch. This allows for better comparison of characterization data between samples in each batch or between batches.
- Direct application of tests that were developed for simulation
As the chip will have been extensively simulated in the verification stage prior to tape-out, you will already have a large library of tests and expected outputs. During the verification stage, you can actually design these verification tests in such a way that they port over to validation very easily. This greatly speeds up the whole validation exercise and allows for consistency in what is being tested at different stages.
- Remote work on validation
It is often beneficial for designers at all levels to see the outcome of their work. However, validation testing may often happen in a different geographical location. Having an automated system that can be accessed remotely can let designers get hands-on experience with the silicon they helped to produce. This can help them to improve their skills over time, as well as help them gain valuable insight into how the chip was designed, and this information be constantly available to the validation team. There are also obvious advantages to remote work given the current situation with Covid-19 and lock downs across the world.
- Validation flow
Given all of these factors, Adesto has developed a Python based testing framework that integrates all of our instruments together in the lab and allows us to quickly port tests that were developed in the verification stage to validation tests. The Python language was chosen to automate the tests due to its familiarity amongst the testing engineers as well as the numerous libraries that were available to help with the work.
The validation system itself consists of a board with socket for the chip under test. The board contains a daughter card with a large Xilinx FPGA connected via ethernet to the lab’s network. We can program the FPGA remotely over the network and use it to control all the digital inputs of the device under test (DUT) and also monitor its outputs. Various analog inputs and outputs from the DUT are hooked up to switches that can switch them to a set of SubMiniature version A (SMA) connectors which are connected to scopes, spectrum analyzers and signal sources. We can also remotely control each of these instruments, and together it means that all the inputs, outputs, analog and digital signals from the DUT can be forced to whatever values we want to observe.
The Python test framework software runs on a remote server. Our validation engineers can write tests in Python and combine that with C programming code that can be run on the embedded processor in the DUT. This provides the ability to exercise the ASIC through its full suite of functional tests. All the connections to the instruments and the test board are via the network, and thus the development and execution of tests can be done remotely.
Our remote IC validation testing tool is used regularly by our global custom ASIC design teams for enhanced collaboration and oversight. As we look ahead to a different future of work where many of us will be working from home for some time yet, solutions like this help ensure our customers’ ASIC designs are safely delivered on time and with the high quality they expect. Check out this short video to find out more about custom ASICs.