<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 簡述BSDL邊界掃描語言,BSDL邊界掃描語言的應用

          簡述BSDL邊界掃描語言,BSDL邊界掃描語言的應用

          作者: 時間:2018-07-30 來源:網絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201807/384481.htm

          (1)attribute INSTRUCTION_LENGTH of EPM7128SL84:enTIty is 10;

          指令長度(INSTRUCTION_LENGTH)屬性定義了所有操作碼的長度必須為10位。

          (2)attribute INSTRUCTION_OPCODE of EPM7128SL84:entity is

          “BYPASS (1111111111), ”

          “EXTEST (0000000000),”

          “SAMPLE (0001010101),”

          “IDCODE (0001011001)”;

          指令操作碼(INSTRUCTION_OPCODE)屬性指出器件所支持的指令的二進制代碼,如器件標志代碼指令IDCODE的位圖形為“0001011001” ,所有字串中最右邊的位最靠近TDO。根據(jù)1149.1標準,旁路、外部測試和采樣指令是強制性的,且旁路指令BYPASS為全“1”串,外部測試 EXTEST指令為全“0”串。


          (3)attribute INSTRUCTION_CAPTURE of EPM7128SL84:entity is “0101010101”;

          指令捕獲(INSTRUCTION_CAPTURE)屬性說明,當 TAP控制器處于捕獲指令寄存(Capture-IR)狀態(tài)時,位圖形“0101010101”被裝入指令寄存器的移位寄存器部分,當送入新指令時,此位圖形被移出,IEEE 1149.1標準規(guī)定其最低兩位為“01”,其余位由廠商自行定義,這樣可以保證通過Capture信號可以檢測到掃描鏈上固定為“0”和固定為“1”的故障。

          (4)attribute IDCODE_REGISTER of EPM7128SL84:entity is

          “0000”“0111000100101000”“00001101110”“1”;

          標志寄存器屬性描述芯片內置在標志寄存器里的芯片ID碼。IEEE 1149.1標準規(guī)定芯片ID碼為32位,最右邊的一位是最靠近TDO的。如圖1所示,標志寄存器的LSB是IEEE 1149.1標準強制為“1”的最低位,表示器件標志寄存器的存在;第1位至11 位是廠商代碼號“01110110000”,這個代碼表示Altera公司;第12位至27位是芯片型號 “0001010010001110”,即十六進制“7128”(從右至左);第28位至31位是芯片版本號“0000” [2]。

          2.2 邊界掃描寄存器描述

          這是BSDL整體結構的最重要部分,它描述了邊界掃描單元(BSC)的長度及每個BSC的單元號與屬性。

          (1)attribute BOUNDARY_LENGTH of EPM7128SL84:entity is 288;

          邊界掃描長度屬性表示EPM7128SL84 芯片共有 288個邊界掃描單元。

          (2)attribute BOUNDARY_REGISTER of EPM7128SL84:entity is

          --num(cell, port, function, safe [ccell, disval, rstl])

          “0 (BC_4, IN84, input, X),”

          “1 (BC_4, *, internal, X),”

          “2 (BC_4, *, internal, X),”

          ……

          “144 (BC_4, IO41, input, X),”

          “145 (BC_1, *, control, 0),”

          “146 (BC_1, IO41, output3, X, 145, 0, Z),”

          ……

          “279 (BC_4, IO4, input, X),”

          “280 (BC_1, *, control, 0),”

          “281 (BC_1, IO4, output3, X, 280, 0, Z),”

          ……

          “285 (BC_4, IN1, input, X),”

          “286 (BC_4, *, internal, X),”

          “287 (BC_4, *, internal, X)”;

          對邊界掃描寄存器單元(BSC)屬性的描述由單元號與4個或7個圓括號內的數(shù)據(jù)子段組成,這些BSC的排列順序可以是任意的,但每個單元都必須被定義。單元號從0到287 (BOUNDARY_LENGTH-1)進行編號,0單元是最靠近TDO的單元。括號中數(shù)據(jù)子段的名稱為: cell, port, function, safe [ccell, disval, rstl],后三個方括號內的可選子段只有在function子段的值為 out put3或bidir時才被定義。它們的含義如下:

          · 單元子段:確定器件所使用的邊界掃描單元。EPM7128SL84芯片采用的BSC類型為標準單元 BC_1與BC_4,其屬性已經在VHDL組件STD_1149_1_1994中加以定義;

          · 通道子段:說明與對應BSC相連的系統(tǒng)管腳。其名稱與BSDL“logical port des cription”屬性中描述的管腳邏輯名稱相一致。“*”表示此BSC 為輸出控制單元或內部單元;

          ·功能子段:表示該BSC的主要功能。EPM7128SL84芯片BSC所涉及的功能有“input”、 “control”,“output3”和“internal”4種;

          input:表示一個簡單的實現(xiàn)輸入管腳接收的 BSC;

          control:表示一個進行輸出使能控制,或輸出驅動與雙向管腳的單元方向控制的BSC;

          output3:表示一個為三態(tài)輸出提供數(shù)據(jù)的 BSC;

          internal:表示一個用于捕獲系統(tǒng)內部邏輯的 BSC,它不與任何系統(tǒng)管腳相連;

          ·安全子段:當ATPG軟件提供一個額外隨機值時,safe子段定義了一個要裝入捕獲寄存器CAP 與更新寄存器UPD(如果存在的話)的值,以防止系統(tǒng)邏輯因為過激勵信號等原因造成的錯誤連接。這個值可以是“0”,“1”或“X”。“X”表示 “0”,“1”均可;

          ·控制單元子段:說明對功能為output3或bidir的BSC進行輸出使能控制的控制單元號;

          · 無效值子段:為禁用對應的系統(tǒng)管腳,要給由ccell子段指定的控制單元賦的值;

          · 無效狀態(tài)子段:給出被禁用驅動器的狀態(tài)。這個狀態(tài)可以是高阻態(tài)(Z)、弱“1”態(tài)(weak1)或弱“0”態(tài)(weak0)[2]。

          EPM7128SL84 芯片的管腳與邊界掃描單元如圖2所示,與輸入輸出管腳IO41相對應的三個BSC單元號分別為144,145和146。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();