顧孟愷臺灣大學:資訊工程學研究所李彥勳Lee, Luke Yan-XunLuke Yan-XunLee2007-11-262018-07-052007-11-262018-07-052005http://ntur.lib.ntu.edu.tw//handle/246246/53635Embedded system device driver developing has been identified as one of the most critical tasks in a System-on-Chip (SoC) design cycle. New tools and methodologies are required to improve the quality and development time of device drivers. We proposed a novel technique called “Expert Template” to meet this requirement. We also developed a methodology to co-simulate C/C++ software modules with SystemC derived hardware modules based on open-source tools and codes. Device driver source codes that are written by human experts are decomposed into extensible markup language (XML) structures. These parameterized structures are later reassembled back into source code form according to programmer specified parameters in XML tags. This tool enables automatic synthesis of device drivers from minimum descriptions. It allows developers to develop device driver from early design stages. Generic device drivers can be ported to various real-time operating systems (RTOS) easily. Our “Expert Template” also reduces the possible human errors in device driver development. The concept of expert template can be extended to reusable intellectual properties (IPs) as well. In this thesis, we first introduce the electronic system level (ESL) design trend and present our “Expert Template” approach. We then apply this new tool and our co-simulation methodology to realize a JPEG2000 codec design. The result shows that our “Expert Template” approach can improve the quality of source code and reduce the development time of device drivers.Table of Contents Acknowledgements i Abstract iii LIST OF FIGURES vii Chapter 1 Introduction 1 1.1 A Review of Hardware Software Codesign Trend 1 1.2 A Review of Typical SoC Design Flow 6 1.3 A Review of Electronic System Level Design 12 1.4 A Review of Embedded Software 18 1.5 A Hardware Software Codesign Framework Based on SystemC 21 Chapter 2 Interfacing Hardware and Software 27 2.1 Big Gap between Software Function Calls and Hardware Output Signals 27 2.2 Abstraction Levels of Hardware from Software’s Point of View 31 2.2.1 Application Program Interface (API) 32 2.2.2 Device File 33 2.2.3 CPU Instruction Set and Coprocessor 34 2.2.4 Bus Channel 34 2.3 Hardware Software Cosimulation 35 2.4 Related Works 37 2.5 Expert Template : Theory 40 2.5.1 Potential Performance Loss of the Virtual Platform Layer 40 2.5.2 Expert Template 45 2.5.3 Comparison between Expert Template Approach and Others’ 48 2.5.4 Expert Template as a Post-processing Synthesizer 49 Chapter 3 Implementation of the Interface Synthesizer 53 3.1 Altera ARM Excalibur Development Environment 53 3.2 Porting of Real Time Operating Systems 55 3.3 RTOS Enabled Hardware Software Cosimulation Technique based on a Open Source SystemC Engine 63 3.4 A Top-down Successive Refinement Process 69 3.5 Expert Template : Realization 79 Chapter 4 Case Study : JPEG2000 Codec Codesign 87 4.1 Overview of JPEG000 Codec 87 4.2 Performance Analysis 89 4.3 Discrete Wavelet Transform 91 4.4 Interface Generation for DWT 94 4.5 Result 97 Chapter 5 Conclusions and Future Work 99 5.1 Conclusions 99 5.2 Future work 100 REFERENCES 102 APPENDIces 106 APPENDIX A Samlpe eCos Device Driver with XML Tags for Expert Template Tool 107en-US軟硬體界面軟硬體協同設計自動合成專家模板Hardware/Software Codesignhardware software interfaceautomatic synthesisexpert template軟硬體協同設計環境中的界面自動合成Hardware/Software Interface Synthesis for a Codesign Frameworkthesis