亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

3天內(nèi)不再提示

在FPGA設計中集成事件斷點的實現(xiàn)過程

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2025-11-07 11:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如果對處于全速(at-speed)運行下的FPGA調(diào)試,工程師在現(xiàn)有通用“能力技術(shù)”基礎上,再增加“硬件斷點”功能,那么對高速運行FPGA,也就擁有像調(diào)試軟件程序類似的完整可觀測能力(Full Visibility)和可控制能力(Controllability)。

賽靈思FPGA的應用開發(fā)為例,用戶已經(jīng)能從硬件的運行特征出發(fā),為設計增加兩類硬件斷點。除了前文所介紹的時鐘斷點功能,本文將詳細介紹事件斷點(Event-based Breakpoint)的集成和使用。

與適用于算法設計、接口控制等全同步設計的時鐘斷點相比,事件斷點是由用戶自定義的事件觸發(fā)信號來凍結(jié)時鐘,即以“事件發(fā)生的次數(shù)”為中斷地址。適用于對包含UART、以太網(wǎng)通信接口在內(nèi),較復雜的FPGA應用開發(fā)設計。

例如,在網(wǎng)絡處理系統(tǒng)中,可將“數(shù)據(jù)包接收/發(fā)送”作為事件斷點;在數(shù)據(jù)加密處理應用中,將“一個數(shù)據(jù)塊處理結(jié)束”作為事件觸發(fā)信號。

用戶在設計階段,與前文介紹的時鐘斷點類似,事先將硬件斷點控制模塊(interruption logic)集成到待測DUT的頂層(hw_top),就可獲得這樣的在線調(diào)試能力。

1530b170-b956-11f0-8c8f-92fbcf53809c.png

本文將以按圖索驥的方式,詳細介紹在設計中集成事件斷點的實現(xiàn)過程,對原有設計的改動非常小,仍然保持優(yōu)異的時序性能。

以下為正文

1. 樣例簡要介紹

uart-demo作為串口數(shù)據(jù)傳輸樣例,用于控制uart串口數(shù)據(jù)的發(fā)送,以及led輸出。

通信協(xié)議設置為“9600 bps,8位數(shù)據(jù)位,沒有校驗位、1位停止位”。

源碼獲取地址:https://gitee.com/forgeda/forgedaX-35T/tree/master/demo/vivado-uart/Source

2. 事件斷點控制模塊

模塊定義如下:

moduleinterruption_logic(  (* dont_touch ="true"*)outputreg[63:0] cycles,  inputsig_in,  inputsys_clk,inputsys_reset,outputtask_clk );wireclk_en;wire[63:0] breakpoint;  reg[63:0] counter;  regbreak;     il_vio_0 il_vio (    .clk(sys_clk),    .probe_in0(counter),    .probe_in1(cycles),    .probe_out0(breakpoint),    .probe_out1(clk_en)   );always@(posedgesys_clk)beginif(!sys_reset)begincounter <=?0;break?<=?0;endelseif?(clk_en)beginif?(counter == breakpoint)beginbreak?<=?1'b1;endelsebeginif?(sig_in) counter <= counter +?1;break?<=?1'b0;endendend? BUFGCE inst_bufgce (.O(task_clk),.I(sys_clk),.CE(clk_en & ~break) ); always?@(posedge?task_clk) ? ?beginif?(!sys_reset) ? ? ? ? ?begin? ? ? ? ? ? ?cycles <=?0; ? ? ? ?endelsebegin? ? ? ? ? ? ?cycles <= cycles +?1; ? ? ? ?endendendmodule

該模塊非常精簡,對您的原生設計的改動很小,所占用的硬件資源也很少。

3. 將事件斷點模塊集成到設計中

在原有設計中集成事件斷點控制模塊,全程在Xilinx Vivado環(huán)境下完成,共有以下四個步驟。

Step 1.導入控制模塊interruption logic,并對VIO進行參數(shù)設置

158872d4-b956-11f0-8c8f-92fbcf53809c.png

單擊“Finish”,確認導入該模塊文件。

導入斷點控制模塊所使用的VIO IP

在Vivado中,選擇“IP Catalog”,導入VIO IP核。

15e76b90-b956-11f0-8c8f-92fbcf53809c.png

在IP Catalog搜索框中,直接輸入VIO,顯示如下:

1646f9b6-b956-11f0-8c8f-92fbcf53809c.png

設置VIO IP核的輸出端口(PROBE_OUT0),設置事件斷點的初始地址。

在Customize IP核界面,對VIO IP進行參數(shù)設置:

16a1f474-b956-11f0-8c8f-92fbcf53809c.png

16ff71da-b956-11f0-8c8f-92fbcf53809c.png

接下來,設置兩個關鍵輸出端口的參數(shù):

事件斷點的初始地址(PROBE_OUT0)

信號位寬Probe Width [1-256]:64;

初始值Initial Value (in hex):0x31

即該樣例在位流載入完成之后,在運行階段遇到的首個斷點地址。

在本樣例中,UART端口在板卡上電后,直接輸出“ ARTY GPIO/UART DEMO! ”消息,我們選擇將UART設計中的“bit_done”作為中斷觸發(fā)信號,表示“串口已發(fā)送1 bit數(shù)據(jù)”。

換而言之,當事件斷點設置為0x31,表示設計將在傳輸49 bit,即傳輸?shù)谖鍌€字符“T”的停止位時,暫停運行。

時鐘使能信號(PROBE_OUT1)

信號位寬Probe Width [1-256]:1;

初始值Initial Value (in hex):0x1

初始值設置為1,表示開啟時鐘使能。

點擊“OK”,確認以上參數(shù)配置。

175b9780-b956-11f0-8c8f-92fbcf53809c.png

點擊“Generate”,生成VIO IP核。

顯示“Generation of output products completed successfully”消息,表示IP核已成功導入。

17b84192-b956-11f0-8c8f-92fbcf53809c.png

Step 2. 對設計頂層(hw_top)進行更改處理

以下為集成事件斷點模塊后的設計頂層,原有設計的改動部分已用紅色標記。

1816dd74-b956-11f0-8c8f-92fbcf53809c.png

186ede02-b956-11f0-8c8f-92fbcf53809c.png

18cc41be-b956-11f0-8c8f-92fbcf53809c.png

192ab258-b956-11f0-8c8f-92fbcf53809c.png

1986bcc4-b956-11f0-8c8f-92fbcf53809c.png

19e6c2f4-b956-11f0-8c8f-92fbcf53809c.png

1a406444-b956-11f0-8c8f-92fbcf53809c.png

1a9ffe90-b956-11f0-8c8f-92fbcf53809c.png

1afb561e-b956-11f0-8c8f-92fbcf53809c.png

1b5323ee-b956-11f0-8c8f-92fbcf53809c.png

1baea19c-b956-11f0-8c8f-92fbcf53809c.png

1c0cfa44-b956-11f0-8c8f-92fbcf53809c.png

1c64120c-b956-11f0-8c8f-92fbcf53809c.png

1cbf83ee-b956-11f0-8c8f-92fbcf53809c.png

集成斷點控制模塊之后的Vivado工程文件,詳見
https://gitee.com/forgeda/forgedaX-35T/tree/master/demo/vivado_uart_event_bp/uart_breakpoint

Step 3.重新啟動Vivado編譯過程
啟動Vivado編譯,生成新的設計結(jié)果文件(.dcp), 得到的配置位流文件top.bit,以及調(diào)試支撐文件debug_nets.ltx。

完成以上工作后,就可以直接下載運行,并通過Hardware Manager,自行驗證以上集成過程是否已經(jīng)正確無誤。

4. 自檢方法

您可直接在Vivado Hardware Manager中快速驗證,具體步驟如下:

1d1c57d6-b956-11f0-8c8f-92fbcf53809c.png

如下圖所示,樣例在初始化結(jié)束后,輸出字符“ART”之后暫停運行,該斷點地址即為Step 2 設置的0x31。

1d712446-b956-11f0-8c8f-92fbcf53809c.png

可繼續(xù)在VIO窗口,設置新的斷點地址,例如,輸入“0x3B”,表示設計將在傳輸59 bit,即第六個字符“Y”發(fā)送結(jié)束時,暫停運行。

最后,將斷點地址設置為FFFF_FFFF_FFFF_FFFF,清除斷點,如下圖所示。

1dcd2282-b956-11f0-8c8f-92fbcf53809c.png

樣例將繼續(xù)全速運行,輸出完整的“ARTY GPIO/UART DEMO! ”消息。

在前文的時鐘斷點、本文的事件斷點這兩個硬件斷點準備工作后,下一篇我們將介紹如何在板級在線調(diào)試過程中,無需在源碼、網(wǎng)表插探針,在不占用任何硬件資源,就可得FPGA運行狀態(tài)的全可觀測能力,對設計擁有100%的信號可見性,這是ILA、Chipscope等現(xiàn)有工具不能提供的功能;

以及RTL代碼在經(jīng)過硬件編譯后,信號名稱可能會被優(yōu)化改變,那么如何在源碼和調(diào)試信號(位流數(shù)據(jù))之間建立精準對應關系,大幅減少工程師的硬件經(jīng)驗成本;

包括更先進的以硬件速度仿真,直接對關鍵寄存器、狀態(tài)機的故障注入測試,高效驗證。真正做到所見即所得,所改即所需。

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

    關注

    1652

    文章

    22237

    瀏覽量

    628708
  • 硬件
    +關注

    關注

    11

    文章

    3546

    瀏覽量

    68606
  • 時鐘
    +關注

    關注

    11

    文章

    1949

    瀏覽量

    134353

原文標題:如何將FPGA設計驗證效率提升

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    編碼不能沒調(diào)試,調(diào)試不能沒斷點

    編碼不能沒調(diào)試,調(diào)試不能沒斷點。斷點是仿真器非常重要的功能,用戶仿真程序過程中幾乎離不開斷點
    發(fā)表于 10-10 09:30 ?1223次閱讀

    FPGA在線配置模塊和自動測試模塊實現(xiàn)過程

    數(shù)據(jù)的分析來診斷故障。因此,用于FPGA測試的儀器或系統(tǒng)的關鍵技術(shù)在于:如何加快單次配置的時間,以節(jié)省測試過程中的配置時間開銷;如何實現(xiàn)自動重復配置和測試,將FPGA較快速度的在線配置
    發(fā)表于 05-14 07:00

    通用微控制器MSP430中集成多種功能介紹

    通用微控制器MSP430中集成多種功能
    發(fā)表于 12-29 06:44

    FPGA體系結(jié)構(gòu)能夠實現(xiàn)的并行運算

    和軟件設計層次上逐漸被克服。FPGA硬件結(jié)構(gòu)正在實現(xiàn)增強的DSP塊。并具有更多的功能和更強的性能。系統(tǒng)級設計軟件正在簡化從塊級到硬件描述語言(HDL),級的轉(zhuǎn)換。一些系統(tǒng)工具中集成了流行的DSP算法開發(fā)工具(例如MATLAB),
    發(fā)表于 12-15 06:30

    如何使用嵌入式Jetty容器Jersey中集成Webapp應用

    本文介紹如何使用嵌入式Jetty容器Jersey中集成Webapp應用,前端以最簡單的html和jquery方式實現(xiàn)。業(yè)務場景幾乎所有Apache所有的大數(shù)據(jù)組件自帶的Web界面都采用Jersey
    發(fā)表于 12-16 06:47

    FPGA中集成ARM核的話可以做些什么事情

    處理,產(chǎn)生各種控制信號。如果早FPGA中集成了ARM,這個過程能精簡嗎?或者可以得到哪些方面的優(yōu)化或者功能?之前做asic的,對現(xiàn)在的各種軟硬件、驅(qū)動、系統(tǒng)有點混,望高手指點!多謝多謝
    發(fā)表于 06-07 15:44

    如何實現(xiàn)硬件斷點呢?

    我想問一下如何實現(xiàn)硬件斷點呢,我底層debug模塊中定義了如下寄存器 但是頂層運行硬件斷點的時候依舊會提示報錯 請問這種情況是頂層
    發(fā)表于 08-11 12:54

    HTS221最終客戶應用中集成的硬件指南和參考設計

    本文檔介紹了 HTS221 最終客戶應用中集成的硬件指南和參考設計
    發(fā)表于 09-05 06:05

    FPGA,FPGA工作原理是什么?

    FPGA,FPGA工作原理是什么? FPGA(現(xiàn)場可編程門陣列)是專用集成電路(ASIC)中集成度最高的一種,用戶可對
    發(fā)表于 03-26 17:07 ?3984次閱讀

    一個FPGA中現(xiàn)在可集成多少32位RISC處理器?

    Jan Gray是FPGA中集成32位RISC處理器的專家,他寫了一篇博客叫作FPGA CPU 新聞,副標題為 “使用FPGA開發(fā)并行計算
    發(fā)表于 02-10 08:55 ?2333次閱讀
    一個<b class='flag-5'>FPGA</b>中現(xiàn)在可<b class='flag-5'>集成</b>多少32位RISC處理器?

    如何使用FPGA實現(xiàn)FIR抽取濾波器的設計

    FPGA實現(xiàn)抽取濾波器比較復雜,主要是因為FPGA中缺乏實現(xiàn)乘法運算的有效結(jié)構(gòu),現(xiàn)在,FPGA
    發(fā)表于 09-25 10:44 ?3次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>FIR抽取濾波器的設計

    MSP430? 微控制器 (MCU) 中集成多種功能

    MSP430? 微控制器 (MCU) 中集成多種功能
    發(fā)表于 10-28 12:00 ?0次下載
    <b class='flag-5'>在</b> MSP430? 微控制器  (MCU) <b class='flag-5'>中集成</b>多種功能

    成為一個更好廚師的真正秘訣:廚房電器中集成智能規(guī)模技術(shù)

    成為一個更好廚師的真正秘訣:廚房電器中集成智能規(guī)模技術(shù)
    發(fā)表于 11-02 08:16 ?0次下載
    成為一個更好廚師的真正秘訣:<b class='flag-5'>在</b>廚房電器<b class='flag-5'>中集成</b>智能規(guī)模技術(shù)

    硬件斷點和軟件斷點是什么

    調(diào)試程序時,可以通過斷點(Breakpoint)設置使程序暫停執(zhí)行的條件標準。當特定的條件標準滿足時,會暫停程序執(zhí)行。 斷點可分為兩大類:硬件斷點和軟件
    的頭像 發(fā)表于 01-22 17:42 ?4003次閱讀
    硬件<b class='flag-5'>斷點</b>和軟件<b class='flag-5'>斷點</b>是什么

    iOS中集成Vue是什么

    上一節(jié)Vue非瀏覽器環(huán)境下的嘗試我們利用了weexvue中的dom實現(xiàn)成功的非瀏覽器環(huán)境中Vue的實例,接下來我們將Vue集成到iOS
    的頭像 發(fā)表于 03-03 09:56 ?1054次閱讀
    <b class='flag-5'>在</b>iOS<b class='flag-5'>中集成</b>Vue是什么