verilog中的while的用法和例子

2021-06-09 21:32:50 字數 1087 閱讀 4215

while 迴圈語句實現的是一種「條件迴圈」 ,只有在指定的迴圈條件為真時才會重複執行

迴圈體,如果表示式條件在開始不為真(包括假、x 以及 z) ,那麼過程語句將永遠不會被執

行。while 迴圈的語法為:

while (迴圈執行條件表示式) begin

語句塊

end

在上述格式中, 「迴圈執行條件表示式」代表了迴圈體得到繼續重複執行時必須滿足的

條件,通常是乙個邏輯表示式。在每一次執行迴圈體之前,都需要對這個表示式是否成立進

行判斷。 「語句塊」代表了被重複執行的部分,可以為單句或多句。

while 語句在執行時,首先判斷迴圈執行條件表示式是否為真,如果真,執行後面的語

句塊, 然後再重新判斷迴圈執行條件表示式是否為真, 為真的話, 再執行一遍後面的語句塊,

如此不斷,直到條件表示式不為真。因此,在執行語句中,必須有改變迴圈執行條件表示式

的值的語句,否則迴圈就變成死迴圈。

module mult_8b_while(

a, b, q

); parameter bsize = 8;

input  [bsize-1 : 0] a, b;

output [2*bsize-1 : 0] q;

reg [2*bsize-1 : 0] q, a_t;

reg [bsize-1 : 0] b_t;

reg [bsize-1 : 0] cnt;

always @(a or b) begin

q = 0;

a_t = a;

b_t = b;

cnt = bsize;

while(cnt > 0) begin

if (b_t[0]) begin

q = q + a_t;    

end

else begin

q = q;

end

cnt = cnt - 1;

a_t = a_t << 1;

b_t = b_t >> 1; 

end

end

endmodule

Verilog中的函式

verilog中的函式 verilog hdl與大多數可程式語言一樣,將使用率很高的 按照軟體工程的思想,寫成函式,這樣,該函式可以被多次呼叫。verilog中函式常用語三種情況 verilog中的函式與c語言中的函式的主要不同之處是 在verilog中,呼叫函式時,需要將乙個或則多個自變數傳給函式...

verilog中的task用法

定義乙個任務。task task demo 任務定義結構開頭,命名為 task demo input 7 0 x,y 輸入埠說明 output 7 0 tmp 輸出埠說明 if x y 給出任務定義的描述語句 tmp x else tmp y endtask 上述 定義了乙個名為 task demo...

Verilog中generate的用法

一 generate verilog 2001新增了generate迴圈,允許產生module和primitive的多個例項化,同時也可以產生多個variable,net,task,function,continous assignment,initial和always。在generate語句中可以...