![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_11.png?e8efa67)
以下のURLのverilog HDLのコードについて質問です。
watch_falling_edge <= { watch_falling_edge[4:0], key_clk};
ここで、クロックが上がるたびにwatch_falling_edgeにキークロックを1つずつ入れていくことはわかるのですが、
if( watch_falling_edge == 6'b111000)begin
ここで、なぜwatch_falling_edgeが「 6'b111000」になったときにcaseをはじめるのでしょうか?
またこれとは別に、クロックとキーボードクロックの周波数は全く違いますか?
よろしくお願いします。
http://www.hirokinakaharaoboe.net/tips_wiki/inde …
No.1ベストアンサー
- 回答日時:
PS/2 規格をよくは知らないので多分ですが、
>ここで、なぜ watch_falling_edge が「 6'b111000」になったときにcaseをはじめるので
PS/2 は、キーボードからシリアルデータとシリアルクロックを受け取ります、
それらがそれぞれ入力信号 key_data key_clk に与えられてるようです。
シリアルデータはシリアルクロック立ち上がりエッジでて変化するので、受取り側は
シリアルデータが確定する立下りエッジ前後で取り込むのがセオリーです。
細かく見ると、立下りエッジより clk x 3 個分過ぎてますが、
機器外部からやってくる key_clk にはノイズが乗る可能性があり、
それによる誤動作を避けるために入力レベルの判断を「複数クロック期間連続すること」と
見てるのかなと思います。
(それはそれでちょっと突っ込みどころがあるのですがそれは置いといて)
watch_falling_edge(6bit) はシフトレジスタを構成し、より高周波数な clk のタイミングで
key_clk を最下位bitにシフト入力しています。
(watch_falling_edge <= { watch_falling_edge[4:0], key_clk}; の部分)
>またこれとは別に、クロックとキーボードクロックの周波数は全く違いますか?
シリアルクロックはたしか4,800Hz 程度です、
Verilog ソースだけでは正確には読取れませんが、 clk はもっと高周波数なはずです。
同じ周波数ではサンプリングしても立下りエッジ検出できないので。
3bitずつを期待してるので、最低でも6倍くらいないと、上で想像する動作は不可能です。
というか、ハードウェアを記述して設計するなら、入力信号の仕様は把握しとかないとダメです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ネットショッピング・通販・ECサイト) 骨伝導ヘッドセットで この二つは値段が違うだけでは同じですか? 1 2023/02/13 19:13
- CPU・メモリ・マザーボード ノートPCのSSDを外付けSSDとして運用したい。 2 2022/06/11 22:12
- マウス・キーボード Pc切替器が動作しません。理教えてください。よろしくお願いします。 4 2023/05/10 15:43
- 船舶・クルーズ Windows10のエクスプローラにて。 1 2022/10/10 20:11
- 政治 「このクソッタレが!」名古屋の高級焼肉店個室で“人糞”放置事件が発生 3 2022/05/30 18:30
- 飲み物・水・お茶 え!これ100%、ならば買おうかな。…しかし実際は… 10 2022/09/06 20:37
- 電気・ガス・水道 ソーラーパネル初心者です 1 2023/01/01 13:46
- サバイバルゲーム このタイプの差し込み口ってなんの種類か分かりますか? 3 2022/07/29 15:32
- ZOZOTOWN このタイプの差し込み口ってなんの種類か分かりますか? 2 2022/07/29 15:31
- モニター・ディスプレイ 突っ張り棒につけれるマイクアームを探しています。下記リンクはモニターアームですがそのようにポールにつ 3 2022/09/07 01:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
フォームを開く時のイベント処理
-
verilog HDLのコードについて質問
-
ヒント表示について
-
テキストボックスからフォーカ...
-
シリアル通信について
-
VB.NET でのLaod/unLoad につ...
-
TextBoxにカーソルがあるかない...
-
C++の例外処理
-
ASP.Net と JavaScript の関係...
-
手書きの文字や枠を認識してデ...
-
word
-
数式中の文字をCambria Math以...
-
Illustratorテキストエリアへ塗...
-
PowerPoint SmartArtの箇条書...
-
Excel VBAで改行を含む文字列を...
-
PDF→CSVへ変換
-
illustratorとExcelは連携出来...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
VB.NET でのLaod/unLoad につ...
-
フォームを開く時のイベント処理
-
VB.NETのテキストボック...
-
テキストボックスからフォーカ...
-
vba メモリーリーク
-
ob_start()した後、ob_flush()...
-
C#での変数スコープ?
-
項目数は英語で
-
シリアルフラッシュメモリをな...
-
mailの送信音がしなくなったの...
-
TextBoxにカーソルがあるかない...
-
フリップフロップについての質...
-
シリアル通信について
-
ACCDE形式でクエリの警告メッセ...
-
ブック開いたときのフォーカス指定
-
携帯電話のマイクロSDカードに...
-
VBのレコードセットを閉じない...
おすすめ情報