<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天內不再提示

FPGA設計中如何防止信號被優化

CHANBAEK ? 來源:硬碼農二毛哥 ? 作者:硬碼農二毛哥 ? 2023-05-25 11:25 ? 次閱讀

本文分別對quartus和vivado防止信號被優化的方法進行介紹。

為什么要防止信號被優化

FPGA開發調試階段,經常遇到這樣的情況,需要臨時添加信號,觀察信號變化,用來定位代碼中存在的問題,很多時候這些臨時添加的信號會被綜合工具優化掉,為了防止這種情況的發生,可以使用添加虛擬引腳(quartus)和代碼中添加屬性(vivado)。

下面分別對兩種方法進行說明,在原有代碼中加入如下代碼,觀察cnt信號是否被優化,能否通過邏輯分析儀進行觀測。

reg [3:0] cnt;
always@(posedge clk,negedge locked)
begin
if(!locked)
cnt <= 4'd0;
else
cnt <= cnt + 1'b1;
end

Quartus中如何設置虛擬引腳

在quartus中加入上述代碼后,將cnt信號設置成輸出引腳。 下面將cnt信號設置為虛擬引腳。

方法1:

在qsf文件中添加如下內容:

set_instance_assignment -name VIRTUAL_PIN ON -to cnt[0]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[1]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[2]
set_instance_assignment -name VIRTUAL_PIN ON -to cnt[3]

編譯后,添加signal tap,cnt信號可以添加,說明沒有被優化。

圖片

方法2:

將cnt信號設置成輸出后,打開Assignment Editor,進行如下設置。

圖片

Vivado中防止信號被優化

在代碼中加入(* dont_touch = "true" *) 。

(* dont_touch = "true" *) reg [3:0] cnt;
always@(posedge clk,negedge locked)
begin
if(!locked)
cnt <= 4'd0;
else
cnt <= cnt + 1'b1;
end

重新編譯后,使用ila觀測cnt,ila中有信號,證明信號沒有被優化。

圖片

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

    關注

    1608

    文章

    21367

    瀏覽量

    594659
  • 信號
    +關注

    關注

    11

    文章

    2667

    瀏覽量

    75642
  • 引腳
    +關注

    關注

    16

    文章

    1055

    瀏覽量

    49179
  • quartus
    +關注

    關注

    16

    文章

    169

    瀏覽量

    74328
  • Vivado
    +關注

    關注

    18

    文章

    791

    瀏覽量

    65386
收藏 人收藏

    評論

    相關推薦

    FPGA設計毛刺信號的產生及消除

    摘要:主要討論了FPGA設計毛刺信號產生的原因,分析總結了處理毛刺信號的幾種方法,通過對毛刺信號的處理可以提高芯片的穩定性。隨著
    發表于 04-21 16:47

    FPGA的I_O時序優化設計

    FPGA的I_O時序優化設計在數字系統的同步接口設計, 可編程邏輯器件的輸入輸出往往需要和周圍新片對接,此時IPO接口的時序問題顯得尤為重要。介紹了幾種
    發表于 08-12 11:57

    FPGA-PCB優化技術降低制造成本

    ,即將 HDL 合成和先進的 FPGA-PCB I/O 優化添加到 PADS Professional ,便可應對這些挑戰。HDL 設計環境和 PCB 上物理實施之間的這一接口大大縮短了產品的上市
    發表于 09-20 11:11

    “無注冊”修飾符如何防止變量保存到CPU寄存器?

    您好,想象一個小的主循環,它連續地更新一個變量,一個中斷,然后訪問它。如果變量保存到寄存器,它就不能正常工作(優化可以做到這一點)。我如何防止變量
    發表于 10-09 11:09

    基于CPLD和FPGA的VHDL語言電路優化設計

    ,一般情況下,速度指標是首要的,在滿足速度要求的前提下,盡可能實現面積優化。因此,本文結合在設計超聲探傷數據采集卡過程的CPLD編程經驗,提出串行設計、防止不必要鎖存器的產生、使用狀態機簡化電路描述、資源共享,利用E2PROM
    發表于 06-18 07:45

    STM32F745通過FMC訪問FPGA順序優化

    有人嗎?有沒有人使用STM32F745,通過FMC訪問FPGA,但是相鄰的訪問的操作的順序優化!
    發表于 04-15 01:05

    FPGA設計應用及優化策略有哪些?

    EDA技術具有什么特征?FPGA是什么原理?FPGA設計應用及優化策略基于VHDL的FPGA系統行為級設計
    發表于 04-15 06:33

    使用MCU設計,如何防止技術抄襲呢?

    使用MCU設計一個應用系統,如何防止技術破解抄襲呢?有比較可靠的方案推薦嗎?
    發表于 11-19 08:46

    今日說“法”:如何防止reg、wire型信號在使用邏輯分析儀時優化

    )對于reg型信號,為了防止Altera自帶綜合器將其優化掉,可以添加noprune屬性。這樣就可以防止某些寄存器信號
    發表于 05-16 17:48

    FPGA信號處理算法設計、實現以及優化(南京)

    利用FPGA實現信號處理算法是一個難度頗高的應用,不僅涉及到對信號處理算法、FPGA芯片和開發工具的學習,還意味著要改變傳統利用軟件在DSP上實現算法的習慣,從面向硬件實現的算法設計、
    發表于 12-26 17:26 ?12次下載

    Vivado防止信號被綜合掉的三種方法

    = “{TRUE|FALSE |SOFT}” *),可以防止信號被綜合掉,但是無法防止在布局布線的時候優化掉。3、 信號前面使用(* DO
    的頭像 發表于 06-01 16:59 ?1.2w次閱讀
    Vivado<b class='flag-5'>防止</b><b class='flag-5'>信號</b>被綜合掉的三種方法

    Vivado防止信號被綜合掉的三種方法

    = “{TRUE|FALSE |SOFT}” *),可以防止信號被綜合掉,但是無法防止在布局布線的時候優化掉。3、 信號前面使用(* DO
    的頭像 發表于 10-09 15:22 ?5479次閱讀

    信號管腳任務可進行多個FPGA的I/O優化

    信號銷任務之間可以自動優化PCB上的多個fpga同時尊重pin-specific規則和約束。減少路由層,減少跨界車和整體跟蹤PCB上的長度,并減少信號完整性問題較高的畢業率和更短的
    的頭像 發表于 10-14 07:06 ?2907次閱讀

    如何使用Xilinx的FPGA對高速PCB信號實現優化設計

    本文檔的主要內容詳細介紹的是如何使用Xilinx的FPGA對高速PCB信號實現優化設計。
    發表于 01-13 17:00 ?25次下載
    如何使用Xilinx的<b class='flag-5'>FPGA</b>對高速PCB<b class='flag-5'>信號</b>實現<b class='flag-5'>優化</b>設計

    介紹FPGA在線調試的一大利器—VIO

    之前的文章介紹了FPGA在線調試的方法,包括選定抓取信號,防止信號優化的方法等等。
    發表于 06-20 10:38 ?4216次閱讀
    介紹<b class='flag-5'>FPGA</b>在線調試的一大利器—VIO
    亚洲欧美日韩精品久久_久久精品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>