中原技研

Lenovo Z500のバッテリー交換

Lenovo Z500のバッテリーを交換しました。別に、バッテリーを使うことも無いので交換する必要もないのですが、Windows10にしてからLCD画面の輝度設定がキーボードからできなくて、いちいちBIOSを設定しなおさないとなりませんでした。そこで、BIOSをアップデートしようとしたのですが、バッテリーが0%ではBIOSアップデートができないという無限ループ状態。 仕方なく、バッテリーを購入して […]

テストベンチでハンドシェイク

 テストベンチでいただく質問で一番多いのがハンドシェイクです。それは、次の図のように2つのモジュール間でのやり取りがあるような場合のモジュールを検査したい時に必要になります。 たとえば、上の図でモジュールBの設計を行っているとき、”データをおくっていい?”という問いに対して、モジュールAから”いいよ”という回答を得てから送信データを送る。という事があります。 このようにモジュール間で何かのスタート […]

テストベンチのパターンをファイルから読む

 今回はVerilogでテストパターンをテキストファイルからリードする方法について解説します。数バイト程度のパターンであれば、テストベンチの中に記載するのが一般的ですが、数百バイトものデータを読むと大変です。  私の場合、ADCのデータをテキストファイルにしておいて、テストベンチ入力として扱う事が多いです。ADCの場合、サンプリングクロックで1ワードのデータになりますので、エクセル等で計算によって […]

FPGAデジタル回路のクロック信号

  FPGAを使うにあたって、クロック信号は必須です。デジタル回路の基本ともいえる回路です。しかし、FPGAの入門書にはクロックを入力する。という事だけが掛かれていて、その回路設計の説明が省かれている事が多いようです。  クロックの回路設計について手順を追って説明します。  クロック信号は上図のように連続した方形波形です。一般的にFPGAで使用するのは数MHz~数十MHzです。実用的なのは10MH […]

VHDLのテンプレートを紹介

 初心者がVHDLを記述するにあたり、構文を学ぶ必要があります。コンピュータ言語と同じようにVHDLやVerilogなどのハードウェア記述言語にも構文があります。  まず、VHDLを記述するにあたり、テキストエディターでファイルを作ります。Intel社やXilinx社などのFPGAメーカーが提供している開発環境を使う場合には、テキストエディターは無くても構いません。開発環境に組み込まれています。し […]

FPGAのコンフィグレーション

 FPGAは主にメモリで形成されています。しかも、FPGAの場合にはメモリは揮発性メモリです。つまり、電源を切ると忘れてしまうタイプです。  FPGAをプリント基板に実装したような電子回路基板を設計するにあたり、FPGAの電源投入時からの作法を知っておく必要があります。FPGAは揮発性メモリから形成されているので、何らかの不揮発性メモリを外部に用意する必要があります。  ちょうど、パソコンと似たよ […]

FPGAとCPLDの違い

 本ブログでは、FPGAを主に取り上げています。FPGAはField-Programmable Gate Arrayの略ですが、主にSRAMで構成されています。これに対して、似たような機能を持つデバイスで、CPLDというのがあります。これはComplex Programmable Logic Deviceの略で主に不揮発性メモリで構成されています。実は、CPLDの前にPLDというデバイスがあります […]

VHDLでfunctionを使う

 以前に組み合わせ回路について記述しました。VHDLで組み合わせ回路を記述するにあたり、functionを使うと便利です。processは順序回路ですが、組み合わせ回路でひとつの塊を作るのがfunctionです。  functionを使う理由は様々ですが、大きく2つあります。 同じ組み合わせ回路を何度も使いまわししたい。 一つの塊にすることで、後からソースを読んでわかりやすくしたい。  プログラム […]

デュアルポートRAMをFIFOにする

 まず、FIFOとは何か。という解説をします。FIFOはFirst In, First Outの頭文字から来ていますが、日本語では先入れ先出しです。品出しの方法としても知られていると思います。  FIFOの基本構造を次に示します。  FIFOには入力と出力があり、入力していく順番に出力します。シフトレジスタと似ていますが、出力側(リード側)はリードする好きなタイミングでアクセスする。というのがシフ […]

FPGAにおけるデュアルポートRAMの設計

 前回RAMの設計をしました。それを応用して、デュアルポートRAMの設計に発展させます。  デュアルポートRAMは一つのRAMに対して、ライト側とリード側で独立して信号を与えるタイプのRAMです。イメージ的には下図のようになります。  このようにポートは2つありますが、RAMは一つのメモリです。応用範囲は多く、FIFOや画像メモリといったタイプの物はこのデュアルポートRAMのアドレス管理を複雑にし […]

1 10