MỤC LỤC
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. Đố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. 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ợ.
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 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). 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.
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. 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. 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.
Ở đâ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. Thật ra quá trình tương đương có thể được cho mà không có bất kỳ biến nào, ở đó tất cả các biến được thay thế bởi các phương trình của chúng. 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.
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. Toán tử luận lý và toán tử not chấp nhận các toán hạng có các kiểu BIT, BOOLEAN, và VECTOR với kích thước giống nhau. Toán tử quan hệ luôn trả về giá trị Boolean '0' hoặc '1' và là kết quả của sự so sánh hai toán hạng cùng một kiểu cơ bản.
Thứ tự của kiểu vô hướng được định nghĩa bởi khai báo của nó, kiểu 'LEFT' thấp hơn kiểu 'RIGHT'. Toán tử quan hệ này không thể dùng để so sánh các vector bit mã hóa các giá trị liệt kê. Tất cả các công cụ tổng hợp đều cài đặt các toán tử này và thường sử dụng với một số ràng buộc.
Các toán tử dịch chuyển hỗ trợ cho BIT_VECTOR Các toán tử dịch chuyển và quay là sll, srl, sla, sra, rol và ror. Chỉ có toán tử nhân được hỗ trợ thêm ví dụ không hạn chế đối với tất cả các kiểu số nguyên. 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.
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. 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ũ. 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.
Tín hiệu này phải là duy nhất, clock được xác định bởi các sự kiện và sườn xung. Nếu lệnh wait là rừ ràng, lệnh đồng bộ được mụ tả bởi một lệnh điều kiện if Ví dụ,. ('STABLE là một hàm chấp nhận kiểu thông số TIME có giá trị mặc định là zero).
Có hai cách biểu diễn lệnh điều kiện : lệnh if và lệnh case Lệnh if. Lệnh if bao gồm cả rẽ nhánh elsif và else, chỉ mức ưu tiên thực hiện các rẽ nhánh khác nhau. Trong lệnh case, mỗi nhánh có cùng cấp với nhau (lệnh if và lệnh elsif, mỗi nhánh được kiểm tra một cách tuần tự).
Trong lệnh case, tất cả các giá trị có thể phải được đưa vào hết và chúng là duy nhất, không có ưu tiên. Lưu ý, others không bao giờ nên dùng nếu tất cả giá trị đã được liệt kê trước đó.