?

FPGA軟件開發過程中編碼規范的作用

2016-09-29 13:35
科技視界 2016年20期

駱傳慧

【摘要】硬件描述語言使FPGA(現場可編程門陣列)芯片開發具備軟件特征,編碼規范是軟件質量的保證,能有效地提高軟件開發效率。從命名、排版格式、語句完整性、注釋、代碼結構、代碼優化則等幾個方面介紹了FPGA軟件編碼規范內容,從提高工作效率、提高測試性、提高重用性、降低維護成本角度總結了開發過程中FPGA軟件編碼規范作用。

【關鍵詞】FPGA;軟件開發;編碼規范;硬件描述語言

The FPGA Coding Standards in the Process of Software Development

LUO Chuan-hui

(No. 38 Research Institute, China Electronic Technology Group Corporation, Hefei Anhui 230088, China)

【Abstract】Hardware description language to make the FPGA (field programmable gate array) chip development with characteristics software, coding standards is software quality assurance, can effectively improve the efficiency of software development. From naming, typesetting format, statement integrity, annotation, the structure of the code, code optimization are introduced several aspects, such as the FPGA software coding standard content, improve the work efficiency, improve the testability, improve the reusability, lower maintenance cost Angle the FPGA software coding standard role in the development process are summarized.

【Key words】FPGA; Software development; Coding standard; Hardware description language

0引言

FPGA(現場可編程門陣列)芯片的出現,大大壓縮了電子產品研發的周期和成本,它所具有的高密度、低功耗、高速、高可靠性等優點,使其在航空、航天、通信、工業控制等方面得到了廣泛的應用。隨著芯片規模加大,承擔任務的加重,開發周期縮短,如何高效、高質量開展設計,成為FPGA芯片開發工作的重點。FPGA芯片的多樣化要求代碼具有超強的可移植能力。

硬件描述語言是當前FPGA芯片開發過程中使用的最主要輸入方式,通過行為描述實現邏輯電路和系統的設計,使FPGA芯片開發具有了軟件設計的特征。為了實現FPGA設計需求,軟件開發單位需要制定相應的編碼規范,對程序員的編程行為進行約束,包括命名規則、排版格式、注釋、代碼結構、代碼優化等編碼過程中需要注意的編程細節。

FPGA編碼規范是行業中約定俗成的,是長期經驗的總結和集體智慧的結晶,能夠指導設計工程師正確編寫代碼,提高代碼的整潔度,便于跟蹤、分析、調試,便于整理文檔,便于交流合作。從而達到提高設計效率、優化電路、降低設計成本的效果。

1編碼規范內容

FPGA軟件編碼規范是軟件開發單位制定的關于硬件描述語言編碼方面約定,主要包括命名規則、排版格式、語句的完整性、注釋的明確性、嵌套層次限制等方面需要注意的編程事項,以對設計人員的編程行為進行約束。

1.1命名規則

能夠有助于閱讀者快速理解編碼,便于交流合作。命名規則規定在命名實體名、結構體、端口、信號、變量等名稱時,必須采用具有確定意義并且相互之間存在一定的邏輯關系標識,以及標識字符的大小寫要求。例如,端口、信號或變量標識通常包含諸如出處、有效狀態等基本含義。

1.2排版格式

能夠提高代碼的整潔度和可讀性,在一定程度上減少缺陷被引入的機會,降低維護成本。排版格式規定代碼統一縮進格式,每行代碼的長度,端口、信號、變量、常量排列順序、表達式的書寫等方面的要求。例如,端口按輸入、輸出分類有序排列。

1.3語句完整性規則

能夠解決一致性問題,降低RTL代碼中引入的錯誤。語句完整性規定編碼過程中語句、狀態的完整性,時序電路的敏感量完整性,以及信號、變量的初始化、復位等要求。例如,條件語句IF中的ELSE、選擇語句CASE中的OTHERS不能被忽略。

1.4注釋規則

解決代碼的可讀性和可維護性。注釋規則約定編碼過程中注釋的內容和排版位置,要求一個完整的軟件程序應有明確的注釋,主要包括:序言性注釋、端口注釋、功能性注釋、軟件模塊注釋等。例如,代碼序言應包括代碼的功能、代碼適用范圍、代碼的作者、代碼版本信息等等。

1.5代碼結構規則

解決代碼可讀性、可重用性、可維護性問題。代碼結構規則對代碼結構、模塊劃分、模塊層次、參數化設計、條件語句多級嵌套的策略等提出要求。例如,所有產生時序控制的邏輯放在同一個模塊中。

1.6代碼優化規則

解決代碼執行效率、可靠性問題。代碼優化規則對復位信號、時鐘信號的處理,輸出信號處理、模塊調用、狀態機編碼以及懸空管腳、跨時鐘域、數據類型、邊界條件等方面的約定。例如,每個模塊盡量用一個時鐘,禁止用門控時鐘。

2編碼規范的作用

2.1提高工作效率

超大規模FPGA芯片特別是SOC類的FPGA芯片出現,使得FPGA芯片能夠用在大型電子系統中。多功能FPGA芯片軟件設計任務需要由多人共同承擔,軟件開發由單打獨斗的個人行為變成團隊活動。編碼規范能夠使所有團隊成員遵守共同統一的全局決策,以清晰并且一致的風格進行編碼,成員之間可以輕松地閱讀對方的代碼,易于相互理解及交流,多人設計能夠無縫對接。

2.2提高測試性

為了減少FPGA軟件缺陷,提高設計質量,在軟件開發的各個階段開展相應的測試,FPGA軟件測試分為基于EDA工具和基于人工檢查兩種方式,基于 EDA工具檢查的方式需要先對RTL代碼進行編譯,按照一定的規則轉換成能被工具識別的邏輯電路,再用已有的度量模型定量地評價軟件的內在質量。編碼規范能使輸入的RTL代碼被EDA工具正確識別,保證自動檢查能夠順利進行?;谌斯z查方式,是由測試人員通過人工閱讀代碼的形式檢查軟件代碼,找出代碼其中存在的故障和違反開發標準之處以及其他一些問題。編碼規范讓代碼審查有據可查,大大提高了審查效率和效果。

2.3提高重用性

在FPGA軟件開發過程中,代碼或IP核重用是很常見的現象。代碼風格的一致性,能使開發人員更迅速、更容易理解其他人的代碼;代碼結構規則使代碼具有良好的擴展性和重用性,能夠快速、便捷移植;優化規則總結了EDA工具對RTL代碼要求,能夠保證RTL代碼在任何EDA工具下仿真、編譯和綜合的正確性和一致性,消除代碼集成時邏輯綜合產生的風險,順利實現在不同廠家以及不同系列芯片之間移植。

2.4提高可靠性

由于FPGA芯片能夠兼顧性能、成本以及靈活性等諸多方面,很多航空、航天設備開始使用這種芯片,其性能將直接影響整個系統的可靠性。完整性規則、優化規則能夠有效減少RTL代碼引入的不確定因素,降低電源、環境溫度變化對可靠性影響,減少功能仿真與門級電路之間存在偏差。

2.5降低維護成本

FPGA軟件開發過程中的代碼質量直接影響著維護的成本。維護工作不僅僅是讀懂原有代碼,而是需要在原有代碼基礎上做出修改。在沒有規范的情況下,設計人員、維護人員各自按自己的習慣命名和編碼,后續代碼維護人員很難讀懂和維護。因此,統一的風格有利于長期的維護。代碼結構規則對功能分類及代碼耦合性做出的約束,降低了代碼修改以及擴展的難度和工作量。

3結論

一部完善的FPGA軟件編碼規范能夠將編碼從個人行為變成組織行為,最大限度的實現經驗共享,避免同樣錯誤重復出現,提高團隊開發的合作效率。能夠有效地增加代碼的可讀性,降低維護成本,提升代碼的運行效率,增強代碼的可重用性和可靠性,從而實現邏輯功能正確,綜合結果最優的編碼目標。

【參考文獻】

[1]孫曉東.FPGA軟件設計[J].電腦編程技巧與維護,2010(12):5-6.

[2]張建飛.基于航空領域嵌入式軟件代碼審查的研究[J].科技創新與生產力, 2015(10):108-109.

[3]何成巨,郭薇.淺談軟件編程中的代碼規范問題[J].電腦知識與技術,2011,7(26):6409-6410.

[4]楊冰娥.代碼規則自動化檢查系統的設計與實現[D].西南交通大學,2014.

[5]李大勇.淺談軟件開發中代碼規范的問題[J].電子技術與軟件工程,2015(15):50-50.

[6]劉宇翔.軟件項目管理的流程設計分析[J].科技資訊,2010(36):33-33.

[7]侯伯亨,顧新.VHDL硬件描述語言與數字邏輯電路設計[M].西安電子科技大學出版社,1999.

[8]喬廬峰,王志功.VHDL數字電路設計教程[M].電子工業出版社,2013.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合