設計のヒント


目次


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

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

逆位相のクロックの生成方法は、単純に、 通常のクロックを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