Verilogの基礎文法

文法

Verilogでは大文字と小文字が区別されます。

特定の文法がなく、1行または複数行にまたがって書き込めます。

各ステートメントはセミコロンで終了する必要があります。空白文字(改行、タブ、スペース)は実用的な意味がなく、コンパイル段階では無視できます。例えば、次の2つのプログラミングは同じ結果です。

改行しません(非推奨)

実例

wire [1:0]  results ;assign results = (a == 1'b0) ? 2'b01 : (b==1'b0) ? 2'b10 : 2'b11 ;

改行(推奨)

実例

wire [1:0]  results ;
assign      results = (a == 1'b0) ? 2'b01 :
            (b==1'b0) ? 2'b10 :
                2'b11 ;

コメント

Verilogには2種類のコメントがあります。

単一行のコメントには//を使用します。

reg [3:0] counter ;  // A definition of counter register

行にまたがるコメントには/ *および* /を使用します。

wire [11:0]  addr ;
/* 
Next are notes with multiple lines.
Codes here cannot be compiled.
*/
assign   addr = 12'b0 ;

識別子とキーワード

識別子(identifier)は、文字、数字、$記号、および_(アンダースコア)記号の任意の組み合わせにすることができますが、識別子の最初の文字は文字またはアンダースコアである必要があり、数字またはドル記号で始めることはできません。

さらに、識別子では大文字と小文字が区別されます。

キーワードは、言語構造を定義するためにVerilogで予約されている特別な識別子です。

Verilogのキーワードはすべて小文字です。

実例

reg [3:0] counter ; //reg はキーワードで, counter は識別子
input clk; //input はキーワードで,clk は識別子
input CLK; //CLKとclkは2つの異なる識別子である
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です