Verilog層次化設計理解

我們調用ip核生成一個4位計數器後想用該計數器模塊生成一個8位的計數器,這裏就需要級聯兩個計數器

這個是counter模塊:

module counter (
    cin,
    clock,
    cout,
    q);//下面的計數器實現代碼我就不寫了

...............

...............

頂層文件應該是這樣的:

module counter_top(cin,clk,cout,q);

    input cin;
    input clk;
    
    output cout;
    output [7:0]q;
    
    wire cout0;
    
    counter counter0(
        .cin(cin),
        .clock(clk),
        .cout(cout0),
        .q(q[3:0])
    );
    
    counter counter1(
        .cin(cout0),
        .clock(clk),
        .cout(cout),
        .q(q[7:4])
    );    

endmodule

從上面代碼就可以看出頂層文件和模塊文件的不同了,模塊文件是不同模塊的具體實現,而頂層模塊文件是使用個模塊進行列化(通俗來說是連線),來組成一個更大的系統。

還不明白?打個比方:     

我們畫PCB時,一般都會分模塊把原理圖畫出來,比如電源模塊,串口模塊,顯示模塊等等,在畫PCB時我們一般會先把各個模塊內部的線連接起來(這就是verilog中的底層模塊創建),當把所有的模塊內部線布完後下一步就是布模塊與模塊之間的線,最後構成一塊完整的PCB圖(這就是verilog中的頂層模塊的創建)其實這也是PCB製作的分層次設計方法,這兩者之間有互同之處

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章