intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tóm tắt bài giảng VHDL - Very High speed integrated circuit Description Language

Chia sẻ: Van Nguyen Van | Ngày: | Loại File: PDF | Số trang:0

317
lượt xem
116
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Package là một vùng lưu trữ các dữ liệu để dùng chung cho các entity. Mô tả dữ liệu bên trong một package cho phép được tham khảo bởi một entity khác, vì vậy dữ liệu có thể được dùng chung. Một package bao gồm 2 phần: phần mô tả định nghĩa giao diện cho package, phần thân ấn định các hoạt động cụ thể của package.

Chủ đề:
Lưu

Nội dung Text: Tóm tắt bài giảng VHDL - Very High speed integrated circuit Description Language

  1. BOÄ GIAÙO DUÏC & ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC KYÕ THUAÄT COÂNG NGHEÄ THAØNH PHOÁ HOÀ CHÍ MINH Ths. NGUYEÃN TROÏNG HAÛI TOÙM TAÉ BAØI GIAÛN VHDL Very High speed integrated circuit Description Language LÖU HAØNH NOÄI BOÄ 07/2005
  2. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL VHDL Very High speed integrated circuit Description Language I. CẤU TRÚC CỦA MỘT THIẾT KẾ DÙNG NGÔN NGỮ VHDL. --------------------------------- -- Ghi chú --------------------------------- PACKAGE (Tùy chọn) library (Thư viện) use (Bắt buộc) ENTITY (Bắt buộc) ARCHITECTURE (Tùy chọn) CONFIGURATIONS 1. PACKAGE (KHỐI). Package là một vùng lưu trữ các dữ liệu để dùng chung cho các entity. Mô tả dữ liệu bên trong một package cho phép được tham khảo bởi một entity khác, vì vậy dữ liệu có thể được dùng chung. Một package bao gồm 2 phần: phần mô tả định nghĩa giao diện cho package, phần thân ấn định các hoạt động cụ thể của package. Cú pháp khai báo khối được xác định là: PACKAGE example_arithmetic IS -- các khai báo khối có thể chứa các khai báo sau: - Subprogram declaration. - Type, subtype declaration. - Constant, deferred constant declaration. - Signal declaration creates a global signal. - File declaration. - Alias declaration. - Attribute declaration, a user-define attribute. - Attribute specification. - Use clause. END example_arithmetic; Tất cả các đối tượng khai báo trong package có thể được truy xuất bởi bất kỳ một thiết kế nào đó bằng cách sử dụng mệnh đề use và khai báo library. library my_lib; use my_lib.example_arithmetic.all; Một số thư viện chuẩn GV: Nguyễn Trọng Hải Trang 1
  3. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL library ieee; use ieee.std_logic_1164.all; std_logic_1164: là thư viện logic chuẩn của IEEE (đoạn 1164), mục đích cung cấp các chuẩn cơ bản để có thể mô tả các kiểu dữ liệu kết nối trong VHDL. std_logic_arith: là thư viện chứa tập các phép toán và hàm Kiểu std_logic có thể có các giá trị U Uninitialized X Unknown 0 Zero 1 One Z Tristate (Must be upper case!) W Weak unknown L Weak Zero H Weak One - Don't care Ngoài ra có thể tự tạo riêng các thư viện trong thiết kế. 2. ENTITY Khai báo entity chỉ dùng để mô tả ngõ vào và ngõ ra của một thiết kế. Mức cao nhất của bất kỳ một thiết kế VHDL là một khai báo entity đơn, khi thiết kế trong VHDL, tên của file lưu trữ phải trùng với tên theo sau của từ khóa entity. Ví dụ, mô tả bộ cộng bán phần sau X1 A SUM A1 CARRY B library ieee; use ieee.std_logic_1164.all; ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; GV: Nguyễn Trọng Hải Trang 2
  4. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Trong khai báo ENTITY, có 4 kiểu tín hiệu khác nhau: • IN: mô tả các ngõ vào entity. Kiểu IN thì được sử dụng cho các ngõ vào clock, các ngõ vào điều khiển,… • OUT: mô tả dòng dữ liệu đi ra khỏi entity, entity sẽ không thể đọc các tín hiệu này, kiểu OUT chỉ được sử dụng khi tín hiệu không được sử dụng bởi bất kỳ kiểu nào trong entity. • BUFFER: Kiểu tín hiệu này mô tả dòng dữ liệu đi ra khỏi entity, nhưng entity có thể đọc những tín hiệu này (mục đích đọc lại tín hiệu ngõ ra ở bên trong của cấu trúc). Tuy nhiên , tín hiệu sẽ không thể điều khiển từ ngõ ra của entity, vì vậy nó không thể được sử dụng cho các dữ liệu ngõ vào. • INOUT: Kiểu tín hiệu này cho phép tín hiệu có thể có cả hai kiểu: vào và ra, khi khai báo tín hiệu theo kiểu INOUT thì tín hiệu có thể được điều khiển từ ngõ ra của entity. Kiểu tín hiệu này chỉ nên sử dụng khi thật cần thiết(ví dụ như bus dữ kiệu 3 trạng thái), và khi sử dụng kiểu tín hiệu này thì mã của chương trình sẽ trở nên khó hiểu hơn đối với người thiết kế. Loại tín hiệu cũng phải được mô tả trong khai báo PORT, loại tín hiệu sẽ mô tả các giá trị mà tín hiệu đó có thể được ấn định, ngoài ra có thể mô tả một vector những tín hiệu có cùng loại. Lưu ý: trong file report, nếu không gán chân linh kiện thì các biến ngõ vào và ra sẽ được gán ngẫu nhiên. Để gán các chân, có thể thực hiện từ phần mềm hỗ trợ hoặc thực hiện như sau: Ví dụ, ENTITY my_design is Port (a, b : in integer range 0 to 7; c : bit_vector (3 to 5); d : bit_vector (27 downto 25); e : out Boolean); attribute pinnum: string; attribute pinnum of c: signal is "1,2,3"; attribute pinnum of d: signal is "6,5,4"; attribute pinnum of e: signal is "2"; END my_design; 3. ARCHITECTURE. Chức năng của architecture là mô tả mối liên hệ giữa các tín hiệu ngõ vào và tín hiệu ngõ ra ( bao gồm cả những tín hiệu BUFFER), có thể viết nhiều kiến trúc khác nhau trong một entity, nhưng chỉ một trong số đó có khả năng xuất hiện trong mã VHDL. architechture có 3 dạng: mô tả cấu trúc (structure); mô tả dòng dữ liệu (data flow); mô tả hành vi (behavioral) GV: Nguyễn Trọng Hải Trang 3
  5. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Mô tả architechture dưới dạng cấu trúc (structure) Ví dụ, chương trình bộ cộng trên sẽ có dạng: ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Component AND2 Port(L,M: in BIT; N: out BIT); End component BEGIN X1: XOR2 port map (A,B,SUM); A1: AND2 port map (A,B,CARRY); END HA_STRUCTURE; Chú ý, trong trường hợp này các tín hiệu trong Port Map(ánh xạ cổng) của đối tượng trong thành phần này và các tín hiệu trong khai báo phải được liên kết theo vị trí Mô tả architechture dưới dạng dòng dữ liệu (data flow) Ví dụ, chương trình bộ cộng trên sẽ có dạng: ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN SUM
  6. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Mô tả architechture dưới dạng hành vi (behavioral) Kiểu mô tả hành vi bao gồm tập hợp thứ tự các phép gán tín hiệu tuần tự được khai báo bên trong phát biểu process. Biến được khai báo trong process là biến cục bộ. Tín hiệu không được khai báo trong process Ví dụ, chương trình bộ cộng trên sẽ có dạng: ENTITY HALF_ADDER IS PORT( A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN Process(A,B); Begin SUM
  7. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Mô tả architechture dưới dạng hỗn hợp (mixed style) Có thể trộn lẫn 3 kiểu trong một architechture Ví dụ, mô tả mạch cộng toàn phần (FULL_ADDER) sau structure dataflow X1 A :B SUM Cin CARRY behavior ENTITY FULL_ADDER IS PORT( A,B,CIN : IN BIT; SUM, COUT : OUT BIT); END DFF; ARCHITECTURE FA_MIXED OF FULL_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Signal S1: BIT --Khai báo tín hiệu cục bộ trong architechture BEGIN X1: XOR2 port map (A,B,S1); --structure Process(A,B,CIN); --behavior Variable T1,T2,T3: BIT; Begin T1:=A and B; T2:=A and CIN; T3:=B and CIN; COUT
  8. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL 4. CONFIGURATION Configuration dùng để liên kết các hợp phần tới entity configuration ban đầu có thể được ấn định tới rất nhiều architecture trong một entity. ENTITY component_i IS ARCHITECHTURE ARCHITECHTURE ARCHITECHTURE Structural Behavioral dataflow OF OF OF component_i component_i component_i IS IS IS …. …. …. Định cấu hình cho phép mô phỏng các thiết kế ở thành phần con, dễ dàng kiểm tra được thiết kế hơn một chương trình lớn. Một cấu hình được dùng để nối từng cặp như sau: • Một thân architecture tới khai báo entity của nó. • Một component với một entity. Ví dụ, xây dựng một entity FULL_ADDER ở trên có thể tách ra làm ba architecture body: FA_BEHAVIOR, FA_STRUCTURE, và FA_MIXED. Một architecture bất kỳ có thể được chọn bằng cách đặc tả một configuration thích hợp. Library HS_LIB, CMOS_LIB; ENTITY FULL_ADDER IS Port(A,B,Cin : IN BIT; SUM, Cout: OUT BIT); END FULL_ADDER; ARCHITECTURE FA_STR OF FULL_ADDER IS Component XOR2 Port(D1,D2 : IN BIT; DZ : OUT BIT); END componen; Component AND2 Port ( Z: OUT BIT; B0,B1: IN BIT); END Component; -- Đặc tả cấu hình: GV: Nguyễn Trọng Hải Trang 7
  9. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL CONFIGURATION FA_BINDING OF FULL_ADDER IS For FA_STR For X1,X2 : XOR2 use entity WORK.XOR2(XOR2BEH); End for; -- liên kết thực thể với nhiều đối tượng của một thành phần. For A3: AND2 Use entity HS_LIB.AND2HS(AND2STR); PORT MAP (HS_B => A1, HS_Z=>Z, HS_A => A0 ); End for; --liên kết thực thể với các đối tượng đơn của một thành phần. For all : OR2 Use entity CMOS_LIB.OR2CMOS(OR2STR); End for; -- liên kết thực thể với tất cả các đối tượng của thành phần OR2. For others: AND2 Use entity WORK.A_GATE(A_GATE_BODY); PORT MAP(A0,A1,Z); End for; -- liên kết thực thể với tất cả các đối tượng không được liên kết của thành phần AND2. End for; End for; Signal S1, S2, S3, S4, S5: BIT; BEGIN X1: XOR2 port map(A, B, S1); X1: XOR2 port map(S1, Cin, SUM); A1: AND2 port map(S2, A, B); A2: AND2 port map(S3, B, Cin); A3: AND2 port map(S4, A, Cin); O1: OR2 port map(S2, S3, S5); O2: OR2 port map(S3, B, Cin); NAND_GATE port map(S4,S5,Cout); END FA_STR; GV: Nguyễn Trọng Hải Trang 8
  10. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Có 4 đặc tả cấu hình trong phần khai báo của thân kiến trúc (architecture body): • Đặc tả thứ nhất chỉ rằng đối tượng có nhãn X1 và X2 của component XOR2 liên kết với entity bởi cặp entity - architecture XOR2 và XOR2BEH có sẵn trong thư viện WORK. • Đặc tả thứ hai liên kết đối tượng component AND2 có nhãn A3 đến entity bởi cặp entity - architecture AND2HS và AND2STR đã có trong thư viện thiết kế HS_LIB. Anh xạ của cổng thành phần (AND2 ) và các cổng thực thể(AND2HS) được liên kết theo tên (name association). • Đặc tả thứ ba chỉ rằng tất cả các đối tượng của component OR2 được liên kết với entity bởi cặp entity - architecture có sẵn trong thư viện thiết kế CMOS_LIB. • Đặc tả cuối cùng chỉ rằng tất cả các đối tượng không liên kết (unbound) của component AND2, đối tượng A1 và A2 được liên kết tới entity khác là: A_GATE có architecture A_GATE_BODY, kiến trúc này có sẵn trong thư viện WORK. Trong ví dụ này đã chỉ ra các đối tượng của cung một thành phần (component) có thể được liên kết(bound) với các thực thể khác nhau. II. CÁC KHAI BÁO TRONG VHDL. 1. Khai báo kiểu hỗ trợ. Kiểu liệt kê, số nguyên, dãy một chiều và kiểu bản ghi. • Kiểu liệt kê. Ví dụ, Type STD_ULOGIC is (‘U’, ‘X’, ‘0’, ‘1’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘_’); --std_ulogic là 1 kiểu liệt kê bao gồm 9 giá trị được khai báo là U
  11. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL type BYTE_INT is range –128 to 127; type MY_INTEGER is range -2147483647 to 2147483647; • Kiểu dãy nhiều chiều. Kiểu dãy nhiều chiều được VHDL hỗ trợ để định nghĩa một tập chỉ số. Tuy nhiên chỉ có dãy một chiều được công cụ tổng hợp cho phép. Vậy phải khai báo hai dãy một chiều thay vì một dãy hai chiều. Ví dụ, Type WORD is array (31 downto 0) of BIT; Type RAM is array (1023 downto 0) of WORD; Thay vì: Type OTHER_RAM is array (1023 downto 0, 31 downto 0) of BIT • Kiểu bản ghi Kiểu bản ghi định nghĩa tập các kiểu khác nhau. Mỗi thành phần bản ghi được định vị bằng tên của nó, và có thể dịch bởi công cụ tổng hợp như là giá trị độ dời không đổi hoặc được biến đổi trong vài trường hợp (khái niệm bản ghi không còn tồn tại nữa, địa chỉ thành phần được tính toán chỉ một lần và trở thành mã cố định). Ví dụ, Architecture A of E is Type CODE_TYPE is (NONE, DATA, STATMT) ; Type ITEM_TYPE is record; CODE: CODE_TYPE; INT: INTEGER; End record; Signal S1, S2 : ITEM_TYPE; Begin Process Variable V: ITEM_TYPE; Begin S1
  12. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL ‘H’, -- Weak 1 ‘U’, -- Don’t care ); 'X', '1', '0' là giá trị mạnh và trội hơn các giá trị yếu 'W', 'L', 'H' và chúng lại trội hơn 'Z'. '1' và '0' có thể hiểu như là nối nguồn và nối đất. Giá trị 'U'và 'W' được gọi là giá trị gần luận lý, chủ yếu có chức năng mô phỏng và hiển nhiên không có ý nghĩa phần cứng. Giá trị 'U' là chữ tận cùng bên trái trong định nghĩa STD_ULOGIC liệt kê, và là giá trị mặc định cho các biến số hoặc các tín hiệu ban đầu trước khi được gán các giá trị 'X' và 'W' biểu diễn trạng thái mà bộ mô phỏng không thể xác định được. 'W' có ảnh hưởng ít hơn có thể bị gán đến '0', '1' và 'X'. Do các công cụ tổng hợp chưa thể phân biệt giữa các độ mạnh yếu, nên các giá trị 'L' và 'H' không có ngữ nghĩa tổng hợp chuẩn. 'Z' có thể được dùng trong mô phỏng như là kết quả khi không có bộ điều khiển nào đang hoạt động. Đối với tổng hợp, phần cứng đặc biệt được ám chỉ khi gán phép gán giá trị vô hướng 'Z' được dùng, mục đích của phép gán là đặt đầu ra tới bộ đệm 3 trạng thái. 2. Các kiểu không hỗ trợ. Vài kiểu dữ liệu không được dùng cho mục đích tổng hợp (ví dụ, tất cả kiểu vật lý định nghĩa bởi người thiết kế không được hỗ trợ), kiểu vật lý định nghĩa trước TIME không được hỗ trợ. Ngay cả sự ràng buộc thời gian đối với tổng hợp không được biểu diễn trong VHDL với các biểu thức thời gian. Do đó mệnh đề after và reject không được dịch và không có công cụ tổng hợp nào có thể đảm bảo rằng tín hiệu sẽ thay đổi sau một khoảng thời gian chính xác. Nếu các mệnh đề này được sử dụng trong mô tả VHDL, công cụ tổng hợp sẽ bỏ qua và kết quả phần cứng có thể mâu thuẫn với mô tả đầu vào. Điều này nói rằng kiểu mẫu chính xác cho tổng hợp không dùng bất kỳ biểu thức thời gian nào, bao gồm lệnh biểu thức thời gian wait for. Trong mô phỏng qúa trình bị tạm ngưng trong thời gian định nghĩa bởi biểu thức for. Trong suốt giai đoạn này, tất cả tín hiệu giữ các giá trị mới của chúng. Trong miền tổng hợp không thể phỏng đoán phần cứng với các kết quả như vậy mà không cung cấp phần cứng vì nó quá phức tạp và quá đặc biệt (như bộ định thời gian). 3. Các kiểu con. Các kiểu con rất hữu dụng cho tổng hợp. Ở mỗi bước mô phỏng, các kiểu con cung cấp khả năng mạnh mẽ cho việc kiểm tra sử dụng kiểu. Các kiểu con còn thừa hưởng tất cả toán tử định nghĩa từ các kiểu cơ bản của chúng. Ví dụ, chức năng thao tác trên kiểu BIT_VECTOR có thể được dùng với bất kỳ kiểu con của BIT_VECTOR dài bằng giá trị còn lại trong khoảng thích hợp. III. CÁC ĐỐI TƯỢNG VHDL. Đối tượng trong VHDL là các thông tin về hằng số, biến số và tín hiệu. 1. Hằng số. Các khai báo hằng số: Constant constant_name : type_name [:=value] Ví dụ, GV: Nguyễn Trọng Hải Trang 11
  13. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Constant rise_time : time :=10 ns; Constant bus_width : integer :=8; Ví dụ, Type TAB2 is array (BIT, BIT) of BIT; Constant AND_TAB: TAB2 := ((‘0’, ’0’), (‘0’, ‘1’)); Giá trị hằng số được tính toán chỉ một lần. Quá trình tổng hợp chấp nhận hằng số của bất kỳ kiểu tổng hợp nào. Trong trường hợp khai báo như vậy không tạo ra bất kỳ phần cứng nào: Nếu hằng số được dùng trong phép gán tín hiệu như các lệnh dưới đây thì phần cứng được suy ra: Ví dụ, Signal Z, A, B : BIT; … Z
  14. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Ở đây biến CTRL_STATUS là một dãy có 11 phần tử, mỗi phần tử trong dãy có kiểu là BIT Ví dụ, Thực hiện mạch sau (DATA and “01”)(0) Z D Q (DATA and “10”)(1) CK Q Clock Entity MEMO_ONE is Port ( DATA: in BIT_VECTOR (1 downto 0); CLOCK :in BIT; Z: out BIT); Constant K1: BIT_VECTOR : = “01”; Constant K2: BIT_VECTOR := “10” ; End MEMO_ONE; Architecture A of MEMMO_ONE is Begin Process (CLOCK) Variable A1, A2: BIT_VECTOR(DATA’range); Variable A3: BIT; Begin If CLOCK = ‘1’ and CLOCK’event then A1 := DATA and K1; A2 := DATA and K2; A3 := A1(0) or A2(1); Z
  15. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Ví dụ, Signal clock: bit; --khai báo tín hiệu clock của kiểu bit lấy giá trị 1,0 Signal data_bus : bit_vector( 0 to 7); -- khai bo tín hiệu data_bus thuộcc kiểu bit_vector có độ rộng 8 bit 3. Các giá trị khởi động. Trong VHDL, có 3 loại giá trị ban đầu: • Giá trị mặc định từ định nghĩa kiểu hay kiểu con • Giá trị ban đầu khi đối tượng được khai báo • Giá trị được gán khi sử dụng một phát biểu lúc bắt đầu quá trình. Trường hợp thứ nhất và thứ hai sẽ bị bỏ qua bởi công cụ tổng hợp, nên có thể phát sinh mâu thuẫn giữa hoạt động mô phỏng và kết quả tổng hợp. Do đó đề nghị phải khởi động một cách rõ ràng và có hệ thống các biến và tín hiệu với các lệnh đặc biệt. Điều này đạt được trong phần mã tổng hợp phục vụ cho việc xử lý thiết lập/thiết lập lại và sự khởi động phải được trình bày trong phần này. Nếu cổng out hoặc thông số out của chương trình con có giá trị mặc định, chúng hoạt động giống như một giá trị khởi động cho tín hiệu hoặc biến và sẽ bị công cụ tổng hợp bỏ qua. 4. Các toán tử số học. Toán tử logic và toán tử bit là một phần của toán tử số học. VHDL định nghĩa bảy loại toán tử. Chúng được chỉ ở bảng dưới đây với sự tăng dần mức ưu tiên. Loại Toán tử Ưu tiên Luận lý Thấp nhất Or and nor nand xor xnor Quan hệ = /= > < >=
  16. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Ví dụ, Signal S, X, Y: BIT_VECTOR (1 downto 0); Signal R, A, B, C : BIT; Signal T, D, E, F, G: BOOLEAN; -- Begin S
  17. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Ví dụ, Architecture … Signal A, B, C: BIT_VECTOR(2 downto 0); Signal B, S, R: BIT_VECTOR (0 to 5); Signal D: BIT; Begin A
  18. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL 5. Phép gán biến số. Biến không dùng chung được khai báo trong quá trình hoặc trong phần khai báo chương trình con. Phép gán biến được thực hiện bởi toán tử :=, thao tác này xảy ra ngay lập tức khi tính toán. Do đó, giá trị của biến chỉ thay đổi bởi lệnh gán tiếp theo nếu giá trị mới khác với giá trị cũ. Ví dụ, cách gán biến khác nhau: A:= 0 ; -- giá trị integer 0 được gán cho biến A REC.FIELD := B; --B được gán cho bản ghi FIELD của REC VECTOR := X “AA”; -- phép gán vector toàn cục WBUS(1) := F(A); -- phép gán phần tử của vector WORD(3 to 4) := “10”; -- phép gán một nhóm phần tử vector REC := (‘A’, 3, “10”); -- Phép gán giá trị theo vị trí của vetor REC := (LETTER => ‘C’, FIELD => 3, BIT2 => “11”); -- Phép gán với tên Hơn nữa, ở phần bên trái của lệnh gán, nhiều biến số có thể gộp lại. Ví dụ Variable V: BIT_VECTOR(1 to 3); Variable A, B, C: BIT; … --Hai trạng thái sau là tương đương (A, B, C) := V; (1 => A;2 => B; 3 => C):= V; Lưu ý, biến khai báo trong chương trình con chỉ tồn tại trong chương trình con này và biến mất ở ngoài chương trình con. Vì vậy, nếu biến số đã được gán, kết quả bị mất sau khi chạy lệnh return ngoại trừ được trả về khi dùng thông số out bên trong thủ tục hoặc lệnh return bên trong hàm. Tuy nhiên biến này có thể tạo ra một phần nhớ nếu thời điểm đồng bộ xảy ra trước khi chương trình con kết thúc. 6. Phép gán tín hiệu. Mục đích của gán tín hiệu giống như phép gán biến. Hiệu quả của phép gán tín hiệu chỉ xảy ra sau lệnh đồng bộ (lệnh wait ). Signal
  19. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Ví dụ, Process Begin Wait on A, B, C, D; S
  20. Bài giảng Thiết Kế Hệ Thống Số Phần VHDL Process (S1, S2, R3, R1, R2, R3, R4) Begin If S1 = ‘1’ then RESULT
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2