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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- JavaScript switch文は、if文みたいに最初の()内に式を2つ以上設定できませんか。 1 2022/07/27 14:07
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- スピーカー・コンポ・ステレオ より良いサブウーファーの接続方法を教えて下さい 現行のオーディオシステムは基本的にはCDP→プリ→パ 5 2022/08/24 16:19
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- カスタマイズ(車) アンプのハイパス設定 3 2023/05/04 10:32
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- TOEFL・TOEIC・英語検定 This has not yet been proven to be the case for an 2 2022/06/20 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードセットにnullの場合
-
verilogのcase文
-
日付の重複
-
クラスモジュールの処理
-
subsequentとnextの違いってな...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
チェックボックスを操作できな...
-
C言語のサフィックスについて
-
VBA public変数はどのようなこ...
-
Functionの戻り値を配列にした...
-
VBAでcallで呼び出したsubを終...
-
VBAで入力数値について
-
String型の値にスラッシュをつ...
-
他のフォームから別のフォーム...
-
SavePictureで保存できない
-
ユーザーフォームへのデータ入...
-
VB.NETでのイベントの途中終了
-
visual basic初心者です。 visu...
-
【VB6.0】 あるフォームから他...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
[至急]Project Euler:#21Amicab...
-
TreeViewのTag情報取得
-
verilogのcase文
-
Why is 77+33 not equal to 100?
-
Delphiでコンポーネント名を変...
-
クラスモジュールの処理
-
エクセルvba 値渡しのsu...
-
日付の重複
-
【FPGA】VHDLのprocessとevent
-
Matlab
-
Scilabの&と&&に関する質問です
-
リスト間のアイテム移動について
-
MATLABによるラグランジェ補間
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
エクセルVBAでテキストボッ...
-
VB.NETでのイベントの途中終了
おすすめ情報