在verilog中,模組例項化能用在always嗎

時間 2021-10-15 00:20:52

1樓:死神吧日語帝

在不同的地方使用同一個基本模組是很常見的事,

這樣可以避免重複的**,以加法器為例,

比如你的加法器是adder,你需要在不同的地方使用它,

那麼可以這樣例項化

adder adder_1(.clk(clk),.rst(rst),.in_a(a1),.in_b(b1),.sum_out(s1));

adder adder_2(.clk(clk),.rst(rst),.in_a(a2),.in_b(b2),.sum_out(s2));

adder adder_3(.clk(clk),.rst(rst),.in_a(a3),.in_b(b3),.sum_out(s3));

這樣就得到了例項名為adder_1,adder_2,adder_3的3個加法器。

2樓:匿名使用者

不能,模組的例項化和其他語句是並行的,不能巢狀,只能並行存在

要幾個例項化就並行寫幾次,起不同的名稱

3樓:匿名使用者

不能的,模組例項化只需要一次(一般來說),always意思是當條件發生總是執行的啊

看一下verilog中 模組例項化問題

4樓:崢崢好

很亂,感覺u1是個模組呼叫?不能這樣呼叫的,要放到always外面的。樓主對硬體語言還不是很理解,一兩句也說不清楚,不能將c語言的思維簡單照搬的。

5樓:匿名使用者

拋開**不看,首先模組的例化就有問題,你把它挪到always塊之外,試試再說!沒有你這種寫法。

6樓:匿名使用者

encyrpt u1 (.proclaimed_in_writing(temp),.start(start),.

clk(clk),.cryptograph(temp1),.reset(reset_n));

這個bai例du化呼叫放在always語句塊的zhi外面!不能這dao樣直接呼叫的!你要有電內路的思想,一個例化呼叫就相當於一

容個電路,你用if語句,有時候要綜合出這個電路有時候又不要綜合出這個電路了,這個不是讓人家軟體為難嗎!你要這樣,綜合出來時必須的,至於用不用,要看你有沒有訊號給它,它的輸出有沒有引回來!

在verilog中例項化一個模型應注意的問題,是不是對應埠對的資料型別必須一致??

7樓:樂遊神州

當然可以不一樣,頂層檔案例化是將兩個埠對應連線在一起,若該訊號在當前模組中沒有用到always語句等必須要reg型的 那是要用wire型的,因為他們是連線(將各個模組埠連線起來),而你說的原型模組那是設計時實現內部功能的,根據需求來定義資料型別。他們兩個有對應關係卻是不一樣的東西。所以lz多慮了

8樓:

必須對應的,否則,即使能通過編譯,這個在建模已經沒意義了,任何硬體描述必須是根據實際建模

9樓:

不是,主要還是看頂層模組需要用到什麼型別

verilog 中的模組例項化問題

10樓:匿名使用者

always裡面好像不能呼叫模組的,只能呼叫任務和函式。

verilog中頂層模組例項引用多個模組時埠怎麼連線

假定sub module1和sub module2是已經定義好的兩個子模組,top是頂層。那麼子模組之間的連線可以之間用wire連線。頂層的輸入輸出也用wire連線進到子模組中。這是一般的,當然也有特殊的,比如雙向io等。module top in1,out1 input in1 output ou...

c類的定義和例項化,c 中什麼是例項化

定復 貓類嗎 其實這個也很好寫吧 如果沒人寫我就幫你寫吧 public class cat catch formatexception fe console.writeline 輸入身高 trycatch formatexception fe public void catch weight con...

為什麼在verilog中要定義wire

有幾種情況變數需要定義成wire。第一。assign 語句 例如 reg a,b wire and result assign and result a b 你可以試試把wire定義成reg。綜合器會報錯。第二。元件例化時候的輸出必須用wire 例如 wire dout ram u ram out ...