verilog中有哪幾種方法描述邏輯功能

2022-01-23 13:28:15 字數 5767 閱讀 6935

1樓:杜仲杜仲杜仲

verilog hdl 有多中描述風格,具體可以分為:結構描述,資料流描述,行為描述,混合描述。

結構描述是指通過呼叫邏輯原件,描述它們之間的連線來建立邏輯電路的verilog hdl模型。這裡的邏輯元件包括內建邏輯閘、自主研發的已有模組、商業ip模組。所以結構描述也分為門級結構描述和模組級結構描述。

通過觀察是否有功能模組或原語的例項化可以判斷是否有結構描述。

資料流描述是指根據訊號之間的邏輯關係,採用持續賦值語句描述邏輯電路的方式。通過觀察是否使用assign賦值語句可以判斷是否有資料流描述。

行為描述是指只注重實現的演算法,不關心具體的硬體實現細節。這與c語言程式設計非常類似。通過觀察是否使用initial 或always語句塊可以判斷是否有行為描述。

混合描述是指以上幾種描述方法都存在的一種描述方式。具體在一個工程中,不可能只是用單獨哪一種描述方式,一般都是各種描述方式的混合。

邏輯電路的結構描述側重於表示一個電路由哪些基本元件組成,以及這些基本元件的相互連線關係。邏輯電路的資料流描述側重於邏輯表示式以及verilog hdl中運算子的靈活運用。邏輯電路的行為描述側重於電路的輸入輸出的因果關係(行為特性),即在何種輸入條件下,產生何種輸出(進行何種操作),並不關心電路的內部結構。

eda綜合工具能自動將行為描述轉換成電路結構,形成網表檔案。當電路規模較大貨時序關係較為複雜時,通常採用行為描述方式進行設計。

在數位電路設計中,暫存器傳輸級(rtl)描述在很多情況下時鐘能夠被邏輯綜合工具接受的行為級和資料流級的混合描述。因此rtl級描述的目標就是可綜合,而行為級描述的目標就是實現特定的功能而沒有可綜合的限制。並不是所有的行為級描述都可以被綜合。

同樣是for語句,如果迴圈條件是常數,就是rtl的,如果是變數,就是行為級的。

verilog中有哪幾種型別的賦值語句,說明它們的區別,並舉例

2樓:硪丨曖戀

在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左

值賦值運算子=或<= 和右值右值可以是任何型別的資料包括net型和register型但對連續

賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描

述1連續賦值

在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例

如wire out //型別定義左值必須是net型別包括wire tri wand wor等等

assign out = a + b //綜合結果為加法器

assign out = en ? a : b //多路選擇器

assign out = en ? in : z //三態門

也可以在資料定義時同時進行連續賦值如

wire out = a + b

使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結

果傳給左值具有組合電路的特性輸入變化輸出立即變化

2過程賦值

在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值

non-blocking賦值和過程連續賦值assign/deassign

值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如

reg x,y,z;

//non-blocking assignment

always @(posedge clk)

begin

x <= a && b;

y <= x;

z <= y;

endreg x,y,z;

//blocking assignment

always @(posedge clk)

begin

x = a && b;

y = x;

z = y;

end在verilog中有兩種型別的賦值語句 連續賦值和過程賦值 賦值表示式由三個部分組成 左

值賦值運算子=或<= 和右值右值可以是任何型別的資料包括net型和register型但對連續

賦值 左值必須是net型別的資料 而過程賦值 左值必須是register型別的資料 下面將作詳細描

述1連續賦值

在initial或always外的assign賦值語句 稱為連續賦值語句 一般在描述純組合電路時使用 例

如wire out //型別定義左值必須是net型別包括wire tri wand wor等等

assign out = a + b //綜合結果為加法器

assign out = en ? a : b //多路選擇器

assign out = en ? in : z //三態門

也可以在資料定義時同時進行連續賦值如

wire out = a + b

使用連續賦值語句 所有右值都是敏感訊號 當右值發生變化時 計算表示式的值 並將結

果傳給左值具有組合電路的特性輸入變化輸出立即變化

2過程賦值

在initial或always塊中的賦值語句 稱為過程賦值語句 包括三種 blocking賦值

non-blocking賦值和過程連續賦值assign/deassign

值描述時序邏輯電路使用blocking賦值語句描述組合邏輯電路例如

reg x,y,z;

//non-blocking assignment

always @(posedge clk)

begin

x <= a && b;

y <= x;

z <= y;

endreg x,y,z;

//blocking assignment

always @(posedge clk)

begin

x = a && b;

y = x;

z = y;end

3樓:匿名使用者

時序電路邏輯功能描述方式 有哪些?

4樓:匿名使用者

時序,就是按照復時間的先後制

順序,而且這個時間與順序必須是可控的,可人為干涉、臨時調整的。組合電路里訊號傳輸也要時間,但這叫傳輸延時,訊號輸出的時間只取決於輸入時間,電路定型後即不可變更.觸發器具有鎖存能力,同時也能在需要的時候扇出鎖存的內容,是時序電路的核心部件.

至於為什麼是邊沿觸發,這是由半導體器件特性決定的,你把數電的觸發器原型溫習一遍,解剖到與非門級就能明白了.為什麼要用時序電路,時序電路雖然有很多應用場合,但主要還是為了同步.同步可以在多個輸入都到達並穩定後再產生唯一輸出,防止毛刺、競爭導致的功能紊亂。

組合邏輯電路設計(使用verilog hdl設計):分別採用行為描述和結構描述設計一個一位全加器。

5樓:峰峰峰

行為描述

moudle(a,b,ci,sum,c)

input a,b,ci;

output sum,c;

assign =a+b+ci;

endmodle

結構描述:

moudle(a,b,ci,sum,c0)input a,b,ci;

output sum,co;

wire x,y,z;

xor #10 u1(x,a,b);

and #10 u2(y,ci,x);

and #10 u3(z,a,b);

or #10 u4(c0,y,z);

xor #10 u5(sum,c0,x);

endmodule

鳥春不錯啊!!!這只是個人見解啊,不對不負責啊~~廣東工業大學資訊工程學院08電信(1)班不錯啊~~

6樓:匿名使用者

行為描述

moudle (a, b, ci, cout, co);

input a, b, ci; // ci是進位輸入output cout, co; // cout是和,co是進位輸出reg cout;

reg co;

always @ ( a or b or ci )begin

cout = a ^ b ^ ci;

co = (a & b) | (a & ci) | (b & ci);

endendmodule

結構描述

moudle (a, b, ci, cout, co);

input a, b, ci; // ci是進位輸入output cout, co; // cout是和,co是進位輸出assign cout = a + b + ci;

assign co = (a & b) | (a & ci) | (b & ci);

endmodule

7樓:匿名使用者

我明天eda考試了,哈哈

8樓:匿名使用者

行為描述和結構描述互換吧

verilog中定義了一系列關鍵字,它們有哪些

verilog有4種邏輯狀態0、1、z、x對應低、高電平、高阻態、不確定狀態;什麼情況下是x狀態?

每個verilog hdl程式包括哪4個主要部分

9樓:娛樂小八卦啊

每個verilog程式包括四個主要部分:埠定義、i/o說明、內部訊號宣告、功能定義。verilog hdl是一種用於數字邏輯電路設計的語言。

用verilog hdl描述的電路設計就是該電路的verilog hdl模型。

verilog hdl既是一種行為描述的語言也是一種結構描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連線來建立所設計電路的verilog hdl模型。verilog模型可以是實際電路的不同級別的抽象。

這些抽象的級別和它們對應的模型型別共有以下五種:

1、系統級(system):用高階語言結構實現設計模組的外部效能的模型。

2、演算法級(algorithm):用高階語言結構實現設計演算法的模型。

3、rtl級(register transfer level):描述資料在暫存器之間流動和如何處理這些資料的模型。

4、門級(gate-level):描述邏輯閘以及邏輯閘之間的連線的模型。

5、開關級(switch-level):描述器件中三極體和儲存節點以及它們之間連線的模型。

擴充套件資料

一個複雜電路系統的完整verilog hdl模型是由若干個verilog hdl模組構成的,每一個模組又可以由若干個子模組構成。其中有些模組需要綜合成具體電路,而有些模組只是與使用者所設計的模組互動的現存電路或激勵訊號源。

利用verilog hdl語言結構所提供的這種功能就可以構造一個模組間的清晰層次結構來描述極其複雜的大型設計,並對所作設計的邏輯電路進行嚴格的驗證。verilog hdl行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合於演算法級和rtl級的模型設計。

verilog的設計初衷是成為一種基本語法與c語言相近的硬體描述語言。這是因為c語言在verilog設計之初,已經在許多領域得到廣泛應用,c語言的許多語言要素已經被許多人習慣。一種與c語言相似的硬體描述語言,可以讓電路設計人員更容易學習和接受。

不過,verilog與c語言還是存在許多差別。另外,作為一種與普通計算機程式語言不同的硬體描述語言,它還具有一些獨特的語言要素,例如向量形式的線網和暫存器、過程中的非阻塞賦值等。總的來說,具備c語言的設計人員將能夠很快掌握verilog硬體描述語言。

快速疊襯衫有哪幾種方法

首先把bai 襯衣正面朝上鋪平du,一隻手捏住zhi襯衣肩部中間的部位,dao另一隻手捏住肩部中間專部位朝下畫一條 屬線與襯衣中間線交叉的那個點。然後捏住襯衣肩部的那個手接著拿住襯衣角,最後拎起來抖動一下。放置的時候背面朝上,另一邊對齊疊過來就可以了。還有一種快速的方法是把襯衣正面朝下,拿住袖子和襯...

給果樹嫁接有哪幾種方法,果樹嫁接有哪幾種方法

提高果樹嫁接bai成活率五措du施 一 選擇親和力zhi強的砧木和接穗 dao親和專力是指砧木和接穗經嫁接而能癒合的能力屬,一般情況下,親緣關係越近,親合力越強,嫁接的成活率也就越高。二 選擇生活力強的砧木和接穗 生活力與砧木和接穗的營養器官積累的養分有關,營養器官積累的養分越多,發育越充實則生活力...

有哪幾種方法可以治療失眠呢

我認為 失眠最直接的方法就是把心裡的壓力排除之後,我們的睡眠狀態自然就會有所改善。因為如果我們一直心裡壓力過大的話,那麼即使使用哪種方法,對於改善我們的睡眠質量也是有限的,甚至是無效的,因此想要 失眠,我認為我們首先應該學會自我排除壓力,比如說在壓力過大的時候,可以去一些咖啡廳喝一喝咖啡,或者去茶樓...