新人技術者のためのロジカル・シンキング入門(6) ―― ハードウェア基礎の基礎

冴木 元

tag: 組み込み

技術解説 2008年9月25日

【2】ソフト技術者のための「クロック」と「リセット」(1/2)

 クロックの供給には次の三つの手順を踏みます(図5)

zu05_01.gif
図5 回路へクロックを供給する方法
図の右端のデバイスにクロックを供給するまでがどのような設定かを考える.大まかにいうと,クロック・ソースを決めて分周率を与えればクロックは供給される.クロック線そのものがつながっていないこと(ジャンパ・ピンが外れているなど)もあるので注意.

  1. クロック・ソースを決める
  2. 分周率を決める
  3. クロックをイネーブルする

 クロックの配分が複雑で,いくつもの分周器やマルチプレクサによる選択を介す場合でも,基本的な考えかたは変わりません.

 あたりまえのことですが,ディジタル回路はクロックが供給されないと動きません注1.このあまりにも基本的な事がらをソフトウェア技術者は忘れている,というより知らない事すらあります(恥ずかしながら,筆者も昔はそうだった...).

 ソフトウェアによる回路の設定がいかに正しくても,クロックを供給する配線がつながっていなければ(例えば,ジャンパ・ピンが外れているなど)回路は動きません.クロックの設定が必要かどうかか,必要だとしたらどのレジスタを設定する必要があるのか,ということを最初に確認する必要があります.

● ソフト技術者が知っておくべきリセットに関する注意点

 リセットは回路の中にあるフリップフロップを初期化する処理です(図6).ソフトウェア的には「スタティック変数の初期化」といってもいいでしょう.ハードウェア特有の話としては以下の1)~4)のようなものがあります.

zu06_01.gif
図6 「リセット」と「リリース」
「リセット」してフリップフロップを初期化した後に「リリース」する.両者を手動で行う場合,リセット中に初期設定をすませてリリースする.リセットは1クロックで終わるとは限らないため,wait(待機)処理が必要となることが多い.

1)リセットの後にリリースが必要

 リセット信号は,通常の信号線と極性が逆(アクティブL;信号が'0'のときON)のケースが多いです.C言語で書くと,図7のいちばん上のパスがリセット処理のイメージです.

zu07_01.gif

図7 「リセット」と「イネーブル」
図の"reset"と"enable"の違いに注意.resetはほんとうに各フリップフロップを初期化するものだが,enableは単に通常の処理を止めるだけ.マニュアルをよく読んで確認すること.さらに,部分的にリセットするだけの信号線もあるので注意.

 リセット処理が終わり,信号が'1'に戻ると(リリースされると)通常の処理が開始されるので,その間に必要な初期設定を行うことになります.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日