<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

模組(module)的概念

——
作者: 時(shí)間:2007-08-22 來(lái)源: 收藏

  Verilog中的基本單元是)。

  代表一些可以用硬體實(shí)踐的邏輯實(shí)體。 例如,一個(gè)可以是一個(gè)邏輯閘、一個(gè)三十二位元計數器、一個(gè)記憶體子系統、一個(gè)機算機系統或是一個(gè)用網(wǎng)路相連的多部電腦。
模組中與外界連接端(port)可以是一個(gè)位元或數個(gè)位元。連接端可以宣告為輸入端、輸出端或輸出入端。

  以下介紹Verilog語(yǔ)法,用三種不同層級(Level)來(lái)表示模組的方式。

  下面以一個(gè)自定的 AND2 模組來(lái)說(shuō)明。

  它有三個(gè)單一位元稱(chēng)為 in1、in2、及 out 的連接端。其中 in1及 in2 為輸入,而 out 為輸出。其實(shí)這個(gè) AND2 模組能做的事和 and 閘是一樣的。

  宜礕從結構式層次定義模組的例子

  //structural

   AND2 (in1,in2,out);

  input in1;

  input in2;

  output out;

  wire in1,in2,out;

  and u1 (out,in1,in2);

  end  

二∶從資料流層次程式定義模組的例子

  //data flow

  module AND2 (in1,in2,out);

  input in1;

  input in2;

  output out;

  wire in1,in2,out;

  assign out=in1&in2;

  endmodule

三∶從行為式層次定義模組的例子

  //behavioral

  module AND2 (in1,in2,out); input in1; input in2; output out; wire in1,in2; reg out; always @(in1 or in2); out=in1 & in2;

  endmodule

  一個(gè)Verilog模組包含了關(guān)鍵字(keywords)、名字(names)、文字(literals)、 注解(comments)以及標點(diǎn)符號。Verilog語(yǔ)法中大小寫(xiě)與C語(yǔ)言一樣,大小寫(xiě)是不一樣的,而Verilog中所有的關(guān)鍵字均是使用小寫(xiě)??瞻?、跳格(tab)及換行是用來(lái)增加程式的可讀性。注解的用法為 /*注解*/。

  所有的模組均以關(guān)鍵字module開(kāi)始,并緊跟著(zhù)該模組的模組名稱(chēng)、輸入輸出的串列。
所有的模組均以關(guān)鍵字endmodule結束。

  模組名稱(chēng)必須唯宜礎沒(méi)有重復。

  上述三個(gè)例子 的模組接著(zhù)宣告輸出及輸入的型別為wire。例外的是在行為式模組的例子將其輸出宣告為 reg的型別。其實(shí)在Verilog中所有的輸出及輸入均預設為wire的型別,因此這些宣告(除了宣告為reg型別的輸出外)均可省略。

  以上三個(gè)模組分別說(shuō)明三種不同的描述方式∶ 結構式(structural)、資料流程式(data-flow)及行為式(behavioral)。

結構式的描述∶又稱(chēng)邏輯閘層次 -- Gate Level

  在這層次中模組是由邏輯閘連接而成,在這層次的設計工作就好像以前用描繪邏輯閘來(lái)設計線(xiàn)路一樣。

資料流程式的描述∶ 又稱(chēng)暫存器傳送層次 -- Register Transation Level

  它是一種模擬組合函式(combinational-functions)的方法。使用這種描述方式,函式可視為一棵有方向性的樹(shù)(directed-tree)。輸入為其樹(shù)葉,輸出為其樹(shù)根。 當任何輸入有所改變時(shí),輸出會(huì )被重新計算而跟著(zhù)改變。資料流程式只能用來(lái)實(shí)踐組合函式。 在這個(gè)層次中,要說(shuō)明資料如何在暫存器中儲存與傳送,如何處理資料。

行為式的描述∶

  它是一種使用高階語(yǔ)言來(lái)描述硬體的方式。因Verilog提供很普遍及功能強大的描述方式。因此使用行為式所描述的模組其描述與真實(shí)的電路可能毫無(wú)關(guān)連。甚至某些行為式模組可能無(wú)費暈硬體實(shí)踐。這種特性是Verilog的優(yōu)點(diǎn)也是缺點(diǎn)。 在這個(gè)層次的設計工作就好像寫(xiě)C語(yǔ)言一樣。

 ?。ɡ说^中的結構式模組有一個(gè)AND閘的實(shí)例。在(例宜礮中的AND與其他如or、nand、nor、not等均為Verilog的基本元件(primitive)。這些是Verilog語(yǔ)言預先定義好的函式。例如,這個(gè)AND閘實(shí)例會(huì )不斷地觀(guān)測其輸入。如果輸入有任何變化,這個(gè)AND函式將會(huì )重新用新的輸入值計算出輸入值。

 ?。ɡ┲械馁Y料流程式模組有一個(gè)使用關(guān)鍵字assign的連續設定敘述。

 ?。ɡ┲械男袨槭侥=M有一個(gè)使用關(guān)鍵字always的行為式實(shí)例。

  @(in1or in2) 表示式告訴擬器等待 in1或 in2發(fā)生變化。 如果發(fā)生變化則下列設定 :

  output=in1&in2;

  將表示式 in1AND in2 的值放置於變數out中。同時(shí),always這個(gè)關(guān)鍵字也意味著(zhù)當這個(gè)設定完成時(shí),模擬器將等待下一次 in1或 in2 的變化。也就是說(shuō),always區塊(block)很像傳統程 式語(yǔ)言的無(wú)窮回圈。

 

 

 



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>