Verilog與C語言的最大區(qū)別是什么
Verilog是一種硬件描述語言,作用是進(jìn)行電路設(shè)計,可以描述電路的功能、連接和時序。他關(guān)心的不僅是從功能邏輯這個問題如何解決,更關(guān)心這些功能如何實現(xiàn),關(guān)心最終的電氣連接。可綜合的Verilog代碼經(jīng)過綜合后,最終會轉(zhuǎn)化為實際電路。
C語言是一種軟件描述語言,作用是通過算法邏輯實現(xiàn)某個功能。他不關(guān)心電路如何實現(xiàn),只關(guān)心要解決這個問題,我應(yīng)該使用什么功能,如何使用這些功能。C語言經(jīng)過編譯后,最終轉(zhuǎn)化為二進(jìn)制碼實現(xiàn)。
C語言的抽象級別高于Verilog。無論C還是匯編都是利用CPU中現(xiàn)成的ALU、控制器、寄存器等來執(zhí)行指令,而Verilog HDL描述的是電路中的寄存器、門電路等之間的連接關(guān)系和數(shù)據(jù)流向。
HDL的本質(zhì)是什么
HDL是硬件電路本身,高級語言是使用電路的。高級語言通過shell、編輯器調(diào)用硬件電路去執(zhí)行機(jī)器碼指令,從而操控設(shè)備。
據(jù)我所知,基于coding的設(shè)計方法學(xué)是在spice仿真發(fā)明后才逐漸建立的。在此之前,電路設(shè)計都是手動畫電路圖的,然后用面包板進(jìn)行驗證。
HDL的設(shè)計與驗證流程有哪些
在大型系統(tǒng)的設(shè)計與實現(xiàn)中,首先要進(jìn)行詳細(xì)的系統(tǒng)規(guī)劃和描述,此時HDL描述側(cè)重于整體系統(tǒng)的劃分和實現(xiàn)。對系統(tǒng)級的仿真?zhèn)戎赜趯φ麄€系統(tǒng)的功能和性能指標(biāo)的考量。功能模塊級設(shè)計時將系統(tǒng)整體功能劃分為可實現(xiàn)的具體功能模塊,大致確定模塊間的接口,如時鐘、讀寫信號、數(shù)據(jù)流、控制信號等。在有些情況下,還要根據(jù)系統(tǒng)要求,描述每個模塊或進(jìn)程的時序約束。另外在此層次,必須權(quán)衡整個系統(tǒng)多種的實現(xiàn)方式之優(yōu)劣,選出系統(tǒng)性能指標(biāo)優(yōu)并且可以高效實現(xiàn)的設(shè)計方案。功能模塊級仿真主要是考察每個功能的功能和基本時序情況。系統(tǒng)與功能模塊級設(shè)計與仿真常常要借助于C語言和抽象程度較高的HDL語言描述,如SystemC、CoWarC、SystemVerilog、Superlog。
仿真分為系統(tǒng)級仿真、行為級仿真、門極仿真三個層次,門極仿真又分為no timing仿真(前仿真)和timing aware仿真(后仿真)。在大部分設(shè)計中執(zhí)行的第一個仿真將是RTL行為級仿真。這個階段的仿真可以用來檢查代碼中的語法錯誤以及代碼行為的正確性,其中不包括延時信息。如果沒有實例化一些與器件相關(guān)的特殊底層元件的話,這個階段的仿真也可以做到與器件無關(guān)。因此在設(shè)計的初期階段不使用特殊底層元件即可以提高代碼的可讀性、可維護(hù)性,又可以提高仿真效率,且容易被重用。在設(shè)計布局布線完成以后可以提供一個時序仿真模型,這種模型中也包括了器件的一些信息,同時還會提供一個SDF時序標(biāo)注文件。一般在設(shè)計流程中的第二個仿真是綜合后門級功能仿真。絕大多數(shù)的綜合工具除了可以輸出一個標(biāo)準(zhǔn)網(wǎng)表文件以外,還可以輸出Verilog或者VHDL網(wǎng)表,其中標(biāo)準(zhǔn)網(wǎng)表文件是用來在各個工具之間傳遞設(shè)計數(shù)據(jù)的,并不能用來做仿真使用,而輸出的Verilog或者VHDL網(wǎng)表可以用來仿真。之所以叫門級仿真是因為綜合工具給出的仿真網(wǎng)表已經(jīng)是與生產(chǎn)廠家的器件的底層元件模型對應(yīng)起來了,所以為了進(jìn)行綜合后仿真必須在仿真過程中加入廠家的器件庫,對仿真器進(jìn)行一些必要的配置,不然仿真器并不認(rèn)識其中的底層元件,無法進(jìn)行仿真。SDF時序標(biāo)注最初使用在Verilog語言的設(shè)計中,現(xiàn)在VHDL語言的設(shè)計中也引用了這個概念。
另外,在邏輯綜合的時候或者之前要插入測試電路(DFT,design for test),包括mbist(mem內(nèi)建測試電路),lbist(邏輯內(nèi)建測試電路)、scan chain(掃描鏈)、boundary scan(邊界掃描)。在邏輯綜合完成后和布局布線完成后,還分別需要做ATPG和ATPG simulation,來驗證測試覆蓋率。
布局布線完成后還需要physical sign-off和sta sign-off。然后需要tape-out,然后再是回片測試,然后封裝。