在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用MxTNI JTAG庫和SVF文件編程Xilinx PROM器件

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-16 17:33 ? 次閱讀

本應用筆記闡述了如何利用MxTNI? JTAG庫以及串行向量格式(SVF)文件來編程Xilinx? PROM器件。假定讀者已經對JTAG和可編程邏輯器件有了一定認識。

介紹

Maxim微型網絡接口(MxTNI)是Dallas Semiconductor (Maxim Integrated的全資子公司)開發的一個平臺。它包含了一套小型卻功能強大的芯片組以及Java?可編程虛擬機。芯片組具有處理、控制、器件級通信和網絡互連的能力。為了和任何JTAG器件通信,TINIs400適配板在J21端具有4引腳JTAG輸出。 這些引腳將直接連到JTAG器件上標準JTAG引腳TDI、TDO、TMS和TCK。

在系統編程PROM可以進行單獨編程,或者級連編程。鏈中的所有器件共享TCK和TMS信號。MxTNI的TDI信號接到邊界掃描鏈中第一個器件的TDI輸入端。第一個器件的TDO信號接到鏈中第二個器件的TDI輸入上,如此連接下去。鏈中的最后一個器件的TDO輸出接到MxTNI的TDO引腳上,見圖1所示。

圖1. 所有JTAG操作都通過器件的測試訪問端口進行控制

圖1. 所有JTAG操作都通過器件的測試訪問端口進行控制

所有JTAG操作都是由器件的測試訪問端口(TAP)控制的。TAP包括四個信號:TMS、TDI、TDO和TCK。 這些信號通過TAP控制器,即16狀態有限狀態機與器件相互作用。JTAG的TMS信號控制狀態間的轉換。指令和數據由TDI引腳移入器件,并由TDO引腳移出。TDI和TDO信號的所有狀態轉換和行為都與TCK同步。見 圖2

圖2.

圖2.

所有JTAG操作都是將數據移入或移出JTAG指令和數據寄存器。TAP控制器可對所有這些寄存器直接訪問。有兩類JTAG寄存器:指令寄存器(IR)和數據寄存器(DR)。訪問IR通過移位-IR (Shift-IR)狀態實現,而訪問DR通過移位-DR (Shift-IR)狀態實現。IR長度通常是大于2位的任意長度。除了由IEEE? Std. 1149.1定義的BYPASS指令為全1以外,生產商定義所有其它的指令位碼。

在本應用筆記中,JAVA樣例代碼將解釋說明串行向量格式(SVF)文件來進行編程。這里所用的SVF是描述高層IEEE 1149.1 (JTAG)總線操作的語法規范。JTAG設備和軟件提供商已經將SVF作為標準用于數據交換。SVF以緊湊和可移植的形式描述JTAG鏈操作。SVF文件通過描述需要移入器件鏈的信息,記錄JTAG操作。通過Xilinx iMPACT (詳細信息見下面)軟件,將JTAG操作記錄在SVF文件中。SVF文件寫成ASCII文本形式,因此可以在任何文本編輯器中人工讀、修改和寫。“許多第三方編程工具使用SVF文件作為輸入,這樣利用包含在SVF文件中的信息可以對JTAG鏈中的Xilinx器件編程。”

JTAG庫簡要說明

所開發的JTAG類庫可幫助用戶使用MxTNI與JTAG器件進行通信。一個可能的應用是:從遙遠的位置對可編程邏輯進行動態和在系統更新。用戶能夠將TAP控制器初始化到初始狀態、瀏覽16個狀態、獲得或設置TAP狀態、產生時鐘信號、發送命令和數據等等。以下為JTAG類方法的簡要說明:

  • public jtag(): 加載jtag庫。
  • public String getVersion(): 返回jtag類的版本。
  • public int runClock( int numticks ): 以numticks指定的數量運行時鐘。
  • public byte initialize(): 先將TMS置高達五個TCK時鐘脈沖,然后TMS置低1個時鐘并進入缺省狀態Run-Test-Idle。
  • public byte setState( byte aState ): 將目標狀態設置為aState指定的狀態。
  • public byte getState(): 返回目標狀態。
  • public byte scanState( byte state ): 將TAP控制器的狀態機轉換到參數state指定的狀態。
  • public String displayState(byte state): 顯示TAP控制器的狀態。
  • public byte waitState( int msecs ): 進程延時一定毫秒數。
  • public byte getTDO(): 獲得引腳TDO的當前狀態。
  • public void setTDI(byte logic): 引腳TDI設定為指定的邏輯狀態。
  • public byte getTDI(): 獲得引腳TDI的當前狀態。
  • public void setTMS(byte logic): s引腳TMS設定為指定的邏輯狀態。
  • public byte getTMS(): 獲得引腳TMS的當前狀態。
  • public void setTCK(byte logic): 引腳TCK設定為指定的邏輯狀態。
  • public byte getTCK(): 獲得引腳TCK的當前狀態。
  • public byte sendNrcv(byte[] data, int offset, int size, byte numberOfBits, boolean state, boolean update, byte extraHeaderClock, byte HeaderBitVal,byte extraTrailerClock, byte TrailerBitVal): 發送數據字節數組,并接收返回的字節數組。
  • public byte sendNrcv(int[] data, int offset, int size, byte numberOfBits, boolean state, boolean update,byte extraHeaderClock, byte HeaderBitVal,byte extraTrailerClock, byte TrailerBitVal): 發送數據整形數組,并接收返回的整形數組。

硬件和軟件需求

以下為所需要的硬件和軟件:

  • TINI400評估板,并配置有MxTNI OS 1.12或更高版本。
  • JTAG器件(可編程邏輯)。
  • 器件鏈中JTAG器件模型的SVF文件。

編程步驟

第1步: 將MxTNI板的4個JTAG引腳與JTAG器件的4個JTAG引腳相連。

第2步: 遵循SVF文件的命令并使用JTAG庫編寫JAVA應用程序,來對JTAG器件進行編程,編譯后加載到MxTNI。

(附錄A: 一個樣例Idcode.svf文件,實現從單獨的XC18V02 Xilinx器件讀取IDCODE。)

(附錄B: 樣例AppJtag.java程序,將SVF文件作為輸入并產生JTAG信號來讀取IDCODE。該樣例程序是用來處理單獨器件的(對于級連器件的詳細信息見附錄C)。)

(附錄C: 展示了由已有的SVF文件編程級連器件的步驟。)

第3步: 運行JAVA程序。可執行AppJtag.tini將加載到MxTNI板。在MxTNI提示符下錄入“java AppJtag.tini Idcode.svf”來運行程序。程序將產生JTAG信號與JTAG器件進行通信。注意:

  1. 生成的編程JTAG器件SVF文件應該與器件鏈中設計的確切模型一致。
  2. 所有操作碼,例如編程JTAG器件的READ、WRITE、ERASE及其它命令等,都是由生產商定義的。SVF文件應該包含用戶需要的所有操作碼。

示例

以下示例說明了如何利用JTAG庫從Xilinx JTAG器件XC18V02中讀取Idcode。完整的樣例代碼,請查閱附錄B。

  1. 生成器件模型的SVF文件:

    使用Xilinx WEB START來生成SVF文件。

    • 執行iMPACT并選擇單選按鈕“Prepare Configuration Files”選項,然后點擊next。選擇單選按鈕“Boundary Scan file”并點擊next。選擇“SVF File”然后點擊finish。
    • 在對話框中錄入SVF文件名,例如example,并點擊OK。
    • 選擇要加載的name_of_mcs_file.mcs文件,并從列表中選擇PROM器件(XC18V02_vq44)。
    • XC18V02已加到模型中。
    • 點擊我們要編程的XC18V02器件型號。器件將為高亮顯示。
    • 點擊鼠標右鍵,并選擇編程選項。勾選“Get Idcode”。
    • 在模型外點擊鼠標以取消高亮顯示器件,右擊并選擇option以關閉SVF。這時就生成了模型的SVF文件。
  2. 讀取SVF文件并使用JTAG庫來編程XC18V02器件。

    • 以下為SVF文件的部分樣例代碼:
    // Created using Xilinx iMPACT Software [ISE WebPACK - 5.1i]
    TRST OFF;
    ENDIR IDLE;
    ENDDR IDLE;
    STATE RESET IDLE;
    TIR 0 ;
    HIR 0 ;
    TDR 0 ;
    HDR 0 ;
    // Validating chain...
    TIR 0 ;
    HIR 0 ;
    TDR 0 ;
    HDR 0 ;
    SIR 8 TDI (ff) SMASK (ff) ;
    TIR 0 ;
    HIR 5 TDI (1f) SMASK (1f) ;
    HDR 1 TDI (00) SMASK (01) ;
    TDR 0 ;
    //Loading device with 'idcode' instruction.
    SIR 8 TDI (fe) SMASK (ff) ;
    SDR 32 TDI (00000000) SMASK (ffffffff) TDO (05025093) MASK (ffffffff) ;
    //Loading device with 'conld' instruction.
    SIR 8 TDI (f0) ;
    RUNTEST 110000 TCK;
    
    • 遵循SVF命令并使用庫向XC18V02發送命令。
    • SVF規范提供了四個全局填充指令:頭指令寄存器(HIR)、尾部指令寄存器(TIR)、頭數據寄存器(HDR)和尾部數據寄存器(TDR)。這些全局命令規定了移位操作的開始和結尾處要填充的位數,從而解決旁路器件問題,并為SVF文件壓縮提供了一種簡單的方法。一旦指定,這些位會出現在SIR或者SDR命令的每一組比特位的前面或者后面。
    • 以下兩個示例說明如何把SVF命令解釋為JTAG庫命令。

示例1: 帶有全局填充指令的SVF語法結構

a/ SVF file commands:
STATE RESET IDLE;
TIR 0 ;
HIR 5 TDI (1f) SMASK (1f) ;
HDR 1 TDI (00) SMASK (01) ;
TDR 0 ;
//Loading device with 'idcode' instruction.
SIR 8 TDI (fe) SMASK (ff) ;
SDR 32 TDI (00000000) SMASK (ffffffff) TDO (05025093) MASK (ffffffff) ;
//Loading device with 'conld' instruction.
SIR 8 TDI (f0) ;
RUNTEST 110000 TCK;
//Check for Read/Write Protect.
SIR 8 TDI (ff) TDO (01) MASK (ff) ;
//Loading device with 'idcode' instruction.
SIR 8 TDI (fe) ;
SDR 32 TDI (00000000) TDO (05025093) ;
//Loading device with 'conld' instruction.
SIR 8 TDI (f0) ;
RUNTEST 110000 TCK;
//Check for Read/Write Protect.
SIR 8 TDI (ff) TDO (01) ;
TIR 0 ;
HIR 0 ;
TDR 0 ;
HDR 0 ;
b/ Sample JAVA program using JTAG library:
import java.io.*;
import javax.comm.*;
import com.dalsemi.comm.*
public static void main(String[] args)
{
myJtag = new jtag();
int SIZE = 0x1000;
byte[] byteArray = new byte[SIZE];
byte HeaderInstBitVal = (byte)0x00;
byte TrailerInstBitVal = (byte)0x00;
byte HeaderDataBitVal= (byte)0x00;
byte TrailerDataBitVal= (byte)0x00;
// STATE RESET IDLE;
myJtag.initialize();//This JTAG library method will initialize
		  // XC18V02 TAP controller and stay at
		  // Run-Test/Idle
// TIR 0 ;
byte TIR = (byte)0x00;
// HIR 5 TDI (1f) SMASK (1f) ;
byte HIR = (byte)0x05;
HeaderInstBitVal = (byte)0x01;
// HDR 1 TDI (00) SMASK (01) ;
byte HDR = (byte)0x01;
HeaderDataBitVal = (byte)0x00;
// TDR 0
byte TDR = (byte)0x00;
// SIR 8 TDI (fe) SMASK (ff) ;
byteArray[0] = (byte)0xfe;
myJtag.sendNrcv(byteArray,0,1,(byte)8,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 32 TDI (00000000) SMASK (ffffffff) TDO (05025093) MASK
// (ffffffff) ;
byteArray[0] = (byte)0x00;
byteArray[1] = (byte)0x00;
byteArray[2] = (byte)0x00;
byteArray[3] = (byte)0x00;
myJtag.sendNrcv(byteArray,0,4,(byte)8,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// SIR 8 TDI (f0) ;
byteArray[0] = (byte)0xf0;
myJtag.sendNrcv(byteArray,0,1,(byte)8,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// RUNTEST 110000 TCK;
myJtag.waitState(100); // Depend on operation frequency, user can
			 // calculate how many miliseconds to wait.
}

示例2: 無全局填充指令的SVF語法結構

a/ SVF file commands:
STATE RESET IDLE;
TIR 0 ;
HIR 0 ;
TDR 0 ;
HDR 0 ;
SIR 13 TDI (1fff) SMASK (1fff) ;
SDR 2 TDI (00) SMASK (03) ;
SIR 13 TDI (1fff) TDO (0021) MASK (1c63) ;
// Loading devices with 'ispen' or 'bypass'  instruction.
SIR 13 TDI (1d1f) ;
SDR 7 TDI (68) SMASK (7f) ;
// Loading device with 'faddr' instruction.
SIR 13 TDI (1d7f) ;
SDR 17 TDI (000002) SMASK (01ffff) ;
RUNTEST 1 TCK;
// Loading device with 'ferase' instruction.
SIR 13 TDI (1d9f) ;
RUNTEST 100000 TCK;
// Loading device with a 'faddr' instruction.
SIR 13 TDI (1d7f) ;
SDR 17 TDI (000002) ;
RUNTEST 1 TCK;
// Loading device with 'serase' instruction.
SIR 13 TDI (015f) ;
RUNTEST 37000 TCK;
// Loading devices with 'conld' or 'bypass' instruction.
SIR 13 TDI (1e1f) ;
RUNTEST 110000 TCK;
// Loading devices with 'ispen' or 'bypass'  instruction.
SIR 13 TDI (1d1f) ;
SDR 7 TDI (68) SMASK (7f) ;
// Loading device with a 'fdata0' instruction.
SIR 13 TDI (1dbf) ;
b/ Sample JAVA program using JTAG library:
import java.io.*;
import javax.comm.*;
import com.dalsemi.comm.*
public static void main(String[] args)
{
myJtag = new jtag();
int SIZE = 0x1000;
int[] intArray = new int[SIZE];
byte HeaderInstBitVal = (byte)0x00;
byte TrailerInstBitVal = (byte)0x00;
byte HeaderDataBitVal= (byte)0x00;
byte TrailerDataBitVal= (byte)0x00;
// STATE RESET IDLE;
myJtag.initialize();//This JTAG library method will initialize
	  // XC18V02 TAP controller and stay at
	  // Run-Test/Idle
// TIR 0 ;
byte TIR = (byte)0x00;
// HIR 0 ;
byte HIR = (byte)0x00;
// HDR 0 ;
byte HDR = (byte)0x00;
// TDR 0
byte TDR = (byte)0x00;
// SIR 13 TDI (1fff) SMASK (1fff) ;
intArray[0] = (int)(0x1fff&0x1fff);
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 2 TDI (00) SMASK (03) ;
intArray[0] = (int)(0x00&0x03);
myJtag.sendNrcv(intArray,0,1,(byte)2,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// SIR 13 TDI (1fff) TDO (0021) MASK (1c63) ;
intArray[0] = (byte)0x1fff;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SIR 13 TDI (1d1f) ;
intArray[0] = (byte)0x1d1f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 7 TDI (68) SMASK (7f) ;
intArray[0] = (int)(0x68&0x7f);
myJtag.sendNrcv(intArray,0,1,(byte)7,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// SIR 13 TDI (1d7f) ;
intArray[0] = (byte)0x1d7f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 17 TDI (000002) SMASK (01ffff) ;
intArray[0] = (int)(0x0002 & 0xffff);
TDR = (byte)0x01;
myJtag.sendNrcv(intArray,0,1,(byte)16,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// RUNTEST 1 TCK;
myJtag.waitState(1);
// SIR 13 TDI (1d9f) ;
intArray[0] = (byte)0x1d9f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// RUNTEST 100000 TCK;
myJtag.waitState(1000);
// SIR 13 TDI (1d7f) ;
intArray[0] = (byte)0x1d7f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 17 TDI (000002) ;
intArray[0] = (int)(0x0002 & 0xffff);
TDR = (byte)0x01;
myJtag.sendNrcv(intArray,0,1,(byte)16,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// RUNTEST 1 TCK;
myJtag.waitState(1);
// SIR 13 TDI (015f) ;
intArray[0] = (byte)0x015f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// RUNTEST 37000 TCK;
myJtag.waitState(100);
// SIR 13 TDI (1e1f) ;
intArray[0] = (byte)0x1e1f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// RUNTEST 110000 TCK;
myJtag.waitState(110);
// SIR 13 TDI (1d1f) ;
intArray[0] = (byte)0x1d1f;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
// SDR 7 TDI (68) SMASK (7f) ;
intArray[0] = (int)(0x68 & 0x7f);
TDR = (byte)0x00;
myJtag.sendNrcv(intArray,0,1,(byte)7,false,false,(byte)HDR,
(byte)HeaderDataBitVal,(byte)TDR,(byte)TrailerDataBitVal);
// SIR 13 TDI (1dbf) ;
intArray[0] = (byte)0x1dbf;
myJtag.sendNrcv(intArray,0,1,(byte)13,true,false,(byte)HIR,
(byte)HeaderInstBitVal,(byte)TIR,(byte)TrailerInstBitVal);
}

結論

由提供的SVF文件來編程Xilinx PROM器件是非常簡單的。但是,如果用戶能夠正確分析SVF文件并理解如何確定對器件鏈中哪個器件進行編程,會更有好處。知道了這些信息,編程者能夠更加高效地使用JTAG庫。軟件小組要對遙遠位置的Xilinx JTAG器件進行編程,已有實際應用。利用開發包中的嵌入式JTAG編程軟件,并以mcs文件作為輸入文件,這是很容易做到的。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50908

    瀏覽量

    424486
  • 接口
    +關注

    關注

    33

    文章

    8625

    瀏覽量

    151348
  • 虛擬機
    +關注

    關注

    1

    文章

    918

    瀏覽量

    28257
收藏 人收藏

    評論

    相關推薦

    Xilinx FPGA的JTAG配置方式和PROM配置方式的問題

    大家好,最近剛接觸FPGA不久 現在手上有一塊xilinx SP3E開發板,簡單的設計了一個流水燈的程序 通過JTAG下載方式 直接下到FPGA里 板子可以運行 因為想實現斷電后重啟板子自動
    發表于 10-11 11:16

    使用Impact創建.svf文件時出現問題

    我試圖使用Impact / Project Navigator(版本O.40d)生成用于JTAG測試的.svf文件,所有生成的文件都是0kb!這是一個工作設計,我可以生成.bit&am
    發表于 03-18 13:36

    Spartan 3E怎么通過JTAG進行SPI編程

    我有一個基于Spartan 3e的嵌入式設計,我需要能夠更新PROM。我可以做到的唯一方法是通過JTAG端口。影響不是在現場缺少Xinlinx編程電纜的選擇,也是因為它需要的空間。我有一個簡單
    發表于 05-27 14:01

    Spartan3A SVF配置

    對于除Spartan3A之外的多個設備,我已成功創建了一個SVF文件,以使用第三方邊界掃描工具配置設備。我用Acculogic。所以我使用的過程是:1.影響:將位文件加載到Jtag鏈中
    發表于 06-19 11:20

    如何使用JTAG從微控制器重新編程FPGA的ISF?

    SVF文件編程和驗證FPGA(在ISF內存中),但是當我使用自定義代碼(JTAG驅動程序)從微處理器播放SVF
    發表于 08-05 07:18

    如何使用Xilinx工具及連接到JTAG的ft2232芯片的定制電路板?

    :// www.gadgetfactory.net/gf/project/butterfly_main/,它使用ft2232芯片進行jtag通信。我目前能夠使用urjtag加載svf文件,但我正試圖找到一種
    發表于 08-15 10:18

    XAPP058 -利用嵌入式微控制器實現Xilinx系統編程

    Xilinx 高性能 CPLD、FPGA 和配置 PROM 系列具備在系統可編程性、可靠的引腳鎖定以及JTAG 邊界掃描測試功能。此強大的功能組合允許設計人員在進行重大更改時,仍能保留
    發表于 01-17 17:37 ?42次下載
    XAPP058 -<b class='flag-5'>利用</b>嵌入式微控制器實現<b class='flag-5'>Xilinx</b>系統<b class='flag-5'>編程</b>

    XAPP503-針對Xilinx器件SVF和XSVF文件格式

    as they apply to Xilinx devices. Some familiarity with IEEE STD 1149.1 (JTAG) isassumed. For information on using Serial Vector Format
    發表于 02-17 15:26 ?53次下載
    XAPP503-針對<b class='flag-5'>Xilinx</b><b class='flag-5'>器件</b>的<b class='flag-5'>SVF</b>和XSVF<b class='flag-5'>文件</b>格式

    利用compxlibgui工具編譯Xilinx

    當ISE調用ModelSim進行仿真的時候,如果在FPGA設計中使用了Xilinx提供的的IP core或者其他的原語語句,ModelSim不添加Xilinx相應的文件的話,是無法仿
    發表于 02-11 15:22 ?1437次閱讀
    記<b class='flag-5'>利用</b>compxlibgui工具編譯<b class='flag-5'>Xilinx</b><b class='flag-5'>庫</b>

    基于MxTNI JTAGSVF文件編程Xilinx PROM器件的詳細分析與演示

    本應用筆記闡述了如何利用MxTNI? JTAG以及串行向量格式(SVF)文件
    發表于 11-16 19:51 ?8328次閱讀

    Xilinx文件免費下載

    本文檔的主要內容詳細介紹的是Xilinx文件免費下載。
    發表于 10-09 08:00 ?0次下載

    PROM器件的特點和應用 如何選擇合適的PROM器件

    PROM(可編程只讀存儲器)是一種半導體存儲器,用戶可以通過特定的編程過程將數據寫入,一旦寫入后,這些數據在正常操作下是不可更改的。以下是關于PROM
    的頭像 發表于 11-23 11:16 ?767次閱讀

    PROM器件編程和擦除方法

    在電子設計領域,PROM(可編程只讀存儲器)作為一種重要的存儲元件,被廣泛應用于各種電子產品中,用于存儲固件、配置數據等。 1. PROM器件概述
    的頭像 發表于 11-23 11:25 ?638次閱讀

    PROM器件與FPGA的結合使用

    PROM(Programmable Read-Only Memory,可編程只讀存儲器)器件與FPGA(Field-Programmable Gate Array,現場可編程門陣列)的
    的頭像 發表于 11-23 11:28 ?486次閱讀

    如何測試PROM器件的性能

    測試PROM(Programmable Read-Only Memory,可編程只讀存儲器)器件的性能是確保其在實際應用中穩定可靠的重要環節。以下是一些常用的測試PROM
    的頭像 發表于 11-23 11:33 ?288次閱讀
    主站蜘蛛池模板: 69成人免费视频| 特黄aa级毛片免费视频播放| 中文在线免费看影视| 艹逼视频免费看| 日本大片免a费观看在线| 四虎最新网址| 国产精品久久久久久免费播放| 91aaa免费观看在线观看资源| 韩国午夜精品理论片西瓜| 4399一级成人毛片| 在线永久免费观看黄网站| 禁漫画羞羞动漫入口| 深点再深一点好爽好多水| 男女互插小说| 人人爽人人澡| 中文字幕日本一区波多野不卡| 亚洲美女高清一区二区三区| 三级毛片免费| 国产在线观看网址你懂得| 97干干| 欧美黄业| h黄网站| 宅男69免费永久网站| 四虎国产精品免费视| 两性午夜欧美高清做性| se在线播放| 久久天天躁狠狠躁夜夜躁| 日本午夜影院| 日本极度另类网站| 5252欧美在线观看| 久久精品国产99久久72| 色中文字幕| 狠狠色噜噜狠狠狠狠奇米777| 亚洲日本黄色| 四虎永久免费地ww4hu57| 在线一级毛片| 欧美三级免费看| 黄色视屏在线免费观看| 午夜视频久久| 1024国产手机视频基地| 中国成人在线视频|