如何讓數(shù)字硬件設(shè)計(jì)簡(jiǎn)單化
出處:維庫(kù)電子市場(chǎng)網(wǎng) 發(fā)布于:2017-08-08 17:41:00
VHDL和Verilog是用于描述可綜合數(shù)字硬件的兩種主流語言。但我們不應(yīng)忘記,它們初可不是為了這個(gè)目的創(chuàng)建的,而是為了模擬和歸檔。這個(gè)事實(shí)加之許多其它語法弱點(diǎn),引發(fā)了許多問題,比如設(shè)計(jì)參數(shù)化能力弱;設(shè)計(jì)可重用性差;代碼冗長(zhǎng)、方法繁復(fù);以及使可綜合和不可綜合特征之間的邊界模糊不清。為了應(yīng)對(duì)這些限制和問題,一些新的替代解決方案已經(jīng)出現(xiàn),如Bluespec、Chisel、CλaSH、Migen、MyHDL和SpinalHDL等。
以不同方式描述硬件
與VHDL和Verilog一樣,SpinalHDL可用于通過定義寄存器和門來描述硬件,SpinalHDL不使用眾所周知的事件驅(qū)動(dòng)范式來描述硬件(如VHDL和Verilog),而是使用專為此目的設(shè)計(jì)的語法。這允許在其聲明中區(qū)分組合信號(hào)與寄存器,并通過定義規(guī)則來描述硬件行為。這意味著信號(hào)和寄存器可以在相同的條件語句中分配,而這對(duì)于“事件驅(qū)動(dòng)”替代方案是不可能的(見圖1)。
圖1:簡(jiǎn)單的硬件描述。
語言的所有語法都可用于硬件描述,語法可分為兩類。一類是:通過使用專用類型顯式(explicitly)定義可綜合硬件;另一類是:可用于闡述硬件結(jié)構(gòu),例如實(shí)例循環(huán)、功能和類。除此之外,SpinalHDL編譯器將執(zhí)行許多檢查,以確保用戶設(shè)計(jì)是合法的,例如:是否缺少組合循環(huán);所有組合分配的完整性、以避免不必要的閂鎖指推(inferring unwanted latche);跨時(shí)鐘域連接的合法性等——這使得SpinalHDL用起來很安全。
但SpinalHDL與VHDL和Verilog的主要不同是其嵌入到通用語言(Scala)中這一事實(shí)。由于這種方法,我們得到一個(gè)“Meta HDL”,其中高層級(jí)部分(類、動(dòng)態(tài)陣列、字典...)可用于通過算法手段生成可綜合的硬件描述。這提供了非常高的表現(xiàn)力來描述靈活和可重復(fù)使用的硬件。實(shí)際上,正是它使SpinalHDL有能力以面向?qū)ο蠛凸δ苄跃幊痰姆绞絹聿倏v所描述設(shè)計(jì)的每一個(gè)元素;它與一個(gè)有能力的標(biāo)準(zhǔn)庫(kù)結(jié)合起來,從而在元硬件描述和闡述能力方面獲得了出乎意料的能力,遠(yuǎn)超VHDL、Verilog和SystemVerilog所能(見圖2)。
圖2:使用抽象實(shí)現(xiàn)寄存器庫(kù)(register bank)。
SpinalHDL編譯器能夠?qū)⒂脩艟帉懙挠布枋鲛D(zhuǎn)換為人類可讀和可綜合的VHDL/Verilog網(wǎng)表(正如大多數(shù)原理圖輸入工具貫穿所用),這使得它已經(jīng)與行業(yè)中使用的大多數(shù)EDA工具兼容。
此外,目標(biāo)語言/EDA工具不須本地支持Spinal-HDL提供的所有功能(例如類型和數(shù)據(jù)結(jié)構(gòu)參數(shù)化),在被解壓縮/展開到生成的VHDL/Verilog網(wǎng)表前,在SpinalHDL編譯器內(nèi)部得以支持、解決(見圖3)。
圖3:仲裁管道的實(shí)現(xiàn)。
未來展望
作為這些概念的現(xiàn)實(shí)演示者,我們使用SpinalHDL實(shí)現(xiàn)了一款名為“Pinsec”的小型SoC,它集成了RISC-V CPU、SDRAM控制器、嵌入式RAM、GPIO、定時(shí)器、UART、VGA和JTAG調(diào)試接口,由AXI4和APB3互連全部連接在一起(見圖4)。
圖4:Pinsec SoC框圖。
該演示表明,可非常容易地實(shí)現(xiàn)設(shè)計(jì)的頂層,特別是在涉及總線互連的參數(shù)化和實(shí)例化時(shí)。 與傳統(tǒng)方法不同,SpinalHDL只需幾行代碼就能搞定,從而大大提高了可讀性和生產(chǎn)率。例如,將新外設(shè)連接到APB互連只需要一行參數(shù)化代碼(見圖5)。
圖5:Pinsec的總線橋和所有APB3總線構(gòu)造的頂層實(shí)例化。
另一個(gè)有趣的演示是RISC-V CPU(名為VexRiscv)的第二次迭代,演示了使用SpinalHDL的先進(jìn)元硬件描述功能帶來的增益。首先,CPU頂層是一個(gè)空白骨架,它只提供一些闡述服務(wù)、作為信號(hào)通過各階段(stage)的自動(dòng)流水線、以及各階段的仲裁接口。
與一個(gè)允許在CPU頂層注入硬件的插件注冊(cè)系統(tǒng)相結(jié)合,該方法支持——可以具有相同功能的多個(gè)變體、而無需將其集成到CPU代碼中的——非常靈活的CPU架構(gòu)。插件可從簡(jiǎn)單的事情(例如程序計(jì)數(shù)器或整數(shù)ALU)到復(fù)雜的操作(例如通過L1緩存的加載和存儲(chǔ)支持)。
插件之間的合作也可能非常復(fù)雜。例如,所有插件都可以發(fā)布新的指令操作碼,以及如何由指令解碼器進(jìn)行解碼。
然后,指令解碼器將使用與SpinalHDL元硬件功能相結(jié)合的Quine-Mc Cluskey算法來生成指令解碼邏輯。
結(jié)論
使用SpinalHDL是改變數(shù)字硬件設(shè)計(jì)愿景并實(shí)現(xiàn)真正工程化的一種體驗(yàn)。憑借其所有功能,它允許芯片設(shè)計(jì)人員描述優(yōu)雅和可重復(fù)使用的硬件,而沒有通常使用的HDL(如VHDL、Verilog甚至System-Verilog)的繁瑣和限制。它也證明了使用軟件工程技術(shù)在生成的RTL中沒有任何開銷就可詳細(xì)描述硬件結(jié)構(gòu)的可行性和收益。該語言及其參考編譯器也是完全和開源的。
,請(qǐng)注意:上述示例中使用的所有功用和類,如Stream、RGB、隊(duì)列、Apb3Decoder、AxiLite4和AxiLite4SlaveFactory都不是Spinal-HDL語言中提供的功能,而是由標(biāo)準(zhǔn)庫(kù)使用其常規(guī)語法提供。換句話說,可以通過實(shí)現(xiàn)新的庫(kù)、抽象層和可從根本上改善硬件描述表現(xiàn)力的工具來擴(kuò)展語言本身;也可在不忽視抽象硬件的條件下、通過引入新的概念來擴(kuò)展語言(因?yàn)檫@些庫(kù)仍然在RTL域內(nèi)實(shí)現(xiàn))。
下一篇:初學(xué)PLC的幾種方法
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 數(shù)字電源控制與傳統(tǒng)模擬控制的深度對(duì)比2026/2/2 11:06:56
- 模擬信號(hào)調(diào)理電路技術(shù)設(shè)計(jì)與選型運(yùn)維指南2025/12/30 10:08:16
- 運(yùn)算放大器壓擺率的核心要點(diǎn)2025/9/5 16:27:55
- 深度剖析放大器穩(wěn)定系數(shù) K 與 Mu 的差異2025/9/2 16:44:05
- 什么是運(yùn)算放大器失調(diào)電流2025/9/1 17:01:22
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









