設計のヒント


目次


* 逆位相のクロックを使う

設計の段階において,クロックの立ち上がりの間で フリップフロップを更新したい場合が出てくることがある. 同期設計では,このようなフリップフロップの 更新信号もクロックに同期していないといけない. この場合,以下のような逆位相のクロックを使うという手がある.

逆位相のクロックの生成方法は,単純に, 通常のクロックをNOTゲートに通せば良い. 当然のことながら,逆位相のクロックの立ち上がりは 通常のクロックの立ち上がりのちょうど中間の時点となる.

Negated clock

* 主記憶(RAM)の読み出しを含めたシミュレーションをする

主記憶用のRAMの作り方の "MegaWizard Plug-In Manager - LPM_RAM_DQ (5/6)"の部分で メモリに書き込むデータ・ファイルを指定してあれば, シミュレーション時にもそのデータ・ファイルの内容が メモリに書かれているものとしてシミュレーションできます.

なお,すでに配置したRAMに対してメモリのデータ・ファイルを 指定したい場合は,RAMのオブジェクトをダブルクリックすることで, 主記憶用のRAMの作り方の 設定をやり直すことができます.

* MU200-7SEGボードの複数の7SEG LEDを見掛け上同時に更新する

MU200-7SEGボードには複数の7SEG LEDがありますが, ボードのマニュアルを読めば分かるように, 同時に更新できるのはそのうちの8個のグループのみです. しかしながら,以下のように時分割で各グループを 更新するような回路を作れば, 見掛け上,同時に更新しているように見せられます.

  1. 入力されたクロック信号に応じて, カウンタの値を増加させていくカウンタを作成する. カウンタの最大値は時分割で表示したい信号数とし, 最大値になった後は0に戻るものとする.
  2. 入力されたカウンタの数値によって,入力された複数の 出力したい信号のうち1つをMU200-7SEGボードの7SEG LEDに出力する マルチプレクサを作成する.
  3. 入力されたカウンタの数値によって, 複数あるMU200-7SEGボードの7SEG LED選択信号のうち 1本をアサートする回路を作成する.

十分に速いクロックを入力すれば,人の目には 同時に更新されているように見えます. 逆に言えば,デバッグ中とかで遅いクロック(1Hzなど)を 使っている時には同時に更新されるようには見えません. なお,MU200-7SEGボードの7SEGには値の保持機能があるため, 遅いクロックを入力した時にも,最後に更新した値は 保持され続けます.


Last modified: 2010/4/7 11:00