間違った出力を繰り返しモジュールを使用しようとしているときに..ヘルプ!

D

deepavlsi

Guest
GCDを見つけるためにコード...私はfollでGCDを見つけるためにコードをしたい。法.. GCD(a_in、b_in、a_out、b_out){IF((b_in == 0)| |(b_in == 1)){a_out = a_in; b_out = b_in;}他{GCD(a_in、AIN%b_in); / /再帰関数は}}これはC言語でのロジックです....しかし、Verilogで、私はrepeadtedlyどのフィンa_in%のb_inモジュールのモジュラスを呼び出す方法を知らないのではないか..私が間違っている場所の下に私のVerilogコードは、pleseは私に教えて... [コード]モジュールGCD(CLK、スタート、a_in、b_in、a_out、b_out、行って)、入力CLK、入力開始、入力[31:0] a_in、入力[31:0] b_in、REG [31:0]出力a_out = 0;出力登録番号[31:0] b_out = 0;出力登録番号= 0を行って、REG [3:0] CNT = 0; REG rst_in = 0; REG rst_start、整数A、B、ワイヤー[31:0]その結果、ワイヤのrecv = 0;(スタート)を開始する場合には、常に@は(posedge CLK)の開始
 
こんにちは、このコードのピースは、私はネットから取得... VerilogのアルゴリズムレベルのモデルのモジュールのGCD_ALG、パラメータの幅= 8、REG [幅- 1:0] A_in、B_in、、B、Y、Y_Ref、REG [幅- 1:0] A_reg、B_reg、スワップ、パラメータGCD_tests = 6 ;整数N、M、REGが合格、FailTime、整数SimResults、/ /テストデータ/ /のためのメモリの配列を宣言-------------------------- -------- REG [幅- 1:1] AB_Y_Ref_Arr [1:GCD_tests * 3]; //----------------------- ----------- / /モデルGCDアルゴリズム//-------------------------------- - 常に@(AまたはB)を開始:GCD = A_in、B = B_in;場合一方、(B = 0!)しながら(A> = B)を開始A =(A = 0&&B = 0!) - B、A = B; B =スワップ、他のエンド= 0; = AをスワップY =;エンド
 
混同しないようにブロックして、単一常にブロック上に非ブロッキング代入の使用方法。私はこれは悪いコーディングスタイルだと思うと、それは推奨されません。加えて、RTLは、並行プログラミングであり、彼らは、ソフトウェアのコーディングスタイルと比較し異なっています。そのため、繰り返し単一のモジュールを"呼ぶ"ことができない。そこにRTLでのCALLのようなそのようなことがない。あなたは、別のインスタントの名前と同じモジュールを数回インスタンス化できますが、すべてこのモジュールはまだ同時に実行されます。
 
みんなありがとう...私は私はVerilogのコーディングに入る前に、多くをリフレッシュするためにあると思う...それは単純なコーディングのように見えますが、非常に異なる動作を...私がどのようなコードに、しないものを理解するために開始できるように私は参照することができるいくつかの書籍を教えて...
 

Welcome to EDABoard.com

Sponsor

Back
Top