隨著功能復雜度的快速提升,對芯片的要求也是隨著提高,所以現在一款芯片的開發,往往需要數十人,長達幾個月的共同開發才能完成。
因為Verilog HDL的語法相對開放,所以每個人開發的Verilog HDL之間的差異也是非常的大。但是一個設計團隊之間,進行RTL模塊的交叉review、相互調用是非常頻繁的事情,所以為了增強RTL代碼的可移植性,以及review的效率,我們通常在一個項目開始的時候,會統一整理一個RTL編碼規則,里面的內容包括,命名的規則、單詞的縮略原則,一些標準電路的常用寫法等等。往往這個編碼規則會寫的很具體,但是個人認為,這是非常有必要的。在前面的五篇文章中,我們已經聊了一些,今天的文章,我就繼續來聊一聊一般常見的規則。
RTL推薦編碼規則
門級電路的使用,我們一定要特別注意。在RTL編碼過程中,很多時候我們出于時序或者其他的需要,可能需要調用門級電路,那么門級電路是不是真的那么好用,可以隨意調用?答案不是的。
門級電路的特點是可讀性不強,難于閱讀,從而導致后期維護、修改的困難很大,我們來看一個門級電路的例子。
and u_2x2and (out, input1, input2);
上面就是一個與門電路的實例化調用,我們再來解釋一下這個調用方式以及門級電路的含義,首先是門級電路的類型,緊接著是實例化名,括號里面是端口名,包括input端口和output端口。具體到這個例子就是,調用一個2輸入與門and,實例化名是u_2x2and,括號里面包括output端口out,以及兩個輸入端口input1和input2,寫成RTL的形式就是out = input1 & input2,另外需要注意的是,端口中的input端口和output端口的順序一定要和所調用門級電路中的順序相對應。
從上面的例子可以看出,門級電路在使用的時候,因為并沒有邏輯表達式,只是調用工藝庫或者其他庫里面的固有電路,所以如果大量調用這類門級電路進行電路描述,則一定要增加閱讀以及維護的復雜度。并且因為很多門級電路是在某個工藝庫下面特有的,所以如果調用這類門級電路,就只能在這種工藝下面使用,不能移植到別的工藝,這基本上是不能允許的。
所以如果我們一定要調用門級電路的話,就必須調用獨立于具體工藝庫的門電路,這樣便于后面的電路移植。一般我們常見的獨立于某種工藝的如Synopsys的GTECH庫,里面包含了很多常用的門級電路,可以方便調用。
小結
門級電路可以作為RTL建模的一種補充方式可以調用,但是我們在編寫RTL的時候,還是要盡可能避免,因為Verilog表達式確實更容易閱讀和維護了。
-
Verilog
+關注
關注
28文章
1351瀏覽量
110134 -
RTL
+關注
關注
1文章
385瀏覽量
59831
發布評論請先 登錄
相關推薦
評論