Thêm một phép tín hiệu, en, để một bộ giải mã 2-to-4. Khi en là '1', các chức năng giải mã
như bình thường. Khi en là '0', bộ giải mã là người tàn tật và đầu ra trở thành "0000". Sử dụng các
nhiệm vụ tín hiệu có điều kiện statementto lấy được mạch này. Vẽ sơ đồ khái niệm 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 các 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 cải tiến hơn nữa trong quá trình 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 thuận lợi 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 biết về các khả năng và hạn chế của phần mềm tổng hợp sẽ giúp chúng tôi tốt hơn 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ĂN BẢN CỦA 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à 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 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. Là tiếc là không có thể. Sự hạn chế xuất phát từ việc nghiên cứu lý thuyết của thuật toán tính toán. PT £ Hntdwcirc Deiign I / xiiig l'ffDL: Codiiigyor £ ®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 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 việc nghiên cứu 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 cách không 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à còn đi xa hơn vấn đề ngăn chặn. Do đó, việc kiểm tra tính 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 • O notation 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. Rấ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 định nghĩa 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 16 ys 4 ys 64 ys 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ố không đổi 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 biết tỷ lệ 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 tài nguyên 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 tác động tới các nguồn tài nguyên. O (n ') và O (3) có tốc độ tăng trưởng nhanh hơn và các tài nguyên tính toán cần thiết 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 như là trật tự đ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 ") tăng 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 ta 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 khi 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à kiểm tra toàn diện 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ị kiểm tra có thể kiểm tra 1 triệu con sư tử mô hình mỗi giây, triệt 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ế. khó chữa vấn đề 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 đề theo dõi đượ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 đây 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 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 vừa phải. Cải thiện tốc độ phần cứng sẽ không thay đổi tình hình đáng kể. 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 câu trả lời tối ưu cho cốc đầu vào cho trước. Đó là thường xuyên 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ố
đang được dịch, vui lòng đợi..
