編 者 按
用DataAnalyzer快速處理沒有使用到的端口信號(hào)
避不開的場景 如果熟悉SpinalHDL設(shè)計(jì),那么都應(yīng)該清楚在SpinalHDL設(shè)計(jì)里,如果輸出端口沒有給明確賦值的話,那么在生成RTL代碼時(shí)會(huì)報(bào)錯(cuò)提示我們沒有為端口賦值。想想如果你在設(shè)計(jì)一個(gè)AXI4的測試邏輯,但你并不需要使用里面的全部信號(hào)(要知道AXI4總線配置里面的哪個(gè)信號(hào)使用哪個(gè)不使用可使一大堆參數(shù)),如果想要做的模塊在任何場景下都能直接連接使用的話,最早對于我沒有使用的信號(hào)我是這么來處理的:
if(axi4Port.useRegion)axi4Port.clearAll() if(axi4Port.useLock) axi4Port.lock.clear() ……是不是寫起來很啰嗦?~ 還有一個(gè)場景就是在FPGA里面在制作PR版本時(shí)對于動(dòng)態(tài)區(qū)和靜態(tài)區(qū)之間的接口信號(hào)為了方便后續(xù)Impl版本的時(shí)序收斂,對于沒有使用到的信號(hào)以及賦常值的信號(hào)都建議添加約束:
對于輸入沒有使用到的信號(hào),內(nèi)部定義一個(gè)寄存器來鎖存信號(hào),并把這個(gè)寄存器的屬性設(shè)置為nopurne
對于暑促好信號(hào),則建議將輸出信號(hào)必須為reg類型,并將該輸出信號(hào)配置為preserve屬性。
對于這種使用不到的信號(hào),一個(gè)個(gè)的follow這些原則不免有點(diǎn)兒太過于“體力活”~ 而在SpinalHDL里,我們可以通過DataAnalyzer來快速地實(shí)現(xiàn)這些沒有使用到的端口信號(hào)。 》DataAnalyzer
考慮下面這個(gè)簡單的模塊:
在這個(gè)模塊里,對于輸入的data1接口我們并沒有用,而對于輸出out2端口,我們也并沒有輸出賦值。
現(xiàn)在,如果我們想要實(shí)現(xiàn)針對PR那種場景的需求,我們可以通過DataAnalyzer來寫一個(gè)通用的處理代碼:
這里我們?yōu)槟K添加一個(gè)PrePopTask。對于io里面的每個(gè)信號(hào),都例化一個(gè)DataAnalyzer,對于接口為輸入信號(hào)(port.isInput),并且其沒有任何扇出信號(hào)(analysier.getFanOut.isEmpty),則將其賦值給一個(gè)寄存器,并對該寄存器添加“nopurne”屬性。而如果接口信號(hào)為輸出信號(hào)(port.isOutput),并且沒有任何的信號(hào)給他賦值(analysier.getFanIn.isEmpty),則將其設(shè)置為寄存器,賦值為0并添加“preserve”屬性。最終生成的代碼:
完全符合我們的需求~
結(jié)語
能省功夫就省功夫,在Boss的許可下,選擇盡可能高效的工具,這周工作里修改一個(gè)Verilog代碼,在SpinalHDL里面五分鐘能實(shí)現(xiàn)的需求Verilog里改了小半天,極大打擊工作熱情~
-
FPGA
+關(guān)注
關(guān)注
1643文章
21981瀏覽量
614534 -
寄存器
+關(guān)注
關(guān)注
31文章
5424瀏覽量
123498 -
信號(hào)
+關(guān)注
關(guān)注
11文章
2844瀏覽量
77946 -
總線
+關(guān)注
關(guān)注
10文章
2953瀏覽量
89402 -
端口
+關(guān)注
關(guān)注
4文章
1045瀏覽量
32740
原文標(biāo)題:三分鐘教你快速處理沒有使用的端口信號(hào)
文章出處:【微信號(hào):Spinal FPGA,微信公眾號(hào):Spinal FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
免費(fèi)三分鐘
職場啟示: 三分鐘碎片化
讓程序運(yùn)行三分鐘,停一分鐘,循環(huán)下去,直到設(shè)置停止循環(huán)的位置
Inout雙向端口信號(hào)處理方法
三分鐘能做什么?三分鐘能讓我的iPhone6s重啟N次!
小米掃地機(jī)器人臺(tái)灣開售 三分鐘售罄
三分鐘來快速回顧!11月無人機(jī)大事件
三分鐘概述8類常用元器件資料下載

Brocade幫助Netzlink實(shí)現(xiàn)三分鐘云服務(wù)供應(yīng)

三分鐘實(shí)現(xiàn)MQTT協(xié)議網(wǎng)關(guān)串口連接三菱FX3UPLC上傳騰訊云

三分鐘了解飛創(chuàng)直線電機(jī)運(yùn)動(dòng)模組特點(diǎn)、選型及應(yīng)用-FCL系列

Node-RED初學(xué)者教程-三分鐘學(xué)習(xí)

評論