運算子 LineMemoryRandomRd

Library: Memory 運算子

LineMemoryRandomRd(行記憶體隨機 讀取)運算子是一個具備隨機讀取存取功能的小型記憶體區塊。 可透過將位址傳輸至 RColA 連接埠(讀取欄位位址)來執行 資料的隨機讀取。該 運算子將利用這些位址,依據指定的座標讀取行資料。 產生的輸出幀將具有與位址輸入相同的影像寬度。

有關該運算子的延遲資訊, 請參閱表 46,「庫記憶體中各運算子的個別延遲」。

LineMemoryRandomRd 運算子用於儲存傳入的 影像行,並允許隨機讀取存取。行資料是透過連結 I 傳輸至 該運算子的。

所需的記憶體大小由 輸入幀的影像寬度(最大影像寬度)決定。

該運算子可實作為兩種 變體。即單緩衝區實作與雙緩衝區實作。 第一種實作可節省 RAM 空間,但無法讓寫入與 讀取及時重疊。 因此,在寫入 狀態期間,位址輸入鏈路 RColA 和 RRowA 將被停用。後者則將 RAM 容量加倍,並允許隨機讀取最後 一幀,同時透過輸入鏈路 I 接收下一幀。

此運算子有兩種狀態:

  1. 寫入狀態:連結 I 的像素以線性方式儲存於緩衝區中,也就是說, 像素的座標即構成緩衝區中的位址。

  2. 讀取狀態:記憶體會根據輸入端 RColA 所提供的位址進行讀取。位址數量與位址連結影像寬度共同決定 輸出影像的寬度。 例如,若在 位址輸入端輸入僅由一個像素組成的行,則輸出幀寬度將僅包含一個像素。 輸入行中的其他像素將被捨棄。

影像資料輸入與位址輸入 之間並非同步。兩者的影像尺寸可能不同。

請注意輸入連結的時序。 位址輸入絕不能由與資料連結輸入 I 相同的運算子處理,且不得 進行緩衝。這是因為在將影像資料寫入運算子期間,無法接受任何 用於讀取當前幀的位址。只有當幀已完全儲存至 緩衝區後,才可接受位址。 在許多應用中,操作元 會用於為 這些位址生成影像。

以下 圖示說明了該時序。

操作員使用 FPGA 內部的區塊 RAM 記憶體。 因此,會使用非VisualApplets 型態的RAM類別幀擷取器資源。 FPGA內建的區塊RAM容量有限。全解析度的幀可能無法完全容納於 FPGA內建的區塊RAM中。建議考慮使用運算子 FrameBufferRandomRead 運算子。

Operator Restrictions

  • 不支援空影格。

  • 不支援具有不同行長度的影像。

LineMemoryRandomRd模擬

執行VisualApplets 模擬有兩種方式:基於影像的模擬(在「系統設定」中:啟用「模擬資料 流同步」),以及逐行模擬(在「系統 設定」中:啟用「模擬 1D 逐行」)。有關 模擬的一般資訊,請參閱「模擬」。

  • 逐行模擬

    在逐行模擬中,各行會分別進行處理。輸出行的數量 取決於輸入鏈路I和 RColA 上的輸入行數,以及輸入I 的影像通訊協定。

    • I.Img 協定=VALT_IMAGE2D:

      只有當 位址輸入RColA上的行數足夠處理輸入I 上的整個資料影像時,才會處理輸入影像。 在此模擬中,位址輸入RColA上的影像協定將被忽略。 若 可用的位址線不足,則相應的輸入影像將不 被處理,且不會產生輸出影像,以避免在 模擬中出現不完整的幀。此模擬行為與硬體中實際的 LineMemoryRandomRd行為有所不同。 如上圖所示,硬體中的運算子會逐行處理傳入的 資料。因此,無論是否有足夠的位址線可用來處理整個輸入 影像,硬體中的任何傳入資料行都會 盡快被處理。

    • I.Img 協定=VALT_LINE1D:

      輸入I上的任何傳入資料線,都會在 輸入RColA上的對應位址線可用時立即進行處理。在此模擬中, 位址輸入RColA上的影像 通訊協定將被忽略。

  • 基於影像的模擬

    輸入I上的傳入資料影像高度與輸入RColA上的 傳入位址影像高度必須相同。在此模擬中,影像 協定將被忽略,因為一維鏈路上的線序會被視為 二維影像進行處理。

I/O Properties

Property Value
Operator Type M
Input Links I,影像資料輸入
RColA,讀取位於 I 處的像素之欄位位址
Output Link O,資料輸入

同步與非同步輸入

  • 所有輸入彼此非同步。

Supported Link Format

Link Parameter Input Link I 輸入鏈結 RColA Output Link O
Bit Width [1, 64]1 auto2 as I
Arithmetic {unsigned, signed} 無號數 as I
Parallelism 1 as I as I
Kernel Columns any 1 as I
Kernel Rows any 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} {VALT_IMAGE2D, VALT_LINE1D} as I
Color Format any VAF_GRAY as I
Color Flavor any FL_NONE as I
Max. Img Width any any 如 RColA
Max. Img Height any as I as I

1

對於無符號輸入,輸入位元寬度的範圍為 [1, 64]。至於 有符號輸入,其範圍為 [2, 64]。對於無符號色彩輸入,其範圍為 [3, 63];至於有符號色彩輸入,其範圍為 [6, 63]。

2

列位址的 bit width 為:

Parameters

實施
Type 靜態參數
Default SingleBuffer
Range {單一緩衝區, 雙緩衝區}

此參數用於選取 FrameMemoryRandomRd 的實作(參見 上文)。

Examples of Use

以下範例展示了運算子 LineMemoryRandomRd 的使用方式: