1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

TỪNG BƯỚC VỚI VHDL & FPGA & ASIC

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi hutcon, 25/08/2006.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. hutcon

    hutcon Thành viên mới

    Tham gia ngày:
    24/06/2004
    Bài viết:
    158
    Đã được thích:
    0
    TỪNG BƯỚC VỚI VHDL & FPGA & ASIC

    mình là beginer.
    được anh bạn thân cung cấp cho EBOOKs và bộ QUARTUS II V5.1.
    cần thì bảo nhé. hutcon_tuan@yahoo.com


    đang tìm serial cho quartus.
    ai biết cách crack thì chỉ hộ.
  2. cai_nguc

    cai_nguc Thành viên mới

    Tham gia ngày:
    05/08/2005
    Bài viết:
    461
    Đã được thích:
    0
    Cứ tưởng được bác nào truyền dạy cái gì hoá ra là xin cdkey.
  3. hutcon

    hutcon Thành viên mới

    Tham gia ngày:
    24/06/2004
    Bài viết:
    158
    Đã được thích:
    0
    CD key của quartus II 5.1 vẫn chưa tìm ra. Hình như bây giờ có bản 6.0 rồi thì phải, có khi phải nâng cấp lên rồi crack một thể vậy.
    có quyển "VHDL programming by example" của Douglas L. Perry.
    Đã dịch được chương 1, chưa chỉnh sửa. Mình đưa lên mong các bạn cùng chỉnh sửa giùm.
    Chương 1 giới thiệu VHDL

    Các thuật ngữ của VHDL
    Miêu tả phần cứng trong VHDL
    Thực thể
    Các cấu trúc
    Đồng quy tín hiệu chuyển nhượng
    Việc lập danh mục các sự kiện
    Thiết kế cấu trúc
    Cách hành động tiếp theo
    Xử lý các bản báo cáo
    Xử lý vùng tường thuật
    Xử lý phần tường thuật
    Xử lý phần thi hành
    Các báo cáo tiếp theo
    Sự lựa trọn các cấu trúc
    Cấu hình của bản báo cáo
    Khả năng của cấu hình
    Giới thiệu VHDL
    Ngôn ngữ mô tả phần cứng VHSIC là một ngôn ngữ theo chuẩn công nghiệp được dùng để mô tả phần cứng từ mức lý thuyết đến mức thực tế. VHDL là kết quả của công việc được làm từ thập niên 70 đến đầu 80 bởi ủy ban phòng thủ Hoa kỳ. Bắt nguồn từ ngôn ngữ ADA, tạo nên toàn bộ cấu trúc cũng như các câu lệnh của VHDL.
    Việc sử dụng VHDL đã và đang phát triển nhanh chóng ngay từ lúc đầu và được mười nghìn kĩ sư trên khắp thế giới sử dụng để tạo ra các sản phẩm điện tử tinh vi. VHDL là một ngôn ngữ mạnh với số lượng lớn cấu trúc làm cho việc mô tả rất cụ thể và chính xác. Học tất cả các phần của VHDL không phải là việc đơn giản. Các phần khó sẽ được giới thiệu ở một dạng đơn giản và sau đó các phần phức tạp hơn sẽ được mô tả.
    Năm 1986 VHDL được đề xuất như là một chuẩn IEEE. Nó đã được xem xét và thay đổi đến khi chính thức được công nhận là chuẩn 1076 IEEE vào tháng 12 năm 1987. chuẩn VHDL IEEE 1076 ?" 1987 được sử dụng trong quyển sách này. Tất cả các ví dụ được mô tả trong IEEE 1076 và được biên dịch và mô phỏng với môi trường mô phỏng VHDL của công ty Model Technology Inc. Các ví dụ tổng hợp được tổng hợp với công cụ tổng hợp của Exemplar Logic Inc.
    Các thuật ngữ của VHDL
    trước khi đi xa hơn, hãy định nghĩa một vài thuật ngữ mà chúng ta sẽ sử dụng trong suốt cuốn sách. Đây là những khối cơ bản xây dựng lên VHDL, chúng sẽ được sử dụng trong hầu hết mọi sự miêu tả, cùng với vài thuật ngữ được định nghĩa lại trong VHDL nghĩa là sẽ khác một chút so với những chuẩn mực bình thường.
    ? Thực thể (Entity): Tất cả các thiết kế đều được định nghĩa bằng các thuật ngữ của các thực thể. Một thực thể là một khối cấu trúc cơ bản nhất trong một thiết kế. Mức cao nhất của một bản thiết kế là thực thể ở top-level. Nếu một bản thiết kế có thứ bậc, việc mô tả top-level sẽ có lower-level chứa trong nó được mô tả. Những miêu tả lower-level sẽ có các thực thể lower-level.
    ? Kiến trúc (Architecture): tất cả thực thể có thể mô phỏng được đều có một bản mô tả cấu trúc. Cấu trúc mô tả cách hoạt động của thực thể. Một thực thể đơn có thể có nhiều kiểu cấu trúc. Một kiểu cấu trúc có thể là cách hoạt động trong khi một cấu trúc khác có thể là sự mô tả cấu trúc của một bản thiết kế.
    ? Cấu hình: Một cấu hình lệnh được sử dụng để liên kết các trường hợp thành phần đối với một cặp thực thể - cấu trúc.
    ? Gói: Một gói là một tập hợp thông thường nhất sử dụng các kiểu dữ liệu và chương trình con được sử dụng trong bản thiết kế. Hãy nghĩ rằng một gói như là một hộp dụng cũ chứa các dụng cụ để tạo nên một bản thiết kế
    ? Bus: thuật ngữ bus được hiểu theo nghĩa thông thường là một nhóp các tín hiệu hoặc quy tắc của truyền thông được sử dụng trong thiết kế phần cứng. Trong VHDL, bus là một kiểu đặc biệt của tín hiệu có thể có phần điều khiển được tắt đi.
    ? phần chung: một generic là một thuật ngữ của VHDL chỉ các tham số có thông tin cũ đối với thực thể. Ví dụ, nếu một thực thể là kiểu cửa với một lần trễ lên và xuống, giá trị cho lần trễ lên và xuống có thể được thông qua nhập vào thực thể với generic
    ? quá trình: một quá trình là phần cơ bản của sự hoạt động trong VHDL. Tất cả mọi hoạt động đều được trình diễn trong một sự mô phỏng của sự mô tả VHDL là đơn hay đa quá trình.
    Mô tả phần cứng trong VHDL
    sự mô tả VHDL gồm có các đơn vị thiết kế chính và các đơn vị thiết kế phụ. Các đơn vị thiết kế chính là thực thể và gói. Các đơn vị thiết kế phụ là kiểu kiến trúc và thân gói. Các đơn vị thiết kế phụ thường có liên quan đến các đơn vị thiết kế chính. Các thư viện là sự tập hợp của các đơn vị thiết kế chính và phụ. Một bản thiết kế điển hình thường chứa một hoặc nhiều thư viện của các đơn vị thiết kế.
    Thực thể
    Một thực thể VHDL ghi rõ tên của thực thể, các cổng của thực thể, và thông tin các mối liên hệ thực thể. Tất cả các thiết kế đều được tạo ra từ việc sử dụng một hoặc vài thực thể.
    Hãy xem ví dụ một thực thể đơn giản
    ENTITY mux IS
    PORT ( a, b, c, d : IN BIT;
    s0, s1 : IN BIT;
    x, : OUT BIT);
    END mux;
    từ khóa ENTITY báo hiệu rằng đây là bắt đầu một sự khai báo thực thể. Với các mô tả được chỉ ra trong toàn bộ cuốn sách này, các từ khóa của ngôn ngữ và các kiểu được cung cấp theo gói chuẩn được đưa ra bằng toàn bộ các chữ in hoa. Ví dụ, trong ví dụ trước, các từ khóa là ENTITY, IS, PORT, IN, INOUT, vân vân. Kiểu chuẩn được cung cấp là BIT. Tên của vật thể do người dùng tạo nên là mux, ở ví dụ trên , được chỉ ra bằng kiểu chữ thường.
    Tên của thực thể là mux. Thực thể này có 7 cổng trong mệnh đề PORT. Sáu cổng thuộc kiểu IN và một cổng thuộc kiểu OUT. Bốn dữ liệu vào có kiểu là BIT. Hai lựa chọn vào đa thành phần là so và s1 có kiểu BIT. Cổng ra có kiểu là BIT.
    Thực thể mô tả giao tiếp với thế giới bên ngoài. Nó định rõ số cổng, hướng của các cổng, và kiểu cổng. Có rất nhiều thông tin có thể được đưa vào trong thực thể.
    cấu trúc
    thực thể mô tả giao diện với vật mẫu VHDL. Cấu trúc mô tả chức năng cơ bản của thực thể và chứa các câu lệnh làm khung cho cách hoạt động của thực thể. Một cấu trúc luôn liên quan đến một thực thể và mô tả cách hoạt động của thực thể đó.
    Một cấu trúc cho thiết bị đếm được mô tả đầu tiên:
    ARCHITECTURE dataflow OF mux IS
    SIGNAL select : INTEGER;
    BEGIN
    select <= 0 WHEN s0 = ?~0?T AND s1 = ?~0?T ELSE
    1 WHEN s0 = ?~1?T AND s1 = ?~0?T ELSE
    2 WHEN s0 = ?~0?T AND s1 = ?~1?T ELSE
    3;
    x <= a AFTER 0.5 NS WHEN select = 0 ELSE
    b AFTER 0.5 NS WHEN select = 1 ELSE
    c AFTER 0.5 NS WHEN select = 2 ELSE
    d AFTER 0.5 NS;
    END dataflow;
    Từ khóa ARCHITECTURE biểu thị câu lệnh này mô tả một cấu trúc cho một thực thể. Tên cấu trúc là dataflow. Thực thể mà cấu trúc mô tả được gọi là mux.
    Lý do cho sự kết nối giữa cấu trúc và thực thể là một thực thể có thể có nhiều cấu trúc mô tả cách hoạt động của thực thể. Ví dụ, một cấu trúc có thể là sự miêu tả cách hoạt động, và bản khác có thẻ là sự miêu tả cấu trúc.
    Vùng văn bản giữa từ khóa ARCHITECTURE và từ khóa BEGIN là nơi các tín hiệu cục bộ và các thành phần được khai báo cho việc sử dụng sau đó.
    Vùng lệnh của cấu trúc được bát đầu với từ khóa BEGIN. Tất cả các câu lệnh giữa BEGIN và END được gọi là các câu lệnh đồng quy, bởi vì tất cả các câu lệnh này đều hoạt động đồng thời.
    Nhiệm vụ tín hiệu đồng quy
    Trong một ngôn ngữ lập trình điển hình như C hoặc C++, nhiệm vụ mỗi câu lệnh thực thi nó sau một câu lệnh khác và trong một thức tự nhất định. Thứ tự của sự hoạt động được quyết định bởi thứ tự các câu lệnh trong file chứa mã nguồn. Trong cấu trúc VHDL, không có thứ tự nhất định cho nhiệm vụ của các câu lệnh. Thứ tự của sự hoạt động chỉ được xác định khi các tín hiệu xảy ra, đó là sự ảnh hưởng tới nhiệm vụ các câu lệnh.
    Ví dụ đầu tiên nhiệm vụ câu lệnh từ bản cấu trúc behave.
    select <= 0 WHEN s0 = ?~0?T AND s1 = ?~0?T ELSE
    1 WHEN s0 = ?~1?T AND s1 = ?~0?T ELSE
    2 WHEN s0 = ?~0?T AND s1 = ?~1?T ELSE
    3;
    Nhiệm vụ tín hiệu được định nghĩa bởi ký hiệu <=. Tín hiệu select sẽ nhận một số giá trị chỉ định dựa trên các giá trị của s0 và s1. Câu lệnh này được kích hoạt bất cứ khi nào một trong hai tín hiệu s0 hoặc s1 có sự thay đổi giá trị. Câu lệnh nhiệm vụ tín hiệu được nói đến sẽ bị ảnh hưởng bởi sự thay đổi của bất cứ tín hiệu nào phía bên phải của kí hiệu <=. Trong ví dụ trên câu lệnh nhiệm vụ tín hiệu bị ảnh hưởng bởi s0 và s1. Câu lệnh nhiệm vụ tín hiệu khác trong bản cấu trúc dataflow bị ảnh hưởng bởi tín hiệu select.
    Hãy xem các câu lệnh này thực sự hoạt động thế nào. Cho rằng chúng ta có một điều kiện chắc chắn rằng cả s0 và s1 đều có giá trị 0, tín hiệu a, b, c và d hiện thời có giá trị 0. Tín hiệu x sẽ có giá trị 0 bởi vì nó được định giá trị bởi tín hiệu a lúc s0 và s1 đều là 0. Bây giờ cho a có giá trị 1. khi đó sẽ xảy ra, câu lệnh nhiệm vụ tín hiệu thứ nhất sẽ không hoat động bởi vì câu lệnh này không bị ảnh hưởng bởi sự thay đổi của tín hiệu a. vì a không ở bên phải của toán tử. Câu lệnh nhiệm vụ tín hiệu thứ hai sẽ hoạt động vì nó bị ảnh hưởng bởi sự kiện xảy ra trên tín hiệu a. Cổng x sẽ có giá trị 1.
    Hãy xem đến trường hợp s0 thay đổi giá trị. Cho rằng so và s1 đều là 0, cổng a, b,c,d có giá trị lần lượt là 0, 1, 0, 1. Bây giờ, thay đổi giá trị của s0 từ 0 thành 1. Câu lệnh nhiệm vụ tín hiệu đầu tiên bị ảnh hưởng bởi s0 theo đó sẽ hoạt động. Khi các câu lệnh đồng quy cùng hoạt động, việc tính giá trị của biểu thức sẽ sử dụng đến các giá trị dòng điện ở tất cả các tín hiệu chứa nó.
    Khi câu lệnh đầu tiên hoạt động, nó tính giá trị mới gán cho q từ giá trị dòng điện của biểu thức tín hiệu phía bên phải của ký hiệu <=. Việc tính giá trị biểu thức sử dụng giá trị dòng điện đôiứ với tất cả tín hiệu chứa nó.
    Với giá trị của s0 bằng 1 và s1 bằng 0, tín hiệu select sẽ nhận giá trị mới là 1. Giá trị mới của tín hiệu select sẽ gây ra một sự kiện xảy ra trên tín hiệu select, là nguyên nhân để câu lệnh nhiệm vụ tín hiệu thứ hai hoạt động. Câu lệnh này sẽ sử dụng giá trị mới của tín hiệu select để định giá trị của port b tới port x. Việc định giá trị của port b sẽ là gây ra sự thay đổi ở port x từ 0 thành 1.
    Thiết lập chương trình sự kiện
    việc định giá trị cho tín hiệu x không xảy ra tức thì. Mỗi giá trị định cho tín hiệu x chứa một mệnh đề AFTER. Kĩ thuật làm trễ giá trị mới được gọi là thết lập chương trình một sự kiện. Định cho port x một giá trị mới, một sự kiện đã được lập trương trình sau 0.5 nano giây trong tương lai chứa giá trị mới của tín hiệu x.
    Câu lệnh đồng thời
    sự chỉ định thứ nhất chỉ là một câu lệnh hoạt động khi có sự kiện xảy ra ở port s0 hoặc s1. Câu lệnh chỉ định thứ hai không hoạt động trừ khi một sự kiện xảy ra trên tín hiệu select hoặc ở các port a, b, c, d.
    Hai câu lệnh nhiệm vụ tín hiệu trong cấu trúc behave từ một mẫu cách hoạt động, hoặc cấu trúc, đối với thực thể mux. Cấu trúc dataflow không chứa cấu trúc. Ở đó không có một thành phần nào được đưa vào trong cấu trúc đó. Không có hệ thống cấp bậc cao hơn, và kiến trúc này có thể là nút lá trong tòan bộ bản thiết kế hình cây.
    Thiết kế cấu trúc
    Một cách khác để viết ra thết kế mux là diễn giải các phần nhỏ để thi hành các hoạt động nhỏ hơn trong một khung hoàn chỉnh. Với một khung đơn giản chỉ có 4 đầu vào mà chúng ta đã sử dụng, một sự miêu tả ở mức cổng đơn giản có thể được tạo ra để chỉ rõ làm thế nào mà các thành phần được mô tả và diễn giải. Cấu trúc ở dưới là một miêu tả cấu trúc của thực thể mux.
    ARCHITECTURE netlist OF mux IS
    COMPONENT andgate
    PORT(a, b, c : IN bit; c : OUT BIT);
    END COMPONENT;
    COMPONENT inverter
    PORT(in1 : IN BIT; x : OUT BIT);
    END COMPONENT;
    COMPONENT orgate
    PORT(a, b, c, d : IN bit; x : OUT BIT);
    END COMPONENT;
    SIGNAL s0_inv, s1_inv, x1, x2, x3, x4 : BIT;
    BEGIN
    U1 : inverter(s0, s0_inv);
    U2 : inverter(s1, s1_inv);
    U3 : andgate(a, s0_inv, s1_inv, x1);
    U4 : andgate(b, s0, s1_inv, x2);
    U5 : andgate(c, s0_inv, s1, x3);
    U6 : andgate(d, s0, s1, x4);
    U7 : orgate(x2 => b, x1 => a, x4 => d, x3 => c, x => x);
    END netlist;
    Sự miêu tả này sử dụng một số thành phần ở mức thấp để tạo khung cho cách hoạt động của thiết bị mux. Một thiết bị đảo, một thành phần ANDGATE và một ORGATE. Mỗi thành phần này được khai báo trong phần khai báo kiến trúc, chúng nằm giữa câu lệnh ARCHITECTURE và từ khóa BEGIN
    Một số tín hiệu cục bộ được sử dụng để kết nối các thành phần trong bản mô tả kiến trúc. Các tín hiệu cục bộ này được khai báo bằng việc sử dụng khai báo SIGNAL.
    Vùng lệnh kiến trúc được xác định đằng sau từ khóa BEGIN. Trong ví dụ này có một số câu lệnh diễn giải thành phần. Những câu lệnh này có nhãn U1-U7. Câu lệnh U1 là một câu lệnh diễn giả thành phần đảo. Câu lệnh này kết nối port 0 tới port đầu tiên của thành phần đảo và tín hiệu s0_in1 của phần đảo được kết nối cục bộ với tín hiệu s0_inv. Trong câu lệnh này các port đó được kết nối bởi một thứ tự được xuất hiện trong câu lệnh.
    Chú ý câu lệnh diễn giải thành phần U7. Câu lệnh này sử dụng theo một lời chú giải:
    U7 : orgate(x2 => b, x1 => a, x4 => d, x3 => c, x => x);
    Câu lệnh này sử dụng tên kết hợp để hợp nhất port và tín hiệu vào nhau. Ví dụ port x2 của orgate được nối với port b của thực thể với mệnh đề kết hợp thứ nhất. Mệnh đề diễn giải cuối cùng kết nối port x của thành phần orgate tới port x của thực thể. Quy tắc này của mệnh đề không quan trọng. Tên và thứ tự kết hợp có thể lẫn lộn, nhưng không nên.
    Cách hoạt động liên tiếp
    Hãy còn một cách khác để mô tả chức năng của thiết bị mux. Thực tế VHDL có rất nhiều sự thay thế hợp lý cho chức năng tương tự điều đó khiến việc học toàn bộ ngôn ngữ là một công việc lớn. Cách thứ ba để miêu tả chức năng đó của mux là sử dụng câu lệnh quá trình để mô tả chức năng trong một thuật toán thay thế.
    ARCHITECTURE sequential OF mux IS
    (a, b, c, d, s0, s1 )
    VARIABLE sel : INTEGER;
    BEGIN
    IF s0 = ?~0?T and s1 = ?~0?T THEN
    sel := 0;
    ELSIF s0 = ?~1?T and s1 = ?~0?T THEN
    sel := 1;
    ELSIF s0 = ?~0?T and s1 = ?~0?T THEN
    sel := 2;
    ELSE
    sel := 3;
    END IF;
    CASE sel IS
    WHEN 0 =>
    x <= a;
    WHEN 1 =>
    x <= b;
    WHEN 2 =>
    x <= c;
    WHEN OTHERS =>
    x <= d;
    END CASE;
    END PROCESS;
    END sequential;
    Cấu trúc chứa duy nhất một câu lệnh, được gọi là câu lệnh quá trình. Nó bắt đầu với dòng có từ khóa PROCESS và kết thúc với dòng chứa END PROCESS. Tất cả các câu lệnh ở giữa hai dòng này là phần tính toán của câu lệnh quá trình.
  4. hutcon

    hutcon Thành viên mới

    Tham gia ngày:
    24/06/2004
    Bài viết:
    158
    Đã được thích:
    0
    (tiếp chương 1)
    Các câu lệnh quá trình
    Câu lệnh quá trình chứa một số phần. Phần đầu tiên được gọi là danh sách độ nhạy; phần thứ hai được gọi là phần khai báo quá trình; phần thứ ba là phần câu lệnh. Ở ví dụ trên, danh sách các tín hiệu ở trong dấu ngoặc đơn sau từ khóa PROCESS được gọi là danh sách độ nhạy. Danh sách này liệt kê chính xác các tín hiệu là nguyên nhân để câu lệnh quá trình được thực thi. In ví dụ này, danh sách chứa a, b, c, d, s0 và s1. Chỉ khi có sự kiện trên các tín hiệu này mới khiến câu lệnh quá trình được thực thi.
    Vùng khai báo quá trình
    Phần khai báo quá trình gồm có vùng bắt đầu từ cuối của danh sách độ nhạy đến từ khóa BEGIN. Trong ví dụ này, phần khai báo chứa một khai báo biến đó là khai báo biến cục bộ se1. Biến này được dùng cục bộ để chứa giá trị được tính toán dựa trên port s0 và s1.
    Phần câu lệnh quá trình
    phần câu lệnh của quá trình bắt đầu ở từ khóa BEGIN và kết thúc ở dòng END PROCESS. Tất cả câu lệnh được xây dựng phía trong quá trình là các câu lệnh liên tiếp. Nghĩa là bất cứ câu lệnh nào ở phía trong quá trình đều được hoạt động sau câu khác trong một trật tự liên tiếp như là ở một ngôn ngữ lập trình điển hình. Nhớ rằng trật tự của các câu lệnh trong kiến trúc không tạo ra bất cứ sự khác biệt nào; tuy nhiên, điều này không đúng trong một quá trình. Trật tự của sự hoạt động là trật tự của các câu lệnh trong câu lệnh quá trình.
    Sự thi hành quá trình
    Hãy xem từng dòng một trong cấu trúc sequential. Để thích hợp, cho rằng s0 thay đổi thành 0. Bởi so nằm trong danh sách độ nhạy đối với câu lệnh quá trình, quá trình này được gọi đến. Mỗi câu lệnh trong quá trình được hoạt động liên tiếp. Trong ví dụ này, câu lệnh IF hoạt động bắt đầu một quá trình liên tiếp với mẫu thứ nhất.
    Lần kiểm tra thứ nhất để xem s0 có bằng 0. Câu lệnh này sai vì s0 bằng 1 và s1t bằng 0. Câu lệnh nhiệm vụ tín hiệu theo sau lần kiểm tra thứ nhất sẽ không được kích hoạt. Thay vào đó kiểm tra tiếp theo được thi hành. Lần kiểm tra này thành công và câu lệnh nhiệm vụ tín hiệu theo sau lần kiểm tra với s0=1 và s1=0 được thi hành. Câu lệnh này được chỉ ra ở phía dưới.
    sel := 1;
    Các câu lệnh tuần tự
    Các câu lệnh này sẽ chạy một cách tuần tự. Chỉ một lần được thi hành, lần kiểm tra tiếp theo của câu lệnh IF không được thực hiện. Bất cứ nơi nào việc kiểm tra thành công, một việc kiểm tra khác sẽ không được thực thi nữa. Câu lệnh IF hoàn thành và bây giờ câu lệnh CASE sẽ thực thi. Câu lệnh CASE sẽ đánh giá giá trị của se1 đã được tính toán trước đó trong câu lệnh IF và sau đó thực hiện câu lệnh thích hợp để khớp giá trị của se1. Trong ví dụ này giá trị của se1 là 1 do đó câu lệnh được kích hoạt tiếp theo sẽ là:
    x <= b;
    Giá trị của port b sẽ được gán cho port x và việc thực thi quy trình sẽ chấm dứt vì không có câu lệnh nào nữa trong cấu trúc.
    Sự lựa chọn cấu trúc
    Cho đến bây giờ, ba cấu trúc đã được mô tả cho một thực thể. Cấu trúc nào có thể được dùng làm mẫu cho thiết bị mux? Dựa trên dộ chính xác mong muốn và phụ thuộc vào thông tin cấu trúc. Nếu mẫu sắp được sử dụng để điều khiển công cụ bố trí, sau đó là kiểu cấu trúc mạng lưới cực kì thích hợp. Nếu một mô hình có cấu trúc là không cần thiết với một lý do nào đó thì một mẫu có hiệu quả hơn có thể được sử dụng. Một trong hai cách (cấu trúc dataflow và sequential) gần như chắc chắn có hiệu quả với không gian bộ nhớ cần đến và tốc độ của việc thực thi. Làm thế nào để lựa chọn giữa hai cách có thể đưa đến câu hỏi cho kiều lập trình. Cách viết mã nào đúng hơn tuần tự hay đồng thời. Nếu người tạo mô hình muốn viết mã đồng quy, thì kiểu cấu trúc dataflow là con đường để đi, ngược lại cấu trúc sequential sẽ được lựa chọn. Thông thường người tạo mô hình quen với kiểu mã tuần tự, nhưng các câu lệnh đồng quy là công cụ rất mạnh để viết các mô hình nhỏ mà hiệu quả.
    Chúng ta cũng sẽ xem xét đến các cấu trúc khác nữa chúng có thể được viết cho thực thể. Đây là cấu trúc có thể được dùng để điều khiển một công tụ tổng hợp. Các công cụ tổng hợp chuyển một sự mô tả Register Transfer Level (RTL) trong một mô tả mức cổng tối ưu. Các công cụ tổng hợp có thể đưa ra làm tăng nhiều hiệu quả so với kiểu thủ công. Việc xử lý tổng hơpự được thảo luận ở chương 9 và 10.
    Các câu lệnh cấu hình
    Một thực thể có thể có nhiêu hơn một cấu trúc, nhưng làm thế nào để người tạo mô hình lựa chọn để sử dụng trong một mô phỏng nhất định. Câu lệnh cấu hình sắp đặt các thuyết minh thành phần trong các thực thể.Với câu lệnh hiệu quả này, người tạo mô hình có thể chọn và lựa cấu trúc được sử dụng để tạo mẫu cho một thực thể ở bất cứ một mức thiết kế nào.
    Hãy xem xét một câu lệnh cấu hình sử dụng trong cấu trúc mạng của thực thể rsff.
    CONFIGURATION muxcon1 OF mux IS
    FOR netlist
    FOR U1,U2 :
    inverter USE ENTITY WORK.myinv(version1);
    END FOR;
    FOR U3,U4,U5,U6 : andgate USE ENTITY WORK.myand(version1);
    END FOR;
    FOR U7 : orgate USE ENTITY WORK.myor(version1);
    END FOR;
    END FOR;
    END muxcon1;
    Hàm của câu lệnh cấu hình là để giải thích rõ ràng chính xác cấu trúc sử dụng cho bất cứ trường hợp thành phần nào trong mô hình. Điều này xảy ra trong một kiểu có thứ bậc. Thực thể mức cao nhất trong bản thiết kế cần có cấu trúc để sử dụng theo danh nghĩa, như là bất cứ thành phần nào trong bản thiết kế.
    Câu lệnh cấu hình có trước đọc theo: đây là một tên cấu hình muxcon1 cho thực thể mux. Sử dụng cấu trúc netlist như là cấu trúc cho thực thể đỉnh cao nhất, với mux. Đối với hai thành phần U1 và U2 của kiểu inverter được ví dụ trong cấu trúc netlist, sử dụng thực thẻ myinv, cấu trúc version1 từ thư viện gọi là WORK. đối với thành phần ví dụ U3-U6 của kiểu andgate, dử dụng thực thể myand, cấu truc version1 từ thư viện WORK. Đối với ví dụ thành phần U7 của kiểu orgate sử dụng thực thể myor, cấu trúc version1 từ thư viện WORK. Tất cả thực thể bây giờ có cấu trúc cho riêng nó. Thực thể mux có cấu trúc netlist, và các thành phần khác có cấu trúc được định tên version1.
    hiệu quả của các cấu hình
    bằng việc kết hợp các thực thể, cấu trúc, và các cấu hình đặc biệt trước đó bạn có thể tạo một mô hình. Nhưng điều gì xảy ra nếu bạn không muốn mô phỏng ở mức cổng? Nếu bạn thực sự cần sử dụng cấu trúc BEHAVE thay thế thì sao? hiệu quả của cấu hình là ở chỗ nế bạn không cần biên tập lại bản thiết kế hoàn chỉnh của mình; bạn chỉ cần biên tập lại phàn cấu hình mới. Hãy xem ví dụ dưới
    CONFIGURATION muxcon2 OF mux IS
    FOR dataflow
    END FOR;
    END muxcon2;
    Đây là tên cấu hình muxcon2 cho thực thể mux. Sử dụng cấu trúc dataflow cho thực thể trên nhất, với mux. Bằng việc biên tập cấu hình này, cấu trúc dataflow được lựa chọ cho thực thể mux trong sự mô phỏng này.
    cấu hình này không cần thiết trong VHDL standard, nhưng đem đến cho nhà thiết kế sự thoải mái lựa chọn cấu trúc sử dụng cho thực thể. Cấu trúc mặc định sử dụng cho thực thể là phần biên tập cuối cùng trong thư viện làm việc.
  5. beman

    beman Thành viên mới

    Tham gia ngày:
    30/05/2004
    Bài viết:
    715
    Đã được thích:
    0
    bạn post thế thì.... chắc chỉ hệ thống lại kiến thức của bạn thôi,
    Nếu chưa có hardware thì... ặc ặc. Nghiên cứu lý thuyết xuông chán lắm.
    nếu bạn ở HUT HN thì pm mình, cần gì mình giúp cho.

Chia sẻ trang này