24小時聯系電話:18217114652、13661815404
中文
公司新聞
為 FPGA 引腳映射器設計
為 FPGA 引腳映射器設計
眾所周知,FPGA IO 名稱必須滿足 Verilog 或 VHDL 中的特定語法要求。Altium Designer 原理圖中使用的命名約定并不總是滿足硬件描述語言 (HDL) 指定的這些標準。因此,PCB 網絡名稱和實際 FPGA 信號名稱之間經常會出現不匹配。隨著越來越多的用戶嘗試使用Altium Designer 中的FPGA Pin Mapper工具,他們會發現 Altium Designer 原理圖中使用的命名約定在 FPGA 設計領域可能并不總是合法的。本文將回顧在將 FPGA 納入您的PCB 設計項目時的一些常見陷阱和克服這些挑戰的方法。
網絡命名挑戰
正如介紹中所提到的,通常會發現 PCB 設計使用的 FPGA IO網絡名稱與 FPGA HDL 中的實際名稱不匹配。發生這種情況的原因很簡單,因為設計電路板的工程師可能與編寫 HDL 的 FPGA 設計人員不同步。發生這種不匹配的另一個原因是Altium Designer 中使用的網絡名稱本身在 Verilog 或 VHDL 中可能不合法。例如,諸如“\c\h\i\p\_\r\s\t”(在原理圖中表示低電平有效)或 SPI.MISO(從信號線束中引出的網絡)之類的網絡名稱完全是在 Altium Designer 中合法,但在 HDL 中不可接受。要解決“\c\h\i\p\_\r\s\t”,我們需要確保不要使用反斜杠。雖然讓那個可愛的小欄顯示您的網名和端口很有趣,但值得嗎?用“_n”(例如“reset_n”)或在其前面加上“n”(例如“nRST”)是人們將在HDL領域使用的一般做法,并且最好與原理圖保持一致因此這賣。但是,如果您選擇使用 Altium Designer 中的信號線束,則需要一個額外的步驟。
示例:信號線束和 FPGA
在下面的示例中,我們有一個包含 FPGA IO bank 和一些信號線束的原理圖。
圖 1:使用帶有 FPGA 的信號線束的簡單原理圖示例
如果您仔細查看設計,您會注意到信號線束無需斷開。我們需要做的就是使用點指示符引用信號線束層次結構:
圖 2:使用點指示符擴展信號線束
事實上,這些信號線束只是單一線束類型的實例化。我們通過導航到 Place > Harness > Predefined Harness Connector 將它們放置在原理圖上。
圖 3:重用預定義的線束
我們的預定義線束連接器如下所示:
圖 4:預定義線束演示
在我們的原理圖中,我們已經實例化了三個 SPI 線束:FLASH、SD 和 ACTUATOR。由于我們使用了點指示符,因此我們不需要做任何其他事情。
一旦我們轉向 FPGA Pin Mapper 工具,我們很快就會發現為我們的 FPGA 設計人員提供了非法信號名稱。在 SystemVerilog 中,如果我們能夠合成 Interface Modports,這些“分層名稱”對我們很有用,但是,遺憾的是,在撰寫本文時,大多數 FPGA 工具都不支持。因此,如果我們決定使用這種網絡命名方案,整個引腳命名同步工具對我們沒有用處。
解決方案
為了實現PCB 設計和 FPGA 綜合工具之間的協調,我們必須在 HDL 中使用合法的網絡名稱??梢杂泻芏喾椒▉斫鉀Q這個問題。在本文中,我們將回顧兩種不同的解決方案。
第一個選項可能是保留您的線束分層名稱并在 Altium Designer 中執行引腳交換/同步。同步完成后,將更新 FPGA 引腳文件(CSV 格式)以反映 Altium Designer 中執行的更改。這些網絡名稱現在看起來像不合法的分層名稱(例如,“SPI.SDO”)。一個簡單的解決方法是在將 CSV 引腳文件導入回 FPGA 設計之前添加一個使用外部腳本修改 CSV 引腳文件的階段。如果你想在 Altium Designer 中運行這個操作,這可以是一個 Delphi 腳本。如果您想在 FPGA 工具中運行它,這可能會在將引腳文件導入 FPGA 綜合工具之前發生(例如,運行 Vivado 時 TCL 腳本中的這些額外行)。如果你想獨立運行它,
另一種選擇是擴展信號線束,然后重命名網絡。一個簡單、干凈的方法是用下劃線替換句點(例如,“SPI.MISO 變成”SPI_MISO)像這樣:
圖 5:使用下劃線代替網絡名稱的句點
確保將擴展線束與 FPGA IO 網絡名稱分開,以確保正確的引腳交換。圖 6 展示了擴展線束和 FPGA 網絡名稱本身之間的分離。
圖 6:擴展信號線束以使用合法的網絡名稱
這種方法需要在原理圖方面做更多的工作,但可以確保從原理圖捕獲到 FPGA 綜合的干凈過渡。
結論
本文回顧了使用特定網絡命名約定和FPGA Pin Mapper 工具時可能面臨的挑戰。出現問題的一種特殊情況是信號線束和 FPGA 引腳映射器。使用信號線束的分層網絡名稱,用戶會發現這些名稱不會合法地轉換為 FPGA 綜合工具。文章中提供了兩種建議的解決方案:一種側重于腳本自動化,另一種需要在原理圖捕獲方面進行更多工作。任何一種解決方案都有效。因此,這種額外的設計應該權衡哪種方法最適合他們。