本文分別對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中的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
今日說“法”:如何防止reg、wire型信號在使用邏輯分析儀時被優化
)對于reg型信號,為了防止Altera自帶綜合器將其優化掉,可以添加noprune屬性。這樣就可以防止某些寄存器信號
發表于 05-16 17:48
FPGA信號處理算法設計、實現以及優化(南京)
利用FPGA實現信號處理算法是一個難度頗高的應用,不僅涉及到對信號處理算法、FPGA芯片和開發工具的學習,還意味著要改變傳統利用軟件在DSP上實現算法的習慣,從面向硬件實現的算法設計、
發表于 12-26 17:26
?12次下載
Vivado防止信號被綜合掉的三種方法
= “{TRUE|FALSE |SOFT}” *),可以防止信號被綜合掉,但是無法防止在布局布線的時候優化掉。3、 信號前面使用(* DO
信號管腳任務可進行多個FPGA的I/O優化
信號銷任務之間可以自動優化PCB上的多個fpga同時尊重pin-specific規則和約束。減少路由層,減少跨界車和整體跟蹤PCB上的長度,并減少信號完整性問題較高的畢業率和更短的
評論