入学要求:
学术要求:Applicants are expected to hold an appropriate honours degree at 2.1 standard or the equivalent from a university recognised by the University of York. This degree should have a significant electronics and/or computing content
英语要求:IELTS 6.0 (6.5 preferred)
学费 Tuition Fee:2011/2012 International Students: £15,600
课程特征 Course Features:
The MSc in Digital Systems Engineering is a one-year full-time taught programme that makes extensive use of the knowledge and expertise from our well established Intelligent Systems Research Group.
It is intended to provide students with a good theoretical background and solid hands-on experience of the techniques used in modern digital systems design. Using FPGAs as a hardware platform and VHDL as a design language, the programme provides students with:
a balanced picture of state-of-the-art digital systems design methods
a sound theoretical and practical knowledge of digital devices, tools, data networks and operating systems
the ability to learn new techniques to keep up-to-date with new developments in an industrial and/or research setting
experience of the use of industry-standard tools to make them attractive candidates for prospective employers in the field
experience of working within a group and of the important management skills required by industry
hands-on experience of the different stages of the design of a modern digital system, which will culminate in the construction of a complex device (for example, an FPGA-based MP3 player)
课程内容 Course Content:
Programme Content
The programme aims to provide a broad-based introduction to state-of-the-art digital system design techniques and to provide a solid grounding in both theory and practice. It is suitable for students wishing to pursue a career in digital electronic industry and research. The programme comprises the following modules:
1.Introduction to Logic Design with VHDL
2.Digital Design Techniques
3.Digital Design
4.Embedded Computer Systems
5.Group Project: Object Oriented Programming using Java
6.Engineering QA Principles and Project Management
7.Data Communications Techniques
8.Advanced Digital Design
9.Embedded Systems using FPGAs
10.Computer Operating Systems for Digital System Engineering
11.Distributed Computer Systems
12.Advanced Multimedia Applications
13.Design Exercise
14.Network Security
15.Pervasive Computing
16.Corporate Governance and Human Resource Management
17.Group Project
Optional Non-assessed module:
18. Computer Programming Using C
Please note that the detailed module contents are subject to change. The information provided here describes the current contents of the modules that we intend to include in the MSc.
1. Introduction to Logic Design with VHDL
Aims:
The aim of this module is to provide a revision of digital components and design techniques. The study will be guided throughout by examples using VHDL. An introduction to alternate hardware description languages (e.g. Verilog, SystemC) will provide an overview of their features.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand the design flow, as applied to VHDL designs, of digital systems and compare it to schematic entry.
Understand the limitations and advantages of such design flows.
Design and simulate (using scripts) simple digital circuits (e.g. simple arithmetic circuits) with VHDL.
Appreciate similarities and differences between HDL languages (e.g, Verilog, SystemC).
2. Digital Design Techniques
Aims:
The aim of this module is to provide knowledge and practical experience of advanced digital design methods and techniques. This will be achieved by studying how computation can be mapped on hardware through custom processing units. Theoretical aspects will be accompanied by a physical implementation in hardware of a small dedicated processor.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand and acquire practical experience of advanced sequential and combinational circuit design using VHDL.
Understand the issues related to the use of VHDL for the synthesis of digital circuits.
Understand data processing architectures and appreciate the issues involved in their design.
Use hierarchical design techniques to implement complex designs (e.g. a simple processor) from gate level using VHDL.
Use advanced simulation techniques (scripts, VHDL test-benches).
3. Digital Design
Aims:
The aim of this module is to re-establish some of the justifications for digital design as well as provide a revision of digital components and design techniques. In particular finite state machine design will be considered. Much of the work will be related to practical designs and illustrated using VHDL.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand and make use of finite state machines in the design of digital circuits.
Appreciate implementation issues when designing finite state machine architectures and how these affect circuit design.
Understand the theory and use of flags and semaphores.
Appreciate strengths and limitations of pipelining digital designs.
Use pipeline design techniques to construct arithmetic circuits.
4. Embedded Computer Systems
Aims:
The aim of this module is to consider the design and implementation of embedded systems and in particular to introduce the concepts of fault-tolerant design in electronic systems; both hardware and software, to define and characterise embedded systems and to study these aspects of real-time systems in the context of real-world case examples. Such studies will include an investigation into the concepts involved in ILP and TLP parallel processing and the exploration of the use and design of memory systems, with particular reference to hardware.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Assess the requirements for a real-time system.
Select real-time system designs and implementations.
Evaluate the limitations of real-time system implementations.
Assess the problems involved in high reliability system design.
Develop mathematical quantities related to reliability engineering.
Make informed design decisions relating to increasing the reliability of both hardware and software systems.
Make informed decisions regarding a particular application and the suitable architectures.
Consider in detail the design of Cache memories.
Understand state-of-the-art parallel processing approaches (e.g., ILP, TLP, systolic arrays).
5. Group Project: Object Oriented Programming using Java
Aims:
This module aims to introduce students to object-oriented design and programming in support of the group project and to give students a practical introduction to writing and running Java programs as an example of an object-oriented programming language.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Use object-oriented techniques in the development of small, medium and large software systems.
Design, implement and test Java programs
6. Engineering QA Principles and Project Management
Aims:
This module aims to introduce the student to the Quality Assurance processes applied to medium to large projects in industry. In doing this the module will introduce students to different types of projects, the role of the project manager and project life cycles and will develop competence in use of project management tools and techniques.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Organize work in a team following quality assurance procedures.
Demonstrate skills in design, coding and testing regimes.
Understand a company's interpersonal operation, and to place their own contribution within this context.
Explain the meaning of common project management terminology.
Use a work breakdown structure to describe a project.
Produce a project network and analyse its critical path.
Explain how risk can be managed through project management.
7. Data Communications Techniques
Aims:
The aim of this module is to provide an understanding of communication systems and techniques that underpin digital technologies. In particular communication systems used with embedded systems.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand the differences in synchronous and asynchronous interactions.
Understand the error control techniques applied to ensure data integrity within digital networks.
Understand the necessity for flow control and the techniques that can be employed to provide it.
Understand practical digital communications techniques such as clock embedding and recovery, line coding, DC balancing, serialisation and de-serialisation, buffering and buffer control. Also analysis techniques such as eye-diagrams.
Understand the operation of standard communication hardware (e.g. RS232, USB, Bluetooth).
8. Advanced Digital Design
Aims:
The aim of this module is to provide knowledge and extended experience in producing advanced digital designs using a VHDL-based design flow. The main steps in the design flow will be analysed, highlighting the differences due to the target substrate (different FPGA architectures, ASIC). Some advanced digital design techniques will be examined, ranging from state machine design to asynchronous logic. The problem of fault tolerance will be examined from a practical perspective and several techniques for the detection of faults in a digital circuit will be analysed and applied to a circuit.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Use and understand the complete design flow (synthesis, place and route, floorplanning, timing analysis, etc.) required to implement complex designs.
Appreciate differences in FPGA architectures and how these affect circuit design.
Understand advanced circuit design techniques (complex state machines, clock domains, asynchronous logic).
Appreciate strengths and limitations of fault modelling and detection in digital circuits and integrate test logic in a design (JTAG, TPG, design for testability, BIST).
Use post and pre route simulation to verify designs in the presence of faults.
9. Embedded Systems using FPGAs
Aims:
The aim of this module is to provide a practical understanding of embedded micro-controller based systems through implementation of differing embedded systems using FPGA platforms. Different design complexities will be covered, with reference to the varying options and constraints imposed by different embedded system designs.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Program microcontrollers and DSP microprocessors using both high- and low-level languages and understand the issues associated with such programming (e.g., deadlocks, interrupts, I/Os).
Install and run a Linux kernel on an embedded processor.
Map and implement DSP and other algorithms as hardware accelerators in FPGA.
Design custom peripherals for embedded microprocessors and connect off-the-shelf peripheral components to an FPGA-based system.
Design and implement a complete system on an FPGA board, including hardware components (memories, I/Os), connections, IP modules (MicroBlaze), and custom circuits.
10. Computer Operating Systems for Digital System Engineering
Aims:
This module aims to introduce the characteristics, functioning and limitations of a number of prominent computer operating systems for computing devices.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand, compare and contrast the leading computer operating systems.
Understand the implementation and limitations of core components within a modern computer operating system.
Understand, contrast and specify the special requirements for an operating system within digital devices.
11. Distributed Computer Systems
Aims:
This module aims to introduce students to the nature of software systems in a distributed environment.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Demonstrate an understanding of a distributed computing environment
Describe the fundamental modes of interaction in a distributed environment and their associated failure models
Explain the need for security and indicate appropriate countermeasures
12. Advanced Multimedia Applications
Aims:
The aim of this module is to provide a practical understanding of the underlying techniques and practical digital processing of video and audio signals for multimedia systems. This will be supported through direct reference to real-world examples and by MATLAB exercises in which some elements of a multimedia processing system are realised.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand the underlying techniques used in digital multimedia systems.
Understand the nature of compressed and non-compressed audio and video signals with reference to multimedia systems.
Be aware of the practical needs of an audio and a video digital processing system.
Understand the role of high-level simulation tools (MATLAB/Simulink) in the design cycle.
Be able to make practical use of DSP software or FPGA hardware for system implementation through appropriate high-level design tools.
13. Design Exercise
Aims:
The aim of this module is to design a FPGA-based development board, embedded firmware and PC-based software tools for communicating with and utilising the board's functions. The board's design will be focused on allowing the implementation of embedded systems.
The production of the embedded system will be constrained by a budget. When designing their development board, students must balance the cost of their choice of hardware components and the purchase of pre-designed firmware IP.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand the issues related to the choice of off-the-shelf components, including the use of different logic families
Design a PCB.
Develop the software tools required for communication between the board and a host PC or between boards.
Write firmware IP for communicating with their choice of peripheral components.
Budget the cost of using different hardware and soft IP elements when creating a complete embedded system.
14. Network Security
Aims:
The aim of this module is to introduce the basic concepts and techniques available within digital network security, and assess their strengths and weaknesses.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Understand different digital network configurations and their design and application
Understand a variety of different possible threats to certain types of digital networks and how these threats can be countered
Be able to assess the requirements for security in a variety of digital networks.
15. Pervasive Computing
Aims:
This module aims to introduce the evolving topic of Pervasive (or Ubiquitous) Computing, based on a background overview of Human Computer Interaction and current research trends.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Have knowledge and understanding of the development of computing technology and design from large-scale mainframes, through PCs to ubiquitous computing.
Gain an understanding of how the above trends can be extrapolated to envision the next computing generation.
Understand the essence of Human-Computer interaction: an overview of paradigms, historical development and research trends for the future.
Have taken part in discussions of Future research directions in personal and wearable computing technology
Focus on one area of the technology and applications, and be able to speak and write about it as if for a conference or journal paper
16. Corporate Governance and Human Resource Management
Aims:
This module aims to equip students with an understanding of the different forms of Company structure and the appropriateness of each for given situations. It will explain the place of company mission statements and its link to corporate values and policies and practices and explain statutory responsibilities and the human resource processes within large and small businesses.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Compare and discriminate between different legal forms for organisations.
Understand and explain the meaning behind a company's mission statement and how it reflects corporate values.
Assess the impact of statutory responsibilities on management and employees for a company.
Understand how the human resource management processes within an organisation supports its mission statement and corporate values.
17. Group Project
Aims:
The aim of this module is to immerse the students in a substantial group project based on the life-like scenario of a company developing digital systems. Activities will include: specifying company procedures, roles and activities; design, implementation and test of a digital device; developing a plausible financial marketing plan.
Objectives (learning outcomes):
On completion of this module students are expected to be able to:
Establish effective company policies, procedures and roles for group members.
Demonstrate skills in specification, design, implementation and test of a digital device.
Demonstrate skills in object oriented programming using Java and associated design, coding and testing regimes.
Demonstrate skills in relevant hardware design and implementation activities.
Analyse a company's interpersonal operation, and to place their own contribution within this context.
18. Computer Programming Using C
This course gives an introduction to the widely used C programming language. C is a very popular programming language and compilers exist for almost all computers. C is often used for developing portable application software, on a wide range of embedded computing devices. An understanding of how to program in C is a useful, if not essential, addition to the CV of an electronic or computer engineer.
The course assumes a basic understanding of computer programs (i.e. variables, assignments, conditional statements and iteration). The course is practically based with an extensive series of self-paced computer programming exercises that complement the lectures.
The course covers: Basic syntax of the ANSI C programming language. Problem solving using a structured program design methodology. Debugging and testing. Functions (passing-by-value, passing-by-reference), arrays, pointers, dynamic memory allocation, structures, user-defined data structures, file handling, linked lists, recursion, and bitwise operations.