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