SystemVerilog設(shè)計(jì)語言
SystemVerilog是磨合來自于上述這些語言的設(shè)計(jì)與驗(yàn)證抽象和構(gòu)造、并以一種實(shí)際的方式把它們集成在一起而產(chǎn)生的。它之所以產(chǎn)生了一種革命性的力量,是因?yàn)樗且环N不斷發(fā)展的和融合型的語言,而不僅僅只是各種標(biāo)準(zhǔn)的實(shí)現(xiàn)。
為了更好地解決一些新出現(xiàn)的問題,業(yè)界往往會周期性地推出一些專用工具和語言。20世紀(jì)80年代,隨著原理圖適用性越來越差和綜合方法變得可行起來,像 Verilog和VHDL這樣的HDL設(shè)計(jì)獲得了業(yè)界的認(rèn)可。而在20世紀(jì)90年代,驗(yàn)證成為了IC設(shè)計(jì)的瓶頸,此時(shí)又出現(xiàn)了Vera和“e”之類的 HVL語言來解決這個(gè)問題。SystemC的出現(xiàn)是為了解決系統(tǒng)級設(shè)計(jì)問題。形式技術(shù)則為屬性規(guī)范語言提供了發(fā)展動(dòng)力。雖然上述每種工具和語言都推進(jìn)了各自特定領(lǐng)域的技術(shù)進(jìn)步,但僅僅提高了特定設(shè)計(jì)環(huán)節(jié)的設(shè)計(jì)效率。
此外,這些新的語言還創(chuàng)造了一些限制設(shè)計(jì)效率的人為界線和障礙。首先表現(xiàn)在學(xué)習(xí)曲線上:雖然這些語言大多數(shù)可以在一周內(nèi)學(xué)會,但通常要花數(shù)月的時(shí)間才能達(dá)到熟練應(yīng)用的程度。雖然HVL和HDL具有一些重疊的概念,但采用的語法和語義卻有細(xì)微的差別。
與系統(tǒng)級、覆蓋率、RTL、測試平臺以及屬性相關(guān)的工具的修補(bǔ)工作導(dǎo)致了性能下降、不必要的數(shù)據(jù)混亂、以及不兼容的應(yīng)用編程接口或版本。驗(yàn)證工作所花的時(shí)間仍要比設(shè)計(jì)本身多得多。
SystemVerilog語言消除了這些障礙,并將設(shè)計(jì)和驗(yàn)證所需的語言組合成一種語言。而且,除了一個(gè)很小的例外(一個(gè)排外構(gòu)造)外,SystemVerilog還是Verilog 2001的一個(gè)超集。因此,目前的Verilog用戶使用SystemVerilog應(yīng)該是沒有任何問題的。SystemVerilog一問世就擁有很大的安裝基數(shù)、以及大量承諾支持它的供應(yīng)商,這一切都預(yù)示著SystemVerilog會有良好的市場接納前景。
SystemVerilog 與Verilog有許多重要的區(qū)別。首先,SystemVerilog提供了一個(gè)完整的仿真模型:它將每個(gè)時(shí)隙細(xì)分成11個(gè)有序的段,并規(guī)定了每個(gè)這樣的段內(nèi)必須發(fā)生的事件。這樣就可以避免在仿真包含反應(yīng)性測試平臺、覆蓋率分析工具和相互作用的第三方C模型在內(nèi)的模型時(shí)發(fā)生某些不確定性。 SystemVerilog可以提供設(shè)計(jì)師最需要的很好的確定性。
第二,像C++語言所具有的一些功能,包括結(jié)構(gòu)、類、C數(shù)據(jù)類型、動(dòng)態(tài)存儲器分配和動(dòng)態(tài)進(jìn)程等,使SystemVerilog更適合測試平臺的開發(fā)和系統(tǒng)級建模。第三,仿真和靜態(tài)驗(yàn)證工具可以使用相同的聲明集合。
最后,還需要說明的是,接口在SystemVerilog中扮演著一個(gè)很重要的角色。接口可以被單獨(dú)定義,可以包含有關(guān)它們行為的聲明,還可以在整個(gè)設(shè)計(jì)中復(fù)用。因此所產(chǎn)生的代碼更緊湊,具有更好的可讀性和魯棒性。
評論