官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页-old > 教程中心 > 问题解答 >

TCL问题【汇总贴】

发布时间:2023-08-03   作者:panwm100 浏览量:

如果同学们的问题我们帖子里面没有的请第一时间联系我微信同步:18022857217吴老师,我们对新问题进行补充!

明德扬最近做了抖音系列短视频,感兴趣可以关注明德扬抖音号:FPGA技巧分享(87481069842)至简书籍短视频(74803215644)
内容不断更新!点赞+关注,学习不迷路!



一、VIVADO TCL问题


【问题1.1】 在TCL开发中,生成BIT流阶段出现错误,提示“Unspecified I/O Standard” 的错误,如下

答: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,即 `define VIVADO 1。


【问题1.3】运行TCL脚本时,提示:couldn't open "../src/mdyLogGen.mdy":no such file or directory。

答:mdyLogGen是用来产生“串口调试信息”的一个文件,当您不需要使用或不清楚是什么时,在TCL或DO文件里最上面添加一句:set LOGGEN_EN 0

       这样就关闭了该功能,就不会报错了。


【问题1.4】 提示编译“altera_mf.v”文件有错误。

答:该问题与【问题2.3】一样,可解决相同解决方法。


【问题1.5】VIVADO报错:ERROR: [DRC PDRC-34] MMCM_adv_ClkFrequency_div_no_dclk: The computed value 60.006 MHz (CLKIN1_PERIOD, net clk_IBUF) for the VCO operating frequency of the MMCME2_ADV site MMCME2_ADV_X0Y1 (cell u_xilinx_pll/MMCME2_ADV_inst) falls outside the operating range of the MMCM VCO frequency for this device (600.000 - 1440.000 MHz). The computed value is (CLKFBOUT_MULT_F * 1000 / (CLKINx_PERIOD * DIVCLK_DIVIDE)). Please run update_timing to update the MMCM settings. If that does not work, adjust either the input period CLKINx_PERIOD (33.330002), multiplication factor CLKFBOUT_MULT_F (2.000000) or the division factor DIVCLK_DIVIDE (1), in order to achieve a VCO frequency within the rated operating range for this device.

答:在使用mdyPLLXilinx的时候,不符合要求。

      首先理解一下PLL的输出时钟是如何计算的,其计算公式通常为:输出时钟 = 输入时钟*M/D。例如输入时钟为50M,M为15,D为3,则输出时钟为250M。

      注意一下以上规范,1. M和D为整数,不超过64,不能为0。2. 输入时钟*M必须在一定范围,上面的提示就是要求在600~1440M之间。

      也就是说,如果输入时钟为50M,那么M必须大于等于12,小于28.8。



二、QUARTUS TCL问题

【问题2.1】提示:quartus_sh 不是内部或者外部命令,也不是可运行的程序

答:需要设置电脑的环境变量,将quartus软件中bin目录,添加到系统的环境变量PATH中。添加后,重新再打开cmd窗口

【问题2.2】运行TCL脚本时,提示:couldn't open "../src/mdyLogGen.mdy":no such file or directory。

答:见本文章的问题1.3


【问题2.3】 错误提示:can't resolve reference to object "IS_VALID_FAMILY" file: altera_mf.v


答:注意一下,altera_mf.v文件是仿真库来的,是仿真才用到的。所以在文件列表里,该文件的类型要为BOTH_FILE



三、MODELSIM DO问题

【问题3.1】在跑VIVADO的仿真时,提示“could not find 'glbl'”


答:glbl这个是VIVADO特有的一个模块,需要在VIVADO库中调用。如果说找不到此模块,说明VIVADO的库调用不正确。

      所以看上图中,前面的错误,Faile to access library,说明引用库不成功。


【问题3.2】MODELSIM仿真出错,提示如:Faile to access library ‘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,提示:Instantiation of "altpll" failed. the design unit was not found.


答:上面是提示,模块“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't read "LOGGEN_EN": no such variable

答:该问题,类似于本贴的问题1.3,请看那个问题答案。


【问题3.5】出现如下错误提示“Faile to access library 'work' to 'work”,如下图。

答:注意问题中,是提示“work”库找不到,而不是其他的仿真库。 解决方法,在DO文件中,添加命令“mdyVerifyStart”,下图所示。在下面中“1”的位置之后,“3”位置之前添加。




四、LATTICE TCL问题


五、安路FPGA TCL问题




   拓展阅读