FPGA,VIVADO新手,這也是自己摸索出來的,如果說的不對的地方,歡迎指出,如果是根本性的錯誤,我將修改洗掉等等,,,互相交流,
**
怎么查找存在多重驅動的變數、信號或者埠
**
如果有多重驅動的話,一般是進行RTL分析或者綜合的時候就會出現多重驅動警告,網上說了這些警告提到的埠不一定就真的是多重驅動出現的埠,但不論如何,肯定是有埠存在多重驅動的,下面是找到這些埠的步驟,
第一步:點擊RTL分析【1】,等待出現Netlist后,點擊Netlist【2】,挨個查看 ,同時注意Net Properties欄中的Numbers of drivers【3】,這個就表示變數的驅動個數,>=1就表示存在多重驅動,

這是我多重驅動埠中的一個:

可以看見,輸出埠min_0[3:0]的確由 RTL_REG 和 RTL_REG_SYNC這兩個暫存器在輸出值,也就是在驅動,這個設計的確是有問題的,
第二步,回到自己的design 代碼,ctrl+F,高亮 ,找到 多重驅動埠所在的所有代碼片段,然后就修改自己的代碼,爭取能夠消除多重驅動,其他的修改方法,網上其他有人也說了,如重新設計自己代碼的邏輯等等,(下圖是我這個程式中另外一個多重驅動的埠cnt4)

第三步,這是我修改后的RTL圖,可以看見,多重驅動被消除了,綜合也沒有了多重驅動警告,


未完可能待續,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/19894.html
標籤:其他
