CHƯƠNG 6 TỔNG HỢP VHDL MÃ Tổng hợp VHDL mã là quá trình thực hiện các mô tả VHDL bằng cách sử dụng tế bào logic itive prim- từ thư viện thiết bị mục tiêu. Trong Chương 4 và 5, chúng tôi đã thảo luận làm thế nào để lấy được một sơ đồ khái niệm từ câu VHDL. Các sơ đồ khái niệm có thể được coi như là bước đầu tiên trong việc thực hiện các mã. Biểu đồ được tinh chế hơn nữa trong tổng hợp. Quá trình tổng hợp liên quan đến các thuật toán phức tạp và một số lượng lớn dữ liệu, và các máy tính là cần thiết để tạo điều kiện cho quá trình này. Mặc dù phần mềm tổng hợp ngày nay dường như được sophisticiited và có khả năng, có những hạn chế cơ bản. Hiểu được khả năng và hạn chế của phần mềm tổng hợp sẽ giúp chúng ta sử dụng công cụ này và lấy được thiết kế hiệu quả hơn. Chương này giải thích việc thực hiện của các nhà khai thác VHDL và các loại dữ liệu, cung cấp một cái nhìn tổng quan sâu vào quá trình tổng hợp, và thảo luận về các vấn đề thời gian trong tổng hợp, 6.1 GIỚI HẠN CỦA CÁC CƠ BẢN EDA PHẦN MỀM Xây dựng một mạch kỹ thuật số lớn là một quá trình phức tạp và liên quan đến nhiều nhiệm vụ khó khăn. Chúng ta phải đối phó với các thuật toán và các thủ tục phức tạp và xử lý một lượng lớn dữ liệu. Máy tính được sử dụng để tạo thuận lợi cho quá trình này. Khi máy tính trở nên mạnh hơn, chúng ta có thể yêu cầu nếu nó có thể phát triển một bộ phần mềm và hoàn toàn tự động hóa quá trình tổng hợp. Các kịch bản lý tưởng là các nhà thiết kế của con người sẽ chỉ cần để phát triển một mô tả hành vi cao cấp và phần mềm IIDA sẽ thực hiện quá trình tổng hợp và sắp xếp và định tuyến và tự động lấy việc thực hiện mạch tối ưu. Các Đáng tiếc là không có thể. Các hạn chế xuất phát từ các nghiên cứu lý thuyết của thuật toán tính toán. PT bảng Hntdwcirc Deiign I / xiiig l'ffDL: Codiiigyor bảng ®ciency, f'ort <ibifify và Khả năng mở rộng. By Peng P. Chu 125 Copyright O 2006 John Wiley & Sons, Inc. Mặc dù cuốn sách này không bao gồm các thuật toán thiết kế vi mạch, nó sẽ rất hữu ích để biết khả năng và giới hạn của các công cụ phần mềm thiết kế vi mạch để họ có thể được sử dụng một cách hiệu quả. Đối với các mục đích thảo luận, chúng ta có thể tách một phần mềm công cụ thiết kế vi mạch vào một lõi và vỏ. Cốt lõi là các thuật toán thực hiện việc chuyển đổi hoặc tối ưu hóa, và thềm kết thúc tốt đẹp các thuật toán, bao gồm chuyển đổi dữ liệu, bộ nhớ và quản lý tập tin và giao diện người dùng. Mặc dù vỏ là quan trọng, các thuật toán lõi cuối cùng xác định chất lượng và hiệu quả của các công cụ phần mềm. Các vấn đề gặp phải trong thiết kế vi mạch là không duy nhất. Trong thực tế, họ đang xây dựng và chuyển đổi thành các vấn đề tối ưu hóa trong các lĩnh vực khác, đặc biệt là trong các nghiên cứu về lý thuyết đồ thị. Phần này cung cấp cái nhìn tổng quan của một cư sĩ của computability và tính toán phức tạp, giúp chúng ta hiểu được những hạn chế cơ bản của phần mềm thiết kế vi mạch. 8.1.1 Computablllty mối quan tâm Computabiliry liệu một vấn đề có thể được giải quyết bằng một thuật toán máy tính. Nếu một thuật toán tồn tại, vấn đề là tính toán (hoặc decidable). Nếu không, vấn đề là uncomputable (hoặc không thể quyết định). Như ví dụ về một vấn đề uncomputable là "vấn đề ngăn chặn." Một số chương trình, chẳng hạn như một trình biên dịch, hãy chụp một chương trình như là đầu vào và kiểm tra tài sản nhất định (ví dụ, cú pháp) của chương trình đó. Các vấn đề ngăn chặn hỏi liệu chúng ta có thể phát triển một chương trình mà có bất kỳ chương trình và đầu vào của nó và xác định xem liệu tính toán của chương trình mà cuối cùng sẽ dừng lại (ví dụ, không có vòng lặp vô hạn). Nó có thể được chứng minh bằng toán học rằng không có chương trình như vậy có thể được phát triển, và do đó các vấn đề ngăn chặn là uncomputable. Nói chính thức, bất kỳ nỗ lực để kiểm tra "ý nghĩa" của một chương trình là uncomputable. Tương đương việc kiểm tra được thảo luận trong mục 1.5.3 về cơ bản so sánh xem hai gam trình thực hiện các chức năng tương tự, mà đi xa hơn vấn đề ngăn chặn. Do đó, việc kiểm tra tương đương là uncomputable; tức là, nó không phải là có thể phát triển một công cụ thiết kế vi mạch để xác định sự tương đương của các <hai mô tả của tôi. Tuy nhiên, nó có thể sử dụng một số kỹ thuật thông minh để xác định sự tương đương của một số mô tả này, được mã hoá rống fol nguyên tắc nhất định. Như vậy, trong khi kiểm tra tương đương không thể đảm bảo để làm việc tất cả thời gian, nó có thể hữu ích một số thời gian. 6.1.2 Computatlon phức tạp Nếu một vấn đề là tính toán, một thuật toán có thể được bắt nguồn để giải quyết vấn đề. Sự phức tạp tation compu- liên quan đến hiệu quả của một thuật toán. Sự phức tạp tính toán có thể được chia thành phức tạp chỉnh, là thước đo của thời gian cần thiết để hoàn thành việc tính toán, và spoce phức tạp, đó là một biện pháp của các tài nguyên phần cứng, chẳng hạn như bộ nhớ, cần thiết để hoàn thành việc tính toán. Do hầu hết các báo cáo về thời gian phức tạp có thể được áp dụng cho phức tạp không gian là tốt, trong phần còn lại chúng tôi tập trung vào thời gian BJP • Các ký hiệu O thời gian tính toán của một thuật toán phụ thuộc vào kích thước của đầu vào cũng như trên các loại vi xử lý, lập trình ngôn ngữ, biên dịch và thậm chí phong cách mã hóa cá nhân. Thật khó để xác định chính xác thời gian cần thiết để hoàn thành thực hiện một thuật toán. Để mô tả một thuật toán, chúng ta thường tập trung vào các tác động của các kích thước đầu vào và cố gắng để lọc ra các tác động của các "nhiễu" về đo lường. Thay vào đó xác định các chức năng chính xác cho thời gian tính toán, chúng ta thường chỉ xem xét thứ tự của các chức năng này. Các Để được xác định như sau. Với hai chức năng, / (ii) và p (n), chúng ta nói rằng, / (ri) là O (p (n)) (phát âm như jf (n) là O lớn của p ( n) hoặc y (n) là số thứ tự p (n)) nếu hai hằng số, Bảng 6.1 Scaling của một số thường được sử dụng big-O chức năng kích thước Input ri n log n Big-O chức năng n ri n log n 2 " 2 2 ys 2ys LPS 4 ys 8 ys 4 ys 4 4 jzs 2ys 8 ys 16 ys 64 ys 16 ys 8 8 ys 3 ys 24 ys 64 ys 512 ys 256 ys 16 ys 16 ys 64 ys 4 256 ys 4ms ddms 32 32ys Sys 160 ys LMS 33ms 7lmin 48 48 ys 5,5 ys 268 ys 2 ms lllms 9 năm 64 64 ys 6 jzs 384 jis 4ms 262 ms 600.000 năm n9 và c, có thể được tìm thấy để đáp ứng / (ri) <cp (n) cho bất kỳ n, = » = p (ri) chức năng thông thường là một chức năng đơn giản, chẳng hạn như n, ri log n, 3 Nr 2 "Đối với. Ví dụ, tất cả các chức năng sau đây là O (Ri): • 600n '+ 1000000 Mục đích của big- O ký hiệu là gấp đôi. Đầu tiên, nó thả, điều khoản thứ hai kém quan trọng vì các hạn cao nhất để trở thành các yếu tố chi phối như n trở nên lớn. Thứ hai, nó tập trung vào tốc độ thay đổi và bỏ qua các hệ số không đổi trong một hàm. Sau khi loại bỏ các hệ số cố định và các điều khoản dưới đặt hàng, chúng tôi loại bỏ ảnh hưởng của phong cách mã hóa, hướng dẫn cài đặt và tốc độ phần cứng, và có thể tập trung vào tính hiệu quả của một thuật toán. Big-O notation về cơ bản là một yếu tố rộng hoặc tốc độ tăng trưởng, cho thấy các nguồn lực cần thiết như kích thước đầu vào tăng. đơn đặt hàng thường gặp phải là O (1), O (log n), O (n), O (n log n), O (n '), O (3) và O (2 "). O (n) cho thấy tốc độ tăng trưởng tuyến tính, trong đó tăng các nguồn lực tính toán cần thiết tương ứng với kích thước đầu vào. O (1) có nghĩa là các nguồn lực tính toán cần thiết là không đổi và không phụ thuộc vào kích thước đầu vào. O (log n) cho thấy tốc độ tăng trưởng logarit, làm thay đổi khá chậm. Đối với một vấn đề với (1) O hoặc O (ri đăng nhập), đầu vào kích thước có rất ít ảnh hưởng đến các nguồn tài nguyên. O (n ') và O (3) có mức tăng trưởng nhanh hơn và các nguồn lực cần thiết tính toán trở nên quan trọng hơn khi đầu vào tăng kích thước. Tất cả các đơn đặt hàng đã thảo luận cho đến nay được coi là bậc đa thức vì chúng có những hình thức O (n), với k là một hằng số. Mặt khác, O (2 ') cho thấy tốc độ tăng trưởng theo cấp số nhân và thời gian tính toán tăng hình học. Lưu ý rằng một số gia của 1 trong kích thước đầu vào tăng gấp đôi thời gian tính toán. O (2 ") phát triển nhanh hơn bất kỳ thứ tự nào đa thức. Ví dụ sử dụng các chức năng này được thể hiện trong Bảng 6.1, trong đó liệt kê các yêu cầu lần tation compu- các thuật toán khác nhau của tính toán phức tạp. Để so sánh, chúng tôi giả định rằng phải mất 2 ps cho một O (n) thuật toán để thực hiện một tính toán kích thước đầu vào 2. Bảng cho thấy thời gian cần thiết như tăng kích thước đầu vào 2-64 thuộc chức năng O lớn khác nhau. Một ví dụ về O (2 ") phức tạp là những thử nghiệm đầy đủ của một CUIT huống tổ hợp. Một cách để kiểm tra một mạch tổ hợp là để áp dụng tất cả các kết hợp đầu vào có thể triệt và kiểm tra phản ứng đầu ra của họ. Đối với một mạch với ii đầu vào, có 2 "tổ hợp đầu vào có thể. Nếu chúng ta giả định rằng các thiết bị thử nghiệm có thể kiểm tra 1 triệu con sư tử mô hình mỗi giây, dầy công thử nghiệm một phiên bản 64-bitcircuit mất khoảng 600.000 năm (tức là, 10, 60 60,2 < .) để hoàn thành. Như vậy, mặc dù đơn giản và dễ hiểu, phương pháp này là không thực tế trong thực tế. vấn đề nan giải trsctBbfe khô cằn Trong hầu hết các vấn đề, nếu một trật tự đa thức (O (k)) thuật toán có thể được tìm thấy, k mũ thường rất nhỏ (nói, 1, 2, hoặc 3). Mặc dù tốc độ tăng trưởng là tồi tệ hơn nhiều so với tỷ lệ tuyến tính, chúng ta có thể chịu đựng được áp dụng thuật toán cho các vấn đề với các kích thước đầu vào không tầm thường. Chúng tôi gọi đó là các vấn đề về truy xuất nguồn gốc. Mặt khác, lý thuyết tính toán đã chỉ ra rằng một giải pháp đa thức bậc không thể được tìm thấy hoặc là "không" được tìm thấy với một số vấn đề. Các giải pháp duy nhất hiện nay là các thuật toán với trật tự nonpolynomial, như o (pn), chúng tôi gọi đó là những vấn đề nan giải. Như chúng ta đã thấy trong Bảng 6.1, thời gian tính toán cho các O (2 ") thuật toán đơn giản là phát triển quá nhanh và các thuật toán là không thực tế, ngay cả đối với một n tích vừa phải. Cải thiện tốc độ phần cứng sẽ không thay đổi đáng kể tình hình. Tình hình là không hoàn toàn vô vọng cho một vấn đề nan giải. Một vấn đề nan giải thường có nghĩa là phải mất O (2 ") thời gian tính toán để tìm ra câu trả lời tối ưu cho cốc cho đầu vào. Nó thường có thể tìm thấy một thuật toán đa thức đặt hàng, dựa trên một số chiến thuật thông minh và chẩn đoán (đoán được), cho phép chúng tôi để có được một câu trả lời hợp lệ hoặc chưa tối ưu các giải pháp tối ưu cho một số mô hình đầu vào. Sỹ
đang được dịch, vui lòng đợi..