FPGA教學(xué)課件:FPGA的新型調(diào)試方法-Virtual JTAG_第1頁
FPGA教學(xué)課件:FPGA的新型調(diào)試方法-Virtual JTAG_第2頁
FPGA教學(xué)課件:FPGA的新型調(diào)試方法-Virtual JTAG_第3頁
FPGA教學(xué)課件:FPGA的新型調(diào)試方法-Virtual JTAG_第4頁
FPGA教學(xué)課件:FPGA的新型調(diào)試方法-Virtual JTAG_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

近期工作內(nèi)容1、將FPGA中實時仿真的數(shù)據(jù)導(dǎo)出找到了FPGA導(dǎo)出數(shù)據(jù)的新方法——VirtualJTAG;學(xué)習(xí)VirtualJTAG的工作原理并編寫了相關(guān)控制程序2、學(xué)習(xí)TCL腳本語言VirtualJTAG需要與電腦交互式界面配合才能導(dǎo)出數(shù)據(jù),需要用到TCL腳本語言3、對導(dǎo)出的數(shù)據(jù)進(jìn)行處理,投稿電工導(dǎo)出數(shù)據(jù)進(jìn)行處理作圖后,定量估算了誤差,完成了投稿電工的文章下一步計劃安排:大論文撰寫2022/10/21FPGA的新型調(diào)試方法-VirtualJTAG2022/10/21報告內(nèi)容研究背景并行化SPI通信原理及通信吞吐量并行化SPI通信原理及通信吞吐量調(diào)試中遇到的問題VirtualJTAG的工作原理及實現(xiàn)2022/10/21報告內(nèi)容研究背景并行化SPI通信原理及通信吞吐量并行化SPI通信原理及通信吞吐量調(diào)試中遇到的問題VirtualJTAG的工作原理及實現(xiàn)2022/10/21研究背景人機(jī)交互,手動設(shè)定數(shù)據(jù)提取時間點(diǎn)外界控制,無多余IO口外接定量比較誤差同時基、同坐標(biāo)下作圖2022/10/21報告內(nèi)容研究背景并行化SPI通信原理及通信吞吐量并行化SPI通信原理及通信吞吐量調(diào)試中遇到的問題VirtualJTAG的工作原理及實現(xiàn)2022/10/21VirtualJTAG概述VirtualJTAG:一種FPGA在線調(diào)試方法;與真實JTAG接口內(nèi)部相連,通過真實JTAG的TDO和TDI接口傳遞數(shù)據(jù);功能類似于SignalTap,都是通過仿真器將數(shù)據(jù)串行導(dǎo)出;Quartus內(nèi)部自帶VirtualJTAGIP核,但仍需外部編寫控制模塊程序,主要包括數(shù)據(jù)的串并轉(zhuǎn)換以及指令識別;2022/10/21VirtualJTAG工作原理圖VJModule2022/10/21IP核配置界面2022/10/21IR指令與//IR譯碼,4'b0001表示發(fā)送FIFO開始寫入指令wireWrite_Command=ir_in[0]&(~ir_in[1])&(~ir_in[2])&(~ir_in[3]);//IR譯碼,4'b0010表示發(fā)送讀取FIFO當(dāng)前已存字節(jié)數(shù)指令wireusedw_Command=(~ir_in[0])&ir_in[1]&(~ir_in[2])&(~ir_in[3]);//IR譯碼,4'b0011表示發(fā)送當(dāng)前需要控制的FIFO編號指令wireChannel_Select_Command=ir_in[0]&ir_in[1]&(~ir_in[2])&(~ir_in[3]);//IR譯碼,4'b0100表示發(fā)送讀取一個FIFO數(shù)據(jù)的指令wireRead_Command=(~ir_in[0])&(~ir_in[1])&ir_in[2]&(~ir_in[3]);//IR譯碼,4'b0101表示發(fā)送將上一時刻讀取出的FIFO數(shù)據(jù)讀回VJ的指令wireRd_Data_Command=ir_in[0]&(~ir_in[1])&ir_in[2]&(~ir_in[3]);//IR譯碼,4'b0110表示發(fā)送讀取FIFO當(dāng)前已存字節(jié)數(shù)指令wireStart_Command=(~ir_in[0])&ir_in[1]&(ir_in[2])&(~ir_in[3]);//IR譯碼,4'b0111表示發(fā)送讀VirJTAG已準(zhǔn)備好指令wireSys_Start_Command=(ir_in[0])&ir_in[1]&(ir_in[2])&(~ir_in[3]);2022/10/21VirtualJTAGIP模塊引腳說明引腳名稱引腳方向備注tdoinputVJ數(shù)據(jù)輸入Ir_outinput觸發(fā)指令(高級仿真用)tckoutput時鐘TCKtdioutputVJ數(shù)據(jù)輸出Ir_inoutput控制指令輸出virtual_state_cdroutputVirtualCaptureDRvirtual_state_sdroutputVirtualShiftDRvirtual_state_e1droutputVirtualExit1DRvirtual_state_pdroutputVirtualPauseDRvirtual_state_e2droutputVirtualExit2DRvirtual_state_udroutputVirtualUpdateDRvirtual_state_ciroutputVirtualCaptureIRvirtual_state_uiroutputVirtualUpdateIR2022/10/21VirtualJTAG概述DR寄存器操作對應(yīng)的一組狀態(tài)是:Capture_DR->Shift_DR->Exit1_DR->Pause_DR->Exit2_DR->Update_DR,每一個狀態(tài)對應(yīng)一個*DR信號。IR寄存器操作對應(yīng)的一組狀態(tài)是:Capture_IR->Shift_IR->Exit1_IR->Pause_IR->Exit2_IR->Update_IR。由于virtualjtag模塊提供了并行的ir_in端口,簡化了操作,所以只有首尾兩個狀態(tài)對應(yīng)*IR信號。2022/10/21VirtualJTAG簡單例程數(shù)據(jù)輸出(并行加載,串行輸出):在Capture_DR狀態(tài)把被采樣的信號并行加載到DR寄存器中,在Shift_DR狀態(tài)把DR寄存器串行輸出到virtualjtag鏈路的tdo引腳上(同時串行載入tdi引腳的數(shù)據(jù));數(shù)據(jù)輸入(串行輸入,并行加載):僅需在Shift_DR狀態(tài)串行載入virtualjtag輸入的數(shù)據(jù),在Exit1_DR狀態(tài)把獲得的數(shù)據(jù)并行加載到目標(biāo)寄存器上,/*數(shù)據(jù)輸出指令的處理*/always@(posedgetck)if(sample&&cdr)offload_reg<=counter1;elseif(sample&&sdr)offload_reg<={tdi,offload_reg[3:1]};/*數(shù)據(jù)輸入指令的處理*/always@(posedgetck)if(feed&&sdr)feed_reg<={tdi,feed_reg[3:1]};2022/10/21VirtualJTAG簡單例程bypass_reg寄存器提供了jtag鏈路的第三條通路,在沒有針對當(dāng)前virtualjtag操作的情況下,tdi數(shù)據(jù)經(jīng)過一個tck周期的延時輸出到tdo引腳。tdo引腳輸出時,需要根據(jù)ir_in的取值選擇三條通路中的一條,所以這部分代碼也是需要用戶設(shè)計的。/*Bypassregister沒有針對這個virtual_jtag的操作就旁路*/always@(posedgetck)bypass_reg=tdi;/*NodeTDOOutput,TDO輸出選擇器,根據(jù)IR的不同,選擇不同的信號輸出*/always@(sample,feed,feed_reg[0],offload_reg[0],bypass_reg)beginif(sample)tdo<=offload_reg[0];elseif(feed)tdo<=feed_reg[0];elsetdo<=bypass_reg;end2022/10/21VirtualJTAG簡單例程2022/10/21VirtualJTAG簡單例程2022/10/21報告內(nèi)容研究背景并行化SPI通信原理及通信吞吐量并行化SPI通信原理及通信吞吐量調(diào)試中遇到的問題VirtualJTAG的工作原理及實現(xiàn)TCL腳本語言puts"ProgrammingHardwares:"foreachhardware_name[get_hardware_names]{ puts$hardware_name if{[stringmatch"USB-Blaster*"$hardware_name]}{ setusbblaster_name$hardware_name }}puts"\nSelectJTAGchainconnectedto$usbblaster_name.\n";#Listalldevicesonthechain,andselectthefirstdeviceonthechain.puts"\nDevicesontheJTAGchain:"foreachdevice_name[get_device_names-hardware_name$usbblaster_name]{ puts$device_name if{[stringmatch"@1*"$device_name]}{ settest_device$device_name }}1:空格2:同一行$byteblaster_name非小括號欲調(diào)試的FPGA在鏈路中的序列號“$”,替換符,是TCL語言最大的特色之一。跨時鐘域FPGA通過JTAG仿真器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論