nao-milkの経験ブログ

25年間の半導体エンジニア経験で知り得た内容を記載したブログです。

論理設計

CRC処理をロジック化

CRCをVerilogでLogic化しました。 通信系や制御系でCRCを設計していましたが、特定用途だったため、生成多項式も固定、bit幅も固定、右/左送りも固定だったため、汎用性の高いCRCを作成してみました。1クロックで処理するため、半導体の設計では定番に近い構…

FRAMにアクセス (Quartus実行編)

Quartusの論理合成とインプリメントとなります。 ここでは、単に実行するだけになるため、実行結果とSTA結果のみ記載します。 また、FRAM I/FブロックとFRAMデバイス間に遅延を付けて行ったシミュレーション波形も載せています。 TOP構成は、以下をご参照く…

FRAMにアクセス (FPGA Top作成編)

Platform DesignerとFPGA Topの作成になります。 FPGAのTOP構成 Platform Designer ブロック構成図 System Contents アドレスマップ Quartusに読み込ませるファイル クロック/リセット生成 最後に FPGAのTOP構成 FPGAのTOP構成は以下となります。(Quartusを…

FRAMにアクセス (Verilogコーディング編)

FRAM I/Fのverilogコーディングとなります。 ブロック仕様は以下を参照ください。 nao-milk.hatenablog.com FRAM I/Fブロック構成 ソースコード FRAM I/Fブロックトップ Avalon-MM Slave I/F Avalon-MM Master I/F Buffer SPI I/F Clock transfer マクロ生成…

FRAMにアクセス (ブロック仕様編)

FRAM(強誘電体RAM)をアクセスするためのFPGAをテーマに、FPGAを設計するまでの一連の工程を記載して行こうと思います。 ブロック仕様 Verilog-HDLによるコーディング シミュレーション(RTLシミュレーション) Platform DesignerとFPGA Topの作成 論理合成とイ…

除算回路を使用しない方法

除算回路を使用せずに乗算とビットシフトで演算する方法について説明しています。 演算式②のRTL記述例を追加しました。

リセット回路について

ASICでも、FPGAでもリセット回路(非同期リセット)について気を付ける必要があります。 (ASICではDFTも考慮する必要があります。) 製品の使用環境と基板上に関して、入力端子リセットにノイズが乗るのかなど、予め確認してからリセット構成を検討します。 リ…

画像処理の基本 その3

画像処理の拡大と縮小処理です。(メモリを使用する場合) 基本概念は以下の通りです。 【拡大処理】 入力された画像データをメモリに格納し、変倍カウンタに応じて、 メモリからリードして拡大します。 【縮小処理】 変倍カウンタに応じてメモリに格納し、1ラ…

画像処理の基本 その2

画像処理で過去のラインを使ってマトリクス演算する場合です。 例えば、 フィルタ処理、JPEGで使うDCTなど 外部デバイス(CCDなど)からライン毎に画像データが入力される場合、 フレームメモリを使用せずラインメモリを使って、必要な過去ラインデータを 取得…

画像処理の基本 その1

画像処理を設計する上で私は画素データとは別に以下の信号を準備して、 画素データと一緒にパイプライン処理させます。 ①フレーム開始信号(パルス信号) ②フレーム終了信号(パルス信号) ③ライン開始信号(パルス信号) ④ライン終了信号(パルス信号) ⑤画像データ…