標(biāo)題: SOPC自定義元件的添加及運(yùn)行 [打印本頁]
作者: 51黑tt 時(shí)間: 2016-3-4 20:40
標(biāo)題: SOPC自定義元件的添加及運(yùn)行
在SOPC中自定義元件的端口設(shè)置解析中講述了自定義元件的端口設(shè)置,在本文中將詳細(xì)講述如何將自定義元件嵌入SOPC Builder中,以及將該元件加入SOPC系統(tǒng),并通過運(yùn)行軟件測試該元件性能。
新建一個(gè)文件夾ip,將Ckecksum Hardware Accelerator的源文件checksum_accelerator.v,checksum_transform.v,latency_aware_read_master.v,slave.v復(fù)制到該文件夾下。
打開SOPC Builder,單擊左上角的Create new component…,彈出如下對(duì)話框:
0145f901-e4bc-44f6-a7f5-ed68d5b2f4de.jpg (161.92 KB, 下載次數(shù): 103)
下載附件
2016-3-4 20:51 上傳
Introduction頁面是對(duì)component editor的簡單介紹。
l HDL Files
7cd658f6-9df8-46ce-892c-c3f42f14267f.jpg (69.25 KB, 下載次數(shù): 92)
下載附件
2016-3-4 20:51 上傳
單擊Add…,選擇剛才新建的ip文件夾,將該文件夾下的所有.v文件選中加入,component editor并會(huì)進(jìn)行分析,主要是對(duì)端口的分析,將頂層文件的Top復(fù)選框打上勾。如果文件有改變可以點(diǎn)擊Reanalyze HDL Files重新分析。
除了導(dǎo)入HDL文件外,component editor還提供另一種方法可以將端口export到SOPC系統(tǒng)之外,直接在Signals頁面手動(dòng)加入信號(hào)或在Templates中加入已經(jīng)定義好的端口信號(hào),用戶再自己修改。導(dǎo)入HDL文件后,Templates下拉菜單為灰色,無法加入。
l Signals
e401a4f3-c4e3-4aca-9d50-7b5e593d4bd6.jpg (106.01 KB, 下載次數(shù): 112)
下載附件
2016-3-4 20:51 上傳
這里的信號(hào)是component editor分析了HDL文件后自動(dòng)從文件中提取的端口信號(hào),用戶需要設(shè)置interface,Signal Type,Width,Direction以使用戶端口信號(hào)與Avalon總線信號(hào)相對(duì)應(yīng),如果用戶端口信號(hào)的命名方式參考 SOPC中自定義元件的端口設(shè)置解析 中的要求,則component editor自動(dòng)識(shí)別出相對(duì)應(yīng)的信號(hào)設(shè)置。
l interfaces
69998e9a-b135-49c6-a107-7f48aaafd617.jpg (81.52 KB, 下載次數(shù): 115)
下載附件
2016-3-4 20:51 上傳
Interfaces的類型在SOPC中自定義元件的端口設(shè)置解析 中有說明,主要有Master,slave,clock input等10種,在每種類型下面可以設(shè)置該類型interface的屬性參數(shù),如時(shí)序,流水線傳輸,interface的同步clock等。如果顯示了除定義以外的interface,則點(diǎn)擊Remove interfaces With No Signals刪除。
l Component Wizard
1541b6c0-30ba-4c59-a1dc-145f90d69c6b.jpg (79.37 KB, 下載次數(shù): 100)
下載附件
2016-3-4 20:51 上傳
在Component Wizard中可以設(shè)置元件所屬類型名稱,元件顯示名稱,版本號(hào)等信息,點(diǎn)擊Preview the GUI…可以預(yù)覽,如果在頂層HDL文件中定義了一些Parameters,可以這里加入以便讓用戶在實(shí)例化時(shí)可以設(shè)置這些參數(shù)。
全部設(shè)置完后,點(diǎn)擊Finish…在ip文件夾下產(chǎn)生checksum_accelerator_hw.tcl文件,該文件并是Component editor根據(jù)用戶設(shè)置生成的文件,該文件提供給SOPC Builder所有需要的信息。
除了硬件文件外,為了能用軟件執(zhí)行給元件,需要添加軟件驅(qū)動(dòng)程序。在ip文件夾下新建HAL文件和inc文件,ip文件結(jié)構(gòu)如下:
ed1fa66a-fb53-4440-b44f-ff6e244ee529.jpg (3.59 KB, 下載次數(shù): 99)
下載附件
2016-3-4 20:51 上傳
其中HAL文件夾下的inc文件夾下包含checksum_accelerator_routines.h為軟件API的頭文件,HAL文件夾下的src文件夾下包含checksum_accelerator_routines.c為軟件API的源文件,以及component.mk,該文件在編譯時(shí)提供驅(qū)動(dòng)程序源文件信息。在ip文件夾下的inc文件提供元件的寄存器映射(register map)文件,該文件提供軟件讀寫元件寄存器的地址。
所有的工作完成后,將ip文件復(fù)制到QuaetusII工程目錄下,打開該工程的SOPC Builder,此時(shí)在左邊欄出現(xiàn)剛才新增的元件。
f37d9159-e6cd-49e1-ba72-b300e440bb55.jpg (25.23 KB, 下載次數(shù): 107)
下載附件
2016-3-4 20:51 上傳
為了測試新增元件的功能,建立帶有該元件的SOPC系統(tǒng):
e544cdaa-0598-47a4-aacf-6ea241d69a01.jpg (97.23 KB, 下載次數(shù): 114)
下載附件
2016-3-4 20:51 上傳
同時(shí)建立以該硬件為基礎(chǔ)的軟件工程,將文件test_checksum.c的內(nèi)容復(fù)制到應(yīng)用工程的源文件中,編譯,下載,運(yùn)行后,console窗口出現(xiàn)如下結(jié)果:
57d4449a-bd2d-458b-9ab7-c483b797af1b.jpg (61.57 KB, 下載次數(shù): 115)
下載附件
2016-3-4 20:51 上傳
軟件首先產(chǎn)生64KB的隨機(jī)數(shù),然后分別用軟件cheksum和硬件checksum,輸出兩次checksum的結(jié)果,可以看到硬件checksum比軟件checksum快了65倍,硬件加速起到了很大的作用,因此在關(guān)鍵算法上可以采用硬件實(shí)現(xiàn),以提高速度。
作者: lyl_420819 時(shí)間: 2017-8-23 15:33
學(xué)習(xí)了,謝謝分享。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |