It started of the verge of 7 th sem. Final exam. We had been looking for a project on technology that is very new and challenging. We were seeking an opportunity to show our caliber. At the right moment, we received a mail from Prof. Dr. Kamakoti, IIT Chennai. The mail looked like this:

 

What? A Verilog PCI Express Bus Model

 

How? PCI Express contains 3 layers

•  Transaction Layer

•  Data Link Layer

•  Physical Layer

The layers are connected with 2 bus.

 

No. of students: 6

Each module can be implemented by a group of 2 students.

 

It was all Greek and Latin to us. No one knew what exactly PCI Express was. We never knew that the language called Verilog exists.

 

Though our pursuit for new technology was there, the project title made us think for quite a sometime to decide whether to go along with it. We discovered later that Mr. Kishore Andukuri from ECE dept. of ur college had competence in Verilog. We sought help from him. We were given a small project to warm up the Verilog concepts. The project was

•  to design a 4-bit DSP processor

•  to develop a compiler in C \ C++ that will compile assembly code to machine code for the 4-bit DSP processor designed.

 

It took around a week to complete the design of DSP processor. But we felt short of time to go with design of compiler. Thus the idea of designing a compiler was dropped. This project boosted our confidence in Verilog. But PCI-Express still remained alien to us. We could hardly find useful information about PCI-Express in net. The reason being that it is highly proprietary.

 

The process of learning started with PCI. WE purchased a book on PCI by Tom Shanley, Mindshare Inc. For a beginner it is quite a difficult book. We lacked basic concepts on Bus. So, we moved to A+ complete H/W book that gave us glimpse of Bus history and functionality of different bus. Week after we started delving deep into PCI. We're asked to implement PCI Master Compliant device in Verilog. But we failed to do that.

 

Meanwhile, Rahul succeded in getting a book on PCI-Express by Mindshare Inc, Dan Anderson, Tom Shanley & Ravi Budruk. It proved to be a valuable asset to us. We came to know what makes up the PCI-Express Bus?

 

It's mid Jan, when we started scribbling code for PCI in C in Linux. Mr. Shakti from Hexaware was kind enough to send us a code snippet on PCI. It's all about checking the availability of PCI card in the system and reading configuration space. We had an idea of getting acquainted to device driver programming for PCI. We too received a helping hand from Mr. Sam and Mr. Naveen from PhotonInfotech, Chennai. Sam provided us with extensive code that was quite helpful in understanding PCI. We presented the piece of code on PCI to our internal guide Mr. Manickavasagam. Unfortunately, our approach was not approved. He wanted us to send a packet from one layer to another and make them communicate.

 

It's Vishwanath who came up with an idea of Socket programming in Unix in C. he made four different processes communicate with each other. The concept looked analogous to PCI-Express Architecture implementation

 

It was then end of Jan.

 

We're asked to start coding for PCI Express form 1 st week of Feb. Prof. Kamakoti was due to visit our college on 11 th Feb. We felt panicky with the fact of his visit to our college. We had literally nothing to show him. Fortunately, we're able to transfer a dummy packet from one device to another just before the day of Prof's arrival. The implementation lacked almost entire PCI Express Specification. We got an opportunity to have word with Prof. Kamakoti for about half an hour. His inspiring speech stirred up our interest more in PCI Express. Our morale got boosted up and everyone felt rejuvenated. He fixed the schedule to be followed in due course of developing the bus model for PCI Express. The tight schedule made us work hard in short period of time.

 

As a result, we have been successful in implementing the basic PCI Express specification within a month. Though there are umpteen features to implement, we satisfied ourselves with the model that contains two devices communicating with each other using packet based protocol from PCI Express Specification.

 

Preparing documentation turned out to be a Herculean task. We decided no to include contents as it is in PCI-Express base Specification, Revision 1.0a, April 2003. We included only the specifications related to our implementation. That gave our documentation a new look.

 

Ultimately with constant motivation from God and our internal guides and perseverance of all of us the project turned out to be a great success.

 

 

 

 

Hosted by www.Geocities.ws

1