<?xml version="1.0" encoding="UTF-8"?>
<CourseUnit xmlns="http://www.manchester.ac.uk/CUICourseUnitDetails" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.manchester.ac.uk/CUICourseUnitDetails.xsd">
  <UnitCode Applicant="Y" Label="Unit code" Student="Y">
    <Code>COMP32211</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Implementing System-on-Chip Designs</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>10</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Semester 1</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Undergraduate</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 3</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Davide Bertozzi</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName>Department of Computer Science</OrgName>
      </Organisation>
    </OrganisationList>
    <GroupList>
      <Group>
        <GroupName></GroupName>
      </Group>
    </GroupList>
    <FheqLevels>
      <FheqLevel>
        <LevelNumber>1</LevelNumber>
        <LevelName>FHEQ level (Framework for Higher Education Qualifications) ' Last part of a Bachelors ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   5.0</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;Course Structure&lt;/p&gt;&lt;p&gt;This course is structured around a central practical project, supported by a series of lectures. The lectures introduce concepts, techniques, and context that feed directly into the practical work, while the hands-on activities reinforce and illustrate the lecture material. Together, lectures and practical sessions provide a coherent, integrated learning experience that develops both system-level design understanding and practical skills.&lt;/p&gt;&lt;p&gt;Practical Work&lt;/p&gt;&lt;p&gt;The practical part of the course involves migrating the design of a moderately complex finite-state machine (FSM) into a language for hardware description (Verilog), integrating it with other components of a system-on-chip, and verifying that it operates correctly under realistic conditions. Students will demonstrate a working implementation, using a graphics drawing example design so that the final result can be clearly observed on its own display.&lt;/p&gt;&lt;p&gt;Lectures in System-Level Digital Hardware Design&lt;/p&gt;&lt;p&gt;The lectures will revolve around the following topics:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Introduction&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of the course and its objectives, and the role of digital hardware design in modern computing systems.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Scale and complexity of VLSI systems&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The scale of the problem and what a modern VLSI system looks like internally.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The Verilog Hardware Description Language&lt;/strong&gt;&amp;nbsp;&lt;br&gt;Revision of core concepts, together with additional language features used in practical system-level design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Functional simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Constructing test harnesses and modelling realistic system behaviour.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debugging&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Identifying common design issues, and systematic approaches to locating and fixing errors.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Design and tool flows&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The tools and processes used to transform source code into silicon, and how design choices affect efficiency and outcomes.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Simulating large designs and obtaining sufficiently accurate timing results within practical time constraints.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing and clocking&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Clocking strategies, clock distribution, and the challenges of crossing between clock domains.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Technology&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Essential CMOS technology concepts that underpin modern VLSI design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout and physical design&amp;nbsp;&lt;/strong&gt;&lt;br&gt;How physical constraints and layout effects influence the behaviour of an otherwise clean logical design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Testing and validation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Techniques for proving that a device is expected to work, and for checking its behaviour once silicon becomes available.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Future trends&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of ongoing developments in silicon fabrication and emerging challenges for digital hardware designers.&amp;nbsp;&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;Course Structure&lt;/p&gt;&lt;p&gt;This course is structured around a central practical project, supported by a series of lectures. The lectures introduce concepts, techniques, and context that feed directly into the practical work, while the hands-on activities reinforce and illustrate the lecture material. Together, lectures and practical sessions provide a coherent, integrated learning experience that develops both system-level design understanding and practical skills.&lt;/p&gt;&lt;p&gt;Practical Work&lt;/p&gt;&lt;p&gt;The practical part of the course involves migrating the design of a moderately complex finite-state machine (FSM) into a language for hardware description (Verilog), integrating it with other components of a system-on-chip, and verifying that it operates correctly under realistic conditions. Students will demonstrate a working implementation, using a graphics drawing example design so that the final result can be clearly observed on its own display.&lt;/p&gt;&lt;p&gt;Lectures in System-Level Digital Hardware Design&lt;/p&gt;&lt;p&gt;The lectures will revolve around the following topics:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Introduction&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of the course and its objectives, and the role of digital hardware design in modern computing systems.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Scale and complexity of VLSI systems&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The scale of the problem and what a modern VLSI system looks like internally.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The Verilog Hardware Description Language&lt;/strong&gt;&amp;nbsp;&lt;br&gt;Revision of core concepts, together with additional language features used in practical system-level design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Functional simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Constructing test harnesses and modelling realistic system behaviour.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debugging&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Identifying common design issues, and systematic approaches to locating and fixing errors.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Design and tool flows&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The tools and processes used to transform source code into silicon, and how design choices affect efficiency and outcomes.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Simulating large designs and obtaining sufficiently accurate timing results within practical time constraints.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing and clocking&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Clocking strategies, clock distribution, and the challenges of crossing between clock domains.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Technology&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Essential CMOS technology concepts that underpin modern VLSI design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout and physical design&amp;nbsp;&lt;/strong&gt;&lt;br&gt;How physical constraints and layout effects influence the behaviour of an otherwise clean logical design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Testing and validation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Techniques for proving that a device is expected to work, and for checking its behaviour once silicon becomes available.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Future trends&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of ongoing developments in silicon fabrication and emerging challenges for digital hardware designers.&amp;nbsp;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;The module aims to provide an overview of the processes involved in taking a concept through to a product-level chip. It introduces key design choices available to the implementer and their impact on performance, power, area and feasibility. Through practical work, students develop hands-on experience of the complete design flow, including analysis, implementation and evaluation, alongside the frustration and the satisfaction of delivering a working device.&amp;nbsp;&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;ILO 1: &lt;/strong&gt;Plan and carry out digital hardware verification to a credible standard, using simulation-based techniques and appropriate test strategies.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 2:&lt;/strong&gt; Use appropriate terminology to discuss the ASIC design flow, as used industrially, and system-level digital hardware design with professional engineers.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 3: &lt;/strong&gt;Design and implement a finite-state machine (FSM) at Register Transfer Level (RTL), conforming to given technical specifications.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 4:&lt;/strong&gt; Interpret and apply technical specifications of digital hardware interfaces to ensure correct and compliant designs.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 5: &lt;/strong&gt;Apply a digital hardware synthesis flow using Verilog HDL and mainstream industrial CAD tools, from RTL description to a validated implementation.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;ILO 6:&lt;/strong&gt; Analyse the theory, good practices, and common pitfalls at each stage of a digital hardware synthesis flow.&lt;/p&gt;</Content>
  </LearningOutcomes>
  <Knowledge Applicant="Y" Label="Knowledge and understanding" Student="Y">
    <Content></Content>
  </Knowledge>
  <IntellectualSkills Applicant="Y" Label="Intellectual skills" Student="Y">
    <Content></Content>
  </IntellectualSkills>
  <PracticalSkills Applicant="Y" Label="Practical skills" Student="Y">
    <Content></Content>
  </PracticalSkills>
  <TransferableSkills Applicant="Y" Label="Transferable skills and personal qualities" Student="Y">
    <Content></Content>
  </TransferableSkills>
  <EmployabilitySkillsList Applicant="Y" Label="Employability skills" Student="Y">
    <Skill>
      <SkillId>Analytical skills</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Innovation/creativity</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Problem solving</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Other</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;Course Structure&lt;/p&gt;&lt;p&gt;This course is structured around a central practical project, supported by a series of lectures. The lectures introduce concepts, techniques, and context that feed directly into the practical work, while the hands-on activities reinforce and illustrate the lecture material. Together, lectures and practical sessions provide a coherent, integrated learning experience that develops both system-level design understanding and practical skills.&lt;/p&gt;&lt;p&gt;Practical Work&lt;/p&gt;&lt;p&gt;The practical part of the course involves migrating the design of a moderately complex finite-state machine (FSM) into a language for hardware description (Verilog), integrating it with other components of a system-on-chip, and verifying that it operates correctly under realistic conditions. Students will demonstrate a working implementation, using a graphics drawing example design so that the final result can be clearly observed on its own display.&lt;/p&gt;&lt;p&gt;Lectures in System-Level Digital Hardware Design&lt;/p&gt;&lt;p&gt;The lectures will revolve around the following topics:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Introduction&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of the course and its objectives, and the role of digital hardware design in modern computing systems.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Scale and complexity of VLSI systems&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The scale of the problem and what a modern VLSI system looks like internally.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;The Verilog Hardware Description Language&lt;/strong&gt;&amp;nbsp;&lt;br&gt;Revision of core concepts, together with additional language features used in practical system-level design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Functional simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Constructing test harnesses and modelling realistic system behaviour.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debugging&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Identifying common design issues, and systematic approaches to locating and fixing errors.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Design and tool flows&amp;nbsp;&lt;/strong&gt;&lt;br&gt;The tools and processes used to transform source code into silicon, and how design choices affect efficiency and outcomes.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing simulation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Simulating large designs and obtaining sufficiently accurate timing results within practical time constraints.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Timing and clocking&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Clocking strategies, clock distribution, and the challenges of crossing between clock domains.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Technology&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Essential CMOS technology concepts that underpin modern VLSI design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout and physical design&amp;nbsp;&lt;/strong&gt;&lt;br&gt;How physical constraints and layout effects influence the behaviour of an otherwise clean logical design.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Testing and validation&amp;nbsp;&lt;/strong&gt;&lt;br&gt;Techniques for proving that a device is expected to work, and for checking its behaviour once silicon becomes available.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Future trends&amp;nbsp;&lt;/strong&gt;&lt;br&gt;An overview of ongoing developments in silicon fabrication and emerging challenges for digital hardware designers.&amp;nbsp;&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;Lectures&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;11&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;Laboratories&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;2 hours/week (1 hour timetabled, 1 hour independent work)&lt;/p&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
    <Method>
      <MethodId>8</MethodId>
      <MethodName>Practical skills assessment</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>Feedback is given orally in scheduled laboratories; lectures are intended to be active and discussion is encouraged.&lt;br /&gt;&lt;br /&gt;Annotated listings and diagrams will be returned to students.&lt;br /&gt;&lt;br /&gt;Feedback as to whether a constructed (video) system operates correctly should be apparent from simulations during the work's progression and will definitely visible in the final realisation.</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode>COMP22111</UnitCode>
      <UnitTitle>Processor Microarchitecture</UnitTitle>
      <RequirementType>Pre-Requisite</RequirementType>
      <Description>Compulsory</Description>
    </Requirement>
    <AdditionalRequirement>COMP22111 is a pre-requisite.&lt;p&gt;COMP22111 is a pre-requisite.&lt;/p&gt;</AdditionalRequirement>
  </RequirementsList>
  <AcademicPrograms Applicant="Y" Label="Academic programmes" Student="Y">
    <AcademicProgram>
      <Program></Program>
      <Plan></Plan>
      <Level></Level>
      <Requirement></Requirement>
    </AcademicProgram>
  </AcademicPrograms>
  <FreeChoice Applicant="Y" Label="Available as a free choice unit?" Student="Y">
    <Content>Y</Content>
  </FreeChoice>
  <Accreditation Applicant="Y" Label="Accreditation" Student="Y">
    <Content></Content>
  </Accreditation>
  <RecommendedReading Applicant="Y" Label="Recommended reading" Student="Y">
    <Content></Content>
  </RecommendedReading>
  <StudyHours Applicant="Y" Label="Study hours" Student="Y">
    <IntroText> </IntroText>
    <ScheduledHours Applicant="Y" Label="Scheduled activity hours" Student="Y">
      <ActivityHours>
        <ActivityType>Assessment written exam</ActivityType>
        <Hours>2</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>12</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>12</Hours>
      </ActivityHours>
    </ScheduledHours>
    <PlacementHours Applicant="Y" Label="Placement hours" Student="Y">
      <ActivityHours>
        <ActivityType></ActivityType>
        <Hours>0</Hours>
      </ActivityHours>
    </PlacementHours>
    <TotalHours Applicant="Y" Label="Independent study hours" Student="Y">
      <Hours>74</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
