فارسی | En


Undergrad Courses:


  • Electronic System Level (ESL) Design Methodologies
  • Course Description

    The design productivity gap is measured as the number of available gates per chip and the number of actually used gates per chip for a given silicon technology. This gap might have been avoided if Electronic System Level (ESL) methodologies would have been deployed in all areas of system level design like specification, synthesis, verification, etc. In other words, the generally accepted solution to this problem is to raise the design abstraction level above Register Transfer Level (RTL), using ESL languages and methodologies. This course focuses on digital system design flow that starts with system level description in MATLAB and then continues with traditional digital design flow. High level synthesis tools enable us to convert system level designs to RTL ones which are then synthesized into gate level using logic synthesis tools. Finally we make use of physical design tools to create a layout which is verified and then fabricated on chip. During this course, we introduce available CAD tools which assist designers to reach the layout in ASIC design or logic on FPGA from high level descriptions in C/C++, SystemC or MatLAB.

    Topics

    1- Introduction to ESL Concepts

    2- Using MATLAB/Simulink for FPGA Prototyping

    3- From C to RTL Using Chisel

    4- From SystemC to RTL Using CatapultC

    5- Generating pipelined designs

    6- System Level Design Using Simulink (C to FPGA)


  • FPGA-based Embedded System Design
  • Course Description

    In this course we discuss the design of hardware/software systems using processor and other hardware cores. Using configurable cores, as well as customization of available processor cores for specific applications is covered in this course. While discussing various bus and switch structures and available design environments for FPGA and ASIC embedded design environments, the focus of this course will be on using a specific design environment and implementation of designs on an existing FPGA and using a development board for that FPGA.

    Topics

    1- Introduction to Digital System Design Flow

    2- Altera FPGA and CAD Tools

    3- Elements of Embedded Design

    4- User Defined Hardware Cores

    5- Embedded Hardware Cores

    6- Communications and Busses (Serial Busses, AMBA, Avalon)

    7- Embedded System Implementation

    8- Embedded System Design using Nios II Processor

    9- Operating System Support for SOPC Design


  • Digital System Verification