INTENTION:VHDL - std_logic_vectors的數組轉換成std_logic_vector
我從上ZedBoard RAM讀數據時,RAM有32位長字,所以我使用下面的緩衝
type mem_word is array (0 to 127) of std_logic_vector(31 downto 0);
signal buffer_word : mem_word;
但然後,我想以線性方式解決數據中的一箇中間線性緩衝區
signal buffer_linear : std_logic_vector(4095 downto 0);
buffer_linear <= buffer_word; -- !!! PROBLEM
所以我可以很容易地解決任何問題位而不重新計算(buffer_word的)特定字中的位置。
問題:
如何從std_logic_vectors的陣列進入1個長std_logic_vector?有沒有辦法避免在循環中連接128個單詞? (類似buffer_linear < = buffer_word;)
RAM塊可以使用的條件是什麼?一次訪問位是否有限制? –
@MartinG最好的辦法是看看你的綜合工具內存推理模式。例如這裏http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_1/ug901-vivado-synthesis.pdf第95頁及以後 –
該條件可能包括讀寫過程都是同步的,即因爲BlockRam是一個同步RAM,並且同時讀取一些上限(32或64)位。 –