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