<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

集成邏輯分析儀(ILA)的使用方法

CHANBAEK ? 來源:杰克拉力船長 ? 作者:杰克拉力船長 ? 2023-10-01 17:08 ? 次閱讀

大家好,這里是程序員 杰克 。一名平平無奇的嵌入式軟件工程師。

在日常FPGA開發過程中,邏輯代碼設計完成后,為了驗證代碼邏輯的正確性,優先使用邏輯仿真(modesim)進行驗證。仿真驗證通過后進行板級驗證時,使用邏輯分析儀進行分析和驗證邏輯是否正確。FPGA兩大主流廠商的軟件集成邏輯分析儀供使用,AlteraQuartus自帶SignalTap、Xilinx的Vivado自帶ILA邏輯調試工具。

本篇總結和分享在Xilinx編譯工具Vivado環境下,使用內嵌的邏輯分析儀(ILA)的4種方法:

  • HDL代碼實例化ILA IP核
  • Block Design添加ILA IP核
  • Synthesis后對Nets執行Mark Debug操作
  • 在HDL代碼中使用屬性關鍵字mark_debug

本文以"LED每0.5s間隔亮滅"工程為例,觀測 led[0]信號以及led_cnt[24:0]時鐘計數信號 ,演示ILA使用的4種方法以及相關的注意事項。

01 HDL代碼實例化ILA IP核

在IP Catalog中搜索ILA,然后雙擊該IP核進行配置。

圖片

本示例中led[0]、led_cnt[24:0]信號位寬分別為1、25bit,具體配置如下所示;配置完成后,點擊“OK”;在彈出的界面點擊“Generate”完成IP核的配置和生成。

圖片

圖片

圖片

Verilog代碼中對剛生成的ILA核進行實例化,在具體代碼添加例化代碼,如下所示:

ila_0 ila_0_inst0 (
  .clk     (clk    ),     // input wire clk
  .probe0  (led    ),     // input wire [0:0]  probe0  
  .probe1  (led_cnt)      // input wire [24:0]  probe1
);

綜合、實現、生成bit后寫到FPGA芯片便可觀測到信號(此處不做演示)。

圖片

特別說明:對于純FPGA工程,杰克推薦該方式去使用ILA;

02 Block Design添加ILA IP核

在Vivado中,除了使用HDL語言去描述設計,還可以通過Block Design圖形化連接的方式進行設計。7系列的軟核MicroBlaze、帶硬核的SOC芯片(ZYNQ、MPSOC等)的設計都是通過Block和HDL相結合來描述設計。本文仍以純FPGA方式來說明在Block Design中使用ILA核(純FPGA開發不建議)。ILA使用操作如下:

創建/打開Block Design,在Diagram界面,點擊“+”按鈕,搜索ILA,然后雙擊該IP核進行配置。

圖片

參數配置的方式與上一小節一致,這里不作贅述。不同之處是在Block Design中使用ILA核,ILA核的實例化HDL代碼會自動生成到Block Design文件中。

綜合、實現、生成bit后寫到FPGA芯片便可觀測到信號(此處不做演示)。

圖片

特別說明:

帶MicroBlaze軟核/ARM硬核的FPGA的復雜設計中,模塊接口的信號觀測ILA使用該方法;模塊內部信號的觀測ILA使用上一小節的方式;兩者可結合使用。

03 綜合后添加Mark Debug

對工程執行綜合,綜合完成后,找到要觀測的信號的Nets,右鍵選擇“Mark Debug”;

圖片

圖片

要觀測信號的Nets選擇并設置完成后,點擊“Set Up Debug”;按照下面步驟配置Debug ILA參數;

圖片

圖片

圖片

圖片

Debug ILA配置完成后,保存SYNTHESIZED DESIGN后會在約束文件(.xdc)中生成ILA的配置約束,如下圖所示:

圖片

綜合、實現、生成bit后寫到FPGA芯片便可觀測到信號(此處不做演示)。

圖片

特別說明:mark_debug僅可以對Nets類型進行操作,不能對Cells操作;

04 HDL中使用MARK_DEBUG

MARK_DEBUG描述

vivado設計IDE提供了一些屬性供開發者使用,本篇推文主要是描述MARK_DEBUG屬性約束的使用和注意事項。詳細可參考UG912文檔的內容。使用MARK_DEBUG的條件如下:

約束對象必須是Nets類型

在Nets信號的頂端聲明處進行約束

vivado提供了包括Verilog、VHDL、XDC三種語法。三種語法如下所示:

//Verilog語法
約束語法:
(* MARK_DEBUG="value" *) 
#value = true/flase
使用示例:
(* MARK_DEBUG="true" *) output wire led;
(* MARK_DEBUG="true" *) reg [24:0] led_cnt;


//VHDL語法
約束語法:
聲明: attribute MARK_DEBUG : string;
語法: attribute MARK_DEBUG of signal_name : signal is "value";
//signal_name-內部信號, value = TRUE/FALSE
使用示例:
signal led : std_logic;
attribute MARK_DEBUG : string;
attribute MARK_DEBUG of led : signal is "TRUE";


//XDC語法
約束語法: 
set_property MARK_DEBUG value [get_nets < net_name >] 
#value = TRUE/FLASE
#net_name-是信號名
使用示例:
set_property MARK_DEBUG TURE [get_nets led];

使用MARK_DEBUG標記生成ILA觀測信號步驟

在led[0]、led_cnt[24:0]信號的頂端聲明處進行約束,省略代碼如下:

module led_top(
    input   wire    clk_i,
    input   wire    rst_n,
    (* MARK_DEBUG="true" *) output  wire    led_o
)
;
...
(* MARK_DEBUG="true" *) reg [24:0] led_cnt;
...
endmodule

執行綜合操作,綜合完成后,打開綜合設計,然后點擊“Set Up Debug”;

圖片

按照下面步驟配置Debug ILA參數;

圖片

圖片

圖片

圖片* Debug ILA配置完成后,保存SYNTHESIZED DESIGN后會在約束文件(.xdc)中生成ILA的配置約束,如下圖所示:

圖片

綜合、實現、生成bit后寫到FPGA芯片便可觀測到信號(此處不做演示)。

圖片

特別說明:

MARK_DEBUG約束標記會阻止Vivado對該信號以及下級信號的優化。因此,在邏輯驗證完成后,要刪除Mark_DEBUG約束標記或者將其失能。

05 文章總結

上面總結和分享了4種Vivado下使用ILA的方法。杰克更推薦使用前面兩種實例化的方法去使用ILA IP核。對于 純FPGA HDL開發 ,配置生成ILA核并在HDL代碼中實例化使用便可;對于帶軟核/硬核的FPGA開發 ,在Block模塊外部接口信號通過添加ILA核,Block模塊內部信號則在HDL代碼中實例化ILA核,兩者結合使用。

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

    關注

    1602

    文章

    21320

    瀏覽量

    593173
  • Xilinx
    +關注

    關注

    70

    文章

    2121

    瀏覽量

    119373
  • 邏輯分析儀
    +關注

    關注

    3

    文章

    200

    瀏覽量

    22913
  • Vivado
    +關注

    關注

    18

    文章

    790

    瀏覽量

    65093
  • ILA
    ILA
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3505
收藏 人收藏

    評論

    相關推薦

    邏輯分析儀的原理和應用

    。狀態分析儀基礎如果您從未使用過狀態分析儀,您可能認為這是一種極為復雜的儀器,需要花很多時間才能掌握使用方法。事實上,許多硬件設計師發現狀態分析儀中有許多極有價值的工具。一個
    發表于 11-27 08:19

    如何選擇邏輯分析儀

    示波器邏輯分析儀在電子測試領域,示波器主要用于信號波形的采集和再現,主要用于對模擬信號和模擬電路的測試。隨著數字技術發展,對數字信號測試越來越重要,最早的數字信號測試,往往借助于示波器,后來出現了
    發表于 04-26 14:25

    SignalTapⅡ邏輯分析儀

    SignalTapⅡ邏輯分析儀使用方法
    發表于 03-07 13:24

    頻譜分析儀的工作原理和使用方法

    頻譜分析儀的工作原理和使用方法
    發表于 07-16 22:04

    淺析邏輯分析儀

    邏輯分析儀是什么? 邏輯分析儀有什么作用? 邏輯分析儀有什么功能?
    發表于 11-05 11:43

    邏輯分析儀年初掃盲

    邏輯分析儀的定義 邏輯分析儀是利用時鐘從測試設備上采集和顯示數字信號的儀器,最主要作用在于時序判定。由于邏輯
    發表于 01-11 17:10

    邏輯分析儀是什么

    邏輯分析軟件可快速完成大量波形數據的高難度分析和顯示,同時提供友好簡便的人機交互體驗。邏輯分析儀具有極高的采樣率,能夠精確捕獲和顯示多路數字
    發表于 08-23 16:31

    USB邏輯分析儀

    就需要帶有多輸入通道的邏輯分析儀。邏輯分析儀一般擁有32~136個通道,甚至最高能到幾千個通道,每通道可輸入一個數字信號。邏輯
    發表于 07-05 09:21

    邏輯分析儀基礎簡介

    邏輯分析儀是一種類似于示波器的波形測試設備,它可以監測硬件電路工作時的邏輯電平(高或低),并加以存儲,用圖形的方式直觀地表達出來,便于用戶檢測和分析電路設計(硬件設計和軟件設計)中的錯
    發表于 08-07 10:27

    邏輯分析儀基礎簡介

    邏輯分析儀是一種類似于示波器的波形測試設備,它可以監測硬件電路工作時的邏輯電平(高或低),并加以存儲,用圖形的方式直觀地表達出來,便于用戶檢測和分析電路設計(硬件設計和軟件設計)中的錯
    發表于 08-18 10:06

    為什么要使用邏輯分析儀

    一、簡介電子產品開發過程中我們最常用的是示波器,但隨著微處理器的出現,電子工程師們越來越發現傳統的雙通道或四通道示波器不能滿足微處理器電路在設計開發工程中的需要。于是具有多通道輸入的邏輯分析儀就應
    發表于 10-13 09:23

    淺析邏輯分析儀的原理

    邏輯分析儀是常用的電子儀器之一,主要應用于做數字電路測試,FPGA調試,CPU/DSP調試,數字IQ/IF分析,無線通信/雷達接收機測試等場合。邏輯
    發表于 06-28 07:51

    有什么方法可以實現邏輯分析儀的實時存儲嗎?

    有什么方法可以實現邏輯分析儀的實時存儲嗎?
    發表于 05-06 07:39

    Gowin在線邏輯分析儀的使用手冊

    本手冊主要描述高云半導體在線邏輯分析儀(Gowin AnalyzerOscilloscope,以下簡稱 GAO),介紹 GAO 的配置文件及 GAO 的配置窗口使用,旨在幫助用戶快速熟悉 GAO
    發表于 09-29 07:18

    Vivado邏輯分析儀使用教程

    ,將捕獲到的數據通過下載器回傳給我們的用戶界面,以便我們進行觀察。在邏輯分析儀使用的過程中,我們一般常用的調用方法有兩種:1、IP核2、mark debug標記信號接下來我們先說一下第一種方法
    發表于 04-17 16:33
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>