Mới đối với thiết kế PCB - tại sao các thành phần tự động không tồn tại?


23

Phần mềm thiết kế mạch tôi đã thấy có khả năng tự động định tuyến dấu vết, v.v. trên PCB.
Nhưng tại sao phần mềm này không có khả năng tự động đặt các thành phần lên PCB để giảm thiểu tổng kích thước bảng?
Đây có phải là quá phức tạp để được tự động?


8
Autorouters có thể đặt tối ưu các thành phần dựa trên các ràng buộc (nghĩa là "nút phải ở đây", "LED có thể ở bất cứ đâu trong khu vực này"). Họ cũng có thể chọn các chân tối ưu để sử dụng trên các bộ phận có nhiều chân tương đương (nghĩa là "sử dụng bất kỳ chân io nào có PWM"). Thật không may, tôi chưa bao giờ thấy một trong những chức năng này. Có thể một ngày nào đó.
bigjosh

7
vị trí (và định hướng, hoán đổi cổng, hoán đổi pin) là thực sự, thực sự quan trọng. Đây là điều quan trọng nhất để có được định tuyến tốt. Tôi nghĩ rằng một autoplacer thông minh nên bắt đầu từ vị trí sơ đồ, trừ khi sơ đồ là một trong những "hộp" hiện đại được bao quanh bởi các danh sách net.
markrages

2
đến từ một nền tảng không phải là thiết kế mạch, đối với tôi, dường như tổ chuột phải đủ để bố trí tất cả các thành phần một cách tối ưu, có lẽ với một số hạn chế. Có phải hầu hết các mạch thực được thiết kế thủ công hơn thế này?
Adam

3
Nói tóm lại, việc tối ưu hóa các thành phần - thậm chí không có tất cả các cân nhắc đến từ nó là một mạch thực tế, không lý tưởng - là một vấn đề CS rất khó khăn. Trên thực tế, đó là một ví dụ của Vấn đề nhân viên bán hàng du lịch và vì vậy một giải pháp tối ưu như vậy là không khả thi.
Nick Johnson

2
@ Gregd'Eon Tôi tự hỏi tương tự. Chắc chắn với nhiều công cụ tự động hơn có thể hiểu được vai trò của việc tách mũ và mô phỏng nhiễu mạch, v.v.
Adam

Câu trả lời:


19

Tôi đã thiết kế một số PCB gần đây và tôi khuyên bạn KHÔNG nên sử dụng trình tự động hoặc bộ định tuyến tự động cho sản phẩm cuối cùng của bạn. (Proteus có trình tự động.)

Trước hết - Phần mềm của bạn thông minh như một con giun đất khi nói đến vị trí tự động hoặc định tuyến tự động. Nói cách khác, nó câm như một củ khoai tây.

Tự động định tuyến sẽ không biết vị trí nào sẽ giúp bạn có được mẫu theo dõi tốt hơn, điều này cho phép bạn không chỉ tạo ra một thiết kế hiệu quả mà còn giảm thiểu tiếng ồn trong mạch. Tương tự định tuyến tự động không biết rằng việc dịch chuyển một thành phần sang trái hoặc phải sẽ cho phép bạn định tuyến theo dõi theo cách tốt hơn. Những công cụ này sẽ chỉ cung cấp cho bạn một thiết kế chính xác theo mạch. Nhưng khi nói đến hiệu suất thế giới thực, mọi thứ đã khác.
Ví dụ:

  • Tụ tách rời phải gần với vật lý của IC.
  • Cần có các vòng lặp của khu vực kín nhất.
  • Mặt phẳng đất phải càng vững chắc càng tốt.
  • Không có tín hiệu gây nhiễu nên gần với bộ dao động tinh thể của bạn, v.v.

Phần mềm của bạn sẽ không tôn trọng các khái niệm này vì chúng không được đề cập trong sơ đồ của bạn. Bạn sẽ chỉ biết khi bạn đã sản xuất PCB và nó không hoạt động như mong đợi mọi lúc. Tôi không nói rằng nó sẽ không hoạt động. Nó có thể hoạt động, trong 90% số lần nhưng bạn cũng phải cân nhắc 10% đó.

Gợi ý của tôi là bạn nên tìm hiểu một số khái niệm thiết kế PCB và thử tự mình đặt và định tuyến. Bạn luôn có thể đăng bố trí sơ đồ và bảng của bạn trong các diễn đàn và các chuyên gia sẽ cho bạn ý kiến ​​/ đề xuất của họ.


5
+1 cho giun đất và khoai tây. Mỗi lần tôi sử dụng auto placer và autorouter, tôi đã thực hiện các bit quan trọng và để lại cho nó một bit dễ dàng nhưng thậm chí đó là quá nhiều để hỏi: 60% bảng được đặt và định tuyến sau lần vượt qua cuối cùng. Tốt hơn hết là tự mình làm mọi thứ, ngoại trừ các thiết kế yêu cầu lớn với nhiều không gian trống.
Mystère

1
@Mister - Vâng bạn đúng. Ngay cả bây giờ tôi cũng sử dụng bộ định tuyến tự động để có ý tưởng cho việc định tuyến và tôi hoàn thành các phần quan trọng. Tuy nhiên tôi đang sử dụng Eagle những ngày này và nó không có trình tự động.
Whiskeyjack

1
Typo trong nhận xét của tôi ở trên: "cho các thiết kế yêu cầu THẤP * rất lớn". Rõ ràng, một tần số kỹ thuật số tần số cao sẽ không hoạt động tốt với tính năng tự động dò và tự động hóa ...
Mister Mystère

1
Tôi không thấy bất kỳ lý do lý thuyết nào tại sao bộ định tuyến tự động không thể tính đến tất cả các ràng buộc đã đề cập ở trên và thực tiễn tốt nhất khi tự động đặt các bộ phận. Trên thực tế, một bộ định tuyến tự động lý tưởng sẽ có thể tìm thấy vị trí tối ưu đáp ứng các mục tiêu này tốt hơn so với con người. Đó là một vấn đề khó để chắc chắn, nhưng không phải là không thể và tôi cá rằng chúng ta sẽ sớm bắt đầu thấy các bộ định tuyến tự động dựa trên đám mây với các trình giả lập tự động có thể đánh bại cả những người giỏi nhất.
bigjosh

1
@bigjosh - Nhận xét của bạn rất có ý nghĩa. Định tuyến và vị trí chính xác có một vài hướng dẫn mà nếu được chia thành logic đơn giản, sẽ cho phép các máy tính thực hiện một con người. Tất cả những gì sẽ còn lại có thể là hàng nghìn tỷ phép tính - kiểm tra hàng ngàn bảng được định tuyến đầy đủ và tìm ra giải pháp tối ưu. Với các hệ thống dựa trên đám mây, điều đó không quá khó. Hãy hy vọng một số dự án nguồn mở bắt đầu sớm biến điều này thành hiện thực. Nó có thể tốt hơn con người theo cách mà con người không thực sự đi nhiều lần lặp lại một khi họ đã tìm ra giải pháp hiệu quả - ít nhất là tôi không.
Whiskeyjack

13

Bộ định tuyến của tôi có một bộ đệm và hỗ trợ cho "phòng". Điều đó cho phép bạn vẽ các khu vực và gán các bộ phận cho "phòng" từ sơ đồ. Trình tự động sẽ nhóm chúng lại với nhau trong phòng mà phần được chỉ định. Khá chắc chắn rằng nó có hỗ trợ cho kết nối này cũng nên đi đến vị trí này. Ngoài ra còn có một công cụ có thể thực hiện tách vị trí tự động và lựa chọn / tối ưu hóa một phần dựa trên kết quả mô phỏng. Nó không rẻ mặc dù :) nhưng nó hoạt động.

Trình tự động có thể giúp bạn tiết kiệm một chút thời gian bằng cách đặt mọi thứ lại với nhau như thế. Nhưng tôi vẫn thích thăm dò chéo sơ đồ để bố trí trong chế độ địa điểm.

Giống như bộ định tuyến tự động, bạn nhận ra những gì bạn đặt trong điều kiện ràng buộc và mức độ bạn có thể sử dụng nó. Nếu bạn chỉ cố gắng sử dụng bộ định tuyến tự động của mình mà không ràng buộc nó đúng cách, nó chỉ định tuyến ở mọi nơi. Khi được thiết lập đúng, chúng tôi sử dụng nó để định tuyến chính xác các phần DDR có độ dài phù hợp lớn. Trên các bảng lớn hơn và dày hơn, nó gần như là một điều cần thiết, và chắc chắn là một yêu cầu cho một cửa hàng dịch vụ bố trí cần tốc độ. Tuy nhiên những điều này có thể không đáng giá cho một người chỉ làm một vài bảng nhỏ mỗi năm.


4
Gói CAD của bạn là gì?
Mystère

5
Phiên bản cao cấp của Allegro, sự tách rời là từ Sigrity hiện thuộc sở hữu của nhịp. Tôi thích miếng đệm quá. Đó là bộ định tuyến tự động dựa trên đường dẫn mới được cho là trông giống như định tuyến tay trông thú vị.
Một số anh chàng phần cứng

Tôi có linh cảm đây có thể là Cadence. Tôi đã sử dụng nó để giới thiệu về thiết kế vi mạch, nó thực sự là một gói tuyệt vời và tôi tin rằng autorouter và autoplacer của nó có thể chỉ hiệu quả nếu các ràng buộc được xây dựng chính xác (đi vào kinh nghiệm / đào tạo).
Mystère

Nói hay lắm. Đặt các bộ phận và định tuyến không phải là không thể, nó chỉ khó hơn và mờ hơn nhiều so với chụp sơ đồ. Trước hết, sơ đồ mạch thiếu rất nhiều đầu vào hoàn chỉnh cho các bộ phận tự động đặt. Các gói PCB thông thường được thiết kế để nối dây, không tự động đặt.
tomnexus

12

Một điều bạn không cân nhắc là sơ đồ không chứa đủ thông tin để bố trí một bảng đúng cách .

Về cơ bản, bố trí PCB yêu cầu xem xét và chỗ ở cho một vài chục yêu cầu bố trí cho mỗi phần , không có yêu cầu nào được mã hóa trong sơ đồ. Chỉ xem xét các tụ bỏ qua. Để có một hệ thống tự động đặt đúng tụ điện bypass cho từng thành phần, bạn cần có một số chỉ thị bổ sung trên sơ đồ chỉ ra cho autorouter rằng dấu vết giữa hai nút phải nằm dưới một độ dài nhất định.
Có lẽ sau đó, bạn cần các chỉ thị tiếp theo để mã hóa mức độ ưu tiên tối thiểu hóa chiều dài cho các mạng khác nhau, một cái gì đó để ra lệnh cho các cặp vi sai / trở kháng được kiểm soát, dấu vết bảo vệ (nếu cần), v.v ...
Về cơ bản, có rất nhiều biến số bổ sung điều khiển vị trí thường không được mã hóa hoàn toàn trong các tài liệu sơ đồ / ratsnest.

Hơn nữa, ngay cả khi bạn cho rằng bạn có tất cả các ràng buộc thiết kế ở trên, kích thước tuyệt đối của không gian vấn đề đối với bố cục chung là rất lớn . Nó tương đương với việc cố gắng giải một phương trình với hàng ngàn đầu vào, trong đó mỗi đầu vào có một hiệu ứng phi tuyến tính khác nhau đối với tất cả các đầu vào khác. Về mặt hiệu quả, vấn đề hoàn toàn không thể khắc phục được từ góc độ vũ phu. Do đó, bất kỳ giải pháp nào cũng phải liên quan đến một số loại cơ chế heuristic, có độ phức tạp riêng.


Trên thực tế, lý do chính không có ít nhất các trình tự động tốt hơn là vì không có thị trường. Thị trường EDA tương đối nhỏ so với nhiều thị trường phần mềm, mục đích đặc biệt khác và thậm chí cả đồ tự động tốt nhất thậm chí sẽ không tiếp cận một bố cục thực sự của một con người thực tế.

Khi ở giữa một bố cục đặc biệt nhàm chán, tôi thường có một số điều tưởng tượng là cố gắng thiết kế ô tô riêng của mình, bằng cách làm một cái gì đó với các trường vectơ và mô phỏng ủ, nhưng thậm chí sẽ chỉ tiếp cận một cách tối ưu cục bộ, thay vào đó là bố cục tối ưu chung.


10

Trở lại năm 1974-1975, tôi làm việc trong bộ phận Thiết kế tự động hóa tại Honeywell. Vấn đề đã không thay đổi kể từ đó:

  1. Nó không khả thi về mặt tính toán để tối ưu hóa. Giống như hầu hết các vấn đề tối ưu hóa toàn cầu, đó là NP-Complete, có nghĩa là sự phức tạp của tính toán tăng lên nhanh chóng khủng khiếp. Vì bạn không thể chờ đợi trong một nghìn tỷ năm (hoặc tệ hơn), chúng tôi có thể coi giải pháp tối ưu là không thể tìm thấy.
  2. Không rõ chương trình chỉ là những gì bạn muốn tối ưu hóa. Phân nhóm logic theo mô hình của bạn về tổ chức mạch? Dấu vết dài? Khu vực hội đồng quản trị? Khớp ký sinh? Tuyên truyền trì hoãn? Tản nhiệt (nhiệt độ tối đa)? Nhiệt chảy máu từ các phần năng lượng cao hơn đến các thành phần nhạy cảm với nhiệt độ? Phát xạ RF? Tiếng ồn? Đặc tính cơ học (ví dụ: đặt nhiều bộ phận lớn hơn gần các giá đỡ cơ học? Đặc điểm dịch vụ, như không đặt các đầu nối trên tàu gần nhau hơn ngón tay người có thể quản lý? Các ràng buộc bên ngoài, như vị trí đầu nối hoặc khớp trong không gian có sẵn (không xung đột với trường hợp, người hâm mộ, vv)

Có những cách tiếp cận dựa trên AI để xử lý các vấn đề như thế này. Tuy nhiên, tại một số điểm, nhà thiết kế sẽ dễ dàng hơn khi thử mọi thứ và nhận phản hồi từ phần mềm theo tiêu chí thiết kế mà anh ta quan tâm. Nói cho phần mềm AI mọi thứ bạn biết có thể là một nhiệm vụ vô tận, vô tận. Cuối cùng, phần mềm phải làm hài lòng bạn, nhà thiết kế và bộ đánh đổi của bạn.

Sau đó, cách tốt nhất để làm việc này là xem nó như một sự hợp tác giữa nhà thiết kế và phần mềm, với nhà thiết kế đưa ra quyết định cuối cùng. Phần mềm có thể cung cấp thông tin về các thuộc tính và có thể đề xuất các cách để cải thiện một tài sản quan tâm và giúp khám phá hậu quả của một thay đổi.

Nhưng tôi dự đoán chúng ta sẽ không bao giờ, nhìn thấy bố cục hoàn toàn tự động - miễn là chúng ta có con người nhìn và quan tâm đến kết quả.


Quá nhiều cho sự kỳ dị ...
Peter Mortensen

@PeterMortensen Ý kiến ​​của con người sẽ không còn quan trọng sau Điểm kỳ dị.
Spehro Pefhany

1
Tôi nghĩ rằng điểm 2 thực sự là phần có liên quan duy nhất của câu trả lời. Có nhiều thuật toán có thể giải quyết rất nhanh các vấn đề hoàn thành NP, với các kích thước vấn đề quan trọng, ở mức độ "đủ tốt" với chi phí thời gian rất chấp nhận được, đủ tốt thường nằm trong khoảng 2-3% tối ưu.
whatsisname

Đó là một điểm tốt về "đủ tốt"! Mặc dù để hoàn toàn chính xác về mặt kỹ thuật, chúng tôi nên cẩn thận đủ điều kiện từ "giải quyết" (như bạn đã làm). Tuy nhiên, chi phí cho CPU và lưu trữ là một vấn đề rất lớn. Nhưng mặc dù kích thước vấn đề đã tăng lên, khả năng tính toán của chúng tôi thậm chí còn tăng hơn nữa.
Bob Kerns

9

Phần mềm của tôi có một trình duyệt. Tôi chạy nó một lần chỉ để xem điều gì sẽ xảy ra. Nó xé toạc khắp bảng, và có tất cả các thành phần trên đó. Khi tôi nhìn vào nó, các bộ phận là MỌI NƠI. IC nằm ở một góc và nắp tách rời của nó nằm ở góc khác. Con đường quan trọng ngoằn ngoèo qua lại trên bảng.

Quan điểm của tôi ở đây là vị trí là phần khó nhất trong cách bố trí để có được đúng. Đầu tiên là những hạn chế cơ học. ME / nhà thiết kế công nghiệp muốn đầu nối / công tắc / nồi / đèn LED của bạn / bất kỳ thành phần giao tiếp bên ngoài nào khác ra khỏi bảng tại một vị trí nhất định. Một số thành phần có thể quá cao để ở một số khu vực nhất định bên trong vỏ bọc. Có thể có các phần của mạch cần giữ một khoảng trống nhất định để cách ly.

Phần mềm có thể được cấu hình để đối phó với một số yếu tố này, nhưng nó sẽ không bao giờ làm tốt công việc đó hoặc có thể nhìn thấy vấn đề một cách trực quan theo cách của con người. Trong một thế giới hoàn hảo, nếu bạn có được vị trí phù hợp, thực hiện định tuyến đường dẫn điện, mặt đất và đường dẫn quan trọng, việc vượt qua tự động nhanh chóng sẽ có thể hoàn thành việc bố trí.


Tôi thích câu trả lời này, mặc dù có vẻ như phần mềm không phù hợp với công việc cần làm.
Adam

6
@Adam Khi bạn có thêm kinh nghiệm, bạn sẽ hiểu rõ hơn. Quá trình sắp xếp vô cùng phức tạp và tổ của chuột chỉ kể một phần câu chuyện. Lấy mũ tách rời chẳng hạn, làm thế nào để người đặt bàn biết phải đặt chúng ở đâu? Theo như nó quan tâm, tất cả những cái mũ đó có thể được đặt cùng nhau ở một vị trí tùy ý.
Matt Young

2
Hạn chế khoảng cách có vẻ như là một lựa chọn khả thi cho điều đó.
Tim Seguine

Tên phần mềm của bạn là gì?
Daniele Testa

2

Tôi đã sử dụng các công cụ tự động trước đây và chúng thực sự câm như một đống đá. Về điều duy nhất bạn có thể hoàn toàn sử dụng chúng cho việc gỡ rối một đống dấu chân mà tất cả đã được nhập vào bảng của bạn tại cùng một vị trí trên đó; bất cứ điều gì khác chỉ đơn giản là quá nhiều để hỏi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.