Top Banner
58 いまさら聞けない FPGA のタイミング・エラーとその対処 Vivadoのエラー・メッセージとInTimeを使ったタイミング・ミート法 いまさら聞けない FPGA のタイミング・エラーとその対処 鈴木 量三朗 Ryozaburo Suzuki 一般的に配置配線でタイミング・エラーが発生した場合は,パイプライン段数を増やすなどソース・コードを修正して対応するこ とが多いでしょう.しかしソース・コードが提供されていない IP コアを使っている場合など,ソース・コードを修正できない場合は, 配置配線ツールにさまざまなオプションを指定し,条件を変えて配置配線を何度も試してみるしかありません.ここでは FPGA デザ イン最適化ツールである InTime を使って,タイミングをミートさせる事例について紹介します. ため,これを見た瞬間に絶望的になってしまうかもし れません. とはいえ,遅延にしてはあまりにも大きい値です. これはいったい何を指し示しているのでしょうか? デザインの説明 ここでは,簡単なBRAM(FPGA内蔵のRAM)を使 用したデザインを例に,タイミング・エラーについて 説明します(図2).このデザインには入出力はないも のの,画像処理で行われる典型的なデザインを模して います.つまり,外部メモリからBRAMに転送し, なんらかの処理をしてまた,外部メモリへ書き戻すよ うなケースです.ここでは「なんらかの処理」は省か れていますが,こういったBRAMメモリの扱い方は 画像処理では一般的です. その結果として何が起こるかというと,BRAMに 処理が集中することになります.BRAMをアクセス する近辺での配線の集中は,回路が迂回されるなどの 問題が生じやすいためタイミング・バイオレーション を誘発生しやすいデザインになります. Vivado のエラー関連略号 改めて,Vivadoで配置配線後にProject Summary Vivado のタイミング・エラー 1 配置配線でエラーが発生! 高位合成やRTL設計が終わり,いざ論理合成そ し て 配 置 配 線 で FPGA に 実 装 し て み る と, タ イ ミングに関連するエラー(バイオレーション)が 発生するということはよくあります.図1 は Vivado でImplementaionした直後に「Failed Timing!」とバイ オレーションが出てしまった例です.赤文字で −1542.872nsと表示され,あまりにも大きい値である 設定を変え 繰り返し 最適化 図 1 配置配線でエラーが発生! 図 2 例題として BRAM を使ったデザイン 何やらエラーが!
1

Vivadoのエラー・メッセージとInTimeを使ったタイミング・ …58 いまさら聞けないFPGAのタイミング・エラーとその対処...

Sep 28, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vivadoのエラー・メッセージとInTimeを使ったタイミング・ …58 いまさら聞けないFPGAのタイミング・エラーとその対処 Vivadoのエラー・メッセージとInTimeを使ったタイミング・ミート法

58 いまさら聞けないFPGAのタイミング・エラーとその対処

Vivadoのエラー・メッセージとInTimeを使ったタイミング・ミート法いまさら聞けない

FPGAのタイミング・エラーとその対処鈴木 量三朗 Ryozaburo Suzuki

 一般的に配置配線でタイミング・エラーが発生した場合は,パイプライン段数を増やすなどソース・コードを修正して対応することが多いでしょう.しかしソース・コードが提供されていないIPコアを使っている場合など,ソース・コードを修正できない場合は,配置配線ツールにさまざまなオプションを指定し,条件を変えて配置配線を何度も試してみるしかありません.ここではFPGAデザイン最適化ツールであるInTimeを使って,タイミングをミートさせる事例について紹介します.

ため,これを見た瞬間に絶望的になってしまうかもしれません. とはいえ,遅延にしてはあまりにも大きい値です.これはいったい何を指し示しているのでしょうか?● デザインの説明 ここでは,簡単なBRAM(FPGA内蔵のRAM)を使用したデザインを例に,タイミング・エラーについて説明します(図2).このデザインには入出力はないものの,画像処理で行われる典型的なデザインを模しています.つまり,外部メモリからBRAMに転送し,なんらかの処理をしてまた,外部メモリへ書き戻すようなケースです.ここでは「なんらかの処理」は省かれていますが,こういったBRAMメモリの扱い方は画像処理では一般的です. その結果として何が起こるかというと,BRAMに処理が集中することになります.BRAMをアクセスする近辺での配線の集中は,回路が迂回されるなどの問題が生じやすいためタイミング・バイオレーションを誘発生しやすいデザインになります.● Vivadoのエラー関連略号 改めて,Vivadoで配置配線後にProject Summary

Vivadoのタイミング・エラー1

● 配置配線でエラーが発生! 高位合成やRTL設計が終わり,いざ論理合成そ し て 配 置 配 線 でFPGAに 実 装 し て み る と, タ イ ミングに関連するエラー(バイオレーション)が 発生するということはよくあります.図1はVivadoでImplementaionした直後に「Failed Timing!」とバイオレーションが出てしまった例です.赤文字で −1542.872nsと表示され,あまりにも大きい値である

設定を変え繰り返し最適化

図1 配置配線でエラーが発生!

図2 例題としてBRAMを使ったデザイン

何やらエラーが!