如何對專案中的問題進行分析——FPGA失敗案例小結

牧楊人發表於2020-12-29

  本人最近在做一個小專案,自己取名叫做《基於zedboard的千兆乙太網底層設計》,一般我都是寫好各模組的verilog程式碼,確定模組沒bug後再做整個系統級聯,之後直接先進行綜合看看有沒有bug,有則改進,沒則繼續寫約束,然後器件實現。

但是這個專案,我在第一步就錯了,先把我找到的原因說下:是因為zedboard分為ps和pl端,zedboard的PHY晶片是有ps端控制,而我直接將其引腳用ps端驅動了。出現了以下vivado報錯:

 

廢話不多說,來看問題,vivado綜合時保持如下:

[Vivado 12-1411] Cannot set LOC property of ports, Site location is not valid ["F:/xilink_file/ethernet_test/ethernet_test.srcs/constrs_1/new/ethernet_constraints.xdc":10]

。。。。。

[Vivado 12-1411] Cannot set LOC property of ports, Site location is not valid ["F:/xilink_file/ethernet_test/ethernet_test.srcs/constrs_1/new/ethernet_constraints.xdc":24]

 

基本上我是在所有設計都完成時,先約束引腳,最後綜合後再做時序約束,再利用singnaltapii(vivado上叫ILA)做板級驗證。但是我在綜合時遇上上述問題,說明我的引腳不可用。

去查閱xilinx官方論壇與器件商DIGILENT論壇,發現國外一老哥也是做乙太網遇到了同樣的問題。

 

 

大意是“我用的zedboard z7010開發版寫了一個乙太網驅動程式,按照原理圖上搭配了引腳但是還是出現了嚴重警告的問題,難度是我原理圖拿錯了嗎?”

大佬的回答是

 

 大意是通過pl(純邏輯)驅動乙太網現在在論壇還處於討論階段,因為zedboard上的乙太網晶片是直接與PS端(ARM端)相連的,PL端沒有與PHY晶片直連,所以沒法用純底層verilog邏輯電路驅動PHY晶片。

看到這裡,我馬上又去翻了一下zedboard的使用者手冊。

 

 

 PHY晶片通過MIO Bank連線z7000Soc,也就是說,想要驅動PHY晶片,需要看看MIO Bank是誰家管的引腳(PL還是PS)。我又去翻了下原理圖。

 

 

果然是PS端控制的引腳,也就是我想驅動zedboard的乙太網是繞不開ARM的。算我自己的問題,第一步方向就不對,固定思維讓我走向了窮途。

看看有沒有大佬有其他的解決辦法。

我先嚐試去玩玩ARM吧,看看能不能再年前跑起來,感覺在IC設計的道路越走越遠:)

 

相關文章