Thông báo

Collapse
No announcement yet.

Lỗi khó hiểu khi biên dịch bit file

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Lỗi khó hiểu khi biên dịch bit file

    Các cao thủ cho mình hỏi, khi biên dịch mình dính lỗi này, mới làm FPGA nên chưa biết sâu lắm về vấn đề tổng hợp, mong mọi người giải thích để mình có cách gỡ rối:

    Description

    The following error occurs during Translate:

    "ERROR:ConstraintSystem:59 - Constraint < xxx >: NET/INST "xxx" not found. Please verify that:


    The specified design element actually exists in the design.
    The specified object is spelled correctly in the constraint source file."


    Solution
    This error is issued when NGDBuild does not find the net or instance specified in the constraint in the UCF. Following are some possible causes of this problem:

    The net/instance might have been removed during Synthesis or the net/instance name might have been changed by the Synthesis tool.
    Follow these steps to check:
    The net/instance name in the constraint is not correct.
    If the net/instance is not in the top level, you need to specify its hierarchical path with the name (e.g., controller/read_enable).
    The net/instance name might have been changed by the Synthesis tool. Search the net/instance in the Technology Viewer or PlanAhead to find the exact name.
    To prevent the Synthesis tool from changing the net name, apply a "KEEP" constraint to the net (refer to the Constraints Guide).
    The net/instance might have been removed during Synthesis.
    If you cannot find the net/instance in the Technology Viewer, check the Synthesis report to see if there are any messages stating that it was removed.
    To prevent the Synthesis tool from removing the net, apply "KEEP" and "S" constraints to the net (refer to the Constraints Guide).

  • #2
    Nguyên văn bởi hungcachan Xem bài viết
    Các cao thủ cho mình hỏi, khi biên dịch mình dính lỗi này, mới làm FPGA nên chưa biết sâu lắm về vấn đề tổng hợp, mong mọi người giải thích để mình có cách gỡ rối:

    Description

    The following error occurs during Translate:

    "ERROR:ConstraintSystem:59 - Constraint < xxx >: NET/INST "xxx" not found. Please verify that:


    The specified design element actually exists in the design.
    The specified object is spelled correctly in the constraint source file."


    Solution
    This error is issued when NGDBuild does not find the net or instance specified in the constraint in the UCF. Following are some possible causes of this problem:

    The net/instance might have been removed during Synthesis or the net/instance name might have been changed by the Synthesis tool.
    Follow these steps to check:
    The net/instance name in the constraint is not correct.
    If the net/instance is not in the top level, you need to specify its hierarchical path with the name (e.g., controller/read_enable).
    The net/instance name might have been changed by the Synthesis tool. Search the net/instance in the Technology Viewer or PlanAhead to find the exact name.
    To prevent the Synthesis tool from changing the net name, apply a "KEEP" constraint to the net (refer to the Constraints Guide).
    The net/instance might have been removed during Synthesis.
    If you cannot find the net/instance in the Technology Viewer, check the Synthesis report to see if there are any messages stating that it was removed.
    To prevent the Synthesis tool from removing the net, apply "KEEP" and "S" constraints to the net (refer to the Constraints Guide).
    Trong file UCF, bạn có chỉ định 1 điều kiện ràng buộc cho tín hiệu XXX. Tín hiệu không có ở bước NGDBUILD.
    Tín hiệu này có thể bị xóa (chương trình dịch sẽ xóa các tín hiệu khai báo không được dùng đến, hay nói cách khác tín hiệu không là input của 1 khối nào cả).

    Comment


    • #3
      Rất cảm ơn Mod, mình dùng Ise11, đây bản chất là 1 file vhdl, mình chuyển qua thành 1 symbol để thiết kế nó ở dạng schematic, khi chuyển sang nó bị dính lỗi này trong khi ở dạng vhdl nó biên dịch rất ổn, quá trình tổng hợp và thực thi ok.
      Tiếp theo mình dùng Ise13 chạy cho project dạng schematic lại biên dịch rất ổn (tuy nhiên nó vẫn báo lỗi này), vẫn cho ra bitfile và nạp vào rom chạy tốt.
      Mình muốn hỏi bạn,
      - Tại sao ở VHDL lại ko sao?
      - Bước tiếp theo mình phải làm thế nào? Tìm ra net đó, xóa vùng net đó đi đúng ko? (Mình đã thử xóa file UCF rồi chạy PlanAhead lại để tạo UCF mới mà vẫn bị, mình đã dò ra net đó, thay tên net đó, biên dịch lại mà vẫn bị báo là net có tên cũ bị lỗi, thực chất net đó là 1 signal trong 1 thực thể nó nối đầu ra của 1 DCM_ADV với BUFF để tạo đầu ra) Mình thực sự không hiểu việc nó không kết nối, thực tế tín hiệu này có kết nối, và nhìn rất rõ trên mã nguồn VHDL và View Technology Schematic.
      - Tại sao Ise 13 báo lỗi mà vẫn biên dịch?

      Mình cũng muốn qua đây tìm hiểu kỹ về cơ chế tổng hợp và thực thi của FPGA và ISE.
      Mong bạn giúp đỡ. Cảm ơn bạn rất nhiều.
      Last edited by hungcachan; 21-05-2011, 07:52.

      Comment


      • #4
        Nguyên văn bởi hungcachan Xem bài viết
        Rất cảm ơn Mod, mình dùng Ise11, đây bản chất là 1 file vhdl, mình chuyển qua thành 1 symbol để thiết kế nó ở dạng schematic, khi chuyển sang nó bị dính lỗi này trong khi ở dạng vhdl nó biên dịch rất ổn, quá trình tổng hợp và thực thi ok.
        Tiếp theo mình dùng Ise13 chạy cho project dạng schematic lại biên dịch rất ổn (tuy nhiên nó vẫn báo lỗi này), vẫn cho ra bitfile và nạp vào rom chạy tốt.
        Mình muốn hỏi bạn,
        - Tại sao ở VHDL lại ko sao?
        Chưa rõ tại sao VHDL lại ko sao.

        - Bước tiếp theo mình phải làm thế nào? Tìm ra net đó, xóa vùng net đó đi đúng ko? (Mình đã thử xóa file UCF rồi chạy PlanAhead lại để tạo UCF mới mà vẫn bị, mình đã dò ra net đó, thay tên net đó, biên dịch lại mà vẫn bị báo là net có tên cũ bị lỗi, thực chất net đó là 1 signal trong 1 thực thể nó nối đầu ra của 1 DCM_ADV với BUFF để tạo đầu ra) Mình thực sự không hiểu việc nó không kết nối, thực tế tín hiệu này có kết nối, và nhìn rất rõ trên mã nguồn VHDL và View Technology Schematic.
        Theo bạn nói thì bạn đã kiểm tra net/instance đó có trên technology schematic. File UCF có phải do bạn tạo ra ko? hay cho chương trình tự tạo? Dòng lệnh constraint đó là để làm gì? Có thể C trình tao file constraint có bug.

        - Tại sao Ise 13 báo lỗi mà vẫn biên dịch?
        Mình cũng muốn qua đây tìm hiểu kỹ về cơ chế tổng hợp và thực thi của FPGA và ISE.
        Mong bạn giúp đỡ. Cảm ơn bạn rất nhiều.
        Lỗi này thật ra vừa quan trọng vừa không quan trọng. Mình đoán là ISE13 bỏ qua constraint và tiếp tục dịch.

        Comment


        • #5
          bạn có thể chỉ cho mình quy trình tổng quan của các bước trên ISE và ý nghĩa các bước được không? Nếu có chỗ nào đọc được bằng tiếng Việt thì tốt quá. Lần trước bạn viết cái tut rất hay nhưng tại sao lại dừng lại.

          Comment


          • #6
            Nguyên văn bởi hungcachan Xem bài viết
            bạn có thể chỉ cho mình quy trình tổng quan của các bước trên ISE và ý nghĩa các bước được không? Nếu có chỗ nào đọc được bằng tiếng Việt thì tốt quá. Lần trước bạn viết cái tut rất hay nhưng tại sao lại dừng lại.
            Có lẽ mình sẽ dịch trang này ra
            http://www.xilinx.com/support/docume...pga_design.htm
            Hồi xưa viết thấy lan man, và không ai thắc mắc gì nên thôi không viết nữa.

            Comment


            • #7
              File tiếng Việt
              Attached Files

              Comment


              • #8
                Chào mod, thực tế lỗi của mình được nó post như sau, nó giải thích nguyên nhân ở 3 cái Warning phía dưới, theo mình hiểu sơ qua là không phải cái net đấy không được nối đến đâu mà các ràng buộc thời gian hay cách đấu nối nó đến Ram có vấn đề vi phạm nên nó xóa đi và cuối cùng không tổng hợp được.

                Bạn có thể cho mình cách giải quyết vấn đề này không?

                cảm ơn rất nhiều.

                ERROR:ConstraintSystem:59 - Constraint <NET "Inst_dimeclk_module_DCM_INST_clk_dcmo" TNM_NET =
                Inst_dimeclk_module_DCM_INST_clk_dcmo>: NET
                "Inst_dimeclk_module_DCM_INST_clk_dcmo" not found. Please verify that:
                1. The specified design element actually exists in the original design.
                2. The specified object is spelled correctly in the constraint source file.

                WARNING:ConstraintSystem:56 - Constraint <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>: Unable to find an active 'TNM' constraint named 'Inst_dimeclk_module_DCM_INST_clk_dcmo'.

                WARNING:ConstraintSystem:191 - The TNM 'Inst_dimeclk_module_DCM_INST_clk_dcmo', does not directly or indirectly drive any flip-flops, latches and/or RAMS and cannot be actively used by the referencing Period constraint 'TS_Inst_dimeclk_module_DCM_INST_clk_dcmo'. If clock manager blocks are directly or indirectly driven, a new TNM constraint will not be derived even though the referencing constraint is a PERIOD constraint unless an output of the clock manager drives flip-flops, latches or RAMs. This TNM is used in the following user PERIOD specification:
                <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>

                WARNING:ConstraintSystem:197 - The following specification is invalid because the referenced TNM constraint was removed: <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>

                Comment


                • #9
                  Nguyên văn bởi hungcachan Xem bài viết
                  Chào mod, thực tế lỗi của mình được nó post như sau, nó giải thích nguyên nhân ở 3 cái Warning phía dưới, theo mình hiểu sơ qua là không phải cái net đấy không được nối đến đâu mà các ràng buộc thời gian hay cách đấu nối nó đến Ram có vấn đề vi phạm nên nó xóa đi và cuối cùng không tổng hợp được.

                  Bạn có thể cho mình cách giải quyết vấn đề này không?

                  cảm ơn rất nhiều.

                  ERROR:ConstraintSystem:59 - Constraint <NET "Inst_dimeclk_module_DCM_INST_clk_dcmo" TNM_NET =
                  Inst_dimeclk_module_DCM_INST_clk_dcmo>: NET
                  "Inst_dimeclk_module_DCM_INST_clk_dcmo" not found. Please verify that:
                  1. The specified design element actually exists in the original design.
                  2. The specified object is spelled correctly in the constraint source file.

                  WARNING:ConstraintSystem:56 - Constraint <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>: Unable to find an active 'TNM' constraint named 'Inst_dimeclk_module_DCM_INST_clk_dcmo'.

                  WARNING:ConstraintSystem:191 - The TNM 'Inst_dimeclk_module_DCM_INST_clk_dcmo', does not directly or indirectly drive any flip-flops, latches and/or RAMS and cannot be actively used by the referencing Period constraint 'TS_Inst_dimeclk_module_DCM_INST_clk_dcmo'. If clock manager blocks are directly or indirectly driven, a new TNM constraint will not be derived even though the referencing constraint is a PERIOD constraint unless an output of the clock manager drives flip-flops, latches or RAMs. This TNM is used in the following user PERIOD specification:
                  <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>

                  WARNING:ConstraintSystem:197 - The following specification is invalid because the referenced TNM constraint was removed: <TIMESPEC TS_Inst_dimeclk_module_DCM_INST_clk_dcmo = PERIOD "Inst_dimeclk_module_DCM_INST_clk_dcmo" TS_CLKB HIGH 50%>
                  Chịu thua, thật ra lỗi từ ERROR dẫn đến mấy cai warning!
                  Bạn gửi source đi. Mình compile rồi coi thử.

                  Comment


                  • #10
                    Cảm ơn MOD, Mình đã tìm ra lỗi rồi, mình xóa hết đi làm lại, chắc tại cái timing constraint dùng lại của project mà họ làm từ trước bị lỗi nên mới vậy.
                    Cảm ơn bạn rất nhiều.

                    Comment


                    • #11
                      Nguyên văn bởi hungcachan Xem bài viết
                      Cảm ơn MOD, Mình đã tìm ra lỗi rồi, mình xóa hết đi làm lại, chắc tại cái timing constraint dùng lại của project mà họ làm từ trước bị lỗi nên mới vậy.
                      Cảm ơn bạn rất nhiều.
                      Òh đúng bài đó. Tool Xilinx Khùng lắm, xóa hết làm lại thì được (Chắc tại vậy mà có nút Clean-up project file ... hehe altera thì ko có)

                      Comment

                      Về tác giả

                      Collapse

                      hungcachan Tìm hiểu thêm về hungcachan

                      Bài viết mới nhất

                      Collapse

                      Đang tải...
                      X