VHDL

1/4ページ

VHDLのテンプレートを紹介

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

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のアドレス管理を複雑にし […]

FPGAにおけるRAMの設計

 FPGAでRAMを使う場合、通常はFPGAメーカーの開発環境で用意しているIPを使います。理由は、時間的に効率が良い。というのもありますが、メーカー製のIPを使うと、RAMのメモリにあたるDFFの配置をFPGA内の専用ハードウェアに割り当ててくれるからです。  Intel製やXilinx製のFPGAであれば、FPGAデバイスの中にRAMをハードウェアで内蔵しています。このRAMはブロックで管理さ […]

エンコーダー

 電子回路の中でエンコーダーと呼ばれるものは、多くの種類があって、どんな場面で「エンコーダ」と言っているのか。という前提がなくては、エンコーダがどのような物かはわかりません。それぐらい、エンコーダーという言葉は、一つの物や事象を示す言葉ではなくなっています。  ここでのエンコーダはFPGAの内部回路として、人間がわかりやすい値を機械(電子回路)がわかりやすい値に変換することを言います。日本語で記述 […]

デジタル回路のカウンタ

 カウンタとは、数を数える回路です。何を数えるのかは、回路によって違います。ベルトコンベアの上を流れる製品を数えたり、クロックの数を数えたり、キーボードを押した回数を数えたり。デジタル回路で数を数える回路というのは、頻繁に出てきます。  カウンタ回路はいろいろな方式があります。ここでは、実践で数を数える事を学びますので、カウンタ回路の方式については述べません。カウンタとは何か、どのような場面で使う […]

VHDLテストベンチの始め方

 テストベンチの検索が多いので、基本的な1つの回路を1つのテストベンチで検査する。という方法を詳しく解説いたします。  テストベンチは次の図のように、自分が作った回路(黄色部分)が思い描いたように動いているのか? という検査をするための”回路”になります。図では緑で示した部分がテストベンチです。  テストベンチを先に作る人はあまり居ないと思います。先にshift.vhdの部分を作ります。作るにあた […]

VHDLの組み合わせ回路

 デジタル回路設計において、順序回路の解説は多いのですが、組み合わせ回路の解説が少なくて、どのように記述すれば良いのか質問を受ける事があります。  特にソフトウェアの経験がある方は、同時実行である組み合わせ回路のタイミングで悩む事が多い様です。 VHDLの回路はarchitectureの中で記述していますが、processは順序回路なので、それ以外のarchitectureの中が組み合わせ回路の記 […]

同期設計の方法

 FPGAは同期設計するのが基本。というのは本ブログでも解説していますが、言葉でわかっていても、なかなか同期設計の本質がつかめない。という話をよく聞きます。  初心者のうちは、同期設計を心掛けるよりも、与えられたクロックでのみ設計する。という方向の方が近道かも知れません。  FPGAは高速線路のグローバル信号領域とロジックセル領域に分かれており、グローバル信号の周りにロジックセルが配置されるような […]

1 4