見た目を統一する - コードレイアウト

[] [] []


begin-endは常に1行使い、同じインデントにする」

インデントの流儀は主に下記の2とおりあり単に好みの問題だが、どちらかに統一した方がいい。

×always @(posedge clk or posedge rst) begin

      if(rst) begin

          a_reg <= 1'b0;

          b_reg <= 1'b0;

      end else begin

          a_reg <= a_in;

          b_reg <= b_in;

      end

 end

always @(posedge clk or posedge rst)

      begin

      if(rst)

          begin

          a_reg <= 1'b0;

          b_reg <= 1'b0;

          end

      else

          begin

          a_reg <= a_in;

          a_reg <= b_in;

          end

     end

「タブを使わずスペース4文字でインデントする」

タブはエディタの設定によって4文字分や8文字分に変わるので、スペースで文字数を確定した方がよいと思う。

1行の文にはbegin-endはつけない」

一般論として冗長な行は削って短くした方が読みやすいからである。

×always @(posedge clk or posedge rst)

      begin

      if(rst)

          begin

          a_reg <= 1'b0;

          end

      else

          begin

          a_reg <= a_in;

          end

      end

always @(posedge clk or posedge rst)

      begin

      if(rst)

          a_reg <= 1'b0;

      else

          a_reg <= a_in;

      end

「保持の代入a<=a; は書かない

一般論として冗長な行は削って短くした方が読みやすいからである。

×always @(posedge clk or posedge rst)

      begin

      if(rst)

          a_reg <= 1'b0;

      else if(en)

          a_reg <= a_in;

      else

          a_reg <= a_reg; //この行は冗長

      end

always @(posedge clk or posedge rst)

      begin

      if(rst)

          a_reg <= 1'b0;

      else if(en)

          a_reg <= a_in;

      end

「修正時に旧コードをコメント行として残さない」

一般論として、邪魔な行があると読みにくくなるからである。

またコメントは変更の意図のみ書いておけばよい。コードの変更箇所は修正前のファイルを残しておいて差分をとればわかるので。

そもそもコメントは回路の意図を書くべきで、ソースを言い換えただけのコメント(a1だけカウントアップする等)は邪魔なだけである。

×always @(posedge clk or posedge rst)

      begin

      if(rst)

          a_reg <= 1'b0;

//    else if(en)

//        a_reg <= a_in;

      else if(en & rdy)    // mod 2016-11-11

          a_reg <= ~a_in;  // mod 2016-11-11

      end

// コメントには変更の意図を書く

  always @(posedge clk or posedge rst)

      begin

      if(rst)

          a_reg <= 1'b0;

      else if(en & rdy)

          a_reg <= ~a_in;

      end


[] [] []