Trimedia DSP芯片JTAG接口的仿真器設(shè)計(jì)
來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用; 作者:崔文杰 唐慧明摘要:提出Trimedia DSP芯片硬件仿真器的硬件電路組成和接口軟件設(shè)計(jì);介紹JTAG接口的標(biāo)準(zhǔn)、工作原理及在芯片中的實(shí)現(xiàn)。
關(guān)鍵詞:Trimedia DSP的JTAG接口 EPP模式的并行口 硬件仿真器Trimedia集成電路是Philips公司新近推出的針對(duì)多媒體應(yīng)用的一種高性能DSP。它能夠進(jìn)行高質(zhì)量的視頻和音頻處理,可以通過在線調(diào)試工具——JTAG來開發(fā)Trimedia DSP的各種資源和調(diào)試各種應(yīng)用程序。為了能夠滿足研發(fā)、生產(chǎn)上對(duì)系統(tǒng)編程及工程上對(duì)現(xiàn)場調(diào)試的需要,開發(fā)了使用方便、成本低的仿真器。
1 仿真器硬件電路組成圖1為系統(tǒng)的組成框圖。整個(gè)仿真器的功能可以由1片可編程邏輯器件來完成。圖1中有兩個(gè)接口:一個(gè)與Trimedia DSP的JTAG接口相連,另一個(gè)連接到計(jì)算機(jī)的并行接口。
之所以采用計(jì)算機(jī)的增強(qiáng)型并行接口,是因?yàn)楝F(xiàn)在一般的計(jì)算機(jī)都有如下幾種端口:串行接口、并行接口、USB接口。串行接口速度不高,無法滿足JTAG仿真器快速下載的要求;普通的并行接口,數(shù)據(jù)傳輸速率限制在50~150kbps,也無法滿足JTAG仿真器快速下載的要求;USB接口是種快速的計(jì)算機(jī)接口,最高速率可以達(dá)到12Mbps,但由于該接口速度是在數(shù)據(jù)以塊方式傳輸時(shí)實(shí)現(xiàn)的,無法滿足快速讀寫轉(zhuǎn)換的要求,所以,也無法達(dá)到我們要求的數(shù)據(jù)傳輸速率。而且一般的PC上都安裝了具有EPP和ECP功能的I/O控制器,在EPP模式下,可以只用1個(gè)IN或OUT指令來向I/O控制器傳輸1個(gè)字節(jié)的數(shù)據(jù),然后I/O控制器將會(huì)處理握手信號(hào)并產(chǎn)生選通信號(hào)。顯然,在這種機(jī)器上的數(shù)據(jù)傳輸速度受到指令執(zhí)行速率的限制。通常在同時(shí)代的機(jī)器上很容易獲得1~1.75Mbps的數(shù)據(jù)傳輸速率。可見,增強(qiáng)型并行接口能夠滿足我們的需求,而且用EPP模式的并行接口進(jìn)行開發(fā)的難度較小。
圖2為仿真器硬件線路圖。
TCK:測試時(shí)鐘,為TAP的控制器和寄存器提供測試參考時(shí)鐘,在TCK的同步作用下通過TDI和TDO引腳串行移入或同數(shù)據(jù)及指令。
TMS:模式輸入信號(hào),在TCK的上升沿時(shí)刻TMS的狀態(tài)決定了TAP控制器即將進(jìn)入的工作狀態(tài)。
TDI:指令和數(shù)據(jù)寄存器的串行輸入端,TAP的控制器的當(dāng)前狀態(tài)以及保存在指令寄存器的具體指令,決定了對(duì)于一個(gè)特定的操作由TDI裝入哪個(gè)寄存器。在TCK的上升沿時(shí)刻,TDI引腳的數(shù)據(jù)被采樣,結(jié)果送到JTAG寄存器中。
TDO:和TDI具有相同操作模式,只是在TCK的下降沿處改變狀態(tài)。
TAP:測試訪問端口。
從圖2中知道,仿真器的設(shè)計(jì)主要是可編程邏輯器件CPLD的設(shè)計(jì),它將8位并行數(shù)據(jù)和串行數(shù)據(jù)進(jìn)行相互轉(zhuǎn)換。也就是說,在JTAG端CPLD將產(chǎn)生TDI和TDO串行發(fā)送和接收時(shí)序,實(shí)現(xiàn)仿真器和Trimedia DSP芯片JTAG控制器的相互通信。在編程中可設(shè)置發(fā)送(TDI)和接收(TDO)的8位數(shù)據(jù)寄存器,接收TMS的8位數(shù)據(jù)寄存器,4位(十六進(jìn)制)計(jì)數(shù)器。發(fā)送和接收數(shù)據(jù)都以字節(jié)方式進(jìn)行,不足8位數(shù)據(jù)的用0補(bǔ)齊。
data_reg和addr_reg分別表示發(fā)送的8位數(shù)據(jù)和指令寄存器,data_flag表示數(shù)據(jù)是否發(fā)送或接收完畢,data_tms_counter為串行發(fā)送數(shù)據(jù)時(shí)的計(jì)數(shù)器,oscnm為外接的TCK時(shí)鐘。NDatastb、nWrite、nAddrstb、nReset為EPP模式的并行接口控制信號(hào),data為并行口的D0~D7數(shù)據(jù)總線,tmsjtag、tdijtag為連接到TAP控制器的TMS、TDI引腳線。
下面為數(shù)據(jù)和指令寫入相應(yīng)的寄存器的VHDL例程:
data_instruction_write:process(nDatastb,nWrite)
Begin
if(nDatastb'event and nDatastb='1')then
if(nWrite='1')then
data_reg<=data;
else
data_reg<=data_reg;
end if;
end if;
End process;
tms_write:process(nAddrstb,nWrite)
Begin
if(nAddrstb'event and nAddrstb='1')then
if(nWrite='1')then
addr_reg<=data;
else
addr_reg<=addr_reg;