簡易檢索 / 詳目顯示

研究生: 蔡安捷
Tsai, An-jie
論文名稱: 擴充QEMU成為SoC平台整合式軟硬體協同模擬工具
Enhancing QEMU into an integrated Hardware/Software Co-simulation Tool for SoC Platform
指導教授: 黃悅民
Huang, Y.M.
學位類別: 碩士
Master
系所名稱: 工學院 - 工程科學系
Department of Engineering Science
論文出版年: 2008
畢業學年度: 96
語文別: 中文
論文頁數: 110
中文關鍵詞: 系統單晶片模擬硬體描述語言
外文關鍵詞: HDL (Hardware Description Language), Simulation, Emulator, SoC (System on Chip)
相關次數: 點閱:79下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 對於SoC系統開發過程中,硬體模組與軟體元件常是各自開發。現在雖有許多對於軟硬體協同開發的討論,但主要皆以開發初期的規劃做討論。本論文主要關注開發階段的軟硬體協同模擬,針對嵌入式平台硬體模擬器(Emulator)及硬體描述語言(HDL)軟體模擬(Simulation)協同模擬提出一個系統框架(Framework)。採用此系統框架,可讓正確運行於模擬平台上的軟體,能透過較少的修改,即可運行於SoC目標平台(Target platform),並且能更早釐清軟硬體設計的錯誤,提早修正,進而能把開發心力集中於系統最佳化設計上。

    The development of hardware modules and software components are usually separated during the process of developing SoC Platform. There are many discussions about the co-work between software and hardware, but the major goals are the planning during initial period of development. Therefore, we focus on the software/hardware co-simulation during the development process; we propose an emulation system framework for software/hardware co-simulation, using an emulator for emulating embedded platforms, and simulation for hardware description language (HDL). The major goal of the framework is to reduce the modification of the software which can execute on both simulator and real SoC target platform successfully, and we can find the bugs in software/hardware quickly, and pay more attention to the optimization for desired systems.

    第一章 緒論 14 1.1研究動機 14 1.2研究目的 15 1.3章節提要 15 第二章 嵌入式系統架構分析 16 2.1簡介 16 2.2硬體架構分析 16 2.3軟體堆疊分析 18 第三章 Linux運行於嵌入式系統之上的解決方案 19 3.1簡介 19 3.2從硬體角度的考量 19 3.2.1處理器(CPU) 19 3.2.2記憶體(Memory) 20 3.2.3輸入輸出周邊裝置(I/O Peripheral Devices) 20 3.2.3.1計時器(Timer) 20 3.2.3.2中斷控制器(Interrupt Controller) 20 3.2.3.3 UART序列介面(Serial Interface) 20 3.2.3.4基本輸入輸出(GPIO) 20 3.3從軟體角度的考量 21 3.3.1開機載入程式(Bootloader) 21 3.3.2 Linux作業系統核心(Linux Kernel) 22 3.3.3根檔案系統(Root Filesystem) 22 第四章 建構系統軟體前的準備工作 24 4.1 簡介 24 4.2硬體規格書 24 4.2.1電路圖 (Schematic) 24 4.2.2佈線圖 (IC Layout) 24 4.2.3平台規格書 (Technical Reference Manual or specification) 25 4.2.4應用手冊 (Application Note) 25 4.3軟體架構圖 25 4.3.1專案層面 25 4.3.2系統層面 26 4.3.3元件層面 26 4.4硬體開發環境 26 4.5軟體開發環境 27 4.6撰寫測試程式 28 4.6.1處理器(CPU) 28 4.6.2同步動態隨機存取記憶體(SDRAM) 29 4.6.3快閃記憶體(Flash Memory) 29 4.6.4 UART 29 4.6.5 計時器(Timer) 30 第五章 建構嵌入式系統平台之編譯環境 31 5.1簡介 31 5.1.1 GNU make 31 5.1.2 GNU Compiler Collection (GCC) 31 5.1.3 GNU Binutils 31 5.1.4 GNU Debugger (GDB) 32 5.1.5 GNU Build System (Autotools) 32 5.2 取得並使用現有的套件 34 5.2.1 Binary Tarballs 34 5.2.2 Emdebian (Embedded Debian) 34 5.3手動打造自己的編譯環境 34 5.3.1 CLFS (Cross Linux From Scratch) 34 5.3.2 Emdebian (Embedded Debian) 34 5.3.3 crossdev (Gentoo Cross-Toolchain generator) 35 第六章 移植Bootloader於嵌入式系統平台 36 6.1 簡介 36 6.2 Das U-Boot簡介 36 6.3 移植Das U-Boot的考量 38 6.4 移植Das U-Boot的流程 38 6.5 實例探討 45 第七章 移植Linux於嵌入式系統平台 49 7.1 簡介 49 7.2 移植Linux的考量 49 7.3 移植Linux的流程 50 7.4 實例探討 51 7.4.1 移植Linux於嵌入式平台 51 7.4.2 移植過程中的除錯技巧及工具探討 60 第八章 打造專屬的根檔案系統 63 8.1 簡介 63 8.2 應用程式(Applications) 63 8.3 裝置驅動程式(Device Drivers) 63 8.4 公用程式(Utilities) 64 8.5 執行期載入的程式庫(Runtime Libraries) 64 8.6 開放原始程式碼套件的移植流程 64 8.7 實例探討 65 第九章 系統整合 69 9.1 簡介 69 9.2 開機載入程式(Bootloader) 70 9.3 作業系統(Linux Kernel) 70 9.4 根檔案系統(Root Filesystem) 71 9.5 裝置驅動程式(Device Drivers) 72 9.6 系統縮減與最佳化 72 9.7實例探討 73 第十章 使用QEMU模擬器協同開發除錯 77 10.1簡介 77 10.1.1 Softgun - The Software ARM 78 10.1.2 SkyEye - Open Source Simulator 79 10.1.3 GXemul - A framework for full-system computer architecture emulation 80 10.1.4 Desmume - Nintendo DS emulator 81 10.1.5 QEMU - Open Source Processor Emulator 82 10.2 QEMU的修改流程 82 10.3 QEMU 啟動流程 83 10.4 實例探討 84 第十一章 軟硬體協同模擬器架構研究與實作 89 11.1 簡介 89 11.2 架構 90 11.3 實作成果 98 第十二章 結論與未來展望 107 12.1 實作心得與討論 107 12.2 未來工作與發展 107 參考文獻及資料 108

    [1] 蘇培陞, 陳紀綱, 林士哲, "使用電子系統層級設計方法開發雙核心系統晶片平台", 系統晶片科技中心技術期刊006期, 2007.
    [2] 陳紀綱, 蘇培陞, "以系統層級設計方法建立PAC PMP SoC驗證平台",
    系統晶片科技中心技術期刊002期, 2006.
    [3] 陳銘宏 林盈達, "移植Linux至ARM嵌入式處理器", 國立交通大學資訊科學系, 2004.
    [4] 歐陽銘康 林柏青 林盈達, "SOC 設計方法與實例", 國立交通大學資訊科學系, 2004.
    [5] 蔡品再 林盈達, "追蹤Linux TCP/IP 核心 – 使用遠端除錯", 國立交通大學資訊科學系, 2001.
    [6] 林佳輝, 鄭福炯, "合成SystemC TLM 到 VHDL:以WISHBONE為例", 大同大學資訊工程學所, 2008.
    [7] 劉勁驎, "用於系統層級架構模擬與評估之虛擬平台", 國立中山大學資訊工程學系, 2005.
    [8] 王玉琳, "建構於元件式電子系統層級的漸進式SoC設計流程", 國立成功大學資訊工程學系, 2007.
    [9] 高洵偉, "使用Linux作業系統獨有的特性來達成嵌入式處理器之驗證", 國立成功大學電通所, 2006.
    [10] 蔡安捷, 張焜銘, 黃顯詔, 黃悅民, "Hybrid Simulator and HDL Emulation Framework for Developing Multimedia SoC Platform", 國立成功大學工程科學系所多媒體網路實驗室, 2008.
    [11] V. M. Barrio, "Study of the techniques for emulation programming", June 18 2001.
    [12] Donlin, A., "Transaction level modeling: flows and use models", IEEE, Sept. 2004.
    [13] D. Mitchell, "Manual and Automatic VHDL/Verilog Test Bench Coding Techniques", 2001, SynaptiCAD Inc.
    [14] S. Swan, "SystemC Transaction Level Models And RTL Verification", ACM, 2006.
    [15] Y. Zorian, Erik Jan Marinissen, Sujit Dey, "Testing Embedded-Core-Based System Chips", IEEE, 1999.
    [16] S. Kajtazovic, Christian Steger, Markus Pistauer, "A HDL-Independent Modeling Methodlogy for Heterogeneous System Designs", IEEE, 2005.
    [17] A. S. Meyer, "A Loosely Coupled C/Verilog Environment for System Level Verification", ASIC Alliance Corporation, 1998.
    [18] S.Yoo and A.A. Jerraya, "Hardware/Software Cosimulation from interface perspective", IEEE, 2005, pp. 372-379.
    [19] Y.T. Hsu, Yuan-Jin Wen and Sheng-De Wang, "Embedded Hardware/Software Design and Cosimulation using User Mode Linux and SystemC", IEEE, 2007.
    [20] K. Kim, "An Integrated Hardware-Software Cosimulation Environment with Automated Interface Generation", IEEE, 1996, LG Electronics Research Center.
    [21] L. Benini, Davide Bertozzi, "SystemC Cosimulation and Emulation of Multiprocessor SoC Designs", IEEE, 2003.
    [22] L. Formaggio, F. Fummi, G. Pravadelli, "A Timing-Accurate HW/SW Cosimulation of an ISS woth SystemC", ACM, 2004.
    [23] C. Wenwei, Z. Jinyi, L. Jiao, R. Xiaojun, L. Jiwei, "Study on a Mixed Verification Strategy for IP-Based SoC Design", 2006.
    [24] C. Liem, "System-on-a-Chip Cosimulation and Compilation", IEEE, 1997.
    [25] Wookey and T. Shing, "Porting the Linux Kernel to a New ARM Platform", Aleph One, 2002.
    [26] V. Sanders, "Booting ARM Linux", 2004.
    [27] L. Someren, "Electronic 'Guide to ARMLinux for Developers'", 2005.
    [28] ARM Corp.,"ARM Dual-Timer Module (SP804) Technical Reference Manual",2004.
    [29] ARM Corp.,"PrimeCell Vectored Interrupt Controller (PL190) Technical Reference Manual", ARM Inc., 2004.
    [30] ARM Corp., "ARM architecture reference manual", 2nd edition, ARM Inc, 2007.
    [31] ARM Corp., "ARM Developer Suite AXD and armsd Debuggers Guide Version 1.2", ARM Inc., 2001.
    [32] ARM, "ARM922T (rev0) Technical reference manual", ARM Inc, 2007.
    [33] PMP SoC Design Report Version 1.0, ITRI/STC, 2007.
    [34] PMP SoC Memory Map Version: 1.4.6.7, ITRI/STC, 2006.
    [35] 可再用IP目標規格及使用者手冊, Version 1.3, ITRI/STC, 2007.

    無法下載圖示 校內:2107-08-05公開
    校外:2107-08-05公開
    電子論文尚未授權公開,紙本請查館藏目錄
    QR CODE