2

私はVerilogで、典型的なcount-to-n-then-reset-to-0カウンターをコーディングしています。私のモジュールには、カウンターをインクリメントおよびリセットするロジックがあります。

私の問題は、カウンター自体をどこに定義すべきかわからないことです。

カウンターを(inoutとして?)モジュールに渡すことができます。それは大丈夫ですが、カウンターはまだどこかに定義されている必要があるので、これは私には何の役にも立ちません。

このモジュール以外はカウンターに触れないようにする必要があるので、このモジュール内にカウンターを作成し、受け渡ししないようにします。

これは適度に標準的ですか?もしそうなら、誰かがカウンターをインスタンス化する方法についての参照を教えてくれますか?

(私はVerilogの2日目なので、恐れてください)

編集-これがコードです。私の知る限り、それは機能します。まだ実装しDIR == REVERSEていません。興味深い落とし穴のカップル。(現在コメントアウトされている)STEPPER=0行が回路図でエラーを引き起こしていました。STEPPERは他のロジックと同様に地面に結びついていると考えました。

また、私は関係するいくつかの場所=の代わりに使用します-私はタイミングの問題を抱えていました(私は推測します)。手続き型の割り当ては問題を取り除きました(隠しましたか?)。<=counter

module cam(
    input [7:0] DIVISOR,
    input DIR,
    input SPINDLE,
    output reg STEPPER
    );

     parameter FORWARD = 1'b1;
     parameter REVERSE = !FORWARD;

     reg[7:0] counter = 0;

    always @(posedge SPINDLE) begin
    //  STEPPER = 0;
        if (DIR == FORWARD) begin
            counter = counter + 1;
            if (counter == DIVISOR) counter = 0;
            end
        else begin
        //  counter <= counter - 1;
        //  if (counter == (-1)) counter <= DIVISOR;
            end
    end

    always @(negedge SPINDLE) begin
        STEPPER = (counter == 0) ? 1 : 0;
    end

endmodule
4

1 に答える 1

1

モジュール内のレジスタとして定義する必要があります。これが私のコードの例です。

module trigger(clk, rxReady, rxData, txBusy, txStart, txData);
input clk;
input [7:0] rxData;
input rxReady;
input txBusy;
output reg txStart;
output reg[7:0] txData;

integer count81; // Number of cells received over serial (start solving after 81)
reg[8:0] data[0:8][0:8];

integer state;

always @(posedge clk) begin
    case (state)
        read:
            if (rxReady) begin
                data[count81 % 9][count81 / 9] = rxData ? 1<<(rxData-1) : -1;
                if (count81 < 80) count81 <= count81 + 1;
                else begin
                    count81 <= 0;
                    state <= solving;
                end
            end
        etc....                 
    endcase
end
endmodule

とりあえずJavaの世界から抜け出しておめでとうございます。FPGAは、もはやエキサイティングに見える唯一のものです。

于 2012-09-09T23:30:21.437 に答える