View Proposal
-
Proposer
-
Rob Stewart
-
Title
-
A high level dependently typed dataflow language for hardware
-
Goal
-
Develop a dataflow Domain Specific Language in a dependently typed language
-
Description
- Dataflow languages are commonly used to program embedded systems such as Field Programmable Gate Arrays (FPGAs). Static dataflow models ease reasoning and compile-time scheduling, however their lack of expressivity constrains the programmer's ability to implement complex algorithms.
Various approaches have been taken to 1) identify and 2) reason about static dataflow properties of dataflow programs, including static analysis and model checking.
This project will take a new approach, which is to implement a static dataflow embedded domain specific language (DSL) in the dependently typed Idris language. This approach will use Idris's type checker to prove static properties of dataflow actors, and will infer data rates and ideal scheduling policies for compilation to FPGAs.
A possible implementation plan for the project is:
1) Developing the dataflow EDSL in Idris.
2) Developing scheduling policies within the types of the EDSL.
3) A Verilog backend of the EDSL to target FPGAs.
- Resources
-
-
Background
-
-
Url
-
-
Difficulty Level
-
Challenging
-
Ethical Approval
-
None
-
Number Of Students
-
1
-
Supervisor
-
Rob Stewart
-
Keywords
-
-
Degrees
-
Bachelor of Science in Computer Science
Bachelor of Science in Computer Systems
Bachelor of Science in Software Development for Business (GA)
Master of Engineering in Software Engineering
Master of Design in Games Design and Development
Master of Science in Artificial Intelligence
Master of Science in Artificial Intelligence with SMI
Master of Science in Business Information Management
Master of Science in Computer Science for Cyber Security
Master of Science in Computer Systems Management
Master of Science in Computing (2 Years)
Master of Science in Data Science
Master of Science in Network Security
Master of Science in Robotics
Master of Science in Software Engineering
Bachelor of Science in Computing Science
Bachelor of Science in Computer Science (Cyber Security)