本文用的芯片型號為xcku115-flvd1924-1L-i,時鐘頻率為400MHz。
兩個有符號數相加
采用RTL代碼描述位寬相同的兩個數相加或相減,無論是有符號數還是無符號數,Vivado綜合后的結果是一致的。以32bit數據為例,相應的代碼如下圖所示。這里考慮到兩個32bit數據相加其結果可能為33bit,同時對于高速設計(時鐘頻率至少400MHz)為了滿足性能,對輸入和輸出分別添加了流水寄存器。
最終的資源利用率如下圖所示。
從邏輯級數的角度看,邏輯級數最大為5(有一條),大多數路徑為3,如下圖所示。
從綜合屬性角度看,可以通過use_dsp屬性使得該加法操作映射到DSP48中,該屬性的使用方法如下圖所示。
采用DSP48實現時,上述代碼可達到完全映射,不會消耗SLICE中的任何資源。假定時鐘頻率為400MHz,對比使用LUT+FF和DSP48兩種實現方式,不難看出后者在時序(邏輯級數降低至1)和功耗方面均有優勢。
-
寄存器
+關注
關注
31文章
5359瀏覽量
120847 -
RTL
+關注
關注
1文章
385瀏覽量
59883 -
代碼
+關注
關注
30文章
4813瀏覽量
68845
原文標題:兩個數相加,三個數相加有什么不同
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論