2017-08-08 14 views
-2

内:Verilog構文エラーの近くに「<=」をcase文のコードスニペットで

reg [4:0] status_led = 5'b00100; 
    case (status_led) 
     default: begin     
      if (rotation) begin 
       status_led[4] <= status_led[3]; 
       status_led[3] <= status_led[2]; 
       status_led[2] <= status_led[1]; 
       status_led[1] <= status_led[0]; 
       status_led[0] <= status_led[4]; 
      end else if (~rotation) begin 
       status_led[4] <= status_led[0]; 
       status_led[3] <= status_led[4]; 
       status_led[2] <= status_led[3]; 
       status_led[1] <= status_led[2]; 
       status_led[0] <= status_led[1]; 
      end 
     end 
    endcase 

私はエラー「< =近い構文エラー」を取得します。なぜこれはエラーですか?

+1

あなたが表示したコードの前には何がありますか?これは '常に'ブロックか関数の一部ですか? – mkrieger1

+0

なぜ、 'default'の場合だけで' case'文を使うのはどうですか? – mkrieger1

+0

このコードは単独で存在します。もともと私は他のケースがありましたが、コードを変更しました。私はすでにこのコードを優れたコードに置き換えていますが、なぜ私が将来同様のコードを書く必要がある場合に、前述のエラーが出るのか不思議です。 –

答えて

0

あなたは常に内部にあなたのケースを定義していないので、エラーです。これはあなたの問題を解決するはずです。良いアイデアは、組み合わせブロックと順次ブロックを一緒に混ぜないことです。

reg [4:0] status_led = 5'b00100; 

    [email protected](posedge clk) begin 
    case (status_led) 
     default: begin     
      if (rotation) begin 
       status_led[4] <= status_led[3]; 
       status_led[3] <= status_led[2]; 
       status_led[2] <= status_led[1]; 
       status_led[1] <= status_led[0]; 
       status_led[0] <= status_led[4]; 
      end else if (~rotation) begin 
       status_led[4] <= status_led[0]; 
       status_led[3] <= status_led[4]; 
       status_led[2] <= status_led[3]; 
       status_led[1] <= status_led[2]; 
       status_led[0] <= status_led[1]; 
      end 
     end 
    endcase 
    end 
関連する問題