版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
關(guān)于PWM發(fā)生器的性能分析和應(yīng)用介紹在這篇實(shí)例之前,說點(diǎn)自己的兩點(diǎn)感受。一、這個(gè)zynq開發(fā)流程基本上是這樣一個(gè)節(jié)奏:PlanAhead為軟硬件結(jié)合的載體,在此可以設(shè)計(jì)硬件,然后將硬件導(dǎo)出到軟件設(shè)計(jì)?;玖鞒倘鐖D:這里三個(gè)軟件切換來切換去,極其麻煩,并且其中還可能要FPGA開發(fā)用到的ISE,應(yīng)該不是xilinx想要的結(jié)果,預(yù)計(jì)以后會(huì)集成到一個(gè)軟件上。二、剛使用這個(gè)平臺(tái)不久,碰到bug不少,說明xilinx推出時(shí)準(zhǔn)備不是很充分。用戶IPcore與PS交互數(shù)據(jù)分兩種方案:一種是通過EMIO交換數(shù)據(jù),將PL的IP核當(dāng)做系統(tǒng)外設(shè),性能有所欠缺。常用的是第二種:滿足AXI協(xié)議的IP核。此IPcore與AXI密切相關(guān),難度較高。為降低難度,xilinx提供wizard自動(dòng)生成axi總線相關(guān)代碼,做好地址譯碼邏輯、讀寫控制邏輯,并在工作區(qū)生成一些寄存器。用戶PL邏輯通過讀寫這些寄存器與PS交互。以PWM發(fā)生器為例,有兩個(gè)寄存器,一個(gè)調(diào)節(jié)周期的寄存器,一個(gè)調(diào)節(jié)占空比。PlanAhead建立工程,添加嵌入式資源進(jìn)入XPS,添加xml配置之后,進(jìn)入XPSHardware—>CreateorImportPeriphera。開始添加IPcorewizard過程,注意在IPinterface階段,userlogicmastersupport表示ip核內(nèi)部是否要加入master接口,一般用在較復(fù)雜外設(shè)。softwarereset和includedataphasetimer分別為是否開啟軟件中斷和數(shù)據(jù)周期計(jì)時(shí)器,在此我們不要這些,防止生成多余的AXImaster接口、復(fù)位和計(jì)時(shí)模塊。下一步選擇寄存器數(shù)量,這里我們用到占空比和周期reg,因此設(shè)為2。下一步仿真平臺(tái)不要,下一步勾選二三項(xiàng),第一項(xiàng)是生成verilogVHDL,我要VHDL,不選,二表示生成一個(gè)ISE工程便于測(cè)試和調(diào)試IPcore。三表示生成軟件驅(qū)動(dòng)庫文件,方便在SDK中使用IPcore。完成wizard。配置完成,接下來添加剛完成的IPcore,在IPcatalog中雙擊添加,不用修改ok即可在businterface可找到剛添加的pwm_ip_0,右鍵之,viewMPD,添加pwm_out接口,1bit的輸出PORTpwm_ou="",DIR=o這里添加的代碼在systemassemblyview中的port映射出添加的pwm_out,問題:在wizard完成后出現(xiàn)pwm_ip.vhd文件沒有user_logic的component塊。原因:勾選Generatestub‘user_logic’templateinveriloginsteadofVHDL之后會(huì)生成。右鍵pwm_ip_0,選擇browserHDLsources選pwm_ip.hdl在component加用戶邏輯user_logic,繼續(xù)右鍵pwm_ip_0,選擇browserHDLsources選user_logic.v添加自己要加的功能,這里我們加pwm發(fā)生功能,代碼如下wireovprd;//下一個(gè)周期開始信號(hào)reg[C_SLV_DEIDTH-1:0]pwm_counter;wirepre_pwm_out;//預(yù)輸出信號(hào)always@(posedgeBus2IP_Clk)beginif(!Bus2IP_Clk||ovprd||~slv_reg1[31])//時(shí)鐘0,下一個(gè)周期開始1,占空比reg31位0計(jì)數(shù)器復(fù)位pwm_counter=32'h8000_0000;elseif(slv_reg1[31])pwm_counter=pwm_counter+1'b1;elsepwm_counter=pwm_counter;endassignovprd=(pwm_counter[30:0]==slv_reg0[30:0])?1'b1:1'b0;assignpre_pwm_out=(slv_reg1<pwm_counter)?1'b0:1'b1;assignpwm_out=pre_pwm_out&slv_reg1[31];然后project—>RescanUserRepositories更新,可以在ports中看到新添加的引腳,選擇exteralports連接管腳。在Address中右上角GeneratedAddress自動(dòng)分配地址Project—>DesignRuleCheck沒有錯(cuò)誤后關(guān)閉XPS回到PA右鍵module_1,createtopHDLaddsource選擇添加約束,對(duì)應(yīng)之前的工程名runsynthesis,出現(xiàn)錯(cuò)誤,如下圖1重新建程序,更改新建xps工程名以及PA的約束名為system,而不使用module_1默認(rèn)名,另外一個(gè)改動(dòng)是wizard建立ipcore過程中去掉dataphasetimer模塊。之后錯(cuò)誤消失,但是警告如圖2,這個(gè)警告是由于約束地址造成,關(guān)系不大。下一步打開opensynthesizeddesign(不點(diǎn)開這個(gè)在PA界面找不到IOports標(biāo)簽)打開IOports,設(shè)置pwm_out的引腳,然后保存(點(diǎn)擊PA的保存標(biāo)簽會(huì)讓你選擇一個(gè)ucf文件來保存,不需要自己另外寫)。GenerateBitstream然后導(dǎo)出硬件到SDK,新建xilinxcproject,選擇helloworld模板。注意接下來是將自己的pwm_ip導(dǎo)入的過程,跟上一個(gè)實(shí)驗(yàn)不一樣的地方。選擇xilinxtools—>Repositories點(diǎn)擊new找到工程路徑到edk,ok。右擊hello_world_bsp_0,選擇BoardSupportPackageSetting,找到drivers中的pwm_ip_0,將drive欄目下的generic修改為pwm_ip,自此自設(shè)的IP核驅(qū)動(dòng)就已經(jīng)添加進(jìn)來了。這里會(huì)報(bào)錯(cuò),這是xilinx的一個(gè)bug,在hello_world_bsp_0上有一個(gè)紅叉,在pwm_ip_selftest.c中加入#definePWM_IP_USER_NUM_REG_2,添加之后還是報(bào)錯(cuò),如圖3注釋掉添加C代碼PWM_IP_mWriteReg(XPAR_PWM_IP_0_BASEADDR,0,10000);PWM_IP_mWriteReg(XPAR_PWM_IP_0_BASEADDR,4,0X80000000+5000);//5000/10000=50%保存報(bào)錯(cuò)'XPAR_PWM_IP_0_BASEADDR'undeclared(firstuseinthisfunction)修改后報(bào)錯(cuò)cannotfind-lxil(可能是project_1沒有改為對(duì)應(yīng)pwm_ip_test,導(dǎo)致庫文件宏定義之類的不能調(diào)用)發(fā)現(xiàn)PWM_IP_USER_NUM_REG2多寫了個(gè)下劃線的錯(cuò)誤。修改后錯(cuò)誤依舊,貌似不會(huì)重新編譯。因此要重新從PA導(dǎo)出硬件到SDK。選擇XilinxTools->ProgramFPGA在hello_world_0工程上右擊,選擇RunAs->LaunchonHardware運(yùn)行出現(xiàn)各種錯(cuò)誤,如下圖4、5換成memorytest模板后,萬用表查看JA1約為1.2V。用示波器看波形結(jié)果是正確的。helloworld模板不行,具體原因不明。總結(jié):第一、添加user_logic.v時(shí)要求為verilog代碼,在wizard過程中嘗試過使用VHDL而不是verilog,結(jié)果是生成的pwm_ip.hdl中沒有user_logic的component模塊。而pwm_ip.hdl又是VHDL語言,極其不便。第二、添加約束時(shí)使用默認(rèn)的module
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)水利改造升級(jí)技術(shù)應(yīng)用合同
- 旅游地產(chǎn)投資合同審查策略
- 建筑供滑雪場(chǎng)人工費(fèi)施工合同
- 會(huì)計(jì)服務(wù)外包服務(wù)合同范本
- 城市機(jī)場(chǎng)廣告牌施工合同
- 工業(yè)廠房屋面瓦安裝協(xié)議
- 動(dòng)漫產(chǎn)業(yè)質(zhì)檢崗位聘用合同模板
- 造紙工程私人施工合同樣式
- 消防工程勞務(wù)合同模板
- 建筑工程防雷施工合同范本
- 《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第3版)》期末復(fù)習(xí)題庫(含答案)
- 形式邏輯新解智慧樹知到期末考試答案章節(jié)答案2024年上海財(cái)經(jīng)大學(xué)
- 2024年漢口銀行股份有限公司招聘筆試沖刺題(帶答案解析)
- 集成電路高可靠高密度封裝(一期)項(xiàng)目可行性研究報(bào)告
- 《韓國(guó)的語言》課后答案
- 寵物醫(yī)療創(chuàng)新創(chuàng)業(yè)
- 報(bào)價(jià)單(產(chǎn)品報(bào)價(jià)單)
- 項(xiàng)目經(jīng)理及主要管理人員能力水平
- 工程倫理-工程案例分析
- 纜車合唱鋼琴伴奏譜
- 小學(xué)四年級(jí)上冊(cè)數(shù)學(xué)集體備課-記錄
評(píng)論
0/150
提交評(píng)論