Date post: | 16-Apr-2017 |
Category: |
Engineering |
Upload: | vishisht-tiwari |
View: | 108 times |
Download: | 4 times |
Interim Placement Report 1
Author: Vishisht M. Tiwari
Degree: BEng Electronic Engineering with Industrial Experience
Company: Intel
Location: Swindon, Wiltshire
Start Date: 07/07/2015 End Date: 07/08/2016
Date: 10/09/2016
Table of Contents
Executive Summary ..................................................................................................................................... 1
Introduction ................................................................................................................................................. 2
Company Overview ..................................................................................................................................... 2
Team at Intel Corporation ........................................................................................................................... 3
Induction Session ......................................................................................................................................... 4
Intel Code of Conduct ............................................................................................................................... 4
Intellectual Property Control ................................................................................................................... 4
Lab Safety Awareness .............................................................................................................................. 4
Projects Worked on ..................................................................................................................................... 5
Bringing up platforms ............................................................................................................................... 5
SharePoint ................................................................................................................................................ 5
Python programming and Serial Interfacing ........................................................................................... 6
Serial Interfacing with DC Power Analyzer using PyVISA ........................................................................ 8
Serial Interfacing with Signal Generator ................................................................................................ 12
Testing and validation of USB2 interface on Intel modems and SoCs ................................................... 13
Other Learnings ......................................................................................................................................... 14
MIPI (Mobile Industry Processor Interface) Alliance ............................................................................. 14
MIPI Alliance specifications for DPHY .................................................................................................... 14
USB Implementors Forum ..................................................................................................................... 15
Modem technology over the years ....................................................................................................... 15
Conclusion .................................................................................................................................................. 16
1
1. Executive Summary
Here is the summary of the main objectives and outcomes during my 13 months industrial
placement at Intel Corporation UK:
• The placement started with research work which was important to understand the
working of the company. It helped to understand the work that was carried out by my
team regarding the testing and validation of different SoCs (System on Chips) and
mobile-‐based modems.
• The next step in my placement was to flash validation boards. Flashing validation board
was another important step to understand the basics of testing and validation of
SoCs/modems. Validation platforms are used to observe errors that might be caused in
different interfaces of the board such as display interface, camera interface etc. by a
faulty SoC/modem. Flashing up these boards involved loading these boards with Linux
kernels and running applications that were specially designed to measure errors when
SoCs were tested using the boards.
• The main task of the placement was to develop tests using a camera signal generator to
simulate real life camera signals for testing and validation of the camera interface for an
Intel SoC (System on a chip). This task involved using python programming language to
change different attributes of the camera signal to identify the threshold values of these
attributes at which the SoC started giving errors.
• As part of the above task a data log system also had to be created that could
automatically generate a data log file at the end of all the tests. These data log files
would specify the threshold of the parameters at which the SoC started giving errors
and a list of the tests that passed or failed.
• Few of the tests mentioned above required different voltage supply for the SoC. To
automate this process, as part of this internship, python commands were also
developed to talk to the DC Power Analyzer. A DC Power Analyzer is an advanced
version of a power supply that can measure current and voltage when sourcing. A GUI
2
(Graphical User Interface) was also developed for the DC Power Analyzer as part of the
task.
• Few of the above mentioned tests also needed interference signals during the test.
These signals were used to insert noise in the signal which was then used to study the
effect of noise on the Intel SoC. Code for automating the insertion of noise was also
developed using python commands for a signal generator.
• The placement also gave an opportunity to develop a customer facing SharePoint for my
team in Intel Swindon and Intel Munich. This project helped me in learning languages
such as HTML and CSS, which are integral tools in web development.
• The last few months of the placement consisted of execution work, which involved USB2
testing and validation of the latest Intel modems and SoCs. The work involved carrying
out series of USB2 tests by altering the voltage, timing and speed parameters and
finding out the threshold value at which the device starts to fail.
2. Introduction
The purpose of this report is to provide an overview of my placement with Intel Corporation,
outlining the details of the projects undertaken and objectives accomplished with the help of
my team based in Swindon.
This report will describe about the company, kind of work being undertaken by my team, and
overview of the projects that I was involved in. The report will also elucidate the skills that I
have developed through these projects and how the last 5 months have improved me as an
engineer.
3. Company Overview
Intel is the largest semiconductor chipmakers specialising in embedded processors for personal
computers and other mobile platforms. Founded in 1968, Intel has always focused on advanced
chip design capability and leading chip manufacturing capability.
3
The Swindon Divisional Group of approximately fifty engineers was acquired from Zarlink
Semiconductor by Intel Corporation in 2010 and was branded as the Mixed Signal Group – MSG.
Prior to this, the Group had been as a self-‐standing Design Group within Plessey GEC (followed
by Mitel/Zarlink) where it undertook RF mixed Signal Silicon Design for Consumer Media
Products. Disciplines included Silicon Design, layout, Bench Silicon Validation/Characterisation,
Applications Support, and Test Hardware and Software Development for wafer sort/final test
High Volume Manufacture (HVM) at sub-‐contracted to Far East Production Test Sites.
4. Team at Intel Corporation
At Intel, I got the opportunity to work within the iCDG ETS Mobile PHY Electrical Validation
team comprising of Mark Gooch, Colin Mair, Clive Powell, Colin Balson and Tony Smith. The
team along with other associative teams in Germany carry out all activities relating to Bench
Validation/Characterisation, Applications Support and Test.
Over the years, with the increasing level of integration and development of the SoC, (System On
Chip) the Swindon Teams focus has moved to Validation and Characterisation of specific IP
within an SoC, covering BaseBand ADC and DACS, Voltage Regulators followed by memory IP
including LPDDR, DDR2, DDR3.
Most recently the Team has moved to working as part of iCDG (a mobile centric division),
working as part of a post silicon validation team with the Munich ESQ Team. The core
responsibility for ESQ is High Speed IO IP validation within an SoC, with the Swindon section
responsible for MIPI D-‐PHY DSI (Display), MIPI D-‐PHY CSI (Camera), USB2 PHY and also M-‐PHY
Type II High Speed interface validation.
The team is working alongside Silicon Design and Platform Hardware, Software groups to
enable successful IP validation for new SoC Silicon Design.
4
5. Induction session
The placement started with a new employee orientation session. The session was aimed for the
new interns to learn about the company, familiarise with the city and meet the old interns and
other colleagues in the office. The rest of the first and second weeks covered a plethora of
other induction sessions that guided about the work culture of the company. The main topic of
discussions in the induction sessions were the following:
Intel Code of Conduct: The code of conduct lays the foundation for Intel’s ethical and legal
requirements and sets the standard for how we work with each other, and with customers,
suppliers and others.
This induction session covered five basic principles:
• Conduct business with Honesty and Integrity
• Follow the Letter and Spirit of the Law
• Treat each other fairly
• Act in the best interests of Intel and avoid conflicts of interest
• Protect the Company’s Assets and Reputation
Intellectual Property Control: This training was all about protecting Intel’s products of human
intelligence and creation, such as copyrightable works, patented inventions, Trademarks, and
trade secrets.
Lab Safety Awareness: This induction session was aimed at improving the security on the lab
environment including intellectual property, network security and compliance to lab security
policies.
5
6. Projects worked on
6.1. Bringing up platforms
One of my first assignments was to flash validation platforms to make them ready for testing
devices. This involved loading the necessary operating software and the applications used for
testing. The flashing up of validation board involves the following processes.
• The eMMC (electronic multimedia card) has to be loaded with the important u-‐boot.bin
file and the necessary operating software files.
• A specific code in the ROM is used to read the u-‐boot.bin file from the eMMC in the
validation board. The u-‐boot is an open-‐source, primary boot loader used in embedded
devices to package the instructions to boot the device’s operating system kernel.
• The u-‐boot reads other files from the eMMC that is used to launch the Linux kernel.
• The Linux kernel is then used to load the various applications that can be used to test
different DPHY, USB and DIGRF interfaces.
This was an important task as it helped to understand the basics of how testing platforms work
and how camera and display validation was carried out using this platform
6.2. SharePoint
As part of my placement, another task was to develop a customer facing SharePoint for the ETS
Mobile PHY Validation team in Swindon and Munich. SharePoint is a web application platform
that is used for inter-‐business content and document management. The main objective of our
SharePoint was to make an outward facing medium to show the progress of each of our
products to our stakeholders. This progress is shown by the SoWs (System of Works) and
validation reports for each of the products that will be or are already out in the market. One of
the biggest advantages that SharePoint has over other web development tools is the
permissions property.
SharePoint was vital in understanding the basics concepts of web development. Constructing
the basic structure of a SharePoint involved dragging and dropping of specific elements onto
6
the web page. However, the properties of each of the elements had to be edited using HTML
and CSS which are integral in any web development project.
6.3. Python Programming and Serial Interfacing
One of the main tasks carried
out by the team in Swindon is
camera interface validation of
the SoC. This is done using a
camera generator that replicates
the signals that would be
produced by a normal camera
and the validation board that
replicates a mobile device. A
special application (due to Intel
policy the name cannot be mentioned but we can call it application A) is loaded onto the OS of
validation platform that observes errors in the SoC. The camera signal generation tests are
done by altering each parameter of the camera signals and then using application A to observe
the threshold at which errors start to surface.
Intel has been using the camera
signal generator for a long time
for camera validation. However,
the team has recently decided to
introduce a debug bench that
will use a camera signal
generator from a new vendor
(we can call it vendor B). The
camera signal generator from
Figure 1: Camera Signals observed on an oscilloscope
Figure 2: Python code for controlling camera signals
7
vendor B uses python programming language for generating different tests and varying each of
the parameters. These parameters are specified by MIPI (Mobile Industry Processor Interface)
under the name MIPI D-‐PHY Receiver Test.
MIPI (Mobile Industry Processor Interface) is a global, collaborative organisation that is
committed to defining and promoting interface specifications for mobile and mobile influenced
devices. It was founded in 2003 by ARM, Intel, Nokia, Samsung, STMicroelectronics and Texas
Instruments.
There are in total 28 tests that have to be performed by the camera signal generator and that is
what my internship has been about in the last few months.
Another aspect of this project is data logging of all the tests performed. Each test has various
levels of either timing parameters or amplitude parameters that are tested. The software, after
performing test at each of these parameters, returns if the signal was a pass or a fail. At the
end, if the threshold was satisfied, the whole test is given a pass or a fail. All this information
has to be stored in a .csv format in the form of a table. For the sake of automation, python
commands are used to data log all the passes and fails. At the end a .csv file is created with
different sheets specifying pass and fails in each of the test and a summary sheet specifying
which all tests passed or failed.
Python is also used for serial interfacing where the SoC and the generator are switched on and
off using the python code. The alignment of switching of the generator and the Intel device is
very important as the device can start experiencing false errors if the generator is switched on
before the device. These are the following steps that are needed to do any test:
• Establish a connection with the device: To establish this connection, python’s
serialwin32 class is used. This connection is used to turn the device on and off and reset
the device whenever a test or part of the test is completed. Special commands are used
to turn the device on and off.
8
• Establish a connection with the camera signal generator: The connection with the
signal generator is important to switch the generator on and off and alter the
parameters of the signal.
• Implement the MIPI DPHY tests that will be used for camera interface validation:
These are the MIPI spec CTS tests that the SoC has to pass to be able to compete in the
market.
• Implement data logging: This is also done using python in which every small detail of
the test is saved as a .csv file for future reference.
6.4. Serial Interfacing with DC Power Analyzer using PyVISA
Few of the tests mentioned above require different voltage supply for the SoC. The voltage to
the SoC is provided using a DC Power Analyzer that is an advanced version of a power supply
that can measure voltage and current while sourcing.
To automate the process of changing voltage while the tests are running, python commands
are used to talk to the DC Power Analyzer. The team also wanted a GUI (Graphical user
interface) for the DC Power Analyzer to control it through computer.
The task was started by presenting an SoW (Statement of Works) and a presentation to the
team describing the commands that will be used, the features of the GUI and how the
commands will integrated in the camera testing software. The next step of the process was to
develop the python commands that will be used to talk to the DC Power Analyzer in the GUI as
well as in the software that was used for testing the camera interface. PyVISA module of python
was used to establish the connection and change the parameters of the voltage and current
supplied. PyVISA is a python package that enables to control all kinds of measurement devices
independently of the interface (GPIB, USB, Ethernet).
Few of the features of the GUI for the DC Power Analyzer have been given below:
• Options for establishing VISA connection (GPIB or USB or LAN).
• Switch on/ off each channel.
9
• Specify the priority between voltage and current in each channel. Priority specifies
what aspect can be controlled. Voltage priority means voltage can be controlled and
vice-‐versa.
• Specify the exact voltage and current limit in case of voltage priority and current and
voltage limit in case of current priority.
• Read the values of current and voltage in each channel.
• Data log the values according to the specified time length and sample rate.
• Saving and recalling a specific state of the instrument. This feature remembers the
state, priorities, voltages and currents in each channel and can be recalled whenever
wanted.
• The reset button that resets all the channels in the power analyzer.
For creating the GUI, TKinter library package was used in python. This library contains pre build
scales buttons etc. which was then used to create the GUI. The implementation of all the
features in the GUI have been described below:
Figure 3: GUI for the DC Power Analyzer
10
• VISA connection: The first part of this GUI was to make the DC Power Analyzer talk
to the computer. This was done using special VISA modules in python. These
modules help to establish connection to any equipment through any interface (GPIB,
USB, and LAN etc.). The connection is established using a particular address that are
specific to each equipment. In case of LAN connection IP address of the equipment is
used.
• Changing signal parameters of each channel: For implementing buttons, textbox
and sliders, TKinter module of python was used. For changing any parameter, the
value from the GUI elements is derived and then forwarded to the Power Analyzer
using the visa commands. An example of changing the current limit of channel 1 has
been shown in figure 4. The first line of the function changes positive current limit
on channel 1 depending on the value entered in the entry box. Accordingly the slider
level also changes, as the slider should correctly represent the current limit at any
moment. The next 2 lines update the current and voltage values that are then shown
at the bottom of each channel’s box.
•
•
•
• Data Logging: Data logging was another important part of this project as most of
tests involved overnight running. Hence data logging the values of current and
voltage output can help to study the changes. The logging time specifies the time for
which the logging has to be implemented and the sampling rate specifies the
sampling rate. Figure 5 shows the code that is implemented when the ‘Start Data
Logging’ button is pressed. The first 8 lines instruct the equipment to start the data
logging of both current and voltage values for all channels. The 9th line specifies the
Figure 4: Python code for changing current limit in the GUI
11
memory location where the logged data will be saved. The 10th line changes the
color of the whole data-‐logging box to specify that data logging has started.
• Saving and Recalling state: Few tests involve very complicated combination of
voltage and current values in channels that need to supply. The DC Power analyzer
has a special memory space that can be used to save one such combination of
voltage and current values supplied by each channel. The save current state lets user
save the current combination of voltages and current that are being used at this
moment. The Recall saved state button can recall the combination that was saved in
the memory location. The recall part was trickier to implement as all the scales and
buttons in the GUI also has to adjust to represent the current values of voltage and
current recalled.
• Reset: Reset button resets the all the parameters of each channel (including data
logging time and sampling rate) to 0. This GUI also has to be updated with all the
slider values going to 0. The reset button also changes the priority to voltage.
The project ended by presenting my work to the team and handing out project report to each
team member. The report included my initial aim and how I got about to do the project and
also instructions about using the GUI. The report also contained important VISA commands that
other members of the team can import in their own usage of the analyser which can help in
automation of the testing process.
Figure 5: Python code for starting data log in DC Power Analyzer
12
6.5. Serial interfacing with a signal generator
As discussed above, my main task at this internship was to develop program for a camera signal
generator that could perform all the tests specified by the MIPI organisation. One part of this
test is the interference test. This test needed an additional signal generator that provided noise
and the aim of the test was to make sure that the device is not affected by the noise. For the
sake of automation the switching on of this additional generator and providing the amplitude
and frequency should be automatic. This required some additional commands to switch on the
signal generator during the right tests and specify the necessary amplitude and frequency.
For this purpose, PyVISA was used again to control the signal generator. Specific commands
were introduced in the test with the right interface address that switched on the generator in
the necessary test and switch off when it was not required.
This project also ended up with me presenting in front of the whole team about my work done
and handing out reports. The report also contained all the commands used for the generator in
case any other member of the team needed automation with a signal generator. A list of the
commands used in the test are given below:
Identification Command: myinst.write(“*IDN?”)
Reset Command: myinst.write(“*RST”)
Disabling the signal: myinst.write(“RFLV:OFF”)
Enabling the signal: myinst.write(“RFLV:ON”)
Changing the amplitude level: myinst.write(“RFLV:VALUE 200MV”)
Changing the frequency level: myinst.write(“CFRQ:VALUE 1KHZ”)
Changing the offset: myinst.write(“RFLV:OFFS:VALUE -‐1DB;ON;ENABLE”)
Here, myinst.write are PyVISA commands that send a specific instruction to the equipment
while the command inside the parenthesis are specific to the signal generator and change
different parameters of the generator.
13
6.6. Testing and validation of USB2 interface on Intel modems and SoCs
The last 3 months at Intel consisted of execution work that involved complete testing and
validation of the USB2 interface on the latest Intel modems and SoCs. This decision of
undertaking execution work was taken in order to completely understand the working
environment of a test and validation lab. On any normal day, a test and validation lab has a lot
more execution activities going on compared to innovation activities. Being involved with
innovation activities for almost all of my placement days, my manager and I collectively decided
that it would be important for me to gain some experience in execution work if in case I come
back to test and validation lab at Intel corporation UK for graduate position.
Testing of the USB2 interface involves a setup very similar to that used for testing of camera
interface. Special oscilloscopes are used to replicate real world USB2 signals. These signals are
supplied to modem/SoC that would reside in a special validation board. These validation boards
are also very similar to the one that were used for camera interface testing. A special
application (due to Intel policy the name cannot be mentioned but we can call it application C)
is loaded onto the OS of validation platform that observes errors in the SoC and reflects these
errors back to the oscilloscope. The oscilloscope keeps varying different attributes of the USB2
signal such as amplitude, time and speed and then uses application C to estimate the threshold
of the attributes of the USB2 interface before errors start to surface in the test.
These tests are repeated multiple times on multiple devices at different temperatures
depending on the application of the modem and SoC. Any modem or SoC that will be used in a
device with IoT applications will usually be tested over a larger temperature range (-‐55oC to
135oC) than a modem or SoC that will be used in a device with mobile applications (-‐35oC to
85oC). For each modem/SoC, 9 devices would be tested at 5 different temperatures in their
respective temperature ranges and result for all these 45 tests would be compiled in a
comprehensive report that was then forwarded to my manager. The report included the status
of each tests, the reason for test failures (in case of any test failures) and any other aberrant
results observed during the tests.
14
7. Other Learnings
Another integral part of the placement was to have a basic understanding of the work that was
done by the testing and validation group by gathering information from a variety of sources.
Most of this research work involved going through confidential Intel documents and
understanding the basics of test standards and products. This also involved giving a short
presentation to the team in the weekly meetings about the learnings of the various topics. The
overview of my learnings about few of the topics have been given below:
• MIPI (Mobile Industry Processor Interface) Alliance: MIPI is a global, collaborative
organisation that are committed to defining and promoting interface specifications for
mobile and mobile influenced devices. It was founded in 2003 by ARM, Intel, Nokia,
Samsung, STMicroelectronics and Texas Instruments. The specifications are now
implemented beyond the phones including tablets, PCs, cameras, IoT(Internet of
Things), automotive etc. MIPI Alliance’s main objectives are as follows:
o To establish standards for hardware and software interfaces in mobile devices.
o To adopt a set of standard hardware interfaces that will help peripheral
hardware products from multiple vendors to work seamlessly with numerous
processor and SoC.
o To adapt a set standards software interfaces that will enhance the hardware
interconnectivity.
• MIPI Alliance specifications for DPHY:
The MIPI Alliance defines D-‐PHY as
reusable, scalable physical layer for
interfacing various components such as
cameras and displays to baseband
processors in next generation
smartphones, tablets and other portable
devices. DPHY is a unique interface in the Figure 6: DPHY implementation according to MIPI
15
way that it can switch between differential (High Speed) and single-‐ended (Low Power)
mode in real time depending on the need to transfer large amounts of data or to
conserve power to prolong the battery life.
The Camera Serial Interface (CSI-‐2) and the Display Serial Interface (DSI) are the two
packet-‐based high level protocols that carry image data between the peripheral and the
application processor. Both these protocols use the D-‐PHY physical layer. The DSI
specifies a high-‐speed serial interface between a host processor and display module
while the CSI specifies a high-‐speed serial interface between a host processor and
camera module.
• USB Implementors Forum: USB Implementers Forum, Inc. is a non-‐profit corporation
founded by the group of companies that developed the Universal Serial Bus
specification. The USB-‐IF was formed to provide a support organization and forum for
the advancement and adoption of Universal Serial Bus technology.
MIPI Alliance and the USB 3.0 Promoter Group worked together to develop the
SuperSpeed USB Inter-‐Chip (SSIC) specification. The specification defines a chip-‐to-‐chip
USB based internal interconnect for mobile devices as well as other platforms. SSIC
offers MIPI Alliance’s M-‐PHY(R) high bandwidth and low power capabilities combined
with SuperSpeed USB performance enhancements.
• Modem technology over the years: Along with the the testing of SoCs, the ESQ
department in Swindon tests and validates mobile broadband modems. Few of Intel’s
mobile broadband modems tested by the ESQ Swindon department are the Intel®
XMM™ 7360 and Intel® XMM™ 7260. To understand the testing and validation, I was
given the task to do my research about how cellular modems work and have evolved
over the years. This research helped me to understand the different digital modulation
types such phase-‐shift keying, frequecy and amplitude shift keying etc. that is used by
modems for transmission.
The cellular broadband modem systems have evolved over the years transforming from
one technology to another. Starting from 1G when the cellular modems used analogs,
2G when CDMA and TDMA , 3G to HSPA and 4G to LTE.
16
8. Conclusion
The placement at Intel Corporation has been very useful for me in not only increasing my
technical horizon but also in understanding the dynamics of industrial experience. I belive that
working at Intel has provided me with skills that has improved me as an engineer and has given
me an opportunity to work along side a team on real projects.
I feel my placement at Intel corporation has not only improved me as an engineer but has also
given me experience in other valuable skills such as team work and ethics. The skills, I have
learned at Intel will help me to move forward and do better in my university studies and also
into my career.