(57)【要約】【課題】不揮発性メモリーを内蔵した複数の半導体装置に対してデータの書き込みを制御するデータ書き込み制御装置において、内部の複数のメモリーに一旦格納されたデータのベリファイ処理に要する時間を短縮する。【解決手段】このデータ書き込み制御装置は、データを格納する複数のメモリーと、基準データを格納する基準データ格納部と、複数のメモリーからデータを読み出すタイミングと基準データ格納部から基準データを読み出すタイミングとを同期させるタイミング制御部と、複数のメモリーから読み出されたデータを基準データ格納部から読み出された基準データと比較して複数の比較結果信号をそれぞれ生成する複数の比較部と、複数の比較結果信号に基づいて、複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成して格納する複数のエラー検出部とを備える。【選択図】図３
2018181031.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する複数のメモリーと、
基準データを格納する基準データ格納部と、
前記複数のメモリーからデータを読み出すタイミングと前記基準データ格納部から基準データを読み出すタイミングとを同期させるタイミング制御部と、
前記複数のメモリーに対応して設けられ、前記複数のメモリーから読み出されたデータを前記基準データ格納部から読み出された基準データと比較して、比較結果を表す複数の比較結果信号をそれぞれ生成する複数の比較部と、
前記複数のメモリーに対応して設けられ、前記複数の比較結果信号に基づいて、前記複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成して格納する複数のエラー検出部と、
を備えるデータ書き込み制御装置。
【請求項２】
前記複数のメモリーが、クロック信号に同期してシリアルのデータ転送を行う、請求項１記載のデータ書き込み制御装置。
【請求項３】
前記複数の比較部の各々が、前記複数のメモリーの内の対応するメモリーから順次読み出された複数ビットのデータを前記基準データ格納部から順次読み出された複数ビットの基準データと比較して、比較結果を表す複数ビットの比較結果信号を順次生成し、
前記複数のエラー検出部の各々が、前記複数ビットの比較結果信号に基づいて、前記複数のメモリーの内の対応するメモリーから順次読み出された複数ビットのデータにエラーが存在するか否かを示す１ビットのエラー検出信号を生成する、
請求項２記載のデータ書き込み制御装置。
【請求項４】
複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置との間で通信を行い、前記複数のメモリーから読み出されたデータにエラーが存在しない場合に、前記複数のメモリーからデータを読み出して前記複数の不揮発性メモリーにそれぞれ書き込むように前記複数の半導体装置に書き込み指示情報を送信する制御部をさらに備える、請求項１〜３のいずれか１項記載のデータ書き込み制御装置。
【請求項５】
複数のメモリー及び基準データ格納部を含むデータ書き込み制御装置を用いて、複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置が複数の回路基板に実装された複数の回路ユニットを製造する方法であって、
前記複数の回路基板の端子を前記データ書き込み制御装置の端子に電気的に接続する工程（ａ）と、
前記データ書き込み制御装置に入力されたデータを前記複数のメモリーに格納する工程（ｂ）と、
前記データ書き込み制御装置に入力されたデータの一部を基準データとして前記基準データ格納部に格納する工程（ｃ）と、
前記複数のメモリーから同時にデータを読み出すと共に、それに同期して前記基準データ格納部から基準データを読み出す工程（ｄ）と、
前記複数のメモリーから読み出されたデータを前記基準データ格納部から読み出された基準データと比較して、比較結果を表す複数の比較結果信号を生成する工程（ｅ）と、
前記複数の比較結果信号に基づいて、前記複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号を生成して格納する工程（ｆ）と、
前記複数のメモリーから読み出されたデータにエラーが存在しない場合に、前記複数のメモリーからデータを読み出して前記複数の不揮発性メモリーにそれぞれ書き込むように前記複数の半導体装置に書き込み指示情報を送信する工程（ｇ）と、
を備える回路ユニットの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリーを内蔵した半導体装置に対してデータの書き込みを制御するデータ書き込み制御装置に関する。さらに、本発明は、そのようなデータ書き込み制御装置を用いて回路ユニットを製造する方法等に関する。
【背景技術】
【０００２】
例えば、フラッシュメモリー等の不揮発性メモリーを内蔵したＭＣＵ（マイクロコントロールユニット）等の半導体装置においては、不揮発性メモリーに記憶されるプログラム又は設定データを変更することにより、その機能を変更することができる。特に、多品種の製品を比較的少量ずつ製造するような場合には、プログラム又は設定データの変更によって機能を変更することにより、低コスト化を図ることができる。
【０００３】
そのために、複数の半導体装置に対して、それぞれに内蔵されている複数の不揮発性メモリーに同時にデータ（プログラム又は設定データ）を書き込むように制御するデータ書き込み制御装置（ギャングプログラマー又はマルチプログラマーとも呼ばれる）が使用されている。
【０００４】
関連する技術として、特許文献１には、多数枚のＤＳＰカードの全てのフラッシュメモリーに対して同じ内容の書き込みデータを１回の操作で同時に書き込むことを可能とするフラッシュメモリーデータ更新装置が開示されている。このフラッシュメモリーデータ更新装置は、外部コンピューターと、複製装置と、複数枚のＤＳＰカードとを備えている。
【０００５】
外部コンピューターは、書き込み用のデータファイルを記憶する記憶装置と、データファイルをシリアルデータとして複製装置に出力するシリアル出力装置とを有している。複製装置は、外部コンピューターから出力されるデータファイルをＤＳＰカードの枚数に応じて複製して、複製されたデータファイルをシリアルデータとして複数枚のＤＳＰカードに出力する。
【０００６】
各々のＤＳＰカードは、複製装置から出力されるデータファイルを記憶する外部記憶装置と、外部記憶装置に記憶されたデータファイルが転送される内部メモリーを有するＤＳＰと、初期化プログラムを記憶するフラッシュメモリーとを有する。ＤＳＰは、内部メモリーに転送されるデータファイル（ディジタル信号処理用の実行プログラム及び演算用のテーブルデータ）を用いてフラッシュメモリーを更新する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１６４８４２号公報（段落００１５−００１６、００３３、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１において、複製装置は、複製されたデータファイルを記憶する複数の出力バッファーを備えているが（段落００３３）、複製されて複数の出力バッファーに記憶されたデータファイルがオリジナルのデータファイルと一致しているか否かを確認（ベリファイ）することはできない。
【０００９】
複製装置の出力バッファーは、データファイルをシリアルデータとして出力するので、複数の出力バッファーに記憶されたデータファイルをベリファイするためには、複数の出力バッファーからデータファイルをシリアルに読み出してオリジナルのデータファイルと比較する必要がある。例えば、書き込み対象のフラッシュメモリーの個数が８個であれば、ベリファイ処理に要する時間も８倍となり、非常に多大な時間を消費してしまう。
【００１０】
そこで、上記の点に鑑み、本発明の第１の目的は、複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置に対してデータの書き込みを制御するデータ書き込み制御装置において、内部の複数のメモリーに一旦格納されたデータのベリファイ処理に要する時間を短縮することである。
【００１１】
また、本発明の第２の目的は、内部の何れかのメモリーから読み出されたデータにエラーが発生した場合に、エラーが発生したメモリーを特定できるようにすることである。さらに、本発明の第３の目的は、そのようなデータ書き込み制御装置を用いて回路ユニットを製造する方法等を提供することである。
【課題を解決するための手段】
【００１２】
以上の課題の少なくとも一部を解決するため、本発明の第１の観点に係るデータ書き込み制御装置は、データを格納する複数のメモリーと、基準データを格納する基準データ格納部と、複数のメモリーからデータを読み出すタイミングと基準データ格納部から基準データを読み出すタイミングとを同期させるタイミング制御部と、複数のメモリーに対応して設けられ、複数のメモリーから読み出されたデータを基準データ格納部から読み出された基準データと比較して、比較結果を表す複数の比較結果信号をそれぞれ生成する複数の比較部と、複数のメモリーに対応して設けられ、複数の比較結果信号に基づいて、複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成して格納する複数のエラー検出部とを備える。
【００１３】
本発明の第１の観点によれば、内部の複数のメモリーに一旦格納されたデータのベリファイ処理を行う際に、複数のメモリーに対応して設けられた複数の比較部が、複数のメモリーから同時に読み出されたデータを基準データと比較するので、ベリファイ処理に要する時間を短縮することができる。
【００１４】
また、複数のメモリーに対応して設けられた複数のエラー検出部が、複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成するので、内部の何れかのメモリーから読み出されたデータにエラーが発生した場合に、エラーが発生したメモリーを特定することができる。
【００１５】
ここで、複数のメモリーが、クロック信号に同期してシリアルのデータ転送を行うようにしても良い。それにより、複数のメモリーからデータを読み出して複数の不揮発性メモリーにそれぞれ書き込むように複数の半導体装置を制御する際に、複数のメモリーから複数の半導体装置に対するデータ転送が容易になる。
【００１６】
その場合に、複数の比較部の各々が、複数のメモリーの内の対応するメモリーから順次読み出された複数ビットのデータを基準データ格納部から順次読み出された複数ビットの基準データと比較して、比較結果を表す複数ビットの比較結果信号を順次生成し、複数のエラー検出部の各々が、複数ビットの比較結果信号に基づいて、複数のメモリーの内の対応するメモリーから順次読み出された複数ビットのデータにエラーが存在するか否かを示す１ビットのエラー検出信号を生成するようにしても良い。それにより、複数ビットのデータ毎に１ビットのエラー検出信号を生成して、エラー検出信号のビット数を削減することができる。
【００１７】
また、データ書き込み制御装置が、複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置との間で通信を行い、複数のメモリーから読み出されたデータにエラーが存在しない場合に、複数のメモリーからデータを読み出して複数の不揮発性メモリーにそれぞれ書き込むように複数の半導体装置に書き込み指示情報を送信する制御部をさらに備えても良い。それにより、複数の半導体装置が、自律的に、それぞれの不揮発性メモリーの特性に応じた適切な書き込み条件でデータの書き込みを行うことができる。
【００１８】
本発明の第２の観点に係る回路ユニットの製造方法は、複数のメモリー及び基準データ格納部を含むデータ書き込み制御装置を用いて、複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置が複数の回路基板に実装された複数の回路ユニットを製造する方法であって、複数の回路基板の端子をデータ書き込み制御装置の端子に電気的に接続する工程（ａ）と、データ書き込み制御装置に入力されたデータを複数のメモリーに格納する工程（ｂ）と、データ書き込み制御装置に入力されたデータの一部を基準データとして基準データ格納部に格納する工程（ｃ）と、複数のメモリーから同時にデータを読み出すと共に、それに同期して基準データ格納部から基準データを読み出す工程（ｄ）と、複数のメモリーから読み出されたデータを基準データ格納部から読み出された基準データと比較して、比較結果を表す複数の比較結果信号を生成する工程（ｅ）と、複数の比較結果信号に基づいて、複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号を生成して格納する工程（ｆ）と、複数のメモリーから読み出されたデータにエラーが存在しない場合に、複数のメモリーからデータを読み出して複数の不揮発性メモリーにそれぞれ書き込むように複数の半導体装置に書き込み指示情報を送信する工程（ｇ）とを備える。
【００１９】
本発明の第２の観点によれば、データ書き込み制御装置において、内部の複数のメモリーに一旦格納されたデータのベリファイ処理を行う際に、複数のメモリーに対応して設けられた複数の比較部が、複数のメモリーから同時に読み出されたデータを基準データと比較するので、複数の回路ユニットの製造に要する時間を短縮することができる。
【００２０】
また、複数のメモリーに対応して設けられた複数のエラー検出部が、複数のメモリーから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成するので、内部の何れかのメモリーから読み出されたデータにエラーが発生した場合に、エラーが発生したメモリーを特定することができる。従って、エラーが発生したメモリーを使用しないようにして、回路ユニットの歩留まりを向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るデータ書き込み制御装置の外観を示す斜視図。
【図２】図１に示すデータ書き込み制御装置の構成例を示すブロック図。
【図３】図２に示すデータ処理部及びその周辺回路を示す回路図。
【図４】図３に示すデータ処理部が行うベリファイ処理のタイミングチャート。
【図５】本発明の一実施形態に係る回路ユニットの製造方法を示すフローチャート。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
＜データ書き込み制御装置＞
図１は、本発明の一実施形態に係るデータ書き込み制御装置の外観を示す斜視図である。データ書き込み制御装置１００は、複数のターゲットシステム２００に搭載される複数の半導体装置（ＩＣ）２１０を制御することにより、複数の半導体装置２１０にそれぞれ内蔵された複数の不揮発性メモリーに同時にデータを書き込むことを可能とする。それにより、比較的少量又は中量の製品を効率的に製造することができる。
【００２３】
図１に示す例においては、各々のターゲットシステム２００が、不揮発性メモリーを内蔵した半導体装置２１０と、半導体装置２１０が実装された回路基板２２０と、回路基板２２０に設けられたコネクター２３０と、筐体２４０とを含んでいる。ターゲットシステム２００は、例えば、スマートフォン等の携帯機器であっても良い。以下においては、半導体装置２１０が、ＣＰＵ（中央演算装置）及びフラッシュメモリーを内蔵したＭＣＵ（１チップマイコンともいう）である場合について説明する。
【００２４】
データ書き込み制御装置１００の筐体１の背面には、複数の回路基板２２０を介して複数の半導体装置２１０にそれぞれ電気的に接続可能な複数のコネクターが設けられている。例えば、データ書き込み制御装置１００の各々のコネクターの複数の端子が、ターゲットシステム２００の筐体２４０に固定されたコネクター２３０の複数の端子にケーブル３００を介して電気的に接続される。
【００２５】
あるいは、回路基板２２０が筐体２４０から取り出された状態で、データ書き込み制御装置１００の各々のコネクターの複数の端子が、コネクター２３０の複数の端子にケーブル３００を介して電気的に接続されるようにしても良い。また、プローブを用いることにより、データ書き込み制御装置１００の各々のコネクターの複数の端子が、回路基板２２０に形成された複数のランド（端子）に電気的に接続されるようにしても良い。
【００２６】
データ書き込み制御装置１００の各々のコネクターは、例えば、シリアルデータの入力端子及び出力端子と、クロック信号の出力端子と、セレクト信号の出力端子と、リセット信号の出力端子と、半導体装置２１０のステータス信号の入力端子と、書き込み電圧の出力端子と、電源電圧の出力端子とを有している。
【００２７】
データ書き込み制御装置１００の筐体１の前面には、例えば、電源入力端子２と、電源スイッチ３と、ＳＤカードスロット４と、セットアップボタン５とが設けられている。また、データ書き込み制御装置１００の筐体１の上面には、例えば、スタートボタン６と、ＬＣＤ（液晶表示）パネル７と、複数のＬＥＤ（発光ダイオード）８とが設けられている。さらに、データ書き込み制御装置１００の筐体１の内部には、半導体装置２１０に対してデータの書き込みを制御するための各種の回路が内蔵されている。
【００２８】
図２は、図１に示すデータ書き込み制御装置の構成例を示すブロック図である。図２に示すように、データ書き込み制御装置１００は、ＬＣＤモジュール１０と、ＳＤカードモジュール２０と、ＬＥＤモジュール３０と、操作ボタン４０と、メインＭＣＵ５０と、データバス６０と、データ処理部７０と、複数のメモリー８０と、シリアル伝送路９０とを含んでいる。
【００２９】
ＬＣＤモジュール１０は、図１に示すＬＣＤパネル７と、その駆動回路とを含んでいる。駆動回路がＬＣＤパネル７を駆動することにより、ＬＣＤパネル７に、複数の回路基板２２０にそれぞれ実装された複数の半導体装置（ＭＣＵ）２１０との接続状態や、それらの半導体装置２１０のフラッシュメモリーの書き込み状態等を示す各種のステータス情報が表示される。
【００３０】
ＳＤカードモジュール２０は、図１に示すＳＤカードスロット４と、ＳＤカードに記憶されているオリジナルデータ（元データ）を読み出してメインＭＣＵ５０に転送するための回路とを含み、データを入力する入力インターフェースとして機能する。なお、オリジナルデータを記憶する記憶媒体としては、ＳＤカード以外にも、ＵＳＢメモリー、外付けハードディスク、フレキシブルディスク、ＭＯ、ＭＴ、ＣＤ−ＲＯＭ、又は、ＤＶＤ−ＲＯＭ等を用いることができる。
【００３１】
ＬＥＤモジュール３０は、図１に示す複数のＬＥＤ８と、その駆動回路とを含んでいる。駆動回路が複数のＬＥＤ８を駆動することにより、例えば、ベリファイ処理において、それぞれのメモリー８０のベリファイ結果にエラーがない場合に上段のＬＥＤ８が点灯し、ベリファイ結果にエラーがある場合に下段のＬＥＤ８が点灯する。また、データ転送処理において、それぞれの半導体装置２１０のフラッシュメモリーに対する書き込みが成功した場合に上段のＬＥＤ８が点灯し、書き込みが失敗した場合に下段のＬＥＤ８が点灯するようにしても良い。
【００３２】
操作ボタン４０は、図１に示すセットアップボタン５及びスタートボタン６を含んでおり、ユーザーによる操作に応じた操作信号をメインＭＣＵ５０に供給する。メインＭＣＵ５０は、ＣＰＵ５１及びＲＡＭ５２を含んでいる。
【００３３】
メインＭＣＵ５０のＣＰＵ５１は、操作ボタン４０から供給される操作信号等に応じて、ＬＣＤモジュール１０、ＳＤカードモジュール２０、ＬＥＤモジュール３０、データ処理部７０、及び、複数の半導体装置２１０を制御する制御部に相当する。ＲＡＭ５２は、ＳＤカードモジュール２０からメインＭＣＵ５０に転送されるオリジナルデータを記憶する。ＲＡＭ５２に記憶されたオリジナルデータは、複数のメモリー８０に一旦格納された後に、複数の半導体装置２１０に転送される。
【００３４】
データ処理部７０は、例えば、ＦＰＧＡ（フィールドプログラマブル・ゲートアレイ）等のＩＣで構成され、アドレス、データ、及び、ＣＰＵクロック信号等を伝送するパラレルのデータバス６０を介してメインＭＣＵ５０に接続されている。データ処理部７０は、複数のメモリー８０に格納されたデータに対してベリファイ処理を行う。また、データ処理部７０は、ケーブル３００を介して複数の半導体装置２１０との間で通信を行うことにより、複数のメモリー８０に格納されたデータを複数の半導体装置２１０にそれぞれシリアル転送するための設定を行う。
【００３５】
複数のメモリー８０は、複数の半導体装置２１０に対応して設けられている。複数のメモリー８０の各々は、シリアルインターフェースを備えており、シリアル伝送路９０を介してデータ処理部７０に接続されている。図２には、メモリー８０として、シリアルフラッシュメモリーが示されているが、その他の不揮発性メモリーやＲＡＭ（ランダムアクセス・メモリー）等を用いても良い。
【００３６】
例えば、ＳＤカードには、書き込み対象情報及び書き込みプログラムがオリジナルデータとして記憶されている。書き込み対象情報は、半導体装置２１０のフラッシュメモリーに書き込まれる情報（プログラム又は設定データ）であり、書き込みプログラムは、半導体装置２１０のＣＰＵがフラッシュメモリーに書き込み対象情報を書き込むためのプログラムである。データ書き込み制御装置１００が複数の半導体装置２１０を制御することにより、各々の半導体装置２１０が、自律的に書き込み対象情報をフラッシュメモリーに書き込む。
【００３７】
その際に、メモリー８０に格納されたデータにエラーが存在すると、データ書き込み制御装置１００から半導体装置２１０へのデータ転送が実行できなかったり、半導体装置２１０のフラッシュメモリーに誤ったデータが書き込まれたりしてしまう。そこで、データ処理部７０は、複数のメモリー８０に格納されたデータをベリファイするベリファイ処理を行う。
【００３８】
図３は、図２に示すデータ処理部及びその周辺回路を示す回路図であり、図４は、図３に示すデータ処理部が行うベリファイ処理のタイミングチャートである。図３には、一例として、３つのメモリー８０ａ〜８０ｃと、それに対応するデータ処理部７０の構成が示されている。
【００３９】
データ処理部７０は、シフトレジスター７１及び７７ａ〜７７ｃと、タイミング制御部７２と、インバーター７３及び７４と、１ワード受信完了判定回路７５と、エクスクルーシブＯＲ（ＥＯＲ）回路７６ａ〜７６ｃと、ＮＯＲ回路７８ａ〜７８ｃと、フラグレジスター７９ａ〜７９ｃとを含んでいる。
【００４０】
シフトレジスター７１には、メインＭＣＵ５０のＣＰＵ５１によって、ＲＡＭ５２に記憶されているオリジナルデータの一部がデータバス６０を介して基準データとして供給される。シフトレジスター７１は、基準データを格納する基準データ格納部に相当する。
【００４１】
タイミング制御部７２は、ＣＰＵ５１からデータバス６０を介して供給されるＣＰＵクロック信号ＣＰＵＣＬＫに基づいて、ベリファイ処理に用いられるクロック信号ＣＬＫを生成する。また、タイミング制御部７２は、ＣＰＵ５１の制御の下で、ＣＰＵクロック信号ＣＰＵＣＬＫ、クロック信号ＣＬＫ、又は、複数の半導体装置２１０（図２）からそれぞれ出力される複数のクロック信号ＣＬＫａ〜ＣＬＫｃを選択して、メモリー８０ａ〜８０ｃ及びシフトレジスター７１等に供給する。
【００４２】
メモリー８０ａ〜８０ｃは、タイミング制御部７２から供給されるクロック信号に同期してシリアルのデータ転送を行う。それにより、メモリー８０ａ〜８０ｃからデータを読み出して複数のフラッシュメモリーにそれぞれ書き込むように複数の半導体装置２１０（図２）を制御する際に、メモリー８０ａ〜８０ｃから複数の半導体装置２１０に対するデータ転送が容易になる。
【００４３】
例えば、メモリー８０ａ〜８０ｃは、シリアルクロック信号ＳＣＫ及びスレーブセレクト信号ＳＳが供給されて、スレーブ入力データＳＩａ〜ＳＩｃを入力し、又は、スレーブ出力データＳＯａ〜ＳＯｃを出力する複数のＳＰＩ（シリアル・ペリフェラル・インターフェース）をそれぞれ備えている。
【００４４】
データ書き込み処理において、ＣＰＵ５１は、タイミング制御部７２を設定すると共に、ＲＡＭ５２に記憶されているデータを、書き込みコマンド及びアドレスと共にメモリー８０ａ〜８０ｃに供給する。タイミング制御部７２は、ＣＰＵ５１から供給されるＣＰＵクロック信号ＣＰＵＣＬＫを選択して、メモリー８０ａ〜８０ｃに供給する。それにより、メモリー８０ａ〜８０ｃは、ＣＰＵ５１によってＲＡＭ５２から供給されるデータを格納する。
【００４５】
ベリファイ処理において、ＣＰＵ５１は、タイミング制御部７２を設定すると共に、読み出しコマンド及びアドレスをメモリー８０ａ〜８０ｃに供給する。タイミング制御部７２は、ＣＰＵ５１から供給されるＣＰＵクロック信号ＣＰＵＣＬＫを選択して、メモリー８０ａ〜８０ｃに供給する。それにより、メモリー８０ａ〜８０ｃは、ＣＰＵ５１から読み出しコマンド及びアドレスを受信する。
【００４６】
次に、ＣＰＵ５１は、タイミング制御部７２を再度設定する。タイミング制御部７２は、図４に示すようなクロック信号ＣＬＫを生成して、メモリー８０ａ〜８０ｃ、シフトレジスター７１、及び、インバーター７３に供給する。また、ＣＰＵ５１は、ＲＡＭ５２に記憶されているオリジナルデータ（元データ）の内からベリファイ処理に用いられる１ワードの基準データ（図４に示す例においては、８ビットの基準データ「Ａ９」（１６進数表示））をシフトレジスター７１に書き込む。
【００４７】
その後、図４に示すように、タイミング制御部７２がクロック信号ＣＬＫのパルスの供給を開始すると、メモリー８０ａからデータＳＯａが読み出され、メモリー８０ｂからデータＳＯｂが読み出され、メモリー８０ｃからデータＳＯｃが読み出される。また、シフトレジスター７１から基準データ（「Ａ９」のそれぞれのビット）が読み出される。このようにして、タイミング制御部７２は、メモリー８０ａ〜８０ｃからデータを読み出すタイミングとシフトレジスター７１から基準データを読み出すタイミングとを同期させる。
【００４８】
インバーター７３は、タイミング制御部７２から供給されるクロック信号ＣＬＫを反転して反転クロック信号ＸＣＬＫを生成し、シフトレジスター７７ａ〜７７ｃ及びインバーター７４に供給する。インバーター７４は、インバーター７３から供給される反転クロック信号ＸＣＬＫをさらに反転して、クロック信号ＣＬＫを１ワード受信完了判定回路７５に供給する。１ワード受信完了判定回路７５は、インバーター７４から１ワード分のクロック信号ＣＬＫが供給される度に、ワードクロック信号ＷＣＬＫを所定の期間においてハイレベルに活性化する（図４参照）。
【００４９】
ＥＯＲ回路７６ａ〜７６ｃは、メモリー８０ａ〜８０ｃに対応して設けられた複数の比較部に相当する。ＥＯＲ回路７６ａ〜７６ｃは、メモリー８０ａ〜８０ｃから読み出されたデータＳＯａ〜ＳＯｃをシフトレジスター７１から読み出された基準データと比較して、比較結果を表す複数の比較結果信号をそれぞれ生成する。
【００５０】
即ち、メモリー８０ａ〜８０ｃの各々から読み出された１ビットのデータが１ビットの基準データに一致する場合に、１ビットの比較結果信号「０」が生成され、メモリー８０ａ〜８０ｃの各々から読み出された１ビットのデータが１ビットの基準データに一致しない場合に、１ビットの比較結果信号「１」が生成される。
【００５１】
ＥＯＲ回路７６ａ〜７６ｃから出力される複数の比較結果信号は、インバーター７３から供給される反転クロック信号ＸＣＬＫに同期して、シフトレジスター７７ａ〜７７ｃにそれぞれ格納される。シフトレジスター７７ａ〜７７ｃの各々は、１ワード（８ビット）の比較結果信号を格納する。
【００５２】
ＮＯＲ回路７８ａは、シフトレジスター７７ａに格納された比較結果信号に基づいて、メモリー８０ａから読み出されたデータＳＯａにエラーが存在するか否かを示すエラー検出信号を生成する。フラグレジスター７９ａは、ワードクロック信号ＷＣＬＫに同期して、ＮＯＲ回路７８ａから出力されるエラー検出信号をフラグとして格納する。ここで、シフトレジスター７７ａ、ＮＯＲ回路７８ａ、及び、フラグレジスター７９ａは、メモリー８０ａから読み出されたデータＳＯａにエラーが存在するか否かを示すエラー検出信号を生成して格納するエラー検出部を構成している。
【００５３】
同様に、シフトレジスター７７ｂ、ＮＯＲ回路７８ｂ、及び、フラグレジスター７９ｂは、メモリー８０ｂから読み出されたデータＳＯｂにエラーが存在するか否かを示すエラー検出信号を生成して格納するエラー検出部を構成しており、シフトレジスター７７ｃ、ＮＯＲ回路７８ｃ、及び、フラグレジスター７９ｃは、メモリー８０ｃから読み出されたデータＳＯｃにエラーが存在するか否かを示すエラー検出信号を生成して格納するエラー検出部を構成している。
【００５４】
このように、データ処理部７０において、複数のエラー検出部が、メモリー８０ａ〜８０ｃに対応して設けられており、ＥＯＲ回路７６ａ〜７６ｃから出力される複数の比較結果信号に基づいて、メモリー８０ａ〜８０ｃから読み出されたデータＳＯａ〜ＳＯｃにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成して格納する。
【００５５】
本実施形態においては、メモリー８０ａ〜８０ｃがシリアルのデータ転送を行う。従って、ＥＯＲ回路７６ａ〜７６ｃの各々が、メモリー８０ａ〜８０ｃの内の対応するメモリーから順次読み出された複数ビットのデータをシフトレジスター７１から順次読み出された複数ビットの基準データと比較して、比較結果を表す複数ビットの比較結果信号を順次生成する。
【００５６】
また、複数のエラー検出部の各々が、複数ビットの比較結果信号に基づいて、メモリー８０ａ〜８０ｃの内の対応するメモリーから順次読み出された複数ビットのデータにエラーが存在するか否かを示す１ビットのエラー検出信号を生成する。それにより、複数ビットのデータ毎に１ビットのエラー検出信号を生成して、エラー検出信号のビット数を削減することができる。
【００５７】
例えば、メモリー８０ａ〜８０ｃの各々から順次読み出された１ワード（８ビット）のデータが１ワードの基準データ（図４に示す「Ａ９」）に一致する場合に、シフトレジスター７７ａ〜７７ｃの各々は、図４に示す期間Ｔ１の初期において、１ワードの比較結果信号「００」（１６進数表示）を出力する。
【００５８】
ＮＯＲ回路７８ａ〜７８ｃの各々は、１ワードの比較結果信号の全てのビットが「０」である場合に、１ビットのエラー検出信号「１」を生成する。その後にワードクロック信号ＷＣＬＫがハイレベルに活性化されると、フラグレジスター７９ａ〜７９ｃの各々は、１ワードのデータにエラーが存在しないことを示す１ビットのエラー検出信号（ハイレベルの「ＯＫ」フラグ）を格納する。
【００５９】
次に、タイミング制御部７２がクロック信号ＣＬＫをローレベルに維持している間に、ＣＰＵ５１が、ＲＡＭ５２に記憶されているデータの内からベリファイ処理に用いられる次の１ワードの基準データ（図４に示す「５６」（１６進数表示））をシフトレジスター７１に書き込む。
【００６０】
その後、図４に示すように、タイミング制御部７２がクロック信号ＣＬＫのパルスの供給を開始すると、メモリー８０ａからデータＳＯａが読み出され、メモリー８０ｂからデータＳＯｂが読み出され、メモリー８０ｃからデータＳＯｃが読み出される。また、シフトレジスター７１から基準データ（「５６」のそれぞれのビット）が読み出される。
【００６１】
図４に示す例においては、メモリー８０ｃから読み出されたデータＳＯｃのＭＳＢ「１」（図中の斜線）がエラーであり、１ワードのデータＳＯｃが１ワードの基準データ「５６」に一致しないので、シフトレジスター７７ｃは、図４に示す期間Ｔ２の初期において、１ワードの比較結果信号「８０」（１６進数表示）を出力する。
【００６２】
ＮＯＲ回路７８ｃは、シフトレジスター７７ｃから出力される１ワードの比較結果信号のＭＳＢが「１」であるので、１ビットのエラー検出信号「０」を生成する。その後にワードクロック信号ＷＣＬＫがハイレベルに活性化されると、フラグレジスター７９ｃは、１ワードのデータＳＯｃにエラーが存在することを示す１ビットのエラー検出信号（ローレベルの「ＥＲＲＯＲ」フラグ）を格納する。
【００６３】
ＣＰＵ５１は、フラグレジスター７９ａ〜７９ｃにアクセスして、フラグレジスター７９ａ〜７９ｃの各々に格納されている複数ビットのエラー検出信号を受信することにより、メモリー８０ａ〜８０ｃから読み出されたデータＳＯａ〜ＳＯｃにエラーが存在するか否かを判定することができる。
【００６４】
データ転送処理において、ＣＰＵ５１は、複数のフラッシュメモリーをそれぞれ内蔵した複数の半導体装置２１０（図２）との間で通信を行い、メモリー８０ａ〜８０ｃから読み出されたデータＳＯａ〜ＳＯｃにエラーが存在しない場合に、メモリー８０ａ〜８０ｃからデータＳＯａ〜ＳＯｃを読み出して複数のフラッシュメモリーにそれぞれ書き込むように複数の半導体装置２１０に書き込み指示情報を送信する。
【００６５】
それにより、複数の半導体装置２１０は、メモリー８０ａ〜８０ｃからデータＳＯａ〜ＳＯｃを読み出して、内蔵したフラッシュメモリーに書き込むことができる。その際に、タイミング制御部７２は、ＣＰＵ５１の制御の下で、複数の半導体装置２１０からそれぞれ出力される複数のクロック信号ＣＬＫａ〜ＣＬＫｃを選択して、複数の半導体装置２１０に対応するメモリー８０ａ〜８０ｃにそれぞれ供給する。
【００６６】
本実施形態によれば、内部のメモリー８０ａ〜８０ｃに一旦格納されたデータＳＯａ〜ＳＯｃのベリファイ処理を行う際に、メモリー８０ａ〜８０ｃに対応して設けられたＥＯＲ回路７６ａ〜７６ｃが、メモリー８０ａ〜８０ｃから同時に読み出されたデータＳＯａ〜ＳＯｃを基準データと比較するので、ベリファイ処理に要する時間を短縮することができる。
【００６７】
また、メモリー８０ａ〜８０ｃに対応して設けられた複数のエラー検出部が、メモリー８０ａ〜８０ｃから読み出されたデータＳＯａ〜ＳＯｃにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成するので、内部の何れかのメモリーから読み出されたデータＳＯａ〜ＳＯｃにエラーが発生した場合に、エラーが発生したメモリーを特定することができる。
【００６８】
＜回路ユニットの製造方法＞
次に、本発明の一実施形態に係るデータ書き込み制御装置を用いて、複数の不揮発性メモリーをそれぞれ内蔵した複数の半導体装置が複数の回路基板に実装された複数の回路ユニットを製造する方法について、図１〜図３及び図５を参照しながら説明する。
【００６９】
各々の回路ユニットは、図２に示すような不揮発性メモリーを内蔵したＭＣＵ等の半導体装置２１０を他の回路素子と共に回路基板２２０に実装することによって製造される。ただし、その状態では回路ユニットは未だ完成しておらず、不揮発性メモリーに必要なデータを書き込むことによって回路ユニットが完成する。
【００７０】
図５は、本発明の一実施形態に係る回路ユニットの製造方法を示すフローチャートである。まず、準備段階として、ユーザーが、図１に示すデータ書き込み制御装置１００の電源入力端子２に電源を接続し、電源スイッチ３をオン状態にする。データ書き込み制御装置１００は、電源スイッチ３がオン状態になると起動し、セットアップボタン５が押されるまで待機する。また、ユーザーは、データ書き込み制御装置１００のＳＤカードスロット４に、データ（書き込みプログラム及び書き込み対象情報）が記憶されたＳＤカードを挿入する。
【００７１】
図５に示す工程Ｓ１において、ユーザーが、複数の回路基板２２０の端子をデータ書き込み制御装置１００の端子に電気的に接続する。それにより、データ書き込み制御装置１００のＬＣＤパネル７に、各々の回路基板２２０との接続状態が表示される。接続が成功した場合には、ユーザーが、セットアップボタン５を押す。
【００７２】
セットアップボタン５が押されると、工程Ｓ２において、図３に示すメインＭＣＵ５０のＣＰＵ５１が、データ書き込み制御装置１００に入力されたデータをメモリー８０ａ〜８０ｃに格納する。例えば、ＣＰＵ５１が、ＳＤカードに記憶されているデータをＳＤカードモジュール２０を介して読み出し、ＲＡＭ５２に記憶させる。それにより、データ書き込み制御装置１００にデータが入力される。
【００７３】
さらに、ＣＰＵ５１が、ＲＡＭ５２に記憶されているデータをメモリー８０ａ〜８０ｃに格納して、データ書き込み制御装置１００のＬＣＤパネル７にセットアップ完了の表示を行う。それにより、ユーザーが、スタートボタン６を押す。スタートボタン６が押されると、ＣＰＵ５１が、ベリファイ処理を開始して、メモリー８０ａ〜８０ｃに読み出しコマンド及びアドレスを出力する。
【００７４】
工程Ｓ３において、ＣＰＵ５１が、ベリファイ処理に用いられるクロック信号ＣＬＫを生成するようにタイミング制御部７２を設定する。クロック信号ＣＬＫは、メモリー８０ａ〜８０ｃ、シフトレジスター７１、及び、インバーター７３に供給される。工程Ｓ４において、ＣＰＵ５１が、データ書き込み制御装置１００に入力されたオリジナルデータの一部を基準データとしてシフトレジスター７１に格納する。
【００７５】
工程Ｓ５において、データ処理部７０が、メモリー８０ａ〜８０ｃから同時にデータを読み出すと共に、それに同期してシフトレジスター７１から基準データを読み出す。工程Ｓ６において、ＥＯＲ７６ａ〜７６ｃが、メモリー８０ａ〜８０ｃから読み出されたデータをシフトレジスター７１から読み出された基準データと比較して、比較結果を表す複数の比較結果信号を生成する。
【００７６】
工程Ｓ７において、複数のエラー検出部（シフトレジスター７７ａ、ＮＯＲ回路７８ａ、フラグレジスター７９ａ等）が、複数の比較結果信号に基づいて、メモリー８０ａ〜８０ｃから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号（フラグ）を生成して格納する。
【００７７】
工程Ｓ８において、ＣＰＵ５１が、メモリー８０ａ〜８０ｃからのデータの読み出しが完了したか否かを判定する。データの読み出しが完了していなければ、処理が工程Ｓ４に戻り、データの読み出しが完了していれば、処理が工程Ｓ９に移行する。
【００７８】
工程Ｓ９において、ＣＰＵ５１が、フラグレジスター７９ａ〜７９ｃから複数のエラー検出信号（フラグ）をそれぞれ読み出す。工程Ｓ１０において、ＣＰＵ５１が、メモリー８０ａ〜８０ｃの何れかから読み出されたデータにエラーが存在するか否かを判定する。エラーが存在する場合には、処理が工程Ｓ１１に移行し、エラーが存在しない場合には、処理が工程Ｓ１２に移行する。
【００７９】
工程Ｓ１１において、ＣＰＵ５１が、メモリーを特定してそのメモリーにエラーが発生した旨（あるいは、そのメモリーが故障した旨）を表す情報を表示するように複数のＬＥＤ８又はＬＣＤパネル７を制御する。その後、一連の処理が終了する。あるいは、ユーザーが、エラーが発生したメモリーに対応する半導体装置２１０をデータ書き込み制御装置１００から取り外した後に、処理を工程Ｓ１２に移行させても良い。
【００８０】
それにより、ユーザーは、エラーが発生したメモリーを用いて回路ユニットを製造することを回避できると共に、どのメモリーにエラーが発生したかを認識することができる。さらに、ＣＰＵ５１は、メモリーを特定してそのメモリーにエラーが発生した旨を表す履歴データを不揮発性格納部に格納して、エラーが発生したメモリーがそれ以降において使用されないようにしても良い。
【００８１】
一方、メモリー８０ａ〜８０ｃから読み出されたデータにエラーが存在しない場合には、工程Ｓ１２において、ＣＰＵ５１が、ベリファイ処理を終了してデータ転送処理を開始し、メモリー８０ａ〜８０ｃからデータを読み出して複数のフラッシュメモリーにそれぞれ書き込むように複数の半導体装置２１０に書き込み指示情報を送信する。
【００８２】
複数の半導体装置２１０のＣＰＵは、書き込み指示情報を受信すると、メモリー８０ａ〜８０ｃからデータを読み出して、読み出されたデータに含まれている書き込みプログラムを実行することにより、読み出されたデータに含まれている書き込み対象情報を複数のフラッシュメモリーにそれぞれ書き込む。それにより、複数の回路ユニットが完成する。
【００８３】
このようにすれば、複数の半導体装置２１０が、書き込みプログラムを実行することにより、自律的に、それぞれのフラッシュメモリーの特性に応じた適切な書き込み条件（書き込み速度又は書き込みタイミング）で書き込みを行うことができる。従って、それらのフラッシュメモリーの特性が異なっていても書き込みが可能であるし、書き込み不良の確率を低下させることもできる。
【００８４】
ユーザーは、データ書き込み制御装置１００の複数のＬＥＤ８（図１）の点灯により、複数の半導体装置２１０にそれぞれ内蔵された複数のフラッシュメモリーに対するデータの書き込みが終了したことを認識し、完成した複数の回路ユニットをデータ書き込み制御装置１００から取り外す。
【００８５】
以上の工程において、製造装置全体を管理する管理部が、データ書き込み制御装置１００等の機材や回路ユニット等の部品が所定の位置に配置されたことを判断して、それらの電気的な接続から、データ書き込み制御装置１００におけるデータの格納、データの読み出し、データの比較（エラー検出）、及び、半導体装置２１０のフラッシュメモリーに対するデータの書き込み制御等の一連の作業を順次開始及び終了させるようにしても良い。
【００８６】
本実施形態によれば、データ書き込み制御装置１００において、内部のメモリー８０ａ〜８０ｃに一旦格納されたデータのベリファイ処理を行う際に、メモリー８０ａ〜８０ｃに対応して設けられたＥＯＲ回路７６ａ〜７６ｃが、メモリー８０ａ〜８０ｃから同時に読み出されたデータを基準データと比較するので、複数の回路ユニットの製造に要する時間を短縮することができる。
【００８７】
また、メモリー８０ａ〜８０ｃに対応して設けられた複数のエラー検出部が、メモリー８０ａ〜８０ｃから読み出されたデータにエラーが存在するか否かを示す複数のエラー検出信号をそれぞれ生成するので、内部の何れかのメモリーから読み出されたデータにエラーが発生した場合に、エラーが発生したメモリーを特定することができる。従って、エラーが発生したメモリーを使用しないようにして、回路ユニットの歩留まりを向上させることができる。
【００８８】
上記の実施形態においては、半導体装置２１０がデータ書き込み制御装置１００から書き込みプログラムを受信する例について説明したが、半導体装置２１０の不揮発性格納部（例えば、マスクＲＯＭ）に書き込みプログラムが予め格納されていても良い。このように、本発明は、以上説明した実施形態に限定されるものではなく、当該技術分野において通常の知識を有する者によって、本発明の技術的思想内で多くの変形が可能である。
【符号の説明】
【００８９】
１…筐体、２…電源入力端子、３…電源スイッチ、４…ＳＤカードスロット、５…セットアップボタン、６…スタートボタン、７…ＬＣＤパネル、８…ＬＥＤ、１０…ＬＣＤモジュール、２０…ＳＤカードモジュール、３０…ＬＥＤモジュール、４０…操作ボタン、５０…メインＭＣＵ、５１…ＣＰＵ、５２…ＲＡＭ、６０…データバス、７０…データ処理部、７１、７７ａ〜７７ｃ…シフトレジスター、７２…タイミング制御部、７３、７４…インバーター、７５…１ワード受信完了判定回路、７６ａ〜７６ｃ…ＥＯＲ回路、７８ａ〜７８ｃ…ＮＯＲ回路、７９ａ〜７９ｃ…フラグレジスター、８０、８０ａ〜８０ｃ…メモリー、９０…シリアル伝送路、１００…データ書き込み制御装置、２００…ターゲットシステム、２１０…半導体装置、２２０…回路基板、２３０…コネクター、２４０…筐体、３００…ケーブル
【図１】
2018181031.tif 000003
【図２】
2018181031.tif 000004
【図３】
2018181031.tif 000005
【図４】
2018181031.tif 000006
【図５】
2018181031.tif 000007