Một bộ cộng đầy đủ được mô tả trong hình dưới đây:
Hình 2.2.a. Sơ đồ tổng quát về bộ cộng đầy đủ
Trong đó, a, b là các bit vào cho bộ cộng, cin là bit nhớ. Đầu ra s là bit tổng,
Chương 2: Tìm hiểu ngôn ngữ VHDL 24
Hình 2.2.b. Bảng chân lý của bộ cộng đầy đủ
Bit s và cout được tính như sau:
s = abcin và cout = a.b + a.cin + b.cin
Từ công thức tính s và cout ta viết đoạn mã VHDL như dưới đây:
Hình 2.3. Mã thiết kế bộ cộng
Từ mã VHDL này, mạch vật lý được tạo ra. Tuy nhiên có nhiều cách để thực
hiện phương trình được miêu tả trong ARCHITECTURE OF, vì vậy mạch thực tế
sẽ phụ thuộc vào bộ biên dịch/bộ tối ưu đang được sử dụng và đặc biệt phụ thuộc
mục đích công nghệ. Hình vẽ sau đây thể hiện một số dạng kiến trúc của mạch
Chương 2: Tìm hiểu ngôn ngữ VHDL 25
Hình 2.4.a. Các ví dụ về sơ đồ mạch có thể có ứng với mã như hình 2.3 Trong trường hợp này, nếu mục đích công nghệ của chúng ta là thiết bị logic có thê lập trình được (PLD, FPGA), thì 2 kết quả cho cout thoả mãn là ở hình (b) và hình (c) (cout = a.b + a.cin + b.cin ). Còn nếu mục đích công nghệ là ASIC, thì chúng ta có thể sử dụng hình (d). Hình (d) sử dụng công nghệ CMOS với các tầng
transistor và các mặt nạ phủ.
Bất cứ một cái mạch nào được tao ra từ mã, thì những thao tác của nó sẽ luôn
luôn được kiểm tra ở mức thiết kế, như ta đã chỉ ra ở hình 1. Tất nhiên, chúng ta cũng có thể kiểm tra nó ở tầng vật lý, nhưng sau đó những thay đổi là rất tai hại.
Hình dưới đây là mô phỏng kết quả của đoạn chương trình đã viết ở trên cho mạch bộ cộng đầy đủ ở hình 2.3.
Chương 2: Tìm hiểu ngôn ngữ VHDL 26
Hình 2.4.b: Kết quả mô phỏng bộ cộng được thiết kế theo hình 2.3