當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]VHDL和Verilog是用于描述可綜合數(shù)字硬件的兩種主流語(yǔ)言。但我們不應(yīng)忘記,它們最初可不是為了這個(gè)目的創(chuàng)建的,而是為了模擬和歸檔。這個(gè)事實(shí)加之許多其它語(yǔ)法弱點(diǎn),引發(fā)了許

VHDL和Verilog是用于描述可綜合數(shù)字硬件的兩種主流語(yǔ)言。但我們不應(yīng)忘記,它們最初可不是為了這個(gè)目的創(chuàng)建的,而是為了模擬和歸檔。這個(gè)事實(shí)加之許多其它語(yǔ)法弱點(diǎn),引發(fā)了許多問(wèn)題,比如設(shè)計(jì)參數(shù)化能力弱;設(shè)計(jì)可重用性差;代碼冗長(zhǎng)、方法繁復(fù);以及使可綜合和不可綜合特征之間的邊界模糊不清。為了應(yīng)對(duì)這些限制和問(wèn)題,一些新的替代解決方案已經(jīng)出現(xiàn),如Bluespec、Chisel、CλaSH、Migen、MyHDL和SpinalHDL等。

以不同方式描述硬件

與VHDL和Verilog一樣,SpinalHDL可用于通過(guò)定義寄存器和門(mén)來(lái)描述硬件,SpinalHDL不使用眾所周知的事件驅(qū)動(dòng)范式來(lái)描述硬件(如VHDL和Verilog),而是使用專為此目的設(shè)計(jì)的語(yǔ)法。這允許在其聲明中區(qū)分組合信號(hào)與寄存器,并通過(guò)定義規(guī)則來(lái)描述硬件行為。這意味著信號(hào)和寄存器可以在相同的條件語(yǔ)句中分配,而這對(duì)于“事件驅(qū)動(dòng)”替代方案是不可能的(見(jiàn)圖1)。

 

 

圖1:簡(jiǎn)單的硬件描述。

語(yǔ)言的所有語(yǔ)法都可用于硬件描述,語(yǔ)法可分為兩類。一類是:通過(guò)使用專用類型顯式(explicitly)定義可綜合硬件;另一類是:可用于闡述硬件結(jié)構(gòu),例如實(shí)例循環(huán)、功能和類。除此之外,SpinalHDL編譯器將執(zhí)行許多檢查,以確保用戶設(shè)計(jì)是合法的,例如:是否缺少組合循環(huán);所有組合分配的完整性、以避免不必要的閂鎖指推(inferring unwanted latche);跨時(shí)鐘域連接的合法性等——這使得SpinalHDL用起來(lái)很安全。

但SpinalHDL與VHDL和Verilog的主要不同是其嵌入到通用語(yǔ)言(Scala)中這一事實(shí)。由于這種方法,我們得到一個(gè)“Meta HDL”,其中高層級(jí)部分(類、動(dòng)態(tài)陣列、字典...)可用于通過(guò)算法手段生成可綜合的硬件描述。這提供了非常高的表現(xiàn)力來(lái)描述靈活和可重復(fù)使用的硬件。實(shí)際上,正是它使SpinalHDL有能力以面向?qū)ο蠛凸δ苄跃幊痰姆绞絹?lái)操縱所描述設(shè)計(jì)的每一個(gè)元素;它與一個(gè)有能力的標(biāo)準(zhǔn)庫(kù)結(jié)合起來(lái),從而在元硬件描述和闡述能力方面獲得了出乎意料的能力,遠(yuǎn)超VHDL、Verilog和SystemVerilog所能(見(jiàn)圖2)。

 

 

圖2:使用抽象實(shí)現(xiàn)寄存器庫(kù)(register bank)。

SpinalHDL編譯器能夠?qū)⒂脩艟帉?xiě)的硬件描述轉(zhuǎn)換為人類可讀和可綜合的VHDL/Verilog網(wǎng)表(正如大多數(shù)原理圖輸入工具貫穿所用),這使得它已經(jīng)與行業(yè)中使用的大多數(shù)EDA工具兼容。

此外,目標(biāo)語(yǔ)言/EDA工具不須本地支持Spinal-HDL提供的所有高級(jí)功能(例如類型和數(shù)據(jù)結(jié)構(gòu)參數(shù)化),在被解壓縮/展開(kāi)到生成的VHDL/Verilog網(wǎng)表前,在SpinalHDL編譯器內(nèi)部得以支持、解決(見(jiàn)圖3)。

 

 

圖3:仲裁管道的實(shí)現(xiàn)。

未來(lái)展望

作為這些概念的現(xiàn)實(shí)演示者,我們使用SpinalHDL實(shí)現(xiàn)了一款名為“Pinsec”的小型SoC,它集成了RISC-V CPU、SDRAM控制器、嵌入式RAM、GPIO、定時(shí)器、UART、VGA和JTAG調(diào)試接口,由AXI4和APB3互連全部連接在一起(見(jiàn)圖4)。

 

 

圖4:Pinsec SoC框圖。

該演示表明,可非常容易地實(shí)現(xiàn)設(shè)計(jì)的頂層,特別是在涉及總線互連的參數(shù)化和實(shí)例化時(shí)。 與傳統(tǒng)方法不同,SpinalHDL只需幾行代碼就能搞定,從而大大提高了可讀性和生產(chǎn)率。例如,將新外設(shè)連接到APB互連只需要一行參數(shù)化代碼(見(jiàn)圖5)。

 

 

圖5:Pinsec的總線橋和所有APB3總線構(gòu)造的頂層實(shí)例化。

另一個(gè)有趣的演示是RISC-V CPU(名為VexRiscv)的第二次迭代,演示了使用SpinalHDL的先進(jìn)元硬件描述功能帶來(lái)的增益。首先,CPU頂層是一個(gè)空白骨架,它只提供一些闡述服務(wù)、作為信號(hào)通過(guò)各階段(stage)的自動(dòng)流水線、以及各階段的仲裁接口。

與一個(gè)允許在CPU頂層注入硬件的插件注冊(cè)系統(tǒng)相結(jié)合,該方法支持——可以具有相同功能的多個(gè)變體、而無(wú)需將其集成到CPU代碼中的——非常靈活的CPU架構(gòu)。插件可從最簡(jiǎn)單的事情(例如程序計(jì)數(shù)器或整數(shù)ALU)到最復(fù)雜的操作(例如通過(guò)L1緩存的加載和存儲(chǔ)支持)。

插件之間的合作也可能非常復(fù)雜。例如,所有插件都可以發(fā)布新的指令操作碼,以及如何由指令解碼器進(jìn)行解碼。

然后,指令解碼器將使用與SpinalHDL元硬件功能相結(jié)合的Quine-Mc Cluskey算法來(lái)生成最小指令解碼邏輯。

結(jié)論

使用SpinalHDL是改變數(shù)字硬件設(shè)計(jì)愿景并實(shí)現(xiàn)真正工程化的一種體驗(yàn)。憑借其所有功能,它允許芯片設(shè)計(jì)人員描述優(yōu)雅和可重復(fù)使用的硬件,而沒(méi)有通常使用的HDL(如VHDL、Verilog甚至System-Verilog)的繁瑣和限制。它也證明了使用軟件工程技術(shù)在生成的RTL中沒(méi)有任何開(kāi)銷就可詳細(xì)描述硬件結(jié)構(gòu)的可行性和收益。該語(yǔ)言及其參考編譯器也是完全免費(fèi)和開(kāi)源的。

最后,請(qǐng)注意:上述示例中使用的所有功用和類,如Stream、RGB、隊(duì)列、Apb3Decoder、AxiLite4和AxiLite4SlaveFactory都不是Spinal-HDL語(yǔ)言中提供的功能,而是由標(biāo)準(zhǔn)庫(kù)使用其常規(guī)語(yǔ)法提供。換句話說(shuō),可以通過(guò)實(shí)現(xiàn)新的庫(kù)、抽象層和可從根本上改善硬件描述表現(xiàn)力的工具來(lái)擴(kuò)展語(yǔ)言本身;也可在不忽視抽象硬件的條件下、通過(guò)引入新的概念來(lái)擴(kuò)展語(yǔ)言(因?yàn)檫@些庫(kù)仍然在RTL域內(nèi)實(shí)現(xiàn))。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉