微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > Error: Failed to find 'PLL_LOCKG' in hierarchical name

Error: Failed to find 'PLL_LOCKG' in hierarchical name

时间:10-02 整理:3721RD 点击:
今天在Modelsim仿真Xilinx设计的时候遇到了这样一个很奇怪的错误:


  1. # Model Technology ModelSim SE vcom 6.5c Compiler 2009.08 Aug 27 2009
  2. # -- Loading package standard
  3. # -- Loading package std_logic_1164
  4. # -- Loading package numeric_std
  5. # -- Loading package vcomponents
  6. # -- Compiling entity ii_clk_align
  7. # -- Compiling architecture arch of ii_clk_align
  8. # vsim -L work -L secureip -L simprims_ver -L uni9000_ver -L unimacro_ver -L unisims_ver -L unisim -L xilinxcorelib_ver -coverage -voptargs=\"+acc\" -pli novas.dll -suppress 3486 -t 1ps -vopt work.glbl work.tb_top
  9. # ** Note: (vsim-3812) Design is being optimized...
  10. # ** Note: (vsim-3865) Due to PLI being present, full design access is being specified.
  11. # ** Error: C:/Xilinx/12.3/ISE_DS/ISE/verilog/src/unisims/PLL_ADV.v(1108): Failed to find 'PLL_LOCKG' in hierarchical name.
  12. # Optimization failed
  13. # Error loading design

复制代码


网上搜了一下也没什么解决方法,glbl.v也看了,也看了脚本,都没问题。后来用debussy看了一下,发现glbl里果然没有'PLL_LOCKG‘,原来这个glbl的顶层和glbl.v的内容不一样,很多xilinx的IP里面自己也是带glbl模块的。于是原因找到了:我在脚本里把glbl.v是放在第一个compile的,所以后来的IP里自带的glbl把glbl.v给覆盖了,导致找不到'PLL_LOCKG‘。
解决方法:把glbl.v放到source file complie list的最后一个。
IP里的glbl


  1. `timescale1 ps / 1 ps
  2. module glbl ();
  3. parameter ROC_WIDTH = 100000;
  4. parameter TOC_WIDTH = 0;
  5. wire GSR;
  6. wire GTS;
  7. wire PRLD;
  8. reg GSR_int;
  9. reg GTS_int;
  10. reg PRLD_int;
  11. //--------JTAG Globals --------------
  12. wire JTAG_TDO_GLBL;
  13. wire JTAG_TCK_GLBL;
  14. wire JTAG_TDI_GLBL;
  15. wire JTAG_TMS_GLBL;
  16. wire JTAG_TRST_GLBL;
  17. reg JTAG_CAPTURE_GLBL;
  18. reg JTAG_RESET_GLBL;
  19. reg JTAG_SHIFT_GLBL;
  20. reg JTAG_UPDATE_GLBL;
  21. reg JTAG_SEL1_GLBL = 0;
  22. reg JTAG_SEL2_GLBL = 0 ;
  23. reg JTAG_SEL3_GLBL = 0;
  24. reg JTAG_SEL4_GLBL = 0;
  25. reg JTAG_USER_TDO1_GLBL = 1'bz;
  26. reg JTAG_USER_TDO2_GLBL = 1'bz;
  27. reg JTAG_USER_TDO3_GLBL = 1'bz;
  28. reg JTAG_USER_TDO4_GLBL = 1'bz;
  29. assign (weak1, weak0) GSR = GSR_int;
  30. assign (weak1, weak0) GTS = GTS_int;
  31. assign (weak1, weak0) PRLD = PRLD_int;
  32. initial begin
  33. GSR_int = 1'b1;
  34. PRLD_int = 1'b1;
  35. #(ROC_WIDTH)
  36. GSR_int = 1'b0;
  37. PRLD_int = 1'b0;
  38. end
  39. initial begin
  40. GTS_int = 1'b1;
  41. #(TOC_WIDTH)
  42. GTS_int = 1'b0;
  43. end
  44. endmodule

复制代码


glbl.v

  1. `timescale 1 ps / 1 ps

  2. module glbl ();

  3. parameter ROC_WIDTH = 100000;
  4. parameter TOC_WIDTH = 0;

  5. wire GSR;
  6. wire GTS;
  7. wire GWE;
  8. wire PRLD;
  9. tri1 p_up_tmp;
  10. tri (weak1, strong0) PLL_LOCKG = p_up_tmp;

  11. reg GSR_int;
  12. reg GTS_int;
  13. reg PRLD_int;

  14. //-------- JTAG Globals --------------
  15. wire JTAG_TDO_GLBL;
  16. wire JTAG_TCK_GLBL;
  17. wire JTAG_TDI_GLBL;
  18. wire JTAG_TMS_GLBL;
  19. wire JTAG_TRST_GLBL;

  20. reg JTAG_CAPTURE_GLBL;
  21. reg JTAG_RESET_GLBL;
  22. reg JTAG_SHIFT_GLBL;
  23. reg JTAG_UPDATE_GLBL;
  24. reg JTAG_RUNTEST_GLBL;

  25. reg JTAG_SEL1_GLBL = 0;
  26. reg JTAG_SEL2_GLBL = 0 ;
  27. reg JTAG_SEL3_GLBL = 0;
  28. reg JTAG_SEL4_GLBL = 0;

  29. reg JTAG_USER_TDO1_GLBL = 1'bz;
  30. reg JTAG_USER_TDO2_GLBL = 1'bz;
  31. reg JTAG_USER_TDO3_GLBL = 1'bz;
  32. reg JTAG_USER_TDO4_GLBL = 1'bz;

  33. assign (weak1, weak0) GSR = GSR_int;
  34. assign (weak1, weak0) GTS = GTS_int;
  35. assign (weak1, weak0) PRLD = PRLD_int;

  36. initial begin
  37. GSR_int = 1'b1;
  38. PRLD_int = 1'b1;
  39. #(ROC_WIDTH)
  40. GSR_int = 1'b0;
  41. PRLD_int = 1'b0;
  42. end

  43. initial begin
  44. GTS_int = 1'b1;
  45. #(TOC_WIDTH)
  46. GTS_int = 1'b0;
  47. end

  48. endmodule

复制代码

顺利解决,~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top