一个CSDN上下载的MP3音频解码文件在测试时报错无法解决。代码是VHDL实现的
在Quartus13.0中编码时报错说确说的头文件"imdct_package" ,经查确实在头文件引用中出现了文件包中没有的文件。但是在代码包是完整的且配有较为完整的功能说明,应该是不会残缺。而且评论区回复也说测试无误。
求解惑
文件放在百度网盘了
链接:https://pan.baidu.com/s/1fniBOg5kskyJgx2n4PYzKw?pwd=zwdo
提取码:zwdo
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;
use IEEE.std_logic_arith.all;
use work.mul.all;
use work.all_types.all;
**use work.imdct_package.all;**
Error (10482): VHDL error at imdct3_gen.vhd(8): object "imdct_package" is used but not declared
Error (10800): VHDL error at imdct3_gen.vhd(8): selected name in use clause is not an expanded name
Error: Quartus II 64-Bit Analysis & Synthesis was unsuccessful. 2 errors, 0 warnings
Error: Peak virtual memory: 4615 megabytes
Error: Processing ended: Tue Aug 30 20:12:44 2022
Error: Elapsed time: 00:00:01
Error: Total CPU time (on all processors): 00:00:01
Error (293001): Quartus II Full Compilation was unsuccessful. 4 errors, 0 warnings
有没有有经验或者特别强的朋友能跑下来教我,万分感谢T_T
在网上down的源码有些时候要自己来编译,用Quartus来编译VHDL的源码,当有package的时候,不能像在ISE中那样直接用work.packagename.all就可以把package包含进去,用quartus会出现一个错误说找不到这个package。解决这个问题可以使用user library,在当前项目中新建一个目录,起名比方说叫my_lib,然后把要编译的package放进去,然后在Assignments中settings(ctrl + shift + E)左边User Libraries,在右边的library name中添加刚才建的目录即my_lib,然后选左边的files把package文件添加到工程里面。在工程中要引用这个package就可以这样写,在需要引用这个package的文件头添加
library my_lib;
use my_lib.packagename.all;
,执行编译就可以了。
!!!好耶感谢大佬!