工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Verilog

Verilog - ナットシェルで

すべての動作コードは module 内に記述されています と endmodule .したがって、どのようなデジタル デザインを作成しようとしても、module 内に配置されます。 ブロック。ポートが定義されている場合と定義されていない場合があります - 信号が input としてブロックに入ることを許可します または output としてブロックをエスケープします .

モジュール

以下の例の空のモジュールは testbench と呼ばれます .任意の名前を付けることができますが、英数字にする必要があり、'_' を含めることができます。

  
  
module testbench;

endmodule

  

別のモジュールを見てみましょう。いくつかの信号があります (d、clk、rstb ) 入力および q として宣言 出力として宣言されています。

  
  
module dff (input d,
                  clk,
                  rstb,
            output q);
endmodule

  

データ型

モジュールがどのように見えるかを確認したので、テストベンチ モジュールをもう一度見て、モジュール内に何が配置できるかを見てみましょう。 Verilog には、主に次の 2 種類のデータ型があります。

  • 登録
  • ワイヤー
  • reg datatype は変数のような値を保持するために使用されますが、wire は これは、連続的に駆動する必要がある電線に似ています。したがって、通常は wire 複数のモジュールやその他の信号を接続するために使用されます。

      
      
    module testbench;
    	
    	reg d;
    	reg rst_b;
    	reg clk;
    	
    	wire q;
    endmodule
    
      
    

    課題

    Verilog には 3 つの基本ブロックがあります:

    always @ (状態 ) 条件が満たされたときに常に実行
    initial シミュレーションの開始時に一度だけ実行されます
    assign [左] =[右] RHS が変更されるたびに LHS の値が更新されます

    Verilog を記述する際に留意すべきルールがいくつかあります。

      
      
    module testbench;
    	
    	reg d;
    	reg rst_b;
    	reg clk;
    	
    	wire q;
    	
    	initial begin
    		d = 0;
    		rst_b = 0;
    		clk = 0;
    		
    		#100 $finish;
    	end
    	
    	always begin
    		#10 clk = ~clk;
    	end
    endmodule
    
      
    

    注意 上記の例からの以下:


    Verilog

    1. Verilog チュートリアル
    2. Verilog 連結
    3. Verilog 割り当て
    4. Verilog ブロッキング &ノンブロッキング
    5. Verilog 関数
    6. Verilog タスク
    7. Verilog 階層参照スコープ
    8. Verilog クロック ジェネレーター
    9. Verilog 数学関数
    10. Verilog タイムフォーマット
    11. Verilog タイムスケール スコープ