Work
I
have 3 years of work experience. I worked Xilinx as an Intern and
as a Software Engineer in IBM. Here are the list of various projects
in Xilinx, IBM and in school.
Work
@ Xilinx
Work @ IBM
Work @ School
Projects
in Xilinx
Embedded
Development Kit (EDK)
Xilinx
Emerging Techonlogies Group, San Jose, CA, 5/2002 - 12/2002
The
group is primarily responsible for developing Embedded
Development Kit (EDK), used to design embedded systems on Xilinx
FPGAs. EDK supports both IBM PowerPC hardware processor and Microblaze
soft processor core. My work was based on Xilinx Microblaze soft
processor core. I worked on the following areas:
Developed Xilinx Microkernel (XMK) librariee for EDK
To
develop multi-tasking and multi-processing applications for embedded
systems, a user would require standard programming interfaces
and features for faster software development. These features are
provided by Operating System (OS). But most of the standard OS
are big and not customizable for the applications on Microblaze.
So the kernel library, XMK was developed.
The
kernel has the following features:
Multi-processing support.
Multi-threading support.
Supports scheduling like Round Robin and Priority-preemptive.
Interrupt processing.
Semaphores.
Message Queues.
Dynamic Buffer Management.
Timer routines.
It
was very important to customize the kernel for the application.
And also the code size of the kernel had to be small as it should
not take considerable part of the application. An interactive
shell and web server was implemented as applications using OS.
Developed Profiling tools for ProWare Co-design tool.
The
profiling tool enables a user to do hardware/software co-designing.
The profiling information generated isin gmon.out format, which
can be analyzed by mb-gprof. The profiling provides flat profiling
(histogram) and call graph information. The script and options
for user can be set using proWare tool and the flow run under
EDK framework.
There
are two types of profiling:
1. Profiling software running on hardware.
2. Profiling software running on modelsim simulator. (Also works
with other simulators)
Designed Microprocessor Library Specification (MLD) for EDK
libraries.
The specification provides an easy way to describe parameters
of interest in a library/driver, which user can configure from
either a GUI or text flow.
[Related
Links]
Projects
in IBM
Hmmm..
I worked in IBM for 2 years. I still remember the first day, 9th
August 1999, in Pune when I first joined IBM along with lot other
folks. I have mixed feelings working in IBM. Did some good work
and also lazied around having fun, have good and bad(nightmare)
memories at IBM, met a lot of people, made some good friends(fortunately
I did not make any enemies :-)). Had fun in Pune, Bangalore and
at Raleigh, USA. For personnal memoirs...
At
IBM I was with the Networking Software group, IBM
Software labs, Bangalore, India. And then I also worked for
the Network
Processor Software group, IBM
Microelectronics Division, Raleigh, USA. Some of the projects
that I worked at IBM, in chronological order:
Network Processor Software Group,
IBM Microelectronics Division, RTP, Raleigh, NC - 2/2001-7/2001
At
the Network Processor(NP) group, I was working on IBMs NP4GS3 and
a brief work on NP10GS1. I was in the software group, was responsible
for developing user APIs for the Network Processor Management Services(NPMS).
NPMS is a control point component and provides an interface for
booting, initializing, configuring the NP and various components.
It also provides API for managing and monitoring the NP. I worked
with Rick Blaisiak, and was invloved in the design and development
of some of the APIs. I also worked on Control Access Bus (CAB) module
to support multiple NPs, provide ethernet interface to the NP reference
board and loading boot code to the NP. The work involved understanding
the NP architecture components(Embedded Processor Complex, NP dataflow,
NP Scheduler), NP booting sequence, general fundas and ofcourse
hardware glitches and how to overcome them in software :-) It was
a great learning experience and ofcourse my first work in US, so
was fun.
[Related
Links]
Networking
Software Group,
IBM Software Labs, Bangalore, India - 8/1999-2/2001
Development
of Bluetooth wireless stack for QNX Neutrino RTP.
Bluetooth represents a wireless communication protocol, which is
envisioned to be used for Personal Area Networks and ad hoc networks.
The Bluetooth stack on QNX represents an ideal working environment
for future intelligent embedded devices. The Bluetooth stack developed
was based on the specification Ver 1.0b. An application was written
and the stack was tested using a Ericson development kit.
[Related
Links]
Development
and support of Nways SNMP manager and Nways Performance Manager
Tool.
Nways are IBM range of routers, switches, bridges and hubs.
Nways Manager is an SNMP manager that can be used to configure,
deploy and monitor the performance of these devices. Nways Manager
supports a wide range of IBM routers and switches,8265 IBM ATM Campus
switch, 2210 IBM Multiprotocol Router,etc. The project involved
development, support and enhancement related to any IBM Nways customer
problems. I worked on problem that dealt with the interaction between
Nways SNMP Manager and Netview another IBM product. Enhancement
were done in Nways code and also further enhancement suggested to
Netview to solve the customers problem. I also worked on the
enhancement of Java performance monitor, one of the software modules
of Nways Manager.
[Related
Links]
Global Application Delivery Group,
IBM India, Bangalore, India.
DART
- Data Analysis and Reporting Tool for Lotus Domino database.
The reporting tool for the On-Track Lotus Notes Tool aims at the
user being able to generate easy, customized reports and generate
graphs, charts, etc. This tool helps in project management. The
database was a Lotus Nots database, designed for the On-Track Tool.
The tool communicates with the Notes database through a Domino Java
DataBase Connectivity (JDBC) Driver. The GUI was designed using
Swing 1.1.1. The GUI insulates all the database details from the
user and makes it user friendly. The GUI was designed on the Model-View-Controller
(MVC) architecture. The tool also communicates with the MS Excel
(for graphs, charts,etc) application through Dynamic Data Exchange
(DDE).
[Related
Links]
Other significant projects
in School
Graduate
Projects
Remote
truck controller using Atmel Atmega103
Embedded
System Design course
North
Carolina State University, Raleigh, NC, 1/2002-5/2002
Designed a controller with drive-by-wire joystick, automatic obstacle
localization, collision avoidance/seeking ultrasonic sonar features
[Related
Docs]
Thread
library and kernel programming
Operating
Systems course
North
Carolina State University, Raleigh, NC, 1/2002-5/2002
Implemented user-level thread library and synchronization routines
on Solaris and file snapshot facility using copy-on-write for Linux
kernel
Decaf
compiler
Compiler Design course
North
Carolina State University, Raleigh, NC, 1/2002-5/2002
Decaf is a subset of Java language. Jasmin is an assembler, that
generates Java Class files, given a .j file. The decaf compiler
generates a jasmin file given a decaf program input. The jasmin
file can be compiled using jasmin, when can be then run on Java.
[Related
Docs]
USERS
User Specified Efficient Reliable Service.
Internet Protocol course work.
North Carolina State University, Raleigh, NC - 8/2001-12/2001
The main objective of the project was to develop a user-specific
Simple Reliable Transport Service(SRTP) over UDP. There are two
main reasons why one would want a separate transport layer, instead
of using reliable TCP transport layer.
TCP provides reliable transport, but there are some applications
that do not require the complexity of TCP. TCP is not flexible.
So applications, which require simple reliability, use UDP and have
their own reliability service. Such applications would benefit,
if they can select the reliable service they require of the transport
layer.
For some applications like wireless networks, TCP is not
the ideal medium of transport. TCP performs badly in wireless networks,
because of the way it handles congestion in the networks. Such applications
should be able to implement their custom algorithm to get the best
out of the transport layer.
Our SRTP was designed to provide the user, option to select reliability
services, capability to implement their own algorithms and with
scalability in mind.
[Related
Docs]
Undergraduate
Projects
Simulator,
Assembler and Compiler for Intel 8086 processor.
System Software and Compiler Design course work
College of Engineering Guindy, Anna University, Chennai, India -
7/1997-6/1998
As part of the Systems Software course, a simulator for the
8086 subsystem was developed. A sub-set of the Instruction Set was
taken and a simulator was implemented. An assembler for the 8086
simulator was developed. The assembler developed was a two-pass
assembler, supporting linking and capable of loading relocatable
code to the system. The assembler though simple, helped in better
understanding of assembly programming, improving programming technique
and familiarity with various data structures and algorithms.
As part of the compiler Design course, a compiler for the subset
of the 'c' compiler was developed. The compiler generated an assembly
language code, which was assembled by the assembler developed for
the 8086 simulator. This work helped in understanding different
stages of compiler writing, starting from syntax analysis, semantic
analysis, intermediate code generation and code generation.
[Related
Links]
|