【问题1.1】在TCL开发中,生成BIT流阶段出现错误,提示“UnspecifiedI/OStandard”的错误,如下
答:1.如果是使用MDY开发板,则其管脚文件必引用以下目录的:F:svnmdy_flow_common_mdyCommForBoard_mdyBoardPin。不能是自己配置的。2.注意工程顶层文件的接口名,必须与管脚文件里的名称相同,如果不同,要改顶层文件的接口信号名!!例如下面案例中,左边的顶层文件定义了接口lcd_rgb,但右边的管脚文件里没有定义信号,而是定义了lcd_dat。因此,要将左边的信号lcd_rgb改为lcd_dat。
【问题1.2】在TCL开发中,提示找不到模块,该模块名为:altpll等,如下图
答:上面是提示模块“altpll”找不到。思路:
1.如果是您用代码写的模块,就是表示文件列表中缺少这个模块,请把这个模块添加进文件列表,或者文件列表中的定义搞错了(不要是BOTH_FILE类型,这个是仿真用的)。
2.该模块是一个设计库文件或者是ALTERA设计译,那么检查一下TCL中的宏定义,要定义成VIVADO,即`defineVIVADO1。
【问题1.3】运行TCL脚本时,提示:couldn'topen"../src/mdyLogGen.mdy":nosuchfileordirectory。
答:mdyLogGen是用来产生“串口调试信息”的一个文件,当您不需要使用或不清楚是什么时,在TCL或DO文件里最上面添加一句:setLOGGEN_EN0
这样就关闭了该功能,就不会报错了。
【问题1.4】提示编译“altera_mf.v”文件有错误。
答:该问题与【问题2.3】一样,可解决相同解决方法。
【问题1.5】VIVADO报错:ERROR:[DRCPDRC-34]MMCM_adv_ClkFrequency_div_no_dclk:Thecomputedvalue60.006MHz(CLKIN1_PERIOD,netclk_IBUF)fortheVCOoperatingfrequencyoftheMMCME2_ADVsiteMMCME2_ADV_X0Y1(cellu_xilinx_pll/MMCME2_ADV_inst)fallsoutsidetheoperatingrangeoftheMMCMVCOfrequencyforthisdevice(600.000-1440.000MHz).Thecomputedvalueis(CLKFBOUT_MULT_F*1000/(CLKINx_PERIOD*DIVCLK_DIVIDE)).Pleaserunupdate_timingtoupdatetheMMCMsettings.Ifthatdoesnotwork,adjusteithertheinputperiodCLKINx_PERIOD(33.330002),multiplicationfactorCLKFBOUT_MULT_F(2.000000)orthedivisionfactorDIVCLK_DIVIDE(1),inordertoachieveaVCOfrequencywithintheratedoperatingrangeforthisdevice.
答:在使用mdyPLLXilinx的时候,不符合要求。
首先理解一下PLL的输出时钟是如何计算的,其计算公式通常为:输出时钟=输入时钟*M/D。例如输入时钟为50M,M为15,D为3,则输出时钟为250M。
注意一下以上规范,1.M和D为整数,不超过64,不能为0。2.输入时钟*M必须在一定范围,上面的提示就是要求在600~1440M之间。
也就是说,如果输入时钟为50M,那么M必须大于等于12,小于28.8。
二、QUARTUSTCL问题
【问题2.1】提示:quartus_sh不是内部或者外部命令,也不是可运行的程序
答:需要设置电脑的环境变量,将quartus软件中bin目录,添加到系统的环境变量PATH中。添加后,重新再打开cmd窗口。
【问题2.2】运行TCL脚本时,提示:couldn'topen"../src/mdyLogGen.mdy":nosuchfileordirectory。
【问题2.3】错误提示:can'tresolvereferencetoobject"IS_VALID_FAMILY"file:altera_mf.v
答:注意一下,altera_mf.v文件是仿真库来的,是仿真才用到的。所以在文件列表里,该文件的类型要为BOTH_FILE
三、MODELSIMDO问题
【问题3.1】在跑VIVADO的仿真时,提示“couldnotfind'glbl'”
答:glbl这个是VIVADO特有的一个模块,需要在VIVADO库中调用。如果说找不到此模块,说明VIVADO的库调用不正确。
所以看上图中,前面的错误,Failetoaccesslibrary,说明引用库不成功。
【问题3.2】MODELSIM仿真出错,提示如:Failetoaccesslibrary‘unimacro_ver’at"unimacro_ver"等错误。
答:这是仿真使用到的库未添加成功的意思。我们仿真的时候,需要添加FPGA的一些仿真库,这个仿真库包括了一些仿真模块的信息。
VIVADO仿真库的添加方法,可以看:F:/svn/mdy_flow_common/06_mdyCommForBoardTest/lib/xilinx/修改modelsim.ini文件.txt
ALTERA仿真库的添加方法,直接将F:/svn/mdy_flow_common/06_mdyCommForBoardTest/lib/altera/altera_mf.v文件加到文件列表中。
LATTICE仿真库的添加方法,可以看:F:/svnmdy_flow_common/06_mdyCommForBoardTest/lib/lattice/修改modelsim.ini文件.txt
【问题3.3】仿真QUARTUS,提示:Instantiationof"altpll"failed.thedesignunitwasnotfound.
答:上面是提示,模块“altpll”(或其他名字)找不到。请根据以下思路来找。
1.前提条件:该模块不是自己写的;ALTERA模式。解决方法:就很有可能是库文件缺失,这个时候要添加库文件。ALTERA的库文件添加方式:直接将F:/svn/mdy_flow_common/06_mdyCommForBoardTest/lib/altera/altera_mf.v文件加到文件列表中。如果仍然无效,请看下一步。
2.前提条件:是自己生成的IP核的子模块,并生成的IP核目录,能搜索到相同名字的模块。解决方法:将生成的子模块添加到工程,或者f文件列表(注意,不仅要添加qip文件,还要添加提示的模块文件),如下图。
上图中的文件列表,1是qip文件,是QUARTUS要用到的;2~4是IP核生成的文件,均要添加进来。
注意,2~4是VHDL文件,即IP核生成了VHDL格式的文件,那么在前面的文件类型中,应该为:BOTH_FILE_VHDL。
【问题3.4】Error:can'tread"LOGGEN_EN":nosuchvariable
答:该问题,类似于本贴的问题1.3,请看那个问题答案。
【问题3.5】出现如下错误提示“Failetoaccesslibrary'work'to'work”,如下图。
答:注意问题中,是提示“work”库找不到,而不是其他的仿真库。解决方法,在DO文件中,添加命令“mdyVerifyStart”,下图所示。在下面中“1”的位置之后,“3”位置之前添加。