2016-08-15 71 views
0

當我嘗試使用Vivado HLS進行系統化時,我得到了有關不可合成類型的錯誤。我的項目是關於huffman編碼。使用HLS實現霍夫曼編碼c

@I [HLS-10] Starting code transformations ... 
@I [HLS-10] Checking synthesizability ... 
@E [SYNCHK-11] huff.c:17: Constant 'temp' has an unsynthesizable type '[13 x %struct.tnode.0.2.4]*' (possible cause(s): structure variable cannot be decomposed due to unsupported type conversion or memory copy operation). 
@E [SYNCHK-11] huff.c:21: Constant 'ptemp' has an unsynthesizable type '[13 x %struct.tnode.0.2.4*]*' (possible cause(s): pointer to pointer or global pointer). 
@E [SYNCHK-72] huff.c:24: unsupported c/c++ library function 'qsort'. 
@E [SYNCHK-41] huff.c:38: unsupported pointer reinterpretation from type '%struct.tnode.0.2.4 = type { %struct.tnode.0.2.4*, %struct.t...' to type 'i8*' on variable 'ptemp'. 
@E [SYNCHK-42] huff.c:47: pointer comparison is not supported. 
@I [SYNCHK-10] 5 error(s), 0 warning(s). 
@E [HLS-70] Synthesizability check failed. 

而且在做C模擬器時也有一些困難。

**.. 
... 
@I [APCC-3] Tmp directory is apcc_db 
@I [APCC-1] APCC is done. 
@I [LIC-101] Checked in feature [VIVADO_HLS] 
    Generating csim.exe 
@E Simulation failed: SIGSEGV. 
@E [SIM-1] CSim failed with errors. 
4 
    while executing 
"source C:/Users/qijun/Desktop/Huff/hls/solution1/csim.tcl" 
    invoked from within 
"hls::main C:/Users/qijun/Desktop/Huff/hls/solution1/csim.tcl" 
    ("uplevel" body line 1) 
    invoked from within 
"uplevel 1 hls::main {*}$args" 
    (procedure "hls_proc" line 5) 
    invoked from within 
"hls_proc $argv" 
@I [LIC-101] Checked in feature [VIVADO_HLS] ** 

附件包括我的「頂級功能」的代碼。我對HLS工具沒有經驗。有人可以幫我解決這個問題嗎?我們如何將數據結構包含在Vivado HLS的頂層函數中? 謝謝

+0

如果您在導致問題的問題中添加了簡短的示例代碼,並且可能只關注單個問題,那將會很有幫助。 –

回答

0

首先,您忘了添加附件或任何代碼。其次,我強烈建議您至少閱讀Xilinx文檔中的Recommended Coding Styles,他們特別解釋某些類型的C結構不受支持,例如您在輸出中看到的結構。

所以你可能只是想重構或重新編碼你的霍夫曼的一部分,以適應這些標準。