AN 495: IDE/ATA Controller Using Altera MAX Series

ID 683523
Date 9/22/2014
Public

1.2.2. PIO Controller Block

The PIO controller block contains the PIO state machine. Whenever the host sends a read or write request, the state machine goes through the appropriate read or write states, resulting in data transfer.

A module called the piomodecontroller in this block determines the states through which the state machine should proceed. Another module called the runoncecounter loads the count value to generate the required delays as per the read or write timing requirements. The count value is loaded through parameters called piomodet1, piomodet2, piomodet4, and piomodeteoc.

The default values loaded in this design example are for a processor operating at a frequency of 100 MHz. These parameter values may be modified for a processor operating at a different frequency. A third module called the updowncounter decrements the count loaded on each clock pulse, thus generating the required delay.