C-to-VHDL語言轉(zhuǎn)換關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-10-30 11:09
如何提高CPU的運(yùn)行速度是當(dāng)前的一個(gè)熱門課題,F(xiàn)有的高效加速方法之一就是采用FPGA作為CPU的硬件加速部件,選取可加速的程序段放到FPGA上運(yùn)行,減輕CPU的運(yùn)算量,以達(dá)到提高整體運(yùn)行速度的目的。為降低加速應(yīng)用的開發(fā)難度,C-to-VHDL編譯器的研究成為當(dāng)前學(xué)術(shù)研究的一個(gè)熱點(diǎn)。 本文選擇了功能強(qiáng)大、性能良好、擴(kuò)展方便的LLVM作為開發(fā)框架,設(shè)計(jì)實(shí)現(xiàn)C-to-VHDL編譯器。首先,詳細(xì)介紹了LLVM編譯系統(tǒng),分析了中間代碼、集成庫、工具集和編譯流程,設(shè)計(jì)了后端代碼生成器;分析了C與VHDL的區(qū)別,給出了IF結(jié)構(gòu)到VHDL程序的設(shè)計(jì)方案,實(shí)現(xiàn)了IF結(jié)構(gòu)到VHDL的自動(dòng)編譯轉(zhuǎn)換,為項(xiàng)目的功能擴(kuò)展奠定了基礎(chǔ)。然后,本文研究了FPGA的流水加速技術(shù),對FPGA的設(shè)計(jì)的進(jìn)一步優(yōu)化具有指導(dǎo)意義。本文分析了數(shù)據(jù)流的流水線實(shí)現(xiàn)的特點(diǎn)和方法,提出了流水線的三個(gè)實(shí)現(xiàn)方案,并進(jìn)行對比,著重介紹了按照時(shí)間進(jìn)行劃分的具體實(shí)現(xiàn)。本文還研究了在ISE的優(yōu)化功能與流水的相互作用下,如何選取最優(yōu)時(shí)鐘節(jié)拍的問題。同時(shí),研究了在時(shí)鐘限制下的最優(yōu)流水處理的問題。最后,將C代碼作為輸入數(shù)據(jù),應(yīng)用本文的語言轉(zhuǎn)換方法和流水處理方法實(shí)現(xiàn)了從C代碼到VHDL代碼轉(zhuǎn)換和兩種流水方式——依據(jù)串行指令條數(shù)進(jìn)行流水和依據(jù)時(shí)間進(jìn)行流水。實(shí)驗(yàn)證明,該編譯方案能有效地實(shí)現(xiàn)IF結(jié)構(gòu)到VHDL代碼的自動(dòng)轉(zhuǎn)換,并且保證流水實(shí)現(xiàn)方案設(shè)計(jì)的正確性。
【學(xué)位單位】:哈爾濱工程大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2010
【中圖分類】:TP312.1;TP332
【部分圖文】:
種優(yōu)化函數(shù)庫。這些集成庫可以分為以下幾大類:核心庫、分析庫、轉(zhuǎn)換庫、代碼生成庫、目標(biāo)處理器庫、運(yùn)行庫等。本設(shè)計(jì)主要使用核心庫和代碼生成庫中的相關(guān)函數(shù)。核心庫主要用于中間代碼的解析及相關(guān)處理;代碼生成庫用于目標(biāo)代碼生成。這些集成庫是使用 C++語言編寫的,運(yùn)用面向?qū)ο蟮木幊趟枷,使用?shù)據(jù)的抽象和封裝方法,功能強(qiáng)大,覆蓋面廣,定義嚴(yán)謹(jǐn),為基于 LLVM 的相關(guān)開發(fā)提供了極大的便利。2.1.4 工具集
18中 br 是指令名稱;bool 是運(yùn)算類型,即布爾型;%tmp.1 為該條件跳轉(zhuǎn)的鍵值,可以取 true 或 false,根據(jù)該關(guān)鍵值的結(jié)果,選擇后續(xù)執(zhí)行哪一個(gè)基塊;label 表示后續(xù)名稱是一個(gè)標(biāo)號;%then 表示標(biāo)號名稱為 then 的基本塊當(dāng)關(guān)鍵值為 true 時(shí),跳轉(zhuǎn)到該基本塊繼續(xù)執(zhí)行;%else 表示標(biāo)號名稱為 e的基本塊,當(dāng)關(guān)鍵值為 false 時(shí),跳轉(zhuǎn)到該基本塊繼續(xù)執(zhí)行。雙分支條件跳命令結(jié)構(gòu)如圖 3.1(b)所示。
其中實(shí)體說明以關(guān)鍵字加 實(shí)體名;”結(jié)束,中間是實(shí)體的組成部分,是對實(shí)體的外部接口動(dòng)態(tài)通信的通道,其功能對應(yīng)于須定義端口的名字、通信模式、過該端口的方向,主要有四類:式 INOUT。主要實(shí)現(xiàn)端口的說明、聲明輸入聲明部分的內(nèi)容一一對應(yīng),目前回值當(dāng)作輸出,函數(shù)的名直接當(dāng)以得到函數(shù)的相關(guān)屬性,運(yùn)用 C函數(shù)聲明為 int max(int a, int b, 2。
【參考文獻(xiàn)】
本文編號:2862389
【學(xué)位單位】:哈爾濱工程大學(xué)
【學(xué)位級別】:碩士
【學(xué)位年份】:2010
【中圖分類】:TP312.1;TP332
【部分圖文】:
種優(yōu)化函數(shù)庫。這些集成庫可以分為以下幾大類:核心庫、分析庫、轉(zhuǎn)換庫、代碼生成庫、目標(biāo)處理器庫、運(yùn)行庫等。本設(shè)計(jì)主要使用核心庫和代碼生成庫中的相關(guān)函數(shù)。核心庫主要用于中間代碼的解析及相關(guān)處理;代碼生成庫用于目標(biāo)代碼生成。這些集成庫是使用 C++語言編寫的,運(yùn)用面向?qū)ο蟮木幊趟枷,使用?shù)據(jù)的抽象和封裝方法,功能強(qiáng)大,覆蓋面廣,定義嚴(yán)謹(jǐn),為基于 LLVM 的相關(guān)開發(fā)提供了極大的便利。2.1.4 工具集
18中 br 是指令名稱;bool 是運(yùn)算類型,即布爾型;%tmp.1 為該條件跳轉(zhuǎn)的鍵值,可以取 true 或 false,根據(jù)該關(guān)鍵值的結(jié)果,選擇后續(xù)執(zhí)行哪一個(gè)基塊;label 表示后續(xù)名稱是一個(gè)標(biāo)號;%then 表示標(biāo)號名稱為 then 的基本塊當(dāng)關(guān)鍵值為 true 時(shí),跳轉(zhuǎn)到該基本塊繼續(xù)執(zhí)行;%else 表示標(biāo)號名稱為 e的基本塊,當(dāng)關(guān)鍵值為 false 時(shí),跳轉(zhuǎn)到該基本塊繼續(xù)執(zhí)行。雙分支條件跳命令結(jié)構(gòu)如圖 3.1(b)所示。
其中實(shí)體說明以關(guān)鍵字加 實(shí)體名;”結(jié)束,中間是實(shí)體的組成部分,是對實(shí)體的外部接口動(dòng)態(tài)通信的通道,其功能對應(yīng)于須定義端口的名字、通信模式、過該端口的方向,主要有四類:式 INOUT。主要實(shí)現(xiàn)端口的說明、聲明輸入聲明部分的內(nèi)容一一對應(yīng),目前回值當(dāng)作輸出,函數(shù)的名直接當(dāng)以得到函數(shù)的相關(guān)屬性,運(yùn)用 C函數(shù)聲明為 int max(int a, int b, 2。
【參考文獻(xiàn)】
相關(guān)期刊論文 前2條
1 陳吉華;VHDL——一種統(tǒng)一的設(shè)計(jì)描述語言[J];微電子學(xué)與計(jì)算機(jī);1993年08期
2 王兼明,沈永朝;VHDL硬件描述語言及其設(shè)計(jì)環(huán)境[J];系統(tǒng)工程與電子技術(shù);1990年01期
相關(guān)碩士學(xué)位論文 前1條
1 李原;VHDL編譯系統(tǒng)設(shè)計(jì)方法及關(guān)鍵技術(shù)研究[D];四川大學(xué);2005年
本文編號:2862389
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2862389.html
最近更新
教材專著