
always @(posedge CLK)
begin
case (DIP_SW)
0:Q[0] <= SW1_OUT;
0:Q[1] <= Q[0];
0:Q[2] <= Q[1];
0:Q[3] <= Q[2];
0:Q[4] <= Q[3];
0:Q[5] <= Q[4];
0:Q[6] <= Q[5];
0:Q[7] <= Q[6];
1:Q[7] <= SW1_OUT;
1:Q[6] <= Q[7];
1:Q[5] <= Q[6];
1:Q[4] <= Q[5];
1:Q[3] <= Q[4];
1:Q[2] <= Q[3];
1:Q[1] <= Q[2];
1:Q[0] <= Q[1];
endcase
end
これはプログラムの一部なのですが、0と1の場合で分岐させる予定です。もちろん上のソースでは上手くいきませんでした。case文ではなくif文のほうがよいでしょうか?
No.1ベストアンサー
- 回答日時:
同じラベルを重ねて書かない。
ステートメントが複数あるならbegin-endで囲む。
----------------------------------------
always @(posedge CLK)
begin
case (DIP_SW)
0:
begin
Q[0] <= SW1_OUT;
Q[1] <= Q[0];
Q[2] <= Q[1];
Q[3] <= Q[2];
Q[4] <= Q[3];
Q[5] <= Q[4];
Q[6] <= Q[5];
Q[7] <= Q[6];
end
1:
begin
Q[7] <= SW1_OUT;
Q[6] <= Q[7];
Q[5] <= Q[6];
Q[4] <= Q[5];
Q[3] <= Q[4];
Q[2] <= Q[3];
Q[1] <= Q[2];
Q[0] <= Q[1];
end
endcase
end
----------------------------------------
ただ、Qが(レジスタ配列などではなく)ただの多ビット信号なら、
そもそも代入文を8つも並べる必要性がなさそう。
----------------------------------------
always @(posedge CLK)
begin
case (DIP_SW)
0: Q <= {Q[6:0], SW1_OUT};
1: Q <= {SW1_OUT, Q[7:1]};
endcase
end
----------------------------------------
> case文ではなくif文のほうがよいでしょうか?
これくらいならif文で十分なようには思える。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
verilogのcase文
-
【FPGA】VHDLのprocessとevent
-
Excel VBAでsub,dimは何の略?
-
GetNextWindowがDLLファイルUse...
-
vba 日本語以外を抽出について
-
もぐらたたきのプログラミング
-
RichTextBoxで指定行の色を自動...
-
演奏記号の・・・・
-
チェックボックスを操作できな...
-
プロシージャまたは関数の引数...
-
VB6でForm_Load中にイベントを...
-
エクセルVBAでテキストボッ...
-
二点の座標から距離や角度を求...
-
エクセルのVBAでの7×7の魔方陣...
-
テキストボックスかラベル上の...
-
VBA public変数はどのようなこ...
-
分割コンパイルの方法がわかり...
-
VBSのプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
vbsのmsgboxランダム表示について
-
[至急]Project Euler:#21Amicab...
-
TreeViewのTag情報取得
-
文字の連結がうまくいかない
-
Verilogの文法
-
Why is 77+33 not equal to 100?
-
Delphiでコンポーネント名を変...
-
EXCEL VBA 文字 アドレス 検...
-
【FPGA】VHDLのprocessとevent
-
Scilabの&と&&に関する質問です
-
なんで? cEn-P^-1AP=P^-1(cEn-AP)
-
VBA public変数はどのようなこ...
-
エクセルVBAでテキストボッ...
-
他のフォームから別のフォーム...
-
VBAで入力数値について
-
VBAでcallで呼び出したsubを終...
-
チェックボックスを操作できな...
おすすめ情報