匿名使用者
匿名使用者 發問時間: 電腦與網際網路軟體 · 1 0 年前

verilog的問題

我是個初學者

我買了一本 Verilog硬體描述語言 全華出版

ISBN:986-154-104-7

全華書號:03504017

在第2章裡

有提到另一個漣波計數器的塊圖

但沒有說明如何撰寫

自己試了許多方向後仍然寫不出來

希望能請verilog的高手能幫忙

謝謝

原圖

http://qoh0806.acgaa.com/f/1.jpg

原程式

http://qoh0806.acgaa.com/f/RIPPLE.SPJ

http://qoh0806.acgaa.com/f/RIPPLE.V

新的方塊圖

http://qoh0806.acgaa.com/f/2.jpg

已更新項目:

是的

程式沒有問題

原圖是漣波計數器被包在模擬區塊裡(就是原程式的寫法)

但新的方塊圖(把漣波計數器和模擬區塊分開相接再被另一個方塊包起來)似乎是另一種寫法

我嘗試依新的圖去修改程式

卻不知如何修改才是對的(書裡也沒有寫)

1 個解答

評分
  • Bing
    Lv 4
    1 0 年前
    最佳解答

    請教一下,您是對這個程式的那裡有問題呢?我對這個程式跑過模擬,是沒有問題的。

    2007-10-26 03:34:19 補充:

    您的意思是要把模擬區塊寫成另一個module。

    您可以把stimulus改成 :

    module stimulus;

    wire clk,reset;

    wire[3:0] q;

    // instantiate the design block

    ripple_carry_counter r1(q, clk, reset);

    bench b1 (q, clk, reset);

    endmodule

    module bench (q, clk, reset);

    input [3:0] q;

    output clk, reset;

    reg clk;

    reg reset;

    // Control the clk signal that drives the design block.

    initial clk = 1'b0;

    always #5 clk = ~clk;

    // Control the reset signal that drives the design block

    initial

    begin

    reset = 1'b1;

    #15 reset = 1'b0;

    #180 reset = 1'b1;

    #10 reset = 1'b0;

    #20 $stop;

    end

    // Monitor the outputs

    initial $monitor($time, " Output q = %d", q);

    endmodule

    參考資料: 自己
還有問題?馬上發問,尋求解答。