1 / 15

Handel-C 基礎 および 7セグとマウスのハンドリング

Handel-C 基礎 および 7セグとマウスのハンドリング. プロジェクト演習 CS28   川口 博. サウンドヒント. C:projExamplesPSLRC10RC10.hw MidiFlash のデモを楽しむ 動作を確認したら一度 reset C:projExamplesPSLRC10MidiFlashSamples にあるデータはフラッシュ ROM 上にあることを FTU で確認 (Index 200-203) サウンドが利用可能なことを覚えておきましょう. 設計フロー まとめ. Handel-C で回路を記述

nam
Download Presentation

Handel-C 基礎 および 7セグとマウスのハンドリング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Handel-C基礎 および7セグとマウスのハンドリングHandel-C基礎 および7セグとマウスのハンドリング プロジェクト演習 CS28  川口 博

  2. サウンドヒント • C:\proj\Examples\PSL\RC10\RC10.hw • MidiFlashのデモを楽しむ • 動作を確認したら一度reset • C:\proj\Examples\PSL\RC10\MidiFlash\SamplesにあるデータはフラッシュROM上にあることをFTUで確認 (Index 200-203) • サウンドが利用可能なことを覚えておきましょう

  3. 設計フロー まとめ Handel-Cで回路を記述 DK上でシンセシス、デバッグ、エミュレーション ISEでFPGA上の配置配線(P&R)を決定し、マッピングデータ(.bitファイル)を作成 FTU (File Transfer Utility)で.bitファイルをRC10に転送 RC10で動作確認 エラーがあればHandel-Cの記述まで戻る Debug/ Emulation Handel-C Xilinx ISE Place & Route Netlist

  4. DK まとめ 高位ハードウェア記述Handel-Cからネットリスト(ゲートレベルの回路記述)を生成する論理合成(シンセシス) デバッガ RC10がなくても、エミュレーション可能 (後日やりましょう)

  5. ネットリストまとめ EDIFファイル(.edfファイル)ネットリストまとめ EDIFファイル(.edfファイル) • EDIFは論理回路のネットリストを表現する標準フォーマットの一つ (.edfファイル) • ネットリスト:セルの名前とその入出力ポートの接続関係が記述されたリスト Notepad/WordPadで.edfファイルを表示させると… (cell XOR2 (cellType GENERIC) (view view_1 (viewType NETLIST) (interface (port I0 (direction INPUT)) (port I1 (direction INPUT)) (port O (direction OUTPUT)) ) ) ) (cell OR4 (cellType GENERIC) …… ……

  6. 7セグを光らせる 1 • C:\proj\Tutorials\General\TutorialSevenSeg2\TutorialSevenSeg2.hw • Build>Configurations…

  7. 7セグを光らせる 2 • Add… • Configuration name: RC10>Copy setting from:>RC200

  8. 7セグを光らせる 3 • Project Settings (RC10)を先週のとおりに設定 たとえばRC10にする

  9. 7セグを光らせる 4 • PalSevenSegWriteDigit()とPalSevenSegWriteShape()についてはhttp://www28.cs.kobe-u.ac.jp/~kawapy/html/proj/PALManual.pdfのp.26を参照 • さまざまな表示を試そう(別紙seven_seg.hcc参照)どのビットが7セグのどこに対応するのか?

  10. Handel-C言語仕様 • 別紙“Handel-C &DK Training”を参照 • par • ビット演算 • その他

  11. par • C:\proj\Tutorials\General\TutorialHCBasics\TutorialHCBasics.hw • 同様にConfiguration: RC10を作る • 別紙のとおりSleep(500)を削除・追加 • Parをコメントアウトする・しないで挙動を比較

  12. マウスのハンドリング 1 • C:\proj\Examples\PAL\Examples.hw • Mouse • このソースにコードを追加して7セグに“77”を光らせる • ヒント:別紙seven_seg.hccの☑を追加

  13. マウスのハンドリング 2 • さらにコードを追加して、左ボタンクリックで7セグを-1減算右ボタンクリックで7セグを+1加算 • ヒント:while(1)ループif(PalMouseGetButton(MousePtr,0)) //左ボタンif(PalMouseGetButton(MousePtr,2)) //右ボタン1クリックごとに加減算しているか?(前クロックのボタンの状態を覚える1ビットレジスタを左右それぞれ用意し、そのレジスタが”1”で現在のボタンが”0”ならば,ボタンが離されたということ)カーソルが縞になっていないか?

  14. 問題 • unsigned 7 a;unsigned 3 b;unsigned 4 c;unsigned 1 d;a=0b1101101; • 1クリックごとに以下のサイクルを実行1: aの下位3ビットをbに代入2: aの上位4ビットをcに代入3: bを上位3ビット、cを下位4ビットとしてaに代入4: aの最下位ビットをdに代入5: dをcに代入6: cを上位4ビットにしてaに代入し、下位ビットは全て1

  15. 問題のヒント? • Case • マクロadju(variable,width) • キャスト(unsigned x)

More Related