2016-05-24 5 views
2

ための避けられないのQuartus構文エラーを抱えているが、私が書いたコードは次のとおりです。私はここにVerilogの

reg number; 
always @(posedge clk) 
begin 
case(SW[3:1]) 
     000: number = 32h'A65D; 
     001: number = 32h'BAB9; 
     010: number = 32h'9430; 
     011: number = 32h'8BEB; 
     100: number = 32h'7CB8; 
     101: number = 32h'62F1; 
     110: number = 32h'6EF9; 
     111: number = 32h'5D5C; 
     default: number = 32h'0000; 
endcase 
end 

私は10170(すべての行

を言って「エラーのためのQuartusでエラーを取得しておきます):テキスト「H」の近くにtest.v(181)でのVerilog HDL構文エラー;「;」 は期待し

は、私は、Verilogに新しいです」ので、私は、任意の明白な誤りがある場合はお聞きしたかったこと私はこのエラーを解決できる方法を作りました。ありがとう!

答えて

1

numberのビット幅を指定する必要があります。それは現在1ビット幅であり、おそらく32ビットが必要です。あなたはケース項目のそれぞれにサイズとベース基数(3'b)を追加する必要があります。

reg [31:0] number; 
always @(posedge clk) 
begin 
case(SW[3:1]) 
     3'b000: number <= 32'hA65D; 
     3'b001: number <= 32'hBAB9; 
     3'b010: number <= 32'h9430; 
     3'b011: number <= 32'h8BEB; 
     3'b100: number <= 32'h7CB8; 
     3'b101: number <= 32'h62F1; 
     3'b110: number <= 32'h6EF9; 
     3'b111: number <= 32'h5D5C; 
     default: number <= 32'h0000; 
endcase 
end 

あなたは順序論理のためのノンブロッキング代入(<=)を使用する必要があります。

更新:もちろん、Eugenio Lyatteの答えを見てから、'h構文エラーも修正してください。

1

32'hA65Dの変更32h'A65Dが必要です。これにより、エラーが解決されます。

reg [31:0]number 
always @(posedge clk) 
begin 
case(SW[3:1]) 
3'b000: number <= 32'hA65D; 
3'b001: number <= 32'hBAB9; 
    3'b010: number <= 32'h9430; 
    3'b011: number <= 32'h8BEB; 
    3'b100: number <= 32'h7CB8; 
    3'b101: number <= 32'h62F1; 
    3'b110: number <= 32'h6EF9; 
    3'b111: number <= 32'h5D5C; 
endcase 
enter code here