set_dont_touch và Module Compiler

H

homer2k1

Guest
Tôi sử dụng trình biên dịch Module để tạo ra một số adders nhanh. Làm thế nào tôi có thể nói thiết kế trình biên dịch không thay đổi chúng? Nói rằng tôi có hai trường hợp của module này, adderInst1 và adderInst2. Tôi đã cố gắng sử dụng "set_dont_touch adderInst1" mà làm việc cho chỉ là một ví dụ, nhưng làm thế nào để tôi sử dụng * để phù hợp với tất cả các trường? Tôi thà nhúng "set_dont_touch" lệnh trong netlist Verilog cho bộ cộng chính nó. Có cách nào để làm điều này?
 
bạn có thể làm: set_dont_touch [get_cell adderInst *] này không thể được nhúng vào trong các netlist Verilog.
 
Cảm ơn bạn đã trả lời nhanh chóng của bạn. Tôi có một câu hỏi. Khi tôi sử dụng set_dont_touch, tôi nhận được một số cảnh báo như thế này: Cảnh báo: Không thể giải quyết 'shiftReg' tham chiếu trong 'foo'. (LINK-5) Cảnh báo: Không thể giải quyết 'bộ cộng' tham chiếu trong 'foo'. (LINK-5) ... Cảnh báo: Thiết kế 'foo' có tài liệu tham khảo chưa được giải quyết '8 '. Để biết thông tin chi tiết hơn, sử dụng "liên kết" lệnh. (UID-341) Tôi không có được những cảnh báo này nếu tôi không sử dụng lệnh set_dont_touch. Những cảnh báo dường như gây ra vấn đề khi tôi làm floorplan tiếp theo. Bất kỳ đề xuất về cách sửa lỗi này?
 
khi bạn đang sử dụng set_dont_touch trong kịch bản của bạn? Hãy thử đọc trong tất cả các file thiết kế của bạn (Verilog, thư viên, vv) đầu tiên và sau đó kết nối chúng. Sau đó áp dụng các set_dont_touch trong kịch bản của bạn. còn tôi nghĩ rằng các lệnh thực sự phải được điều này (get_cells là số nhiều) set_dont_touch [get_cells adderInst *]
 
Giải quyết. Vấn đề của tôi dường như là một sự kết hợp của kịch bản thứ tự (như bạn đề nghị) và các tên duy nhất. Để tham khảo trong tương lai: Tôi đã sử dụng "set_dont_touch" quá sớm, nhưng ngay cả sau khi di chuyển nó sau này trong kịch bản, tôi vẫn còn chạy vào một vấn đề trong floorplanning liên quan đến các tên duy nhất. Nếu không có lệnh set_dont_touch, bản gốc "bộ cộng" module là uniquified như vậy mà adderInst1 là một instantiation của "adder_0" và adderInst2 là một thể hiện của "adder_1". Vấn đề là sau khi set_dont_touch, cả hai adderInst1 và adderInst2 được biểu hiện của cùng một module gọi là "adder_". Tôi cố định này bằng cách set_dont_touch sau đây với một uniquify rõ ràng: set_dont_touch [get_cells adderInst *] uniquify-cell [get_cells adderInst *] Nhờ sự giúp đỡ của bạn!
 

Welcome to EDABoard.com

Sponsor

Back
Top