HDL的综合和c语言的编译区别,C语言与verilog 的区别及相互转化
1,面對(duì)C語(yǔ)言比verilogHDL更加成熟,而且更加可靠,因?yàn)関erilog
的編譯,查錯(cuò)工具大都是商業(yè)軟件,因此沒(méi)有像C語(yǔ)言一樣得到廣泛的應(yīng)用,各種缺陷也較C來(lái)說(shuō)?較多。基于這樣的原因,在設(shè)計(jì)算法的硬件電路塊時(shí),一般采用C語(yǔ)言和verilog相結(jié)合的方式,利用C語(yǔ)言完善的查錯(cuò)和編譯環(huán)境,設(shè)計(jì)者可以先設(shè)計(jì)出一個(gè)功能正確的設(shè)計(jì)單元,以此作為設(shè)計(jì)比較的標(biāo)準(zhǔn)。然后,把C程序一段一段地改寫(xiě)成用并型結(jié)構(gòu)(類似于Verilog)描述的C程序,此時(shí)還是在C的環(huán)境里,使用的依然是C語(yǔ)言。如果運(yùn)行結(jié)果都正確,就將C語(yǔ)言關(guān)鍵字用Verilog相應(yīng)的關(guān)鍵字替換,進(jìn)入Verilog的環(huán)境。將測(cè)試輸入同時(shí)加到C與Verilog兩個(gè)單元,將其輸出做比較。這樣很容易發(fā)現(xiàn)問(wèn)題的所在,然后更正,再做測(cè)試,直至正確無(wú)誤。
2,C語(yǔ)言的代碼是一行一行執(zhí)行的,屬于順序結(jié)構(gòu),而verilog是一種硬件描述語(yǔ)言,語(yǔ)句同時(shí)進(jìn)行,屬于并行結(jié)構(gòu),并且verilog的仿真軟件大多都是順序結(jié)構(gòu)的,所以有很多的問(wèn)題沒(méi)有辦法發(fā)現(xiàn)。
3,verilog的輸入輸出函數(shù)較少,而C卻多種多樣,因此在轉(zhuǎn)化上存在很大的問(wèn)題。C函數(shù)調(diào)用是沒(méi)有時(shí)間延時(shí)特性的,不同時(shí)間調(diào)用同一個(gè)函數(shù)的功能是一樣的,而Verilog中對(duì)模塊的不同調(diào)用是不同的,即使調(diào)用的是同一個(gè)模塊,必須用不同的名字來(lái)指定。Verilog的語(yǔ)法規(guī)則很死,限制很多,能用的判斷語(yǔ)句有限。仿真速度較慢,查錯(cuò)功能差,錯(cuò)誤信息不完整。仿真軟件通常也很昂貴,而且不一定可靠。C語(yǔ)言沒(méi)有時(shí)間關(guān)系,轉(zhuǎn)換后的Verilog程序必須要能做到?jīng)]有任何外加的人工延時(shí)信號(hào),也就是必須表達(dá)為有限狀態(tài)機(jī),即RTL級(jí)的Verilog,否則將無(wú)法使用綜合工具把Verilog源代碼轉(zhuǎn)化為門級(jí)邏輯。
4,verilog與C的常用關(guān)鍵字相互轉(zhuǎn)化如下:
總結(jié)
以上是生活随笔為你收集整理的HDL的综合和c语言的编译区别,C语言与verilog 的区别及相互转化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cad常青藤插件_原来还有这么好用的CA
- 下一篇: java g1 gc ref proc_