ICED FPGA Interface

University of Rhode Island - ELE Dept.


 

Timing

As I've said a million times, in digital systems timing is everything.

In particular, I'm now going to describe and show what happens when there are 1) writes to, and 2) reads from
the slave interface using a C  program running on the Host ("host program", such as icmon). Recall that the "Host" is
just the Sun workstation that physically contains the VCC EVC1 FPGA card.

  1. Writes: a write to the EVC1 is initiated in our host programs by assigning a value to an element of the "evc" array, viz.:

  2.     evc[0] = 529;
    In the above example, the number "529" is written to the EVC1. The physical details:
  3. Other writes: evc[1] through evc[7] are defined and correspond one-to-one with EVCADR(1) through EVCADR(7). They work the same way as evc[0] and EVCADR(0). All of these array elements are assumed to be 32-bit (4-byte) words.

  4. EVC1 Timing Diagram


     
     
  5. Reads: a read from the EVC1 is initiated in our host programs by assigning the value of an evc array element to wherever we want the data, say "temp":

  6.     temp = evc[8];
    The data that gets read is whatever happens to be on the 32-bit SDATO bus in your hardware design when the C assignment is executed. Details:

 
September 19, 2000 | Gus Uht | uht@ele.uri.edu