System Generator: HDL Black Box include mem files.
조회 수: 19 (최근 30일)
이전 댓글 표시
I have successfully managed to wrap up most of my HDL cores in black boxes in Simulink. They can be successfully simulated and synthesized with System Generator. I've done all this using this user guide.
One block I am having issue wrapping up is a FIR filter for which I have specified window coefficients in .mem files for the BRAM's to load. Now, to add all the VHDL source files the black box needs for compilation/simulation, I used the following commands in the black box configuration MATLAB script (see page 186 of the linked document):
addFile("filename");
addFileToLibrary("filename","library");
These commands successfully add VHDL source files to the Vivado project (in the correct library) that System Generator produces. If I try to include a '.mem' file using the above commands however, it does not add it and synthesis down the line will complain that I do not have the required memory files in my Vivado project (obviously).
No where in that linked document is there mention of how to include memory files so I am reaching out to see whether I am missing something or there is a way in which one ought to overcome this hurdle.
PS. I've asked this question in both the Xilinx Community forum and the Xilinx Reddit page but have received no answer as yet... which is why I am asking here.
Thank you.
댓글 수: 0
채택된 답변
Kiran Kintali
2021년 5월 11일
It looks like it is being addressed here.
댓글 수: 2
Kiran Kintali
2021년 5월 11일
(add discussion here)
This is because m-script for sysgen does not recognize the .mem files currently. MEM files were introduced with XPM and this support is missing in sysgen. An enhancement request is filed to support this.
This issue can be worked around by adding the absolute path of the mem file in the HDL generic declaration as well as in the m-script as below
GENERIC(
g_adr_w : NATURAL := 9;
g_dat_w : NATURAL := 22;
g_nof_words : NATURAL := 2**9;
g_rd_latency : NATURAL := 2; -- choose 1 or 2
g_init_file : STRING := "C:\sysgenfiles\pfir_coeffs_hanning_t1_p512_b22_wb1_0.mem";
g_ram_primitive : STRING := "auto" --choose auto, distributed, block, ultra
);
this_block.addGeneric('g_init_file','STRING','"C:\sysgenfiles\pfir_coeffs_hanning_t1_p512_b22_wb1_
When the netlist is generated from Sysgen, the code will refer the mem file in the given path and synthesize fine. Only drawback is if the code is ported to other machine or if the file is moved, the mem file location needs to be provided again.
추가 답변 (1개)
Kiran Kintali
2021년 4월 30일
Are you referring to Xilinx System Generator (XSG) model usecase here? Can you share the model with the issue? What release are you using?
댓글 수: 5
Kiran Kintali
2021년 5월 5일
Thanks for the additional info. Waiting to hear from Xilinx team. No update yet.
참고 항목
카테고리
Help Center 및 File Exchange에서 HDL Code Generation에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!