ROM 最適化 - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

次のコードは、配列が static または const 修飾子で指定されていなくても、Vitis HLS で ROM がインプリメントされる例を示しています。これは、Vitis HLS でどのようにデザインが解析され、最適なインプリメンテーションが決定されるかを示しています。修飾子はツールをガイドするためのもので、最終的な RTL はこれによって決定はされません。

#include "array_ROM.h"

dout_t array_ROM(din1_t inval, din2_t idx)
{
 din1_t lookup_table[256];
 dint_t i;

 for (i = 0; i < 256; i++) {
 lookup_table[i] = 256 * (i - 128);
 }

 return (dout_t)inval * (dout_t)lookup_table[idx];
}

この例の場合、lookup_table 変数が最終 RTL でメモリ エレメントになるのが最適なインプリメンテーションであると判断されます。