Michael Dossis | TEI of Western Macedonia (original) (raw)

Books by Michael Dossis

Research paper thumbnail of Michael Dossis, "High-Level Synthesis for Embedded Systems". Chapter 16, in Embedded System – Theory and Design Methodology, Book 1, Edited by Kiyofumi Tanaka, InTech - Open Access Publisher, ISBN 979-953-307-580-7, March 2012, pp. 341-366.

Research paper thumbnail of •	Michael F. Dossis, "Formal Methods in High-Level and System Synthesis". In Semantic Hyper/Multimedia Adaptation, edited by I.E. Anagnostopoulos et al. Springer-Verlag Berlin Heidelberg 2012, SCI 418, pp. 23–81.

Research paper thumbnail of Applicability of Programming Code to Hardware Specification and Synthesis

Research paper thumbnail of Programming is easy: Anaptyksi Efarmogwn se Programmatistiko Perivalon

Programming can be easy (as in Title) if instructed and taught properly. This book avoids unecess... more Programming can be easy (as in Title) if instructed and taught properly. This book avoids unecessary literature text and focuses on the main issues and problems encountered in computer programming.

Papers by Michael Dossis

Research paper thumbnail of High Throughput of Image Processing with Keccak Algorithm using Microprocessor on FPGA

Research paper thumbnail of Radiography Images with Transfer Learning on Embedded System

Research paper thumbnail of Greek Parliament Members on Instagram: A study on building a political image

2022 7th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

Research paper thumbnail of A gene visualising database

2022 7th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

Research paper thumbnail of Exploiting Net Connectivity in Legalization and Detailed Placement Scenarios

Information, Apr 20, 2022

Research paper thumbnail of Global and Pointer Variables in High-Level Synthesis

2020 5th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

High-level synthesis (HLS) has been an important tool in digital circuit design for more than two... more High-level synthesis (HLS) has been an important tool in digital circuit design for more than two decades, especially for processor components like accelerators or coprocessors. However, many high-level language characteristics have not been ported in such tools, under the false assumption that HLS programmers have a good understanding of hardware and of how actual circuits operate. This work is concentrated on the use of global and static variables in HLS. Such variables are often not allowed in HLS tools, since their storage class makes their support difficult. We will present an intelligent global and static variable placement methodology, which attempts to nullify the negative effects of supporting such variables, by carefully selecting variables to be placed globally, within an appropriate memory module. Addressing of such a module is direct, which allows the use of static pointers in the input high-level language code. We have implemented our methodology in the CCC HLS tool, and tested it with various benchmarks of varying complexity. We have also tested the same benchmarks with other popular HLS tools, and we show that under a fair comparison, CCC produces equal, or in some cases superior output to other tools with regard to global and static variable support.

Research paper thumbnail of High Level Synthesis of CART

2019 4th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2019

In this work we consider a popular machine learning method, classification and regression trees. ... more In this work we consider a popular machine learning method, classification and regression trees. We discuss the algorithm and proceed in development from scratch, with hardware implementation in mind. We give our algorithm details, verify its correct functionality in GNU Ada and proceed with high level synthesis, via our CCC framework tool. Results validate our motivation for accelerated performance and device portability.

Research paper thumbnail of Instruction-Based Timing Analysis in Pipelined Processors

2019 4th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2019

Traditional timing analysis techniques for microprocessor design are based on the static analysis... more Traditional timing analysis techniques for microprocessor design are based on the static analysis approach, in which clock frequency is set in accord with the worst-case delay in the processor circuit operation, regardless of the possible circuit inputs. Dynamic analysis approaches are calculating delays using varying circuit inputs, but are in general very slow. Recent approaches to static timing analysis are based on better-than-worst-case algorithms, which attempt to trade-off the pessimism of standard static analysis with the optimism of dynamic analysis.The work presented in this paper is concentrated on an enhanced implementation of static timing analysis for processor design, applying dynamic analysis through specific variations of circuit inputs. In particular, given that the circuit inputs are mostly instructions of the processor instruction set, we have chosen to vary the instruction opcode of that input. Thus, we have designed and implemented a timing analysis algorithm, which produces timing information for each instruction of the processor, allowing the designer to focus on improving the architecture of particular instructions rather than redesigning circuit parts.We have tested our algorithm on an OpenRISC processor design and collected timing information through an innovative use of the Synopsis PrimeTime tool. A comparison against timing information obtained through pure static timing analysis makes clear that our algorithm succeeds to give better-than-worst-case timing for the most common instructions, thus allowing the designer to deliver a better product.

Research paper thumbnail of Juxtaposing Vivado Design Flows in Batch Mode

Research paper thumbnail of Branchless Code Generation for Modern Processor Architectures

25th Pan-Hellenic Conference on Informatics, 2021

Compilers apply transformations to the code they compile in order to make it run faster without c... more Compilers apply transformations to the code they compile in order to make it run faster without changing its behavior. This process is called code optimization. Modern compilers apply many different passes of code optimization to ensure maximum runtime performance and efficiency, at the rather negligible expense of larger compilation times. This study focuses on a particular optimization, called branchless optimization, which eliminates code branches by utilizing different data transformation techniques that have the same effect. Such techniques are explored on their implementation on the LLVM IR and MIPS and partly ARM assembly, and ranked based on their runtime efficiency. Moreover, the stages of implementing the optimization transformation are explored, as well as different instruction set features that some CPU architectures provide that can be used to increase the efficiency of the optimization.

Research paper thumbnail of Rapid, Formal Verification with Automated and Executable, Cycle-accurate simulators, and Generated Testbenches

24th Pan-Hellenic Conference on Informatics, 2020

Advances in silicon integration technology have allowed the emergence of extremely complex System... more Advances in silicon integration technology have allowed the emergence of extremely complex Systems-on-Chip and Application-Specific Integrated Circuits. This complexity impacted severely the verification time and effort of delayed products, that due to this they often miss the market window. Engineering teams have experienced exponential verification time increase with the linear complexity increase and the largest proportion of effort is due to segmented, long, tedious, bug-prone and repetitive low level verification. This work presents a High-level Synthesis – driven formal verification method, aimed in quickly verifying high-level software or hardware code which rapidly converges results from different abstraction levels in a formal design flow. First the benefits of formal techniques are explained and the proposed methodology is outlined. Then 4 converging aspects of our formal methodology, and namely high-level program code verification, cycle-accurate verification, RTL verific...

Research paper thumbnail of A Novel Genetic Algorithm for I/O Pad Planning Retaining Former Cell Positions

2020 5th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2020

In a typical integrated circuit (IC) design flow, each step is executed sequentially, and valuabl... more In a typical integrated circuit (IC) design flow, each step is executed sequentially, and valuable feedback is provided that can be utilized if we are forced to backtrack as a means to resolve problems or satisfy design constraints and restrictions. Following a similar logic, the objective of our algorithm is to plan the I/O pad positions, based on back-annotated data gathered from a formerly placed similar design, concerning the cell connectivity and positioning, in order to minimize the total wirelength, a critical metric defining the routability, and thus the manufacturability of a design. Our approach results in the embetterment of the wirelength at an acceptable runtime.

Research paper thumbnail of An Application of Mathematical Morphology Operators as Features Extraction Method for Low Speed Slew Bearing Condition Monitoring

Journal of Robotics and Mechanical Engineering Research, 2015

Research paper thumbnail of Custom co-processor compilation

Research paper thumbnail of Syntax driven approach for RTL hardware synthesis of parallel programs

IEE Colloquium on Hardware-Software Cosynthesis for Reconfigurable Systems, 1996

The Handel hardware compilation language, is designed and used for hardware specification and syn... more The Handel hardware compilation language, is designed and used for hardware specification and synthesis in the Computing Laboratory of Oxford University. It is very similar to a subset of occam and a meta-language environment is utilized to map abstract program syntax trees of Handel into functionally equivalent hardware netlists. The Handel compilation represents itself a syntax-directed strategy for mapping sequential and parallel operations into a maximally parallel hardware datapath, via robust transformations of programs into their equivalent normal form program. The sequential and parallel sets include RTL occam-like assignments. These features allow the circuit designers/programmers to exercise absolute control on the intended architectures, via rescheduling and/or modification of their Handel code so as to meet the various size/performance targets. (16 pages)

Research paper thumbnail of Specification and execution of tests using tMsc

IFIP Advances in Information and Communication Technology, 1999

Research paper thumbnail of Michael Dossis, "High-Level Synthesis for Embedded Systems". Chapter 16, in Embedded System – Theory and Design Methodology, Book 1, Edited by Kiyofumi Tanaka, InTech - Open Access Publisher, ISBN 979-953-307-580-7, March 2012, pp. 341-366.

Research paper thumbnail of •	Michael F. Dossis, "Formal Methods in High-Level and System Synthesis". In Semantic Hyper/Multimedia Adaptation, edited by I.E. Anagnostopoulos et al. Springer-Verlag Berlin Heidelberg 2012, SCI 418, pp. 23–81.

Research paper thumbnail of Applicability of Programming Code to Hardware Specification and Synthesis

Research paper thumbnail of Programming is easy: Anaptyksi Efarmogwn se Programmatistiko Perivalon

Programming can be easy (as in Title) if instructed and taught properly. This book avoids unecess... more Programming can be easy (as in Title) if instructed and taught properly. This book avoids unecessary literature text and focuses on the main issues and problems encountered in computer programming.

Research paper thumbnail of High Throughput of Image Processing with Keccak Algorithm using Microprocessor on FPGA

Research paper thumbnail of Radiography Images with Transfer Learning on Embedded System

Research paper thumbnail of Greek Parliament Members on Instagram: A study on building a political image

2022 7th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

Research paper thumbnail of A gene visualising database

2022 7th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

Research paper thumbnail of Exploiting Net Connectivity in Legalization and Detailed Placement Scenarios

Information, Apr 20, 2022

Research paper thumbnail of Global and Pointer Variables in High-Level Synthesis

2020 5th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM)

High-level synthesis (HLS) has been an important tool in digital circuit design for more than two... more High-level synthesis (HLS) has been an important tool in digital circuit design for more than two decades, especially for processor components like accelerators or coprocessors. However, many high-level language characteristics have not been ported in such tools, under the false assumption that HLS programmers have a good understanding of hardware and of how actual circuits operate. This work is concentrated on the use of global and static variables in HLS. Such variables are often not allowed in HLS tools, since their storage class makes their support difficult. We will present an intelligent global and static variable placement methodology, which attempts to nullify the negative effects of supporting such variables, by carefully selecting variables to be placed globally, within an appropriate memory module. Addressing of such a module is direct, which allows the use of static pointers in the input high-level language code. We have implemented our methodology in the CCC HLS tool, and tested it with various benchmarks of varying complexity. We have also tested the same benchmarks with other popular HLS tools, and we show that under a fair comparison, CCC produces equal, or in some cases superior output to other tools with regard to global and static variable support.

Research paper thumbnail of High Level Synthesis of CART

2019 4th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2019

In this work we consider a popular machine learning method, classification and regression trees. ... more In this work we consider a popular machine learning method, classification and regression trees. We discuss the algorithm and proceed in development from scratch, with hardware implementation in mind. We give our algorithm details, verify its correct functionality in GNU Ada and proceed with high level synthesis, via our CCC framework tool. Results validate our motivation for accelerated performance and device portability.

Research paper thumbnail of Instruction-Based Timing Analysis in Pipelined Processors

2019 4th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2019

Traditional timing analysis techniques for microprocessor design are based on the static analysis... more Traditional timing analysis techniques for microprocessor design are based on the static analysis approach, in which clock frequency is set in accord with the worst-case delay in the processor circuit operation, regardless of the possible circuit inputs. Dynamic analysis approaches are calculating delays using varying circuit inputs, but are in general very slow. Recent approaches to static timing analysis are based on better-than-worst-case algorithms, which attempt to trade-off the pessimism of standard static analysis with the optimism of dynamic analysis.The work presented in this paper is concentrated on an enhanced implementation of static timing analysis for processor design, applying dynamic analysis through specific variations of circuit inputs. In particular, given that the circuit inputs are mostly instructions of the processor instruction set, we have chosen to vary the instruction opcode of that input. Thus, we have designed and implemented a timing analysis algorithm, which produces timing information for each instruction of the processor, allowing the designer to focus on improving the architecture of particular instructions rather than redesigning circuit parts.We have tested our algorithm on an OpenRISC processor design and collected timing information through an innovative use of the Synopsis PrimeTime tool. A comparison against timing information obtained through pure static timing analysis makes clear that our algorithm succeeds to give better-than-worst-case timing for the most common instructions, thus allowing the designer to deliver a better product.

Research paper thumbnail of Juxtaposing Vivado Design Flows in Batch Mode

Research paper thumbnail of Branchless Code Generation for Modern Processor Architectures

25th Pan-Hellenic Conference on Informatics, 2021

Compilers apply transformations to the code they compile in order to make it run faster without c... more Compilers apply transformations to the code they compile in order to make it run faster without changing its behavior. This process is called code optimization. Modern compilers apply many different passes of code optimization to ensure maximum runtime performance and efficiency, at the rather negligible expense of larger compilation times. This study focuses on a particular optimization, called branchless optimization, which eliminates code branches by utilizing different data transformation techniques that have the same effect. Such techniques are explored on their implementation on the LLVM IR and MIPS and partly ARM assembly, and ranked based on their runtime efficiency. Moreover, the stages of implementing the optimization transformation are explored, as well as different instruction set features that some CPU architectures provide that can be used to increase the efficiency of the optimization.

Research paper thumbnail of Rapid, Formal Verification with Automated and Executable, Cycle-accurate simulators, and Generated Testbenches

24th Pan-Hellenic Conference on Informatics, 2020

Advances in silicon integration technology have allowed the emergence of extremely complex System... more Advances in silicon integration technology have allowed the emergence of extremely complex Systems-on-Chip and Application-Specific Integrated Circuits. This complexity impacted severely the verification time and effort of delayed products, that due to this they often miss the market window. Engineering teams have experienced exponential verification time increase with the linear complexity increase and the largest proportion of effort is due to segmented, long, tedious, bug-prone and repetitive low level verification. This work presents a High-level Synthesis – driven formal verification method, aimed in quickly verifying high-level software or hardware code which rapidly converges results from different abstraction levels in a formal design flow. First the benefits of formal techniques are explained and the proposed methodology is outlined. Then 4 converging aspects of our formal methodology, and namely high-level program code verification, cycle-accurate verification, RTL verific...

Research paper thumbnail of A Novel Genetic Algorithm for I/O Pad Planning Retaining Former Cell Positions

2020 5th South-East Europe Design Automation, Computer Engineering, Computer Networks and Social Media Conference (SEEDA-CECNSM), 2020

In a typical integrated circuit (IC) design flow, each step is executed sequentially, and valuabl... more In a typical integrated circuit (IC) design flow, each step is executed sequentially, and valuable feedback is provided that can be utilized if we are forced to backtrack as a means to resolve problems or satisfy design constraints and restrictions. Following a similar logic, the objective of our algorithm is to plan the I/O pad positions, based on back-annotated data gathered from a formerly placed similar design, concerning the cell connectivity and positioning, in order to minimize the total wirelength, a critical metric defining the routability, and thus the manufacturability of a design. Our approach results in the embetterment of the wirelength at an acceptable runtime.

Research paper thumbnail of An Application of Mathematical Morphology Operators as Features Extraction Method for Low Speed Slew Bearing Condition Monitoring

Journal of Robotics and Mechanical Engineering Research, 2015

Research paper thumbnail of Custom co-processor compilation

Research paper thumbnail of Syntax driven approach for RTL hardware synthesis of parallel programs

IEE Colloquium on Hardware-Software Cosynthesis for Reconfigurable Systems, 1996

The Handel hardware compilation language, is designed and used for hardware specification and syn... more The Handel hardware compilation language, is designed and used for hardware specification and synthesis in the Computing Laboratory of Oxford University. It is very similar to a subset of occam and a meta-language environment is utilized to map abstract program syntax trees of Handel into functionally equivalent hardware netlists. The Handel compilation represents itself a syntax-directed strategy for mapping sequential and parallel operations into a maximally parallel hardware datapath, via robust transformations of programs into their equivalent normal form program. The sequential and parallel sets include RTL occam-like assignments. These features allow the circuit designers/programmers to exercise absolute control on the intended architectures, via rescheduling and/or modification of their Handel code so as to meet the various size/performance targets. (16 pages)

Research paper thumbnail of Specification and execution of tests using tMsc

IFIP Advances in Information and Communication Technology, 1999

Research paper thumbnail of A Web Service to Generate Program Coprocessors

2009 Fourth International Workshop on Semantic Media Adaptation and Personalization, 2009

The design and implementation of today's complex embedded systems including custo... more The design and implementation of today's complex embedded systems including custom hardware and software is still to a large extent based on a collaboration of heterogeneous, semi-manual and often poorly inter-connected design methods and tools. This usually results in repetitive and longer development cycles. This paper describes an intelligent web service to automatically produce non-standard and custom hardware description code,

Research paper thumbnail of Synthesis of customised hardware from ADA

Proceedings of IEEE International Symposium on Circuits and Systems - ISCAS '94

Page 1. 229 Synthesis Of Customised Hardware From ADA Michael F. Dossis James M. Noras Gary J. Po... more Page 1. 229 Synthesis Of Customised Hardware From ADA Michael F. Dossis James M. Noras Gary J. Porter Department of Electronic and Electrical Engineering The University BRADFORD BD7 1DP United Kingdom (+44) 274 384036 M. Dossis@bradford.ac.uk ABSTRACT ...

Research paper thumbnail of Behavioural synthesis of SGD using the CCC framework: a simple XOR-solving MLP

Applied Intelligence, 2022

Research paper thumbnail of Resolving Loop Pipelining Issues in the CCC High-level Synthesis E-CAD Framework

2018 41st International Conference on Telecommunications and Signal Processing (TSP), 2018

Academic High-level Synthesis tools like CustomCoprocessorsCompiler have recently evolved in new ... more Academic High-level Synthesis tools like CustomCoprocessorsCompiler have recently evolved in new versions with expanded functionality and more aggressive optimization schemes in order to satisfy hardware implementation requirements. Meanwhile, commercial tools like Xilinx VivadoHLS or, more recently, Compiler-driven code optimizations, are a useful means to improve quality of automatically generated hardware implementations. Such optimizations include loop transformations. Some of the most important transformations are loop unrolling and loop pipelining, which when they are combined with careful instruction reordering, deliver highly optimized schedules. Amongst others, instruction dependencies are significant limitations in loop optimization. In this paper, we discuss possible resolutions of loop pipelining issues such as dealing with dependencies between loop body operations. This has a great impact on high-level synthesis. Results from experiments with several benchmarks on the C...