不同ISE软件版本之间VHDL程序的运行
问:
第二章给的混频器的例子,在ISE13.4下根本运行不了
调用matalb生成的数据memroy数据,会报错
而且书上说数据宽度是10位,实际软件上却用的16位
答:
收到你的邮件后,我又将光盘中第二章的混频器例子进行了运行检查。运行一切正常,没有问题。并且书中所有的实例程序都是由我精心编写,且通过功能仿真及时序仿真。实际上,大部分程序可以直接在工程设计中使用。
你所说的“调用matalb生成的数据memroy数据,会报错”的问题,不知报错提示是什么?我猜测是下面的错误提示:
??? Error using ==> fprintf
Invalid file identifier -1.
Error in ==> E2_4_SimSigPrduce at 23
fprintf(fid,'memory_initialization_radix = 10;\r\n');
错误信息是指使用“fprintf”命令时出错,原因可能是你没有建立文件存放路径中的文件夹。只需将代码fid=fopen('d:\DuYong\E2_4_SinIn.coe','w');修改为“fid=fopen('d:\E2_4_SinIn.coe','w');”即可正确运行。关于本书的使用方法,请参见本书前言中的“如何使用本书”部分内容。
关于“第二章给的混频器的例子,在ISE13.4下根本运行不了”的问题,可能原因为:
你使用的是ISE13.4版本,本书所有实例均是使用ISE14.7编写的。通常来讲,由于更换了软件版本,程序中的IP核需要重新生成一下,才能正确运行。不仅如此,在ISE中,即使同一个工程,在采用不同目标器件进行实现时,所用到的IP核通常都需要重新生成,才能正确运行。
关于 而且书上说数据宽度是10位,实际软件上却用的16位 的问题
书上说的数据位宽10位,指的是输入信号及本振信号的位数。在二进制运算中,两个10位数相乘,需要用20位才能实现全精度运算,因此,输出采用了20位。
杜勇