以下の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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
シリアル通信について
-
NumericUpDownの数値を選択済み...
-
項目数は英語で
-
フォーカスをあわせる
-
『μg』の読み方と意味。
-
C++の例外処理
-
word
-
数式中の文字をCambria Math以...
-
Illustrator CS5 営業の「営」...
-
Adobe Acrobatについて
-
Pages 09 でテキストボックスで...
-
原稿用紙で「」の文が2行以上...
-
イラレでダブルクリックで文字...
-
ファーストピアスのキャッチが...
-
Videostudioテキストの横スクロ...
-
【aviutl】 画像にテキストを張...
-
エクセルのオートシェイプ内の...
-
メールが文字化けします
-
VBにて、非アクティブでフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
名古屋の栄と錦は治安悪い?
-
『μg』の読み方と意味。
-
NumericUpDownの数値を選択済み...
-
VB.NET でのLaod/unLoad につ...
-
テキストボックスからフォーカ...
-
VB.NETのテキストボック...
-
項目数は英語で
-
mailの送信音がしなくなったの...
-
シリアル通信について
-
vba メモリーリーク
-
CPUを2個搭載できるマザーボー...
-
フォームを開く時のイベント処理
-
TextBoxにカーソルがあるかない...
-
一部の文字のみ文字化けします
-
スマホが水に濡れてしまい、中...
-
C++の例外処理
-
PDFの余白、黄ばみ除去等の加工...
-
ob_start()した後、ob_flush()...
-
ヒント表示について
-
シリアルフラッシュメモリをな...
おすすめ情報