JTAG控制電路的應用與研究
所有邏輯器件的廠商生產的器件都支持JTAG加載電路,它是一種通用的加載電路.幾乎所有的邏輯工程師或硬件開發(fā)工程師都曾被這種簡單的JTAG控制電路困惑過.本人通過多次的現場應用,把JTAG電路的應用技巧總結如下.(以ALTERA,并且FPGA支持CPU+JTAG編程模式為例).
本文引用地址:http://m.butianyuan.cn/article/192158.htm典型的JTAG控制電路
很多設計者在應用此電路的時候,往往達不到理想的效果.該電路使用方法不正確,可能導致如下結果:
問題一:電路無法正常加載.
問題二:電路可以正常加載,編程軟件顯示加載過程正常,但加載后內部邏輯被復位.(多出現在CPLD+FLASH方式和CPU+FLASH方式)
問題三:CONF_DONE信號不能夠正常變高.
工程師在使用此電路的時候,不要忽略nCONFIG,MSEL[3..0]和DCLK等特殊管腳的作用,更不要忽略上拉和下拉電路的作用.
nCONFIG,MSEL[3..0],DCLK等特殊管腳的作用.
1.nCONFIG信號是FPGA的另一種加載模式PS(PassiveSerial)的握手信號,該信號低電平有效.因為PS模式的時鐘可以由設計者靈活控制,并且時序簡單.PS模式常用于CPU加載或CPLD+FLASH等方式的加載,以方便CPU或CPLD模擬PS的時序.其典型電路為:
CPU加載或CPLD+FLASH加載方式
PS模式時序圖
FPGA既采用CPU加載又采用JTAG的加載模式.這是一種典型的應用,CPU加載可以避免使用昂貴的配置芯片,在產品量產時使用.JTAG加載模式一般用于量產之前的調試.在調試的過程中,如果不對nCONFIG信號進行正確的處理,可能導致”問題二”.從PS模式的時序圖上可以清楚的看到,nCONFIG信號是低電平有效,PS的控制電路檢測該信號的下降沿.如果采用CPU+JTAG模式編程FPGA,因在調試時只會用到JTAG模式,那么此時的nCONFIG必須保證為高電平.也就是PS模式無效.
2.MSEL[3..0]是ModeSelect管腳.因為FPGA支持不同的加載模式.在用到特殊模式編程FPGA時,必須把MSEL[3..0]設置為對應的狀態(tài).
從下面的注釋可以看到,JTAG模式對MSEL[3..0]無任何要求,可以接’1’,’0’,NC等.由于電路支持CPU加載模式.MSEL[3..0]以PS模式的要求為準.
3.DCLK屬于AS(ActiveSerial)模式的時鐘管腳.AS模式是專用配置芯片和FPGA的連接電路.如果電路只支持CPU+JTAG方式,那么DCLK應為一個確定的電平,可以為高/低電平,但不能夠接NC.
上拉和下拉電路的作用
Altera公司不斷優(yōu)化JTAG模式中的上拉和下拉電路,這是隨著FPGA內部的JTAG控制的發(fā)展而發(fā)展的.這些電阻有不可低估的作用,不但需要設計者在PCB上一個不漏,而且需要靈活應用.
上拉/下拉電阻的三大作用:
1.保證電路的初始值.比如TCK信號采用下拉電阻.為什么采用下拉電阻,而不采用上拉電阻呢?因為下拉電阻使TCK信號的初始值為0,由于是時鐘信號,可以保證時鐘信號在初值后第一個邊沿為上升沿,而JTAG控制電阻正是以TCK的上升沿向FPGA內部寫配置數據的.
2.這里的上/下拉電阻僅僅屬于推薦值,并非確定值,目的是保證信號質量.以上拉電阻為例,如果上拉電阻為10K以上,由于管腳對地有一個等效電容,由于T=RC,C由器件的工藝決定,電阻越大,充放電時間越長,信號的上升沿就越緩慢,斜率就越小.上升時間如果超過JTAG控制電路的要求,向FPGA內部寫數據就可能出錯.那么,如果上拉電阻越小呢?會不會上升時間變小呢?是的.電阻變小,上升時間變小,斜率變大,但是卻帶來了另一個嚴峻的問題,如果電阻小到一定程度,信號將在上升沿出現上沖現象,情形嚴重時會出現信號的振鈴.如果電阻太小,產生的倒灌電流超過器件IO的容限,JTAG控制電路會燒壞.
評論