pencil and rubber

Logo of Triple-A Level WCAG-1 Conformance, W3C-WAI Web Content Accessibility Guidelines 1.0

XHTML 1.0 Conformance Validation CSS 3 Conformance Validation
Logo of Department of Mathematics and Computer Science, Course on Dedicated systems, link to Forum

Hardware interfaces

Lecture 11 on Dedicated systems

Teacher: Giuseppe Scollo

University of Catania
Department of Mathematics and Computer Science
Graduate Course in Computer Science, 2017-18

Table of Contents

  1. Hardware interfaces
  2. lecture topics
  3. functions, layout and design of hardware interfaces
  4. programmer's model
  5. address map
  6. instruction set
  7. example: design decisions for a hardware acceleration case
  8. Avalon interface and programming model for the sample case
  9. references

lecture topics

outline:

functions, layout and design of hardware interfaces

seminar by Salvatore Mameli (PDF, in Italian)

programmer's model

programmer’s model = control design + data design

the programmer’s model, that is the software view of a hardware module, includes:

a few considerations follow about the impact that these two kinds of design decisions have on the design of the software driver of the custom hardware module

address map

the address map reflects the organization of software-readable and software-writable storage elements of the hardware module; its design should consider the viewpoint of the software designer rather than the hardware designer, thus:

instruction set

the design of a good instruction set is a hard problem, that requires the codesigner to make a proper trade-off between flexibility and efficiency

here are a few generic design guidelines:

example: design decisions for a hardware acceleration case

a recent lab tutorial presented a software implementation of the delay computation of a Collatz trajectory with given start point

hardware implementations of the same function were the subject of previous lab experiences

the performance measurements carried out on the software implementation show that it consumes almost all of the program execution time

a first alternative to evaluate: to integrate the hardware function as a custom instruction or as a memory-mapped coprocessor?

other design decisions depend on this first decision, as follows

Avalon interface and programming model for the sample case

the VHDL description of the circuit which computes the function is to be embedded into a component equipped with Avalon interfaces for the Clock, Reset, and Avalon MM Slave signals, so as to receive the initial data by a write operation and to return the result by a reply to a read operation

addressing of the coprocessor: since the (initial data) write and (final result) read operations take place at different times and have the same data size, a single address suffices

software driver : two macros and a function may be defined for the bus access software interface: DC_RESET(d), DC_START(d,x0), unsigned int delay(d), where d is the address assigned to the coprocessor

references

recommended readings:

for further consultation: