Handel-C基礎 および 7セグとマウスのハンドリング プロジェクト演習 CS28 川口 博
サウンドヒント C:\proj\Examples\PSL\RC10\RC10.hw 動作を確認したら一度reset MidiFlashのデモを楽しむ 動作を確認したら一度reset C:\proj\Examples\PSL\RC10\MidiFlash\SamplesにあるデータはフラッシュROM上にあることをFTUで確認 (Index 200-203) サウンドが利用可能なことを覚えておきましょう
設計フロー まとめ Handel-Cで回路を記述 DK上でシンセシス、デバッグ、エミュレーション 設計フロー まとめ 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
DK まとめ 高位ハードウェア記述Handel-Cから ネットリスト(ゲートレベルの回路記述)を生成する 論理合成(シンセシス) デバッガ RC10がなくても、エミュレーション可能 (後日やりましょう) Complex state machines produced for free.
ネットリストまとめ 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 ……
7セグを光らせる 1 C:\proj\Tutorials\General\TutorialSevenSeg2\TutorialSevenSeg2.hw Build>Configurations…
7セグを光らせる 2 Add… Configuration name: RC10> Copy setting from:>RC200
7セグを光らせる 3 Project Settings (RC10)を 先週のとおりに設定 たとえばRC10にする
7セグを光らせる 4 PalSevenSegWriteDigit()と PalSevenSegWriteShape()については http://www28.cs.kobe-u.ac.jp/~kawapy/html/proj/PALManual.pdf のp.26を参照 さまざまな表示を試そう (別紙seven_seg.hcc参照) どのビットが7セグのどこに対応するのか?
Handel-C言語仕様 別紙“Handel-C & DK Training”を参照 par ビット演算 その他
par C:\proj\Tutorials\General\TutorialHCBasics\TutorialHCBasics.hw 同様にConfiguration: RC10を作る 別紙のとおりSleep(500)を削除・追加 Parをコメントアウトする・しないで挙動を比較
マウスのハンドリング 1 C:\proj\Examples\PAL\Examples.hw Mouse このソースにコードを追加して 7セグに“77”を光らせる ヒント:別紙seven_seg.hccの☑を追加
マウスのハンドリング 2 さらにコードを追加して、 左ボタンクリックで7セグを-1減算 右ボタンクリックで7セグを+1加算 ヒント: while(1)ループ if(PalMouseGetButton(MousePtr,0)) //左ボタン if(PalMouseGetButton(MousePtr,2)) //右ボタン 1クリックごとに加減算しているか?(前クロックのボタンの状態を覚える1ビットレジスタを左右それぞれ用意し、そのレジスタが”1”で現在のボタンが”0”ならば,ボタンが離されたということ) カーソルが縞になっていないか?
問題 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
問題のヒント? Case マクロadju(variable,width) キャスト(unsigned x)