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

Introduction to the combined use of Gezel with a VHDL simulator

Tutorial 01 on Dedicated systems

Teacher: Giuseppe Scollo

University of Catania
Department of Mathematics and Computer Science
Graduate Course in Computer Science, 2018-19

Table of Contents

  1. Introduction to the combined use of Gezel with a VHDL simulator
  2. tutorial outline
  3. hardware models in Gezel
  4. example: Collatz trajectories
  5. automated translation to VHDL and simulation
  6. operational tips
  7. references

tutorial outline

this tutorial deals with:

hardware models in Gezel

single-clock synchronous digital circuits, composed of an interconnection of:

thus also including widely used components such as: registers, adders, multiplexers etc.

what cannot be modeled: asynchronous hardware, HW with latches, multi-phase clocked HW etc.

example:

Schematic of a hardware  component

Gezel model of the hardware component

Behaviour of the hardware component

Schaumont, Fig. 1.1 - Models and behaviour of a hardware component

example: Collatz trajectories

reconsider the example seen in the first lecture:

Hardware datapath for the Collatz trajectory from <i>x</i><sub>0</sub>

dp collatz ( in start : ns(1) ; in x0 : ns(16) ;
                  out t ns(32)) {
    reg r : ns(32) ;
    sig x : ns(32) ;
    always {
          t = r ;
          x = start ? x0 : r ;
          r = x[0] ? x + (x >> 1) + 1 : x >> 1 ;
    }
}

what can be done with such a model?

industrial development tools need descriptions in standard languages such as VHDL or Verilog ...

automated translation to VHDL and simulation

the code generator of the Gezel platform yields a translation into synthesizable VHDL

lab experience:

  1. install the Gezel base software and its VHDL code generator
  2. get the source file collatz.fdl containing the Gezel example description
  3. run the translation from the command line: fdlvhd collatz.fdl
  4. install Quartus Prime Lite 16.1 by Intel Corp., launch it, and then in this system:
  5. create a new Quartus project named collatz
  6. copy the .vhd files produced by step 3 into the project directory
  7. assign the aforementioned files to the project and compile
  8. check any error or warning messages
  9. set the clock to a frequency that warrants a positive value for the worst-case slack
  10. create test waveforms for the collatz circuit, with clock input corresponding to the frequency established in the previous step and value 27 for the trajectory start
  11. run the functional simulation
  12. repeat the simulation for different trajectory starts

operational tips

a few tips to perform the lab experience on Ubuntu 16.04:

  1. Gezel installation tips for the VHDL code generator
  2. Quartus Prime Lite 16.1 installation and startup tips on Ubuntu 16.04
  3. Quartus project assignment tips
  4. clock fine tuning tips using Quartus TimeQuest Analysis
  5. tips on using Quartus ModelSim

references

recommended readings:

for further consultation:

other useful material for the proposed lab experience: