1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế và thực thi đồng hồ thời gian trên FPGA thiết kế mạch số

43 542 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 4,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI CẢM ƠN2CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ VHDL51.1.Tổng quan về ngôn ngữ VHDL51.2.Giới thiệu công nghệ (và ứng dụng) thiết kế mạch bằng VHDL71.2.1.Ứng dụng của công nghệ thiết kế mạch bằng VHDL71.2.2.Quy trinh thiết kế mạch bằng VHDL71.2.3.Quy trinh thiết kế mạch bằng VHDL81.2.4.Chuyển mã VHDL vào mạch91.3.Cấu trúc chương trình VHDL111.3.1.Khai báo thư viện131.3.2.Mô tả thực tế (ENTITY)141.3.3.Mô tả kiến trúc (ARCHITECTURE):151.4.Một số ưu điểm của ngôn ngữ VHDL19CHƯƠNG 2: THIẾT KẾ MẠCH SỐ TRÊN FPGA222.1.Tổng quan về kiến trúc FPGA222.1.1.Tổng quan222.1.2.Lịch sử phát triển232.1.3.Ứng dụng242.2.Cấu trúc của FPGA252.3.Quy trình thiết kế FPGA272.3.1.Mô tả ban đầu về thiết kế272.3.2.Thực thi282.4.Nạp chương trình vào FPGA292.5.Giới thiệu về Kit Xilinx FPGA Artix 7292.6.Kết luận chương32CHƯƠNG 3 THIẾT KẾ VÀ THỰC THI ĐỒNG HỒ THỜI GIAN TRÊN FPGA333.1.Tổng quan về đồng hồ thời gian333.2.Thiết kế đồng hồ thời gian333.2.1.Mục tiêu333.2.2.Mục tiêu343.2.3.Sơ đồ khối mạch đồng hồ thời gian343.2.4.Kết quả thực thi363.3.Kết luận37TÀI LIỆU THAM KHẢO38PHỤ LỤC39 CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ VHDLTổng quan về ngôn ngữ VHDLVHDL là một ngôn ngữ mô tả phần cứng (Hardware Description Language), được dùng phổ biến trong việc thiết kế các mạch tích hợp và các hệ thống số một cách dễ dàng và hiệu quả với tốc độ cao. Ngôn ngữ VHDL dựa trên một ngôn ngữ mô tả phần cứng khác là VHSIC (Very High Speed Integated Circuit) do bộ quốc phòng Mỹ phát triển từ năm 1980. Phiên bản đầu tiên của ngôn ngữ VHDL là VHDL 87. VHDL là một ngôn ngữ mô tả phần cứng đầu tiên được tổ chức IEEE chứng nhận là một tiêu chuẩn chung 1. Một trong những điều cơ bản thúc đẩy việc sử dụng ngôn ngữ VHDL đó là tính chuẩn hóa, độc lập về công nghệ của các nhà cung cấp…VHDL được ứng dụng trực tiếp trên các công nghệ FPGA , CPLDs…Code VHDL được viết để thực thi (implement) các mạch tích hợp trong các thiết bị lập trình được của các hãng như Xilinx, Altera, Amtel …VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thay đổi và lập tài liệu cho các hệ thống số. VHDL là một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế, một bộ mô tả hay công nghệ phần cứng nào. Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi chỉ sử dụng một ngôn ngữ duy nhất. Và khi đem so sánh với các ngôn ngữ mô phỏng phần cứng khác ta thấy VHDL có một số ưu điểm hơn hẳn là:Thứ nhất là tính công cộng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE. VHDL được sự hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống.Thứ hai là khả năng được hỗ trợ bởi nhiều công nghệ và nhiều phương pháp thiết kế: VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết kế từ trên xuống, hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng ngẫu nhiên.Thứ ba là tính độc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế.Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần cứng từ mức hệ thống số cho đến mức cổng. VHDL có khả năng mô tả hoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ con được mô tả chi tiết.Thứ năm là khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứng được tiêu chuẩn VHDL. Các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo tiêu chuẩn VHDL. Cũng như một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một hệ thống lớn (trong đó các hệ con đó được thiết kế độc lập).Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. Và nó cũng cho phép dùng lại các phần đã có sẵn.Giới thiệu công nghệ (và ứng dụng) thiết kế mạch bằng VHDLỨng dụng của công nghệ thiết kế mạch bằng VHDLHiện nay 2 ứng dụng chính và trực tiếp của VHDL là các ứng dụng trong các thiết bị logic có thể lập trình được (Programmable Logic Devices – PLD) (bao gồm các thiết bị logic phức tạp có thể lập trình được và các FPGA Field Programmable Gate Arrays) và ứng dụng trong ASICs(Application Specific Integrated Circuits).Khi chúng ta lập trình cho các thiết bị thì chúng ta chỉ cần viết mã VHDL một lần, sau đó ta có thể áp dụng cho các thiết bị khác nhau (như Altera, Xilinx, Atmel,…) hoặc có thể để chế tạo một con chip ASIC. Hiện nay, có nhiều thương mại phức tạp (như các vi điều khiển) được thiết kế theo dựa trên ngôn ngữ VHDL.Quy trinh thiết kế mạch bằng VHDLNhư đề cập ở trên, một trong số lớn các ứng dụng của VHDL là chế tạo các mạch hoặc hệ thống trong thiết bị có thể lập trình được (PLD hoặc FPGA) hoặc trong ASIC. Việc chế tao ra vi mạch sẽ được chia thành 3 giai đoạn như sau:Giai đoạn 1: Chúng ta bắt đầu thiết kế bằng viết mã VHDL. Mã VHDL này sẽ được lưu vào file có đuôi là .vhd và có tên cùng với tên thực thể. Mã VHDL sẽ được mô tả ở tầng chuyển đổi thanh ghi. Hình 1. 1 . Tóm tắt quy trình thiết kế VHDLGiai đoạn 2: Giai đoạn chế tạo: Bước đầu tiên trong quá trình chế tạo là biên dich. Quá trình biên dịch sẽ chuyển mã VHDL vào một netlist ở tầng cổng. Bước thứ 2 của quá trình chế tạo là tối ưu. Quá trình tối ưu được thực hiện trên netlist ở tầng cổng về tốc độ và phạm vi. Trong giai đoạn này, thiết kế có thể được mô phỏng để kiểm tra phát hiện những lỗi xảy ra trong quá trình chế tạo.Giai đoạn 3: Là giai đoạn ghép nối đóng gói phần mềm. Ở giai đoạn này sẽ tạo ra sự sắp xếp vật lý cho chip PLDFPGA hoặc tạo ra mặt nạ cho ASIC.Quy trinh thiết kế mạch bằng VHDLCác công cụ phục vụ cho quá trình thiết kế vi mạch sẽ là:Công cụ Active – HDL: Tạo mã VHDL và mô phỏngCông cụ EDA (Electronic Design Automation): là công cụ tự động thiết kế mạch điện tử. Công cụ này được dùng để phục vụ cho việc chế tạo, thực thi và mô phỏng mạch sử dụng VHDL.Công cụ cho đóng gói: Các công cụ này sẽ cho phép tổng hợp mã VHDL vào các chip CPLDFPGA của Altera hoặc hệ ISE của Xilinx, for Xilinx’s CPLDFPGA chips).Chuyển mã VHDL vào mạchMột bộ cộng đầy đủ được mô tả trong hình dưới đây: Hình 1. 2 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, cout là bit nhớ ra. Hoạt động của mạch được chỉ ra dưới dạng bảng chân lý:abcinscount0000001010100101101100110011011010111111Bảng 1. 1 Bảng chân lý của bộ cộng đầy đủBit s và cout được tính như sau: s=a⊕b⊕cin và cout=a.b+a.cin+b.sinTừ công thức tính s và cout ta viết đoạn mã VHDL như dưới đây: Hình 1. 3 Mã thiết kế bộ cộngTừ 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ịchbộ 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 cộng: Hình 1. 4 Các ví dụ về sơ đồ mạch có thể có ứng với mã như hình 1.3Trong trường hợp này, nếu mục đích công nghệ của chúng ta là thiết bị lgic 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) ( ). 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 1.3.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘITRUNG TÂM ĐÀO TẠO SAU ĐẠI HỌC

HÀ NỘI – 201

Hà Nội, 9/2020

Trang 2

Hà Nội, ngày 20 tháng 09 năm 2020 Học viên thực hiện

Nguyễn Thanh Phong

Trang 3

M C L C Ụ Ụ

LỜI CẢM ƠN 2

CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ VHDL 5

1.1 Tổng quan về ngôn ngữ VHDL 5

1.2 Giới thiệu công nghệ (và ứng dụng) thiết kế mạch bằng VHDL 7

1.2.1 Ứng dụng của công nghệ thiết kế mạch bằng VHDL 7

1.2.2 Quy trinh thiết kế mạch bằng VHDL 7

1.2.3 Quy trinh thiết kế mạch bằng VHDL 8

1.2.4 Chuyển mã VHDL vào mạch 9

1.3 Cấu trúc chương trình VHDL 11

1.3.1 Khai báo thư viện 13

1.3.2 Mô tả thực tế (ENTITY) 14

1.3.3 Mô tả kiến trúc (ARCHITECTURE): 15

1.4 Một số ưu điểm của ngôn ngữ VHDL 19

CHƯƠNG 2: THIẾT KẾ MẠCH SỐ TRÊN FPGA 22

2.1 Tổng quan về kiến trúc FPGA 22

2.1.1 Tổng quan 22

2.1.2 Lịch sử phát triển 23

2.1.3 Ứng dụng 24

2.2 Cấu trúc của FPGA 25

2.3 Quy trình thiết kế FPGA 27

2.3.1 Mô tả ban đầu về thiết kế 27

Trang 4

2.3.2 Thực thi 28

2.4 Nạp chương trình vào FPGA 29

2.5 Giới thiệu về Kit Xilinx FPGA Artix 7 29

2.6 Kết luận chương 32

CHƯƠNG 3 THIẾT KẾ VÀ THỰC THI ĐỒNG HỒ THỜI GIAN TRÊN FPGA 33 3.1 Tổng quan về đồng hồ thời gian 33

3.2 Thiết kế đồng hồ thời gian 33

3.2.1 Mục tiêu 33

3.2.2 Mục tiêu 34

3.2.3 Sơ đồ khối mạch đồng hồ thời gian 34

3.2.4 Kết quả thực thi 36

3.3 Kết luận 37

TÀI LIỆU THAM KHẢO 38

PHỤ LỤC 39

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ VHDL 1.1 T ng quan v ngôn ng VHDL ổ ề ữ

VHDL là một ngôn ngữ mô tả phần cứng (Hardware Description Language),được dùng phổ biến trong việc thiết kế các mạch tích hợp và các hệ thống số mộtcách dễ dàng và hiệu quả với tốc độ cao

Ngôn ngữ VHDL dựa trên một ngôn ngữ mô tả phần cứng khác là VHSIC(Very High Speed Integated Circuit) do bộ quốc phòng Mỹ phát triển từ năm 1980.Phiên bản đầu tiên của ngôn ngữ VHDL là VHDL 87 VHDL là một ngôn ngữ mô

tả phần cứng đầu tiên được tổ chức IEEE chứng nhận là một tiêu chuẩn chung [1]

Một trong những điều cơ bản thúc đẩy việc sử dụng ngôn ngữ VHDL đó làtính chuẩn hóa, độc lập về công nghệ của các nhà cung cấp…VHDL được ứngdụng trực tiếp trên các công nghệ FPGA , CPLDs…Code VHDL được viết để thựcthi (implement) các mạch tích hợp trong các thiết bị lập trình được của các hãngnhư Xilinx, Altera, Amtel …

VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thayđổi và lập tài liệu cho các hệ thống số VHDL là một ngôn ngữ độc lập không gắnvới bất kỳ một phương pháp thiết kế, một bộ mô tả hay công nghệ phần cứng nào.Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi chỉ

sử dụng một ngôn ngữ duy nhất Và khi đem so sánh với các ngôn ngữ mô phỏngphần cứng khác ta thấy VHDL có một số ưu điểm hơn hẳn là:

- Thứ nhất là tính công cộng: VHDL được phát triển dưới sự bảo trợ của

chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE VHDL được sự hỗ trợcủa nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế

mô phỏng hệ thống

- Thứ hai là khả năng được hỗ trợ bởi nhiều công nghệ và nhiều phương

pháp thiết kế: VHDL cho phép thiết kế bằng nhiều phương pháp ví dụ

Trang 6

có VHDL cũng hỗ trợ cho nhiều loại công cụ xây dựng mạch như sử dụngcông nghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay

sử dụng mảng ngẫu nhiên

- Thứ ba là tính độc lập với công nghệ: VHDL hoàn toàn độc lập với công

nghệ chế tạo phần cứng Một mô tả hệ thống dùng VHDL thiết kế ở mứccổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộccông nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay chocác hệ thống đã thiết kế

- Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của

phần cứng từ mức hệ thống số cho đến mức cổng VHDL có khả năng mô tảhoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặtchẽ thống nhất cho mọi mức Như thế ta có thể mô phỏng một bản thiết kếbao gồm cả các hệ con được mô tả chi tiết

- Thứ năm là khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được

chấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứngđược tiêu chuẩn VHDL Các kết quả mô tả hệ thống có thể được trao đổigiữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuântheo tiêu chuẩn VHDL Cũng như một nhóm thiết kế có thể trao đổi mô tảmức cao của các hệ thống con trong một hệ thống lớn (trong đó các hệ con

đó được thiết kế độc lập)

- Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các

thiết kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy

nó có thể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của mộtnhóm nhiều người Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợviệc quản lý, thử nghiệm và chia sẻ thiết kế Và nó cũng cho phép dùng lạicác phần đã có sẵn

Trang 7

1.2 Giới thiệu công nghệ (và ứng dụng) thiết kế mạch bằng VHDL

1.2.1 ng d ng c a công ngh thi t k m ch b ng VHDL Ứ ụ ủ ệ ế ế ạ ằ

Hiện nay 2 ứng dụng chính và trực tiếp của VHDL là các ứng dụng trong cácthiết bị logic có thể lập trình được (Programmable Logic Devices – PLD) (bao gồmcác thiết bị logic phức tạp có thể lập trình được và các FPGA - Field ProgrammableGate Arrays) và ứng dụng trong ASICs(Application Specific Integrated Circuits)

Khi chúng ta lập trình cho các thiết bị thì chúng ta chỉ cần viết mã VHDLmột lần, sau đó ta có thể áp dụng cho các thiết bị khác nhau (như Altera, Xilinx,Atmel,…) hoặc có thể để chế tạo một con chip ASIC Hiện nay, có nhiều thươngmại phức tạp (như các vi điều khiển) được thiết kế theo dựa trên ngôn ngữ VHDL

1.2.2.Quy trinh thi t k m ch b ng VHDL ế ế ạ ằ

Như đề cập ở trên, một trong số lớn các ứng dụng của VHDL là chế tạo cácmạch hoặc hệ thống trong thiết bị có thể lập trình được (PLD hoặc FPGA) hoặctrong ASIC Việc chế tao ra vi mạch sẽ được chia thành 3 giai đoạn như sau:

- Giai đoạn 1: Chúng ta bắt đầu thiết kế bằng viết mã VHDL Mã VHDL này

sẽ được lưu vào file có đuôi là vhd và có tên cùng với tên thực thể MãVHDL sẽ được mô tả ở tầng chuyển đổi thanh ghi

Trang 8

Hình 1 1 Tóm tắt quy trình thiết kế VHDL

- Giai đoạn 2: Giai đoạn chế tạo: Bước đầu tiên trong quá trình chế tạo là biêndich Quá trình biên dịch sẽ chuyển mã VHDL vào một netlist ở tầng cổng.Bước thứ 2 của quá trình chế tạo là tối ưu Quá trình tối ưu được thực hiệntrên netlist ở tầng cổng về tốc độ và phạm vi Trong giai đoạn này, thiết kế cóthể được mô phỏng để kiểm tra phát hiện những lỗi xảy ra trong quá trìnhchế tạo

- Giai đoạn 3: Là giai đoạn ghép nối đóng gói phần mềm Ở giai đoạn này sẽtạo ra sự sắp xếp vật lý cho chip PLD/FPGA hoặc tạo ra mặt nạ cho ASIC

1.2.3.Quy trinh thi t k m ch b ng VHDL ế ế ạ ằ

Các công cụ phục vụ cho quá trình thiết kế vi mạch sẽ là:

- Công cụ Active – HDL: Tạo mã VHDL và mô phỏng

Trang 9

- Công cụ EDA (Electronic Design Automation): là công cụ tự động thiết kếmạch điện tử Công cụ này được dùng để phục vụ cho việc chế tạo, thực thi

và mô phỏng mạch sử dụng VHDL

- Công cụ cho đóng gói: Các công cụ này sẽ cho phép tổng hợp mã VHDL vàocác chip CPLD/FPGA của Altera hoặc hệ ISE của Xilinx, for Xilinx’sCPLD/FPGA chips)

1.2.4.Chuy n mã VHDL vào m ch ể ạ

Một bộ cộng đầy đủ được mô tả trong hình dưới đây:

Hình 1 2 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,cout là bit nhớ ra Hoạt động của mạch được chỉ ra dưới dạng bảng chân lý:

a b ci

n

s count

Bảng 1 1 Bảng chân lý của bộ cộng đầy đủ

Bit s và cout được tính như sau: và

Từ công thức tính s và cout ta viết đoạn mã VHDL như dưới đây:

Trang 10

Hình 1 4 Các ví dụ về sơ đồ mạch có thể có ứng với mã như hình 1.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ị lgic 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

Trang 11

(c) ( ) 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 chomạch bộ cộng đầy đủ ở hình 1.3

Hình 1 5 Kết quả mô phỏng bộ cộng được thiết kế theo hình 1.3

1.3 Cấu trúc chương trình VHDL

Tất cả các chương trình VHDL bao gồm ít nhất ba thành phần cơ bản sau đây:

1 Khai báo thư viện (LIBRARY): Chứa danh sách tất cả các thư viện sẽ được

sử dụng trong thiết kế Ví dụ: ieee, std, work, v.v

2 ENTITY (thực thể): Entity dùng để khai báo tên của thực thể, các port củathực thể và các thông tin liên quan đến thực thể

3 ARCHITECTURE (kiến trúc): Kiến trúc mô tả chức năng cơ bản của thựcthể và chứa nhiều phát biểu mô tả hành vi của thực thể Kiến trúc luôn luôn

có liên quan đến thực thể và các mô tả hành vi của thực thể

Trang 12

Ví dụ cấu trúc của chương trình VHDL:

LIBRARY library_name;

USE library_name.package_name.package_parts;

ENTITY entity_name IS

PORT (

port_name : signal_mode signal_type;

port_name : signal_mode signal_type;

Mô tả kiến trúcARCHITECTUREHành vi

Behavioral Lồng dữ liệuDataFlow StructureCấu trúc

Hình 1 6 Cấu trúc một chương trình mô tả bằng VHDL

Trang 13

1.3.1.Khai báo th vi n ư ệ

Thư viện chứa tất cả các đoạn code thường xuyên được sử dụng Nó sẽ chophép chúng ta sử dụng lại nhiều lần Ngoài ra, thư viện có thể được chia sẻ với cácthiết kế khác

Để khai báo thư viện (nghĩa là làm cho nó hiển thị trong thiết kế) cần phải cóhai dòng lệnh, dòng thứ nhất bắt đầu bằng từ khóa LIBRARY tên thư viện (chú ý làVHDL không phân biệt chữ hoa chữ thường) Sau đó trên từng dòng kế tiếp sẽ khaibáo các gói thư viện con mà thiết kế sẽ sử dụng, mỗi dòng phải kết thúc bằng dấu

Bây giờ để thêm các gói thư viện và một phần của nó, từ khóa USE được sửdụng với tên thư viện, các gói thư viện và các phần gói Ví dụ trong thư viện IEEE,gói là std_logic_1164 và để thêm tất cả các phần của nó, chúng ta có thể viết

LIBRARY ieee

USE ieee.std_logic_1164.all

Trang 14

port_name : signal_mode signal_type;

port_name : signal_mode signal_type;

…);

END entity_name;

Khai báo thực thể bắt đầu bằng từ khóa ENTITY sau đó là tên của thực thể

và cuối cùng là từ khóa IS Người viết chương trình phải đặt tên cho thực thểthường liên quan đến một mạch đang được thiết kế như ‘mux,’ ‘decoder,’ ‘adder,’

‘counter’, v.v (quy tắc chung cho bất kỳ chương trình VHDL nào là tên file chươngtrình phải giống với tên thực thể)

Bên trong thực thể, các chân đầu vào – đầu ra của mạch được khai báo bằng

Trang 15

+ IN: Chỉ có thể được đọc, nó chỉ được dùng cho các tín hiệu đầu vào (chỉ đượcphép nằm bên phải phép gán).

+ OUT: Chỉ được dùng để gán giá trị, nó chỉ được dùng cho các cổng đầu ra (nó chỉđược nằm bên trái của phép gán)

+ INOUT: Có thể được dùng để đọc và gán giá trị Nó có thể có nhiều hơn mộthướng điều khiển (có thể nằm ở bên trái hoặc bên phải phép gán)

+ BUFFER: Có thể được dùng để đọc và gán giá trị (có thể nằm ở bên trái hoặc bênphải phép gán) Inout là một cổng hai hướng, còn Buffer là một cổng không cóhướng

signal_type – chỉ ra kiểu tín hiệu của một cổng, có thể là BIT, STD_LOGIC,INTEGER, …

entity_name (tên của thực thể) có thể lấy một tên bất kỳ, ngọai trừ các tù khóa củaVHDL

Sau khi khai báo tất cả các chân giao tiếp, khai báo thực thể kết thúc bằng từ khóaEND theo sau là tên thực thể

Ví dụ: Cổng NAND 2 ngõ vào, khai báo ENTITY như sau:

Trang 16

là các phát biểu (lệnh) tuần tự hoặc đồng thời Cú pháp cơ bản của architecture nhưsau:

ARCHITECTURE architecture_name OF entity_name IS

là cách mạch tạo ra đầu ra cần thiết từ các đầu vào nhất định

Khai báo kiến trúc bắt đầu bằng từ khóa ARCHITECTURE theo sau làarchitecture_name và entity_name

Từ khóa BEGIN cho biết phần bắt đầu của phần thân kiến trúc Phần thânbao gồm các câu lệnh tuần tự hoặc đồng thời mô tả chức năng mạch

Phần thân kiến trúc kết thúc bằng từ khóa END theo sau làarchitecture_name

Ví dụ: Đây là kiến trúc của cổng NAND 2 đầu vào có

ARCHITECTURE myarch OF nand_gate IS

BEGIN

x <= a NAND b;

END myarch;

Có ba kiểu mô hình khác nhau cho phần thân kiến trúc:

- Kiểu hoạt động của các luồng dữ liệu (Dataflow) – theo kiểu mô hình này,mạch được mô tả bằng cách sử dụng các câu lệnh đồng thời

Trang 17

- Kiểu hành vi hoạt động (Behavioral) – trong kiểu mô hình này, mạch được

mô tả bằng cách sử dụng các câu lệnh tuần tự

- Kiểu cấu trúc (Structure) – theo kiểu mô hình này, mạch được mô tả bằngcách sử dụng các thành phần được kết nối với nhau

Kiến trúc theo kiểu hoạt động của các luồng dữ liệu (Dataflow)

Một kiến trúc kiểu luồng dữ liệu chỉ ra một hệ thống dưới dạng mô tả đồngthời của các luồng điều khiển và dịch chuyển của dữ liệu Nó sử dụng theo mẫuthông tin hoặc mẫu hoạt động của luồng dữ liệu đó, hoặc mẫu thời gian của cácchức năng logic tổ hợp Chẳng hạn như các bộ cộng, bộ so sánh, bộ giải mã, và cáccổng logic

SUM <= S xor CIN after 10 ns;

COUT <= (A and B ) or (S and CIN) after 5ns;

END DATAFLOW;

Kiến trúc theo kiểu hành vi hoạt động (Behavioral)

Một kiến trúc kiểu hành vi hoạt động chỉ ra các hoạt động mà một hệ thốngriêng biệt nào đó phải thực hiện trong một chương trình, nó giống như việc diễn tảcác quá trình hoạt động, nhưng không cung cấp chi tiết mà thiết kế được thực thinhư thế nào Thành phần chủ yếu của việc diễn tả theo kiểu hành vi trong VHDL làprocess Dưới đây là ví dụ chỉ ra kiểu diễn tả theo kiểu hành vi của một bộ cộng vớitên là FULL_ADDER

Trang 18

ARCHITECTURE BEHAVIOUR of FULL_ADDER is BEGIN

COUT <= ‘0’ ;

elsif

(A=’0′ and B=’1′ and CIN=’1′) or (A=’1′ and B=’0′ and CIN=’1′) or (A=’1′ and B=’1′ and CIN=’0′) then SUM <= ‘0’;

Trang 19

Kiến trúc theo kiểu cấu trúc (Structure)

Một kiến trúc kiểu cấu trúc chỉ ra sự thực thi cấu trúc theo dạng sử dụng cáckhai báo phần tử và các thể hiện của phần tử đó Ví dụ dưới đây chỉ ra sự diễn tảcấu trúc của một bộ cộng FULL_ADDER như trên đã giới thiệu

Hai kiểu phần tử được sử dụng trong ví dụ này là HALF_ADDER và OR_GATE

ARCHITECTURE STRUCTURE of FULL_ADDER is

HA1: HALF_ADDER port map (A,B,N1,N2);

HA2: HALF_ADDER port map (N2,CIN,N3,SUM);

OR1 : OR_GATE port map (N1, N3,COUT);

END STRUCTURE;

1.4 Một số ưu điểm của ngôn ngữ VHDL

 Thứ nhất là tính công cộng: VHDL được phát triển dưới sự bảo trợ của chínhphủ Mỹ và hiện nay là một tiêu chuẩn của IEEE VHDL được sự hỗ trợ củanhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế môphỏng hệ thống

Trang 20

 Thứ hai là khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế VHDLcho phép thiết kế bằng nhiều phương pháp ví dụ phương pháp thiết kế từ trênxuống, hay từ dưới lên dựa vào các thư viện sẵn có VHDL cũng hỗ trợ chonhiều loại công cụ xây dựng mạch như sử dụng công nghệ đồng bộ haykhông đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng ngẫunhiên

 Thứ ba là tính độc lập với công nghệ: VHDL hoàn toàn độc lập với côngnghệ chế tạo phần cứng Một mô tả hệ thống dùng VHDL thiết kế ở mứccổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộccông nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay chocác hệ thống đã thiết kế

 Thứ tư là khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động củaphần cứng từ mức hệ thống số cho đến mức cổng VHDL có khả năng mô tảhoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặtchẽ thống nhất cho mọi mức Như thế ta có thể mô phỏng một bản thiết kếbao gồm cả các hệ con được mô tả chi tiết

 Thứ năm là khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn đượcchấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô tả đáp ứngđược tiêu chuẩn VHDL Các kết quả mô tả hệ thống có thể được trao đổigiữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưngcùng tuântheo tiêu chuẩn VHDL Cũng như một nhóm thiết kế có thể trao đổi mô tảmức cao của các hệ thống con trong một hệ thống lớn (trong đó các hệ con

đó được thiết kế độc lập)

 Thứ sáu là khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiếtkế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó cóthể được sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhómnhiều người Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản

Trang 21

lý, thử nghiệm và chia sẻ thiết kế Và nó cũng cho phép dùng lại các phần đã

có sẵn

1.5 Kết luận chương

Chương này đã trình bày tổng quan các kiến thức về ngôn ngữ mô tả phầncứng VHDL - ngôn ngữ chuyên dùng cho thiết kế hệ thống số và hệ thống nhúngtrên FPGA gồm giới thiệu về VHDL, công nghệ, ứng dụng và trình bày cấu trúc cơbản của một chương trình dùng ngôn ngữ mô tả phần cứng Cuối cùng là một số ưuđiểm của ngôn ngữ VHDL

Ngày đăng: 17/01/2021, 17:19

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Tóm tắt quy trình thiết kế VHDL - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 1.1. Tóm tắt quy trình thiết kế VHDL (Trang 8)
Hình 1.3 Mã thiết kế bộ cộng - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 1.3 Mã thiết kế bộ cộng (Trang 10)
Hình 1.4 Các ví dụ về sơ đồ mạch có thể có ứng với mã như hình 1.3 - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 1.4 Các ví dụ về sơ đồ mạch có thể có ứng với mã như hình 1.3 (Trang 10)
(c) ( ). 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ủ. - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
c ( ). 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ủ (Trang 11)
Hình 2.2 Một con robot sử dụng FPGA EPXA1 của hãng Altera - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 2.2 Một con robot sử dụng FPGA EPXA1 của hãng Altera (Trang 24)
- Khối logic cấu hình: thực thi các chức năng logic, cung cấp các tính toán và phần - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
h ối logic cấu hình: thực thi các chức năng logic, cung cấp các tính toán và phần (Trang 25)
Hình 2.3 Khối I/O khả trình. - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 2.3 Khối I/O khả trình (Trang 27)
Hình 2.4 Basys 3 Artix-7 FPGA Trainer Board - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 2.4 Basys 3 Artix-7 FPGA Trainer Board (Trang 29)
Hình 2.5 Sơ đồ khối Artix-7 - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 2.5 Sơ đồ khối Artix-7 (Trang 30)
Hình 3.2 Quy ước vào/ra trên FPGA - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 3.2 Quy ước vào/ra trên FPGA (Trang 35)
Hình 3.3 Kết quả khi bắt đầu - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 3.3 Kết quả khi bắt đầu (Trang 36)
Hình 3 .4 Khi mạch đếm được 2 phút - Thiết kế và thực thi đồng hồ thời gian trên FPGA   thiết kế mạch số
Hình 3 4 Khi mạch đếm được 2 phút (Trang 36)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w