【bit_vector的数据形式变成Compile Error】
※现象
利用VHDL叙述作List15-1的8位Counter设计时,使用所谓的「bit_vector」数据形式(Data Type),然而事实上bit_vector的bit数据形式抓取值为0与1,。本设计的BX bit_vector是企图设计2进位(Binary)Counter,期待BX的表示值能被当作2进位处理,在第18行该2进位祇用一个加算合成电路,不过该电路Com pile时却发生错误(Error)。
※原因分析
主要原因是未呼叫bit_vector的算术演算Package造成上述错误(Error)。因为在第18行是作bit_vector的BX_fb与integer 1的算术演算,因此必需叫出算术演算Package,虽然第3行有呼叫st_logic_unsigned,不过该Package却无法支持(Support)bit_vector的算术演算。
※对策
最简单的对策是呼叫可支持(Support) bit_vector的算术演算Package,具体方法是变更List15-1第3行的叙述:
userk.bit_arith.all;
必需注意的是关数名称会因Compiler有所不同,因此必需事先确认Compiler的使用说明(Manual)避免会产生错误(Error)。例如List15-2第1行至第20行就是叙述将bit_vector「Inclement」的关数,第23行至第44行也是使该关数叙述Counter,它相当于List15-2的第40行。除了使用所谓的bitinc关数之外,如果延用Source Code时,可将第1行至第20行复制(Copy)置于Source Code的前端,再以其它檔(File)读入制同一个Project,之后祇要如第25行将User Package叫出就可使用。