JTAG仿真器是一種片上仿真器,用于在軟件開(kāi)發(fā)過(guò)程中調(diào)試CPU軟件。
與通過(guò)用探針替換電路板上的 CPU 來(lái)模擬 CPU 操作的在線仿真器 (ICE) 不同,JTAG 仿真器允許在不從電路板上移除 CPU 的情況下進(jìn)行調(diào)試。
因此,可以在與產(chǎn)品板相同的環(huán)境下評(píng)估電氣特性,這具有有助于早期商業(yè)化的優(yōu)點(diǎn)。
JTAG是測(cè)試LSI和電路板的行業(yè)標(biāo)準(zhǔn),每個(gè)CPU制造商都根據(jù)該技術(shù)標(biāo)準(zhǔn)設(shè)計(jì)測(cè)試訪問(wèn)端口(TAP)并執(zhí)行邊界掃描測(cè)試。
因此,JTAG 仿真器根據(jù) CPU 制造商的不同而具有不同的規(guī)格。由于不同制造商具有不同規(guī)格的產(chǎn)品不能稱(chēng)為JTAG,因此基于JTAG兼容的規(guī)格建立了接口標(biāo)準(zhǔn),并且基于這些標(biāo)準(zhǔn)創(chuàng)建了JTAG仿真器。
JTAG 標(biāo)準(zhǔn)于 1990 年標(biāo)準(zhǔn)化為 IEEE 1149.1。
其原因是,隨著CPU和LSI的性能和功能的提高,引腳之間的間距變得越來(lái)越窄,使得通過(guò)將測(cè)試探針
為了解決這個(gè)問(wèn)題,設(shè)計(jì)了一種稱(chēng)為邊界掃描的方法,通過(guò)以依賴(lài)的方式連接芯片內(nèi)部的電路并順序讀出電路的狀態(tài)來(lái)分析內(nèi)部電路的狀態(tài)。
這種方法允許您檢查內(nèi)部狀態(tài),而無(wú)需在每個(gè) CPU 或 LSI 引腳上安裝測(cè)試探針。
它使用JTAG標(biāo)準(zhǔn),該標(biāo)準(zhǔn)最初是作為CPU和LSI的測(cè)試方法而設(shè)計(jì)的,后來(lái)被用作CPU軟件開(kāi)發(fā)中的調(diào)試方法。
JTAG有五個(gè)信號(hào)端子:TCK(時(shí)鐘)、TDI(數(shù)據(jù)輸入)、TDO(數(shù)據(jù)輸出)、TMS(狀態(tài)控制)和TRST,但技術(shù)標(biāo)準(zhǔn)尚未規(guī)定這些信號(hào)的電氣特性。制造商指單獨(dú)的規(guī)格。
使用這種類(lèi)型的 JTAG 可以實(shí)現(xiàn)的功能包括 CPU 調(diào)試、電路板檢查、IC 內(nèi)部電路與主機(jī) PC 之間的通信以及將數(shù)據(jù)寫(xiě)入FPGA 。
我們將介紹用于檢查設(shè)計(jì)的程序的運(yùn)行、識(shí)別缺陷和提高性能的方法。
單步執(zhí)行
這是最基本也是常用的調(diào)試方法。要執(zhí)行單步執(zhí)行,必須停止正在運(yùn)行的程序一次。停止的方法包括設(shè)置稱(chēng)為斷點(diǎn)的條件和使用強(qiáng)制中斷功能。當(dāng)程序停止時(shí),您可以在逐行或函數(shù)或方法單元執(zhí)行源代碼的同時(shí)檢查內(nèi)存、寄存器狀態(tài)和變量?jī)?nèi)容。
實(shí)時(shí)跟蹤
發(fā)生意外情況時(shí)用于調(diào)試的方法。即使在設(shè)計(jì)程序時(shí)仔細(xì)考慮了分支條件,但在與硬件結(jié)合或與其他系統(tǒng)鏈接時(shí)常常會(huì)出現(xiàn)意想不到的問(wèn)題。步驟執(zhí)行無(wú)法分析未知條件引起的缺陷。因此,程序執(zhí)行歷史、數(shù)據(jù)訪問(wèn)地址和類(lèi)型(讀/寫(xiě))、中斷發(fā)生狀態(tài)等都存儲(chǔ)在跟蹤存儲(chǔ)器中,以分析問(wèn)題。
時(shí)間測(cè)量
您可以測(cè)量函數(shù)的模塊執(zhí)行時(shí)間(從開(kāi)始到結(jié)束的兩點(diǎn)之間)的最大值、最小值和平均值。還可以衡量被調(diào)用函數(shù)(子函數(shù))和調(diào)用函數(shù)(父函數(shù))之間的關(guān)系,以及調(diào)用的頻率。通過(guò)改善執(zhí)行時(shí)間的變化并檢查函數(shù)的結(jié)構(gòu),您可以提高系統(tǒng)性能。
將數(shù)據(jù)寫(xiě)入 FPGA 有兩種方式:直接寫(xiě)入 FPGA 和通過(guò) FPGA 寫(xiě)入配置存儲(chǔ)器。直接寫(xiě)入FPGA時(shí),程序被寫(xiě)入易失性存儲(chǔ)器(RAM)中,因此每次電源關(guān)閉和打開(kāi)時(shí)都必須寫(xiě)入程序。另一方面,配置存儲(chǔ)器是非易失性存儲(chǔ)器(ROM),因此一旦寫(xiě)入,程序就永遠(yuǎn)不會(huì)丟失。
選擇寫(xiě)入方法以減少連接器數(shù)量并適應(yīng)產(chǎn)品開(kāi)發(fā)階段(設(shè)計(jì)、量產(chǎn))。
products category