原諒我記憶力不好。。。花了好久弄明白的東西才十個小時不到就忘記了,所以趁現(xiàn)在記得趕緊記錄下來。本文內(nèi)容:重建de1-soc中HPS-FPGA工程。
PS:原工程在http://pan.baidu.com/s/1gdkoniN,我用的是lab\SW\de1_soc_lab3_hardware和de1_soc_sw_lab3。最后的結(jié)果應(yīng)該是流水燈,60次。
打開Quartus ii 軟件,新建工程Qsystrying,選擇5CSEMA5F31C6,新建verilog HDL文件Qsys.v,文件內(nèi)容copy de1_soc_traning\lab\SW\de1_soc_lab3_hardware\ghrd_top.v文件內(nèi)容,注意模塊名改為Qsys,實例化處soc_system改為sys。ghrd.v中只有一個模塊,一次模塊實例化(注意原模塊實例化名字是soc_system,w我的Qsys系統(tǒng)名是sys)
建立Qsys系統(tǒng)sys.qsys。
1,注意先copy de1_soc_traning\lab\SW\de1_soc_lab3_hardware\ip文件夾到Qsys工程下。ip文件夾中是四個ip核,建立Qsys系統(tǒng)中除Quartus自帶ip核外還應(yīng)添加其他需要的ip核,可以自己寫,也可以從網(wǎng)上下載。
2,Quartus軟件下tools->Qsys或者直接快捷鍵,依次添加所需模塊并連線,最后generate產(chǎn)生相應(yīng)的文件。注意設(shè)置每一個模塊的參數(shù)(這里面的東西好多,我自己也不完全懂)。如果只是熟悉整個過程,可以直接copyde1_soc_traning\lab\SW\de1_soc_lab3_hardware\soc_system.qsys文件,文件名改成sys.qsys,同樣需要Quartus軟件下tools->Qsys,打開后generate產(chǎn)生與qsys同名的文件夾(這里是sys文件夾)及其他文件。產(chǎn)生的文件中需要特別注意的是.sopcinfo文件、sys\synthesis\sys.qip、sys\synthesis\sys.v(Qsys.v文件中實例化的sys模塊原型就在這個sys.v中),sys\synthesis\submodules\hps_sdram_p0_pin_assignments.tcl文件。
3,執(zhí)行hps_sdram_p0_pin_assignments.tcl文件。Quartus->tools->Tclscripts,run hps_sdram_p0_pin_assignments.tcl文件。
4,添加相應(yīng)的文件,具體如圖:(其實就是用到的ip核的.v文件和Qsys系統(tǒng)生成的.v和.qip文件)
1.jpeg (60.74 KB, 下載次數(shù): 158)
下載附件
2014-7-30 14:10 上傳
5,分析和綜合
6,執(zhí)行引腳分配.tcl腳本文件,或者自己用pin planner分配引腳。這里如果只是熟悉過程就直接從原項目
de1_soc_lab3_hardware中的工程導出別人的引腳分配的TCL文件。具體方法是:打開工程后,Assignment->pinplanner,file ->export,選擇文件類型tcl,名字改為Qsystrying(其他名字也可以)。復制該文件到我們的Qsystrying工程目錄。回到Qsys工程的Quartus界面,同樣執(zhí)行Qsystrying.tcl文件,就會發(fā)現(xiàn)引腳分配好了。
7,Compile Design。之后就是下載到FPGA的板子上。此時看到所有的LED燈都亮。
以上這些僅僅是搭建Qsys系統(tǒng),F(xiàn)PGA和HPS在Qsys系統(tǒng)上連接,工程文件僅僅是指定各個輸入輸出口和引腳分配。真正功能的實現(xiàn)是在HPS中的ARM 上跑的程序,具體的就在.c文件中了。
1,產(chǎn)生HPS頭文件。具體是利用C:\altera\13.1\embedded的Embedded_Command_Shell.bat運行g(shù)enerate_hps_qsys_header.sh腳本文件(該腳本文件在de1_soc_traning\lab\SW\de1_soc_lab3_hardware中,注意把soc_system.sopcinfo改為自己的.sopcinfo文件,這里是sys.sopcinfo)。
2,生成可執(zhí)行文件。新建或者直接復制de1_soc_traning\lab\SW\de1_soc_sw_lab3中的main.c文件,可以打開看看文件內(nèi)容就是跑馬燈程序,里面值得注意的是FPGA上地址映射到HPS中的地方,其他的比較容易理解。新建或者直接復制de1_soc_traning\lab\SW\de1_soc_sw_lab3中的Makefile文件,把Makefile,main.c,hps_0.h文件放在一個目錄下。用C:\altera\13.1\embedded的Embedded_Command_Shell.bat,make一下產(chǎn)生my_first_hps-fpga文件。
3,利用U盤或以太網(wǎng)方式copy my_first_hps-fpga文件到SD卡,putty連接,運行my_first_hps-fpga。此時看到流水燈。
總結(jié):
自己要做的--------FPGA這塊:ip核,Quartus Qsys系統(tǒng),工程.v文件,分配引腳的tcl文件
----------HPS 這塊:Makefile,main.c,generate_hps_qsys_header.sh
最后需要的---------.sof文件下載進FPGA,可執(zhí)行文件進SD卡中執(zhí)行
拓展:自啟動。
FPGA:.pof文件固化到FPGA中,注意我們的de1-soc用的不是EPCS,而是EPCQ,具體方式見用戶手冊倒數(shù)第二章。
HPS:在/etc/rcS.d中添加需要自動執(zhí)行的shell文件。這里可以新建shell文件,用shell文件執(zhí)行我們的my_first_hps-fpga可執(zhí)行文件。
之后再上電就會自啟動流水燈了。
|