Hardware description languages and simulation, e.g. Verilog/SystemVerilog. Overview of FPGA technology, automatic synthesis tools for FPGA. Timing diagrams, delay reduction techniques. Tri-state drivers, buses, handshake protocols, commercial bus examples. Memories, e.g. SRAM and SDRAM. Clock generation, clock skew, use of PLL. Asynchronous systems, arbitration. Metastability, synchronization failure, synchronizers, FIFOs and elastic buffers, empty/full flag synchronization. Serial transmission and reception, clock recovery, framing. Laboratory exercises of small and medium size circuits on FPGA boards, after design and simulation using Verilog/SystemVerilog. Laboratory experience with logic analyzers, handling of clock signals, busses, memories and serial communication.
Learning Outcomes
Knowledge: Having attended and succeeded in the course, the students will possess the fundamental knowledge of digital system design and will be familiar with the languages and the tools for implementing digital circuits in field-programmable logic technologies (FPGA). Understanding: Having attended and succeeded in the course, the students will have understood the methodologies of designing and implementing digital circuits with hardware description languages such as Verilog. Application: Having attended and succeeded in the course, the students will be able to implement and validate real digital circuits in the lab on FPGA boards. Analysis: Having attended and succeeded in the course, the students will be able to analyze the functional and operating requirements of digital circuits in terms of clock frequency and area. Synthesis: Having attended and succeeded in the course, the students will be able to organize circuits into sub-blocks, combine and modify the individual circuits taught in the course, and synthesize new solutions to achieve optimized circuits. Evaluation: Having attended and succeeded in the course, the students will be able to evaluate the performance of digital circuits, measure their quantitative characteristics, and compare alternative descriptions and implementations of digital circuits.
Student Performance Evaluation
Specific details on grading can be found on the course’ s website
The courses of the Computer Science Department are designated with the letters "CS" followed by three decimal digits. The first digit denotes the year of study during which students are expected to enroll in the course; the second digit denotes the area of computer science to which the course belongs.
First Digit
Advised Year of Enrollment
1,2,3,4
First, Second, Third and Fourth year
5,6
Graduate courses
7,8,9
Specialized topics
Second Digit
Computer Science Area
0
Introductory - General
1
Background (Mathematics, Physics)
2
Hardware Systems
3
Networks and Telecommunication
4,5
Software Systems
6
Information Systems
7
Computer Vision and Robotics
8
Algorithms and Theory of Computation
9
Special Projects
The following pages contain tables (one for each course category) summarizing courses offered by the undergraduate studies program of the Computer Science Department at the University of Crete. Courses with code-names beginning with "MATH" or "PHYS" are taught by the Mathematics Department and Physics Department respectively at the University of Crete.