以前做FPGA的時候,沒有關(guān)心過這個問題,上升沿和下降沿,一直混用。但是昨天后端部門的Lint檢查和綜合檢查都指出了這個問題,要求把設(shè)計(jì)中的所有時鐘沿都統(tǒng)一為上升沿抽樣。這樣做的目的,據(jù)說是為了提高scan chain的覆蓋率。因?yàn)闆]有經(jīng)驗(yàn),想在這里請教一下大家:
- 混用上升下降沿會對scan chain造成什么樣的影響,能否具體解釋一下;
- 如果代碼在邏輯上必須用下降沿采樣,怎樣才能滿足后端的要求(用上升沿采樣),有無變通方法;
我的代碼
我在上面提到了上升沿和下降沿混用,其實(shí)是表述不正確。不是混用,而是在代碼中有些寄存器用posedge,有些則用negedge,對同一個寄存器同時使用兩個邊沿的情況沒有。,我的代碼是這樣的情況,比如
always @ (posedge i_clk or negedge i_rst_n) begin
.... // reg 1
end
always @ (negedge i_clk or negedge i_rst_n) begin
.... // reg 2
end
對于這樣的情況,后端部門也建議盡量避免,也就是說所有寄存器全都采用上升沿,要怎么處理呢?
====
用下降沿采樣的話
dft_drc會認(rèn)為該寄存器有violation
因此不把他放到chain里邊
所以覆蓋率會降低