# Related courses

The EIT department has several advanced courses that have a natural connection to this course. In the presentation below we divide them into three course packages, though you should not see these packages as independent. These packages are denoted Digital design, Computer design, and Information processing.

## Digital design

This course, **EITF65 Design of Digital Circuits - A Systems Approach**, covers how to design a digital circuit from a state model to a working circuit. You will also get an introduction to VHDL and FPGAs and how a circuit can be realized in actual hardware. It gives you a general understanding of digital circuits, how they are constructed and how they can be programmed.

** **

In the project course **EITF40 Digital and Analogue Projects**, you can use your knowledge from this course, together with what you learn in **EITF70 Computer Organization**, in order to do a digital project. It is a 7.5hp G2-level course in VT1 and the project typically involves constructing a system or device, combining different building blocks. The design usually also includes programming in e.g., VHDL or some other language in order to specify the behavior of one or several blocks. The system will be built using low level hardware. No shortcuts using e.g., Arduinos will be used, so the course does not overlap project courses based on those devices. The project work will include e.g.,

- Designing and analyzing the system
- Knowledge of factors that can affect the system
- Testing and debugging an electronic circuit
- Documenting the system

After this course you will have practical experience building your own systems and circuits of medium complexity. This course is also included in the analogue course package, in which you do an analogue project instead of a digital project.

** **

In integrated circuit design, there are two courses that follow naturally from this course. One of them is **EITF35 Introduction to Structured VLSI Design**. It is a 7.5hp G2-level course in HT1. The course will make you much more acquainted with the VHDL programming language and introduce you to large-scale ASIC design with an emphasis on FPGA implementations. It will focus on VHDL modeling, and the tools used to make state-of-the-art designs. It has a large focus on projects which will give you extensive hands-on experience in creating modern digital circuits using simulation, synthesis, and optimization. The course consists of four main parts

- Design flow based on modern design tools
- Use of VHDL as design language and input for logic synthesis
- Design of synchronous systems by developing clock cycle true models
- Use of FPGAs for rapid prototyping

The course also includes invited lectures from industry which will give you an idea of how this subject is applied in large scale industry systems. After this course you will be skilled in modern VHDL programming and be able to construct advanced circuits that meet the high demands in modern day applications. Since the number of small electronic devices keep increasing, e.g., with the increasing growth of the Internet-of-things, such competences are becoming even more important in the future.

** **

The second course that follows naturally from this course is **ETIN20 Digital IC-design**. It is a 7.5hp A-level course in HT1. It will focus on low level aspects on digital circuit design. Digital gates consist of CMOS transistors and the layout of transistors will affect properties such as power consumption, area and speed. The course will focus on the design of digital gates for specific requirements, which are found in modern applications. The course includes e.g.,

- Overview of parameters that affect the physical characteristics in a transistor or a digital circuit, and how these can be modified in order to optimize area, power consumption and delays in a circuit
- Analysis of digital circuits in CMOS technologies
- Design of arithmetic and combinatorial blocks
- How wire characteristics affect the digital circuit

The course will allow you to understand possibilities and limitations in digital VLSI designs. This is an important complement to the more high level design aspects that you learn in **EITF35 Introduction to Structured VLSI Design** and will make you a much more professional designer. Modern applications are getting smaller while at the same time requiring more computing power and less power consumption. Knowledge and understanding needed to meet these needs is required to become a skilled digital circuit designer, ready to face the challenges of a competitive market.

The course **ETIN45 DSP-design**, a 7.5hp A-level course in VT1, is a digital design course that focuses on how to get from a signal processing algorithm, based on some requirements, to an efficient hardware or software implementation, in a structured way. Digital signal processing is a crucial part of most modern electronic systems and important applications are e.g., mobile communication, computer systems, music and movie players, and medical systems such as pacemakers and hearing aids. The course will give you valuable insight into how a signal processing algorithm can be transformed, using a collection of tools, to fulfill a given set of criteria. The course includes e.g.,

- Relationships between capacity, power consumption and silicon area.
- Processor architectures.
- Characterization and representation of signal processing algorithms.
- Concepts of retiming, pipelining and parallel processing for high throughput and/or low power consumption.
- Complexity reductions in order to reach a more efficient implementation.

After this course you will have the knowledge and the necessary skills to implement advanced digital signal processing circuits in a way that can significantly improve the performance of digital systems.

In the courses **ETIN35 IC-Project 1** and **ETIN40 IC-project 2** you can create your own integrated circuit and test it. For creating a digital chip, the students apply their knowledge from **EITN20 Digital IC Design** and **EITF35 Introduction to Structured VLSI Design**. The chips are built in the first course and verified in the second course. The project will give you practical experience of the design process, from the first specification to the finished circuit. These courses are also included in the analogue course package, in which you do an analogue IC project instead of a digital IC project. The courses will together span one year, starting in the spring with the first part.

## Computer design

This course, **EITF65 Design of Digital Circuits - A Systems Approach**, introduces how bits can be manipulated and covers how to design a digital circuit. Interpreting and manipulating bits is the fundamental functionality of a computer.

The course **EITF70 Computer Organization** gives an introduction to computer systems and how they work on machine language and hardware level. It is a 6.0hp G2-level course in VT1 in which you will learn about the different components of a computer system and how the computer is designed to interpret low level instructions and manipulate bits. The course includes e.g.,

- How data is represented
- Basic computer arithmetic
- Components of a computer system
- Machine language level programming

Understanding how computers work on a low level, e.g., interrupts, registers and how memory is addressed, will not only give you insight to the possibilities and limitations of computers. It will also make you a better programmer for high-level languages. Through a set of laboratories, you will also get hands-on experience with programming and design, as well as debugging and how a computer can communicate with the outside world.

The course **EITF20 Computer Architecture**, will give you a much more in-depth knowledge of how modern computers are designed. It is a 7.5hp A-level course in HT2 covering the operation of computer systems at the level Instruction Set Architectures (ISA), i.e., the hardware/software interface. Pipelining and memory hierarchies, including caches, are covered in detail. The course includes e.g.,

- Computer Performance
- ISA principles
- Pipelining of instructions
- Memory systems
- Input/output

After this course you have an understanding of the design principles that govern modern computer architectures and their components. This makes you well prepared to work with computer system design.

The other courses in this course package are also in the digital design course package. What you learn in **EITF20 Computer Architecture **can be used together with what you learn in **EITF35 Introduction to Structured VLSI Design **(see more information about this course above)in order to conduct an IC project in computer design.

## Information Processing

This course, **EIT020 Design of Digital Circuits - A Systems Approach**, introduces how bits can be manipulated and covers how to design a digital circuit. When bits representing information are sent over a channel, e.g., over the air, in a wire or in an optical fiber, they have to be processed, typically several times. An overview of this process can be given as follows.

The information processing course package will give you detailed knowledge about these different steps.

The course **ETTG05 Digital Communications** is a 7.5hp G2-level course in HT1 which gives you basic knowledge of principles, concepts, functioning, performance and limitations of digital communication systems. It gives you an understanding of how the transmitter and receiver work and how digital signals can be modulated, i.e. represented by analog signals. The course includes e.g.,

- Different modulation methods such as PSK, QAM and OFDM
- The receiver and transmitter
- The communication channel
- Applications such as mobile telephony, digital TV, Bluetooth, GPS and surveillance systems

The course also prepares you for the departments other advanced courses in digital communication which will go deeper into the architecture, design and functioning of state-of-the-art communication systems, such as MIMO and channel modeling for wireless systems.

The course **EITN45 Information Theory** is a 7.5hp A-level course in VT2 which gives you knowledge of the principles for information storage and transmission of information. The theory of how information can be processed is the basis of all efficient digital communication systems both today and tomorrow. This theory can be used to give important bounds on what is possible to achieve in a communication system, e.g., how much data can be compressed without losing information and how fast it is theoretically possible to transmit data over a channel. The course includes e.g.,

- Entropy and information
- Source coding, i.e., compression of data
- Channel coding and how this can improve the rate at which data can be sent
- Channel models on different levels reflecting transmission impairments like noise and attenuation

The course emphasizes both the formal development of the theory and the engineering implications for the design of communication systems and other information handling systems.

The course **EITN70 Error Control Coding** is a 7.5hp A-level course in HT2 which focuses on how blocks or streams of bits can be encoded such that channel errors can be detected and automatically corrected. Error control coding is also closely related to the linear systems and shift register theory provided in this Design of Digital Circuits course. The course includes e.g.,

- Block codes and convolutional codes
- How data can be encoded together with advantages and limitations for different methods
- Concatenated codes
- Minimum distance and other important properties defining the properties of a code

Channel coding can allow bitrates that approaches the theoretical limits and is thus a very important component of any digital system. It is also used when storing information in e.g., DVD or Blu-ray discs.

In **EDIN01 Cryptography, **a 7.5hp advanced level course in HT2, you will get an understanding of how important security aspects can be added to the data before it is transmitted or stored. Several modern designs are covered. You will learn how to design and analyze many types of cryptographic algorithms. Examples of topics in the course is

- Classical cryptography, e.g., Caesar ciphers, substitution ciphers and rotor machines such as Enigma
- Stream ciphers and their building blocks, e.g., shift registers and nonlinear combiners.
- Block ciphers, e.g., DES and AES.
- Public key cryptography, e.g., basic number theory, RSA, factoring, primality and digital signatures.
- Hash functions, e.g., properties and collision attacks.
- Authentication codes, e.g., impersonation and substitution attacks.
- Secret sharing, e.g., Shamir’s threshold scheme, general secret sharing, perfect and ideal schemes.

After the cryptography course you will be able to make decisions concerning specific cryptographic primitives and determine which algorithms are suitable in a given environment.