-
Study
-
Undergraduate
- Search for a Course
- Undergraduate Open Day & Events
- Application Guides
- Northumbria University UCAS Exhibitions
- Foundation Years
- Undergraduate Fees & Funding
- School & College Outreach
- Continuing Professional Development
-
Postgraduate
- Postgraduate Study Degree
- Postgraduate Research Degrees
- Postgraduate Open Days and Events
- Postgraduate Fees & Funding
- Flexible Learning
- Thinking about a Masters?
- Continuing Professional Development
- Change Direction
-
Student Life
- The Hub - Student Blog
- Accommodation
- Life in Newcastle
- Support for Students
- Careers
- Information for Parents
- Students' Union
- Northumbria Sport
- Be Part of It
-
-
International
International
Northumbria’s global footprint touches every continent across the world, through our global partnerships across 17 institutions in 10 countries, to our 277,000 strong alumni community and 150 recruitment partners – we prepare our students for the challenges of tomorrow. Discover more about how to join Northumbria’s global family or our partnerships.
View our Global Footprint-
Applying to Northumbria
- European Union
- Our London Campus
- Northumbria Pathway
- International Events
- Entry Requirements and Country Representatives
- Regional Offices
-
Northumbria Language Centre
- Faculty Requirements
- Acceptable English Requirements
- Pre-sessional English Language and Study Skills
- Academic Language Skills Programmes (ALS)
-
International Fees, Funding & Scholarships
- International Undergraduate Fees
- International Undergraduate Funding
- International Masters Fees
- International Masters Funding
- International Postgraduate Research Fees
- International Postgraduate Research Funding
- International Money Matters
-
Life at Northumbria
- International student support
- Careers
-
International Mobility
- Current Northumbria Students
- Incoming Exchange Students
-
-
Business
Business
The world is changing faster than ever before. The future is there to be won by organisations who find ways to turn today's possibilities into tomorrows competitive edge. In a connected world, collaboration can be the key to success.
More on our Business Services -
Research
Research
Northumbria is a research-rich, business-focused, professional university with a global reputation for academic quality. We conduct ground-breaking research that is responsive to the science & technology, health & well being, economic and social and arts & cultural needs for the communities
Discover more about our Research -
About Us
-
About Northumbria
- Our Strategy
- Our Staff
- Place and Partnerships
- Student Profiles
- Alumni Profiles
- Leadership & Governance
- Academic Departments
- University Services
- History of Northumbria
- Contact us
- Online Shop
-
-
Alumni
Alumni
Northumbria University is renowned for the calibre of its business-ready graduates. Our alumni network has over 244,000 graduates based in 178 countries worldwide in a range of sectors, our alumni are making a real impact on the world.
Our Alumni - Work For Us
What will I learn on this module?
This module aims to further develop your capabilities in the areas of digital systems, building on the hardware and software design and development techniques covered in previous related module(s).
In the Hardware Description Language (HDL) section, you learn about technology and architecture. The concept of HDL as a tool to simulate, design and document digital systems is introduced and you will learn how to design, specify, and apply digital combinational and sequential building blocks in isolation, and as part of a larger system. Then the module introduces an industry standard HDL known as Verilog, and shows how it can be used to describe, at the gate and logic expression level, digital building blocks such as decoders, multiplexers, encoders, shift registers and counters. During the course, you are given the opportunity to explore designs by means of simulation using industry standard design tools from raw Verilog code to the simulation state. You will learn how the HDL code is used for actual low-level hardware design implementation and they will also cover other practical aspects of digital hardware design, such as logic hazards, propagation delays and interfacing with other digital modules.
You will also cover techniques and tools that help you with developing your Verilog code including:
1- K-map simplification
2- Timing analysis
3- Synthesizable vs non-synthesizable code
4- Finite state machine (FSM) and state diagram
5- Using built-in simulation task/function
6- IP blocks
7- Icarus Verilog
This part of the module comes with a set of workshops specifically arranged to teach you how to use designated tools for simulation and programming a FPGA device.
In the Programming Language section, you will learn about the architecture of microcontrollers and concept of embedded systems. ARM-based microcontroller as well as various ARM-compatible operating systems will be introduced. You will learn about different types of compilers and toolchain, and they will use the C++ language to program an ARM platform to program hardware to perform high-level tasks such as IO port access, serial connection, memory management, FSM, and string manipulation. An overview of C++ language will be given to you and advanced topics such as pointer and classes in C++ are taught. Controlling peripherals such as analogue to digital converter (ADC), digital to analogue converter (DAC), WiFi, X-Bee is introduced as well as data communication protocols such as I2C, and SPI. you will learn how to communicate with a PC application based on Python, Matlab, or LabVIEW through wired connection. The IoT technology and cloud services for microcontroller platforms are also introduced and you will become familiar with AWS and Azure.
The You will also cover techniques and tools that help you with developing your C++ code including:
1- Debugging
2- Linter
3- QEMU
4- PlatformIO
This part of the module comes with a set of workshops specifically arranged to teach you how to use designated tools for simulation and programming an ARM platform.
In the PCB Design section, you will learn how to manifest your digital system concepts into an actual PCB. You will start by learning about design level and component level considerations. Then they will learn how to find appropriate component for the board and create the schematic to describe the circuit netlist. The component footprints are introduced, and you learn how to create the PCB layout and route it. Next, they are taught how to prepare your design for manufacturing and lastly what are the required post-manufacturing tasks.
You will also cover techniques and tools that help you with developing your PCB design including:
1- High-speed design tips
2- Track calculation
3- EMI and EMC
This part of the module comes with a set of workshops specifically arranged to teach you how to use designated tools for building a schematic and PCB in software environment.
In the Code Development section, you will learn how to develop a code from a concept. You will get familiar with the concept of structured programming and code hierarchy and learn about techniques to produce clean code. Then the concepts of test code, debugging, and version control are introduced, and tips are given on how to perform code maintenance. At the end tyou will learn how to create a customised library for the digital board that they designed in PCB Design section.
You will also cover techniques and tools that help you with developing your code including:
1- Flowchart
2- UML
3- Git
This part of the module comes with a set of workshops specifically arranged to teach you how to use designated tools for developing a library code.
How will I learn on this module?
The module will be delivered via a combination of lectures, directed and independent learning and practical workshops as well as asynchronous pre-recorded videos.
Lectures will be used to deliver the knowledge and understanding required to apply the concept of programmable electronic solutions to real world problems. Regular workshops in HDL will provide you with the vital practical experience required to support hardware design concepts and develop the skills you will need to successfully complete an engineering level problem. You will also take part in a set of workshops arranged for the use of Programming Language section, exposing you to the process of creating solutions to practical design problems using up-to-date methodologies and tools. Additionally, you will have hands-on experience to learn PCB design as well as code development steps to create a product from scratch by going through project-based workshops.
How will I be supported academically on this module?
All taught materials will be provided on the eLearning platform, including workshop exercises, past exam questions and examples. You will also have access to pre-recorded video of all topics and workshops. You will be encouraged to ask questions and fully engage during all contact sessions, including workshops.
What will I be expected to read on this module?
All modules at Northumbria include a range of reading materials that students are expected to engage with. Online reading lists (provided after enrolment) give you access to your reading material for your modules. The Library works in partnership with your module tutors to ensure you have access to the material that you need.
What will I be expected to achieve?
Knowledge & Understanding:
1. Applying appropriate codes of practice and industry standards, ; knowledge of programmable logic development equipment, software packages, and simulation tools; and knowledge of designing bespoke digital board and code library (AHEP 4 C1, C10, M10 )
Intellectual / Professional skills & abilities:
2. Designing and modeling digital hardware sub-systems using a Hardware Description Language (HDL); designing C++ code for a microcontroller ; and designing a customised electronic board and developing dedicated code to operate on the board. (AHEP 4 C1, C6, M6 )
Personal Values Attributes (Global / Cultural awareness, Ethics, Curiosity) (PVA):
3. Doing group work to develop teamwork skills and promote collaboration; using practical workshops skills to investigate complex problems; and providing the opportunity to innovate and show creativity by granting design freedom and research requirement within a solution approach (AHEP 4 C12, C16, M12)
How will I be assessed?
This module will be assessed as follows.
1- Coursework (CW): Project assignment 60% for LO1, LO2:
Here the students are asked to program a programmable digital system using HDL and program a microcontroller platform to deliver a list of specifications as the project requirements.
2- Coursework (CW): 40% for LO3:
A group assignments is given to a students during the workshop sessions. Each assignment consists of a number of tasks/work packages to be completed. Each member of the team will given the opportunity to lead a specific task. The whole group will be assessed based on the common tasks of each assignment. At the same time, the individual will also be assessed based on specific tasks for each. The students are supposed to submit a report for each assignment within the given deadline period.
Pre-requisite(s)
KD4008, KD4009 (level 4 Computer Programming and Digital Electronics and Communications respectively or equivalent knowledge)
Co-requisite(s)
None
Module abstract
IIn this module you will build on the fundamental digital and programming knowledge and design concepts studied at level 4. To cover ‘Programming Digital Systems’, the module includes two sections of i) HDL and ii) Programming Language, each implementing a digital system via a different approach. The first section ‘HDL’ uses register-transfer level (RTL) and primitive logic gates to design a digital system. First, you will learn about the design of a range of digital system building blocks, such as decoders, multiplexers, and synchronous counters. Then, you will be introduced to the use of Verilog hardware description language (HDL) and associated CAD tools, to enhance your understanding of how digital system design, verification, and implementation tasks are carried out by engineers in industry. You will learn these skills by looking at various practical applications and examples from the real world. As a higher-level design strategy, the ‘Programming Language’ section will utilise the processor available in microcontrollers. Here, the design is based on set of instruction to program the processing unit rather than designing the hardware blocks. Based on wide range of exanples, the C++ programming language will be taught to program the microcontroller platforms. Additionally, designated tools will be used to simulate, debug, and develop C++ codes to implement given specifications. In this way you will learn how modern electronic systems can be programmed for both hardware and software-based solutions to meet a range of real-world applications.
In the ‘Designing Digital Systems’ part, you will learn two essential concepts of i) designing an electronic board and ii) developing a code for digital applications. This part will prepare you for problems, where you need to design the actual digital circuit board in addition to writing a code for it. This part of the module is project based, and you will learn how to build an actual PCB from a design concept using CAD tools. The steps from creating a schematic to preparing the PCB files for manufacturing are explained and you will also learn how to apply required post-manufacturing knowledge including verification, test, and upgrade activities to real world problems. In the code development section, you learn how to develop your code in a project to run on the PCB. The concepts such as structured programming, test codes, version control, and code maintenance are covered and using practical examples you will learn how to apply them to real world problems.
By the end of the module, you will have learned how to design a digital system PCB and how to write a code for it. In summary the module KD5065 Programming and Designing Digital Systems includes the following topics:
1- Programming Digital Systems
a. HDL
b. Programming Language
2- Designing Digital Systems
a. PCB Design
b. Code Development
Course info
UCAS Code H601
Credits 20
Level of Study Undergraduate
Mode of Study 3 years Full Time or 4 years with a placement (sandwich)/study abroad
Department Mathematics, Physics and Electrical Engineering
Location City Campus, Northumbria University
City Newcastle
Start September 2025
All information is accurate at the time of sharing.
Full time Courses are primarily delivered via on-campus face to face learning but could include elements of online learning. Most courses run as planned and as promoted on our website and via our marketing materials, but if there are any substantial changes (as determined by the Competition and Markets Authority) to a course or there is the potential that course may be withdrawn, we will notify all affected applicants as soon as possible with advice and guidance regarding their options. It is also important to be aware that optional modules listed on course pages may be subject to change depending on uptake numbers each year.
Contact time is subject to increase or decrease in line with possible restrictions imposed by the government or the University in the interest of maintaining the health and safety and wellbeing of students, staff, and visitors if this is deemed necessary in future.
Useful Links
Find out about our distinctive approach at
www.northumbria.ac.uk/exp
Admissions Terms and Conditions
northumbria.ac.uk/terms
Fees and Funding
northumbria.ac.uk/fees
Admissions Policy
northumbria.ac.uk/adpolicy
Admissions Complaints Policy
northumbria.ac.uk/complaints