Design and Implementation of Synthesizable VHDL Model for General PCMCIA I/O Cards Controller

The portable and nomadic computer market has driven the development of PCMCIA Cards to address the expansion needs for the user. These cards provide a vast variety of hardware devices which are rugged, credit-card sized, lightweight, and power efficient. These cards are easy to use, especially for the non-technical user. Since the sockets are accessible from the outside of the system, the system does not have to be powered-off, opened, and rebooted to add or remove a device. This dynamic insertion and removal feature inherently makes these devices power manageable and also allows devices to easily be shared among different computers. This paper is concerned with type II PC cards, which mean I/O cards, therefore a design and implementation of synthesizable VHDL model for control system (Controller) of the PCMCIA I/O cards is presented. The implementation of the control system (controller) has been done by using very high speed hardware descriptive language (VHDL) and its implementation on field programming gate array (FPGA) type Xilinx Spartan 2 (XC2S30-6 Pq208) by using synthesis and implement tools of ISE6.3 program. The used of FPGA technology is optimal for this paper because it offers high reliability and flexibility in modifying and even developing the required design with a reduction in the required number of hardware components, also the non recurring engineering cost. The timing behavior of the controller is be tested and verified to ensure that it meets the performance requirements by using simulation tools of Active-HDL program AND Daley report of ISE program, therefore examples of simulation results of read/write transfers for both an attribute memory and I/O devices are presented in this paper.


Introduction
The PC Card Standard provides physical specifications for three types of PC Cards, with additional provisions for extended cards.All three card types measure the same length and width and use the same 68-pin connector.The only difference between the card types is thickness.The thicknesses are 3.3, 5.0, and 10.5 millimeters for Type I, Type II, and Type III cards respectively.Because they differ only in thickness, a thinner card can be used in a thicker slot, but a thicker card can not be used in a thinner slot [1].
The card types each have features that fit the needs of different applications.Type I PC Cards are typically used for memory devices such as RAM, Flash, OTP, and SRAM cards.Type II PC Cards are typically used for I/O devices such as data/fax modems, LANs, and mass storage devices.Type III PC Cards are used for devices whose components are thicker, such as rotating mass storage devices.Extended cards allow the addition of components that must remain outside the system for proper operation, such as antennas for wireless applications [2,3].

The I/O PCMCIA Cards
I/O (Input/Output) cards are actually devices to perform some special function.I/O devices are instruments that control incoming and outgoing data flow.Traditional I/O devices for desktop PCs come in the form of interface cards that are plugged into the slots on the mainboard of the computer and include such devices as network cards, modems and fax modems.
In order to support portable computers, which do not support the installation of interface cards; these devices were designed as PCMCIA cards which could be plugged into the standard PCMCIA slot used for memory cards.I/O PCMCIA cards are usually Type II cards, i.e. cards of 5mm thickness [4].
However that I/O cards are available from a number of different manufacturers and there are different applications for this type of cards, though there is a most important common component among the basic structure of these cards which is the controller that controls I/O and Attribute memory transfers, so that the subject of this paper is the controller.
In this paper, a general PCMCIA controller for all types of I/O cards is designed by using VHDL language as a software environment based on FPGA.

The Proposed PCMCIA I/O PC Card Controller Description
The controller is used to implement PCMCIA type II compatible I/O cards as shown in the system block diagram and in the internal chip block diagram (FPGA) in Figure (1) 4) to (7) show examples of these timing diagrams.
Once the high-level design is validated, the process of physically implementing the design begins [5,6].First the VHDL source code of the controller design is synthesized using ISE (Integrated Software Environment) FPGA Express software.Synthesis takes the behavioral description of the design and formulates the physical layout of the circuit and the result is optimized for the targeted device (XC2S30-6 Pq208) as shown in figure (8), which is summarized an output of synthesize report of ISE Package.

Implementation of the Design for Proposed I/O Controller and Report Summary
The design implementation is concerned with the exact selection of the circuit primitives and their placement and routing within some given constraints.This process has several steps: the first step is to translate the design, which includes a produce to a complete hardware design.Then the map step that translate the gates level design into hardware primitives available in (XC2S30-6 Pq208) FPGA.Once the design has been applied to these primitives they must be assigned to physical locations on the chip and route the connections between them, this task is the function of the place and route [7,8].Once the design is fully placed and routed accurate timing information about the design can be generated and the design can be downloaded to the FPGA and tested.
In this paper the design is implemented by the implementation tools of ISE package, after the completion of the implementation steps an implementation reports file for each step will be generated as shown in figures (9), (10), (11), (12), and (13) consecutively.
When the process of generating a device-level implementation of the design is complete, the results can be examined using floor planner as shown in figure (14).

Conclusion
In this paper, a complete design for general PCMCIA I/O Cards Controller has been made based on VHDL and FPGA as software and hardware respectively.Using FPGA in the development of the proposed controller provides a cost-effective method with high flexibility for tolerating permanent faults in the system through its configuration.
Using FPGA technology in the design of this controller has also enabled to replace

762
a number of chips in the exiting system results in a reduction in the number of hardware components and substantial area reduction.Moreover, the low cost of implementation and short time needed to physically realize the design using this approach, is provided enormous advantage over traditional approaches for building prototype hardware which is in turn leads to improve the performance of the system with higher flexibility in achieving such requirements.
From the first look to the figure of the Delay report, it can be noted from the netlist delays that the delay of the net "REG_IBUF" is the limiting factor that limits the whole design's speed.However, this delay is very little as compared with bus speed (10 MHz) so that there is no problem from this delay in the proposed design.

Future work
Based on this design and the results of the proposed system, the following points are suggested for future work to improve the system performance.1.Using improved versions of synthesis tools when they are available, this is because the limiting factor in developing more complex designs on hardware systems are synthesis tools.