www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀] Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語(yǔ)言。用Verilog HDL描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語(yǔ)言,也是一種結(jié)構(gòu)描述的語(yǔ)言。也就是說(shuō),既可以用電路的功能描述,也可

 Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語(yǔ)言。用Verilog HDL描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語(yǔ)言,也是一種結(jié)構(gòu)描述的語(yǔ)言。也就是說(shuō),既可以用電路的功能描述,也可以用元器件和它們之間的連接來(lái)建立所設(shè)計(jì)電路的Verilog HDL模型。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類型共有以下5種。

 

  • 系統(tǒng)級(jí)(system):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。
  • 算法級(jí)(algorithm):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。
  • RTL級(jí)(Register Transfer Level):描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。
  • 門級(jí)(gate-level):描述邏輯門以及邏輯門之間的連接的模型。
  • 開(kāi)關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。

 

一個(gè)復(fù)雜電路系統(tǒng)的完整Verilog HDL模型是由若干個(gè)Verilog HDL模塊構(gòu)成的,每一個(gè)模塊又可以由若干個(gè)子模塊構(gòu)成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設(shè)計(jì)的模塊交互的現(xiàn)存電路或激勵(lì)信號(hào)源。利用Verilog HDL語(yǔ)言結(jié)構(gòu)所提供的這種功能就可以構(gòu)造一個(gè)模塊間的清晰層次結(jié)構(gòu)來(lái)描述極其復(fù)雜的大型設(shè)計(jì),并對(duì)所作設(shè)計(jì)的邏輯電路進(jìn)行嚴(yán)格的驗(yàn)證。

Verilog HDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語(yǔ)言具有以下功能。

 

  • 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。
  • 用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。
  • 通過(guò)命名的事件來(lái)觸發(fā)其他過(guò)程里的激活行為或停止行為。
  • 提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。
  • 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。
  • 提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。
  • 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。
  • Verilog HDL語(yǔ)言作為一種結(jié)構(gòu)化的語(yǔ)言也非常適合于門級(jí)和開(kāi)關(guān)級(jí)的模型設(shè)計(jì)。因其結(jié)構(gòu)化的特點(diǎn)又使它具有以下功能。
    • 提供了完整的一套組合型原語(yǔ)(primitive);
    • 提供了雙向通路和電阻器件的原語(yǔ);
    • 可建立MOS器件的電荷分享和電荷衰減動(dòng)態(tài)模型。

 

Verilog HDL的構(gòu)造性語(yǔ)句可以精確地建立信號(hào)的模型。這是因?yàn)樵赩erilog HDL中,提供了延遲和輸出強(qiáng)度的原語(yǔ)來(lái)建立精確程度很高的信號(hào)模型。信號(hào)值可以有不同的強(qiáng)度,可以通過(guò)設(shè)定寬范圍的模糊值來(lái)降低不確定條件的影響。

Verilog HDL作為一種高級(jí)的硬件描述編程語(yǔ)言,有著類似C語(yǔ)言的風(fēng)格。其中if語(yǔ)句、case語(yǔ)句等和C語(yǔ)言中的對(duì)應(yīng)語(yǔ)句十分相似。如果讀者已經(jīng)掌握C語(yǔ)言編程的基礎(chǔ),那么學(xué)習(xí)Verilog HDL并不困難,只要對(duì)Verilog HDL某些語(yǔ)句的特殊方面著重理解,并加強(qiáng)上機(jī)練習(xí)就能很好地掌握它,利用它的強(qiáng)大功能來(lái)設(shè)計(jì)復(fù)雜的數(shù)字邏輯電路。下面將介紹Verilog HDL中的基本結(jié)構(gòu)和語(yǔ)法。

Verilog HDL程序入門

首先來(lái)看幾個(gè)Verilog HDL程序,然后從中分析Verilog HDL程序的特性。

 

例1:加法器。

module  adder ( count,sum,a,b,cin );   //加法器模塊端口聲明

      input [2:0] a,b;                         //端口說(shuō)明

      input   cin;

      output  count;

      output [2:0] sum;

      assign {count,sum} = a + b + cin;      //加法器算法實(shí)現(xiàn)

endmodule

 

這個(gè)例子通過(guò)連續(xù)賦值語(yǔ)句描述了一個(gè)名為adder的三位加法器可以根據(jù)兩個(gè)三比特?cái)?shù)a、b和進(jìn)位(cin)計(jì)算出和(sum)和進(jìn)位(count)。從例子中可以看出整個(gè)Verilog HDL程序是嵌套在module和endmodule聲明語(yǔ)句里的。

 

例2:比較器。

module  compare ( equal,a,b );     //比較器模塊端口聲明

         output  equal;                 //輸出信號(hào)equal

         input [1:0] a,b;             //輸入信號(hào)a、b

         assign  equal=(a==b)?1:0; //如果a、b 兩個(gè)輸入信號(hào)相等,輸出為1,否則為0

endmodule

 

這個(gè)程序通過(guò)連續(xù)賦值語(yǔ)句描述了一個(gè)名為compare的比較器。對(duì)兩比特?cái)?shù)a、b進(jìn)行比較,如a與b相等,則輸出equal為高電平,否則為低電平。在這個(gè)程序中,“/*........*/”和“//.........”表示注釋部分,注釋只是為了方便程序員理解程序,對(duì)編譯是不起作用的。

 

例3:使用原語(yǔ)的三態(tài)驅(qū)動(dòng)器。

module  trist2(out,in,enable);     //三態(tài)啟動(dòng)器模塊端口聲明

     output  out;                      //端口說(shuō)明

     input   in, enable;

     bufif1  mybuf(out,in,enable);  //實(shí)例化宏模塊bufif1

endmodule

 

這個(gè)例子描述了一個(gè)名為trist2的三態(tài)驅(qū)動(dòng)器。程序通過(guò)調(diào)用一個(gè)在Verilog語(yǔ)言庫(kù)中現(xiàn)存的三態(tài)驅(qū)動(dòng)器實(shí)例元件bufif1來(lái)實(shí)現(xiàn)其功能。

 

例4:自行設(shè)計(jì)的三態(tài)驅(qū)動(dòng)器。

module  trist1(out,in,enable);     //三態(tài)啟動(dòng)器模塊端口聲明

     output  out;                       //端口說(shuō)明

     input  in, enable;

     mytri  tri_inst(out,in,enable);//實(shí)例化由mytri模塊定義的實(shí)例元件tri_inst

endmodule

     module  mytri(out,in,enable); //三態(tài)啟動(dòng)器模塊端口聲明

     output  out;                            //端口說(shuō)明

     input  in, enable;

     assign  out = enable? in : 'bz;    //三態(tài)啟動(dòng)器算法描述

endmodule

 

這個(gè)例子通過(guò)另一種方法描述了一個(gè)三態(tài)門。在這個(gè)例子中存在著兩個(gè)模塊。模塊trist1調(diào)用由模塊mytri定義的實(shí)例元件tri_inst。模塊trist1是頂層模塊。模塊mytri則被稱為子模塊。

通過(guò)上面的例子可以看到。

  • Verilog HDL程序是由模塊構(gòu)成的。每個(gè)模塊的內(nèi)容都是嵌在module和endmodule兩個(gè)語(yǔ)句之間。每個(gè)模塊實(shí)現(xiàn)特定的功能。模塊是可以進(jìn)行層次嵌套的。正因?yàn)槿绱?才可以將大型的數(shù)字電路設(shè)計(jì)分割成不同的小模塊來(lái)實(shí)現(xiàn)特定的功能,最后通過(guò)頂層模塊調(diào)用子模塊來(lái)實(shí)現(xiàn)整體功能。
  • 每個(gè)模塊要進(jìn)行端口定義,并說(shuō)明輸入輸出口,然后對(duì)模塊的功能進(jìn)行行為邏輯描述。
  • Verilog HDL程序的書寫格式自由,一行可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫多行。
  • 除了endmodule語(yǔ)句外,每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有分號(hào)。
  • 可以用“/*.....*/”和“//.......”對(duì)Verilog HDL程序的任何部分作注釋。一個(gè)好的、有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增強(qiáng)程序的可讀性和可維護(hù)性。

 

模塊的框架

模塊的內(nèi)容包括I/O聲明、I/O說(shuō)明、內(nèi)部信號(hào)聲明和功能定義。

1.I/O聲明

模塊的端口聲明了模塊的輸入輸出端口,其格式如下:

Module     模塊名(端口1,端口2,端口3,端口4, …);

 

2.I/O說(shuō)明

I/O說(shuō)明的格式如下:

 

輸入口:input  端口名1,端口名2,…,端口名i;   //(共有i個(gè)輸入口)

輸出口:output 端口名1,端口名2,…,端口名j;       //(共有j個(gè)輸出口)

 

I/O說(shuō)明也可以寫在端口聲明語(yǔ)句里,其格式如下:

 

module  module_name(input port1,input port2,…,output port1,output port2… )

 

3.內(nèi)部信號(hào)聲明

在模塊內(nèi)用到的和與端口有關(guān)的wire和reg變量的聲明,如下所示:

 

reg [width-1 : 0] R變量1,R變量2 …;

wire [width-1 : 0] W變量1,W變量2 …;

 

4.功能定義

模塊中最重要的部分是邏輯功能定義部分,有3種方法可在模塊中產(chǎn)生邏輯。

(1)用“assign”聲明語(yǔ)句。

assign a = b & c;

這種方法的句法很簡(jiǎn)單,只需寫一個(gè)“assign”,后面再加一個(gè)方程式即可。例子中的方程式描述了一個(gè)有兩個(gè)輸入的與門。

 

(2)用實(shí)例元件。

and and_inst( q, a, b );

采用實(shí)例元件的方法在電路圖輸入方式下,調(diào)入庫(kù)元件。鍵入元件的名字和相連的引腳即可,表示在設(shè)計(jì)中用到一個(gè)跟與門(and)一樣的名為and_inst的與門,其輸入端為a、b,輸出為q。要求每個(gè)實(shí)例元件的名字必須是惟一的,以避免與其他調(diào)用與門(and)的實(shí)例混淆。

 

(3)用“always”塊。

always @(posedge clk or posedge clr) begin         //時(shí)鐘上升沿觸發(fā),異步清零

    if(clr)  q <= 0;                               //清零

    else  if(en) q <= d;                           //使能賦值

    end

 

采用“assign”語(yǔ)句是描述組合邏輯最常用的方法之一,而“always”塊既可用于描述組合邏輯,也可描述時(shí)序邏輯。上面的例子用“always”塊生成了一個(gè)帶有異步清除端的D觸發(fā)器。

“always”塊可用很多種描述手段來(lái)表達(dá)邏輯,例如上例中就用了“if...else”語(yǔ)句來(lái)表達(dá)邏輯關(guān)系。如按一定的風(fēng)格來(lái)編寫“always”塊,可以通過(guò)綜合工具把源代碼自動(dòng)綜合成用門級(jí)結(jié)構(gòu)表示的組合或時(shí)序邏輯電路。需要注意的是,如果用Verilog模塊實(shí)現(xiàn)一定的功能,首先應(yīng)該清楚哪些是同時(shí)發(fā)生的,哪些是順序發(fā)生的。

上面3個(gè)例子分別采用了“assign”語(yǔ)句、實(shí)例元件和“always”塊。這3個(gè)例子描述的邏輯功能是同時(shí)執(zhí)行的。也就是說(shuō),如果把這3項(xiàng)寫到一個(gè)Verilog模塊文件中去,它們的次序不會(huì)影響邏輯實(shí)現(xiàn)的功能。這3項(xiàng)是同時(shí)執(zhí)行的,也就是并發(fā)的。

然而,在“always”模塊內(nèi),邏輯是按照指定的順序執(zhí)行的。“always”塊中的語(yǔ)句稱為“順序語(yǔ)句”,因?yàn)樗鼈兪琼樞驁?zhí)行的。請(qǐng)注意,兩個(gè)或更多的“always”模塊也是同時(shí)執(zhí)行的,但是模塊內(nèi)部的語(yǔ)句是順序執(zhí)行的。

看一下“always”內(nèi)的語(yǔ)句,就會(huì)明白它是如何實(shí)現(xiàn)功能的。“if…else… if”必須順序執(zhí)行,否則其功能就沒(méi)有任何意義。如果else語(yǔ)句在if語(yǔ)句之前執(zhí)行,功能就會(huì)不符合要求。為了能實(shí)現(xiàn)上述描述的功能,“always”模塊內(nèi)部的語(yǔ)句將按照書寫的順序執(zhí)行。

 

 

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

舍弗勒以"專注驅(qū)動(dòng)技術(shù)的科技公司"為主題亮相IAA MOBILITY 2025(B3館B40展臺(tái)) 合并緯湃科技后首次亮相IAA MOBILITY,展示拓展后的汽車產(chǎn)品組合 憑借在軟件、...

關(guān)鍵字: 電氣 軟件 驅(qū)動(dòng)技術(shù) BSP

香港2025年 9月12日 /美通社/ -- 全球領(lǐng)先的互聯(lián)網(wǎng)社區(qū)創(chuàng)建者 - 網(wǎng)龍網(wǎng)絡(luò)控股有限公司 ("網(wǎng)龍"或"本公司",香港交易所股票代碼:777)欣然宣布,其子公司My...

關(guān)鍵字: AI 遠(yuǎn)程控制 控制技術(shù) BSP

深圳2025年9月11日 /美通社/ -- 2025 年 9 月 10 日,第 26 屆中國(guó)國(guó)際光電博覽會(huì)(簡(jiǎn)稱 "CIOE 中國(guó)光博會(huì)")在深圳盛大開(kāi)幕。本屆展會(huì)吸引力再創(chuàng)新高,全球超3800家優(yōu)質(zhì)...

關(guān)鍵字: 自動(dòng)化 光電 CIO BSP

天津2025年9月11日 /美通社/ -- 國(guó)際能源署(IEA)數(shù)據(jù)顯示,2024 年全球數(shù)據(jù)中心電力消耗達(dá) 415 太瓦時(shí),占全球總用電量的 1.5%,預(yù)計(jì)到 2030 年,這一數(shù)字將飆升至 945 太瓦時(shí),近乎翻番,...

關(guān)鍵字: 模型 AI 數(shù)據(jù)中心 BSP

北京2025年9月11日 /美通社/ -- 國(guó)際9月11日上午,2025年中國(guó)國(guó)際服務(wù)貿(mào)易交易會(huì)(以下簡(jiǎn)稱"服貿(mào)會(huì)")—體育賽事經(jīng)濟(jì)高質(zhì)量發(fā)展大會(huì)現(xiàn)場(chǎng),北京經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)工委委員、管委會(huì)副主...

關(guān)鍵字: 5G BSP GROUP MOTOR

柏林2025年9月9日 /美通社/ -- 2025年9月5日,納斯達(dá)克上市公司優(yōu)克聯(lián)集團(tuán)(NASDAQ: UCL)旗下全球互聯(lián)品牌GlocalMe,正式亮相柏林國(guó)際消費(fèi)電子展(IFA 2025),重磅推出融合企...

關(guān)鍵字: LOCAL LM BSP 移動(dòng)網(wǎng)絡(luò)

深圳2025年9月9日 /美通社/ -- PART 01活動(dòng)背景 當(dāng)技術(shù)的鋒芒刺穿行業(yè)壁壘,萬(wàn)物互聯(lián)的生態(tài)正重塑產(chǎn)業(yè)疆域。2025年,物聯(lián)網(wǎng)產(chǎn)業(yè)邁入?"破界創(chuàng)造"與"共生進(jìn)化"?的裂變時(shí)代——AI大模型消融感知邊界,...

關(guān)鍵字: BSP 模型 微信 AIOT

"出海無(wú)界 商機(jī)無(wú)限"助力企業(yè)構(gòu)建全球競(jìng)爭(zhēng)力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由領(lǐng)先商業(yè)管理媒體世界經(jīng)理人攜手環(huán)球資源聯(lián)合主辦、深圳?前海出海e站通協(xié)辦的...

關(guān)鍵字: 解碼 供應(yīng)鏈 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林當(dāng)?shù)貢r(shí)間9月6日,在2025德國(guó)柏林國(guó)際電子消費(fèi)品展覽會(huì)(International Funkausstellung...

關(guān)鍵字: 掃地機(jī)器人 耳機(jī) PEN BSP

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板
關(guān)閉