<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 1.1 背景介紹 ? ? ? ? ?![](https://img2023.cnblogs.com/blog/2702342/202308/2702342-20230821085652184-259259508.png) * ?JTAG框架 1. 基本目標:實現芯片間互聯線的測試 2. 擴展功能:實現芯片內各種IP的調試 * 通過TDR(數據寄存器)操縱和觀測IP * 通過指令集激活某一個IP的TDR * JTAG缺點 1. 1. 片上IP數量導致JTAG指令集的增加 2. 片上IP數量導致指令解碼器變得非常復雜 3. 廣播架構不利于PR 4. 測試模式在芯片設計階段固定下來,缺乏靈活性 5. JTAG標準并未定義TDR如何操縱IP,而是使用document描述指導施加激勵與獲取結果的過程 ## 1.2 IJATG架構 ![](https://img.kancloud.cn/33/38/3338dbbf0063a1a9a580ffb86305cf9c_362x343.png) * IJTAG完全兼容JTAG網絡 * 描述TDR到TAP之間的網絡結構 * 串行TDR鏈路,通過SIB靈活配置 * 規范了TDR和IP之間的交互語言 * 即插即用 ### 1.2.1 IJTAG標準 * IEEE 1687 Standard * 2005年起草,2014年頒布,眾多IC/EDA公司參與 * 包含三個部分: * 靈活的串行TDR鏈路,用以測試片上IP * IJTAG網絡連接語言:ICL(Instrument Connectivity Language),描述整個IJTAG網絡結構 * IJATG程序描述語言:PDL(Propcedural Description Language),描述TDR與IP之間的交互 # 2 SIB的結構 ## 2.1 SIB概念 ![](https://img.kancloud.cn/86/44/864439c0d2bb2481d3d0ed7812165f12_448x260.png) 1. SIB:Segment-insertion-Bit 2. SIB是單比特的TDR 3. SIB有開和關兩種狀態 4. 插入SIB來實現任意層次化結構 5. 利用SIB可以實現對IJTAG網絡的靈活配置 ## 2.2 SIB的結構 ### 2.2.1 總體結構 ![](https://img.kancloud.cn/14/18/14181cbb6ca13560ad4700673ed3ce2e_794x310.png) * ?ShiftEn打開,TDI經過兩個選擇器經過Shift寄存器,最終到達TDO,數據不進入下一級SIB; * ShiftEn打開,UpdateEn打開,TDI輸入后經過Shift寄存器、Update寄存器,最終Select影響輸入部分的Select信號(我理解兩個select信號為同個端口),Select打開后,數據可進入下一級SIB。路徑為:TDI→ToTDI→FromTDO→經過Shift寄存器→TDO; ### 2.2.2 RESET:關閉到下一級SIB網絡入口 ![](https://img.kancloud.cn/fc/29/fc29d27785b8ae18c0b010d22b334844_739x335.png) * ?除了上述說到的關閉打開Update寄存器外,還可以使用Reset信號對Update寄存器進行復位; * 復位信號打開后,TDI輸入的數據只能經過當前SIB,無法進入下一級SIB網絡; ### 2.2.3 Close:關閉到下一級SIB網絡的入口 ![](https://img2023.cnblogs.com/blog/2702342/202308/2702342-20230825091416744-583241256.png) * ?TDI輸入0,Select為0,移位數據進入Shift寄存器,使得Shift寄存器輸出為0,然后打開UpdateEn信號,使得Update寄存器輸出為0,然后關閉UpdateEn信號,如此使得Update寄存器一直保持0,測試時下一級SIB網絡使用不會打開; * 目的:讓該SIB的下一級SIB網絡在測試時始終不接入測試; ### 2.2.4 Open:打開到下一級SIB網絡的入口 ![](https://img.kancloud.cn/45/b7/45b705acf812779488008a0507a2e5c7_744x362.png) * 經過TDI移入1,使得Shift寄存器輸出為1,打開UpdateEn信號,使得Update寄存器輸出Select信號為1,Select為1后,第一個MUX選擇器選擇上方通路; * 數據路徑:TDI輸入數據→ToTDI(下一級SIB網絡)→FromTDO(接收下一級SIB出來的數據)→經過兩個MUX和Shift寄存器→TDO輸出; # 3 SIB的網絡 ## 3.1 SIB多級網絡結構(plug-and-play) ![](https://img.kancloud.cn/7c/91/7c911f04d69188f683e514e3b1832c90_468x322.png) * ?通過TDR與SIB的組合,對芯片進行整體測試; * 上圖中,可以看做Level0(2個TDR+SIB),Level1(1個TDR); * Level0中的兩個TDR連接的instrumentA、B一定會被測試到,在shift數據時就需要移入instrumentA、B的測試向量位寬,SIB可以控制后面的TDR與instrumentsC是否需要被測試; ## 3.2 配置SIB的網絡結構 ![](https://img2023.cnblogs.com/blog/2702342/202308/2702342-20230825191652879-1333340918.png) * ?串聯兩個SIB; * 每個SIB后面分別掛一組TDR和instrument; * TDR1長度為10; * TDR2長度為5; * 如何通過TDI掃描數據來配置該網絡? * 激活TDR1 * 激活TDR2 ### 3.2.1 系統初始化 RESET狀態: ![](https://img.kancloud.cn/71/be/71bea8e4f1b883194e60906f1f4d69ee_493x352.png) * ?移入2bit數據,將SIB1與SIB2狀態均置為0; ![](https://img2023.cnblogs.com/blog/2702342/202308/2702342-20230825192249035-1511814201.png) * ?步驟一: * 移入2bit數據,將SIB1置為1,SIB2置為0;(紅色箭頭) * 打開Ijtag\_update; * 激活打開TDR1網絡;(黃色箭頭) * 步驟二: * 移入12bits數據,因為IP1長度10,再加上SIB1、2的兩個bit; * 保持SIB1打開; * 保持SIB2關閉; * 操縱TDR1(10bits); * 步驟三: * 移入12bit數據,將SIB1置為0,將SIB2置為1; * 打開Ijtag\_update; * 關閉TDR1網絡,打開TDR2網絡; ![](https://img.kancloud.cn/0d/4b/0d4be00fc17625f069fa4ede3a1ebea0_520x359.png) * ?步驟四: * 移入7bit數據; * 保持SIB1關閉,保持SIB2打開,操縱TDR2(5bits); # 4 ICL語法 ## 4.1 基本概念 ![](https://img.kancloud.cn/e5/06/e506b4c2aead2adfe4cd3b8705a00549_294x158.png) * ?ICL:Instrument Connection Language; * ICL描述IJTAG網絡的連接關系; * ICL是可讀文件; ## 4.2 描述Instrument ![](https://img.kancloud.cn/b7/bb/b7bb3f56ff035f759104edc4f3a92595_440x364.png) * ?Instrument表示該器件的例化名; * DataInPort DI、DataOutPort DO、ClockPort CLK:描述該模塊的對外接口; * Alias enable表示部分端口的作用,{}內我理解表示有效取值范圍; * Enum用于解釋,二進制對應的工作模式; ## 4.3 描述TDR * ?描述TDR的對外接口; * ScanOutPort SO{Source SR\[0\]}表示SR的第0bit連接至SO; * ScanRegister SR\[7:0\] {ScanInSource SI}表示SR的位寬10bit,掃描輸入的源頭是SI; ## 4.4 描述SIB ![](https://img.kancloud.cn/03/4f/034fc9bed3e32395537467d03b901043_506x401.png) ![](https://img.kancloud.cn/a2/44/a244b46cdad86c47b9dd8af3c49d830f_272x247.png) * ?ScanOutPort? ? so{Source sib;},so的數據源頭是sib; * ScanOutPort? ? ?tsi;{Source si},對下一級輸出端口tsi,源頭是si; * ScanInterface? ? Client {},當前SIB對上一級的接口; * ScanInterface? ? ?Host {},當前SIB對下一級的接口; * ScanRegister sib {},設置sib的輸入源,captrue的源頭信號,reset的源頭信號; * ScanMux設置sib的Q端口控制MUX的信號輸出到sib,Q端為1‘b0,si信號送入sib,Q端為1‘b1,fso信號送入sib;(這部分邏輯較混亂,正確性待考證) ## 4.5 描述chip ![](https://img.kancloud.cn/5b/c1/5bc1fef055b33fa780a3da94c96c9393_474x388.png) # 5 PDL語法 ## 5.1 基本概念 ![](https://img.kancloud.cn/98/d0/98d018b8e875bd85af7ce012b74e11f5_302x194.png) * PDL:Procedural Description Language * PDL描述如何配置和操作片上IP/instrument(如何激勵與觀測IP) * EDA工具可以將IP的PDL按照層次結構retargeting到更上一級IJTAG網絡指導chip層; * retargeting:將IP的接口通過PDL逐層的向上MAP到chip的端口上,完成測試; ## 5.2 PDL命令 * iWrite:向對象中寫入數據 * iRead:從對象中讀取數據 * iApply:執行PDL命令 * iNote:添加注釋 * iProc:定義PDL的procedure * iCall:調用定義好的proc * iMerge:并行執行多個proc * iRunLoop:執行指定數目的時鐘周期
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看