Tải bản đầy đủ (.pptx) (70 trang)

Thiết kế vi mạch trên FPGA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.68 MB, 70 trang )

HỆ THỐNG NHÚNG
BÁO CÁO PROJECT

Thiết kế vi mạch trên FPGA
Lớp: 220HTN03
GV: TS. Trần Hồng Vũ

Nhóm 6: Nguyễn Hồng Vũ
Tào Viết Bảo
Nguyễn Văn Thức
Bùi Văn Khoa


Nội dung đề tài:

Chương 1 Tổng quan về các phương pháp thiết kế vi mạch.
Chương 2

Tổng quan về ngôn ngữ VHDL.

Chương 3 Tổng quan về vi mạch FPGA.
Chương 4 Thiết kế vi mạch trên FPGA.


Phân cơng nhiệm vụ:
Người thực hiện

Nhiệm Vụ

Nguyễn Hồng Vũ ( Nhóm Trưởng)


Tìm Hiểu làm báo cáo chương 4 và thuyết
trình báo cáo project của nhóm.

Tào Viết Bảo

Tìm hiểu và làm báo cáo chương 3, tổng
hợp slide làm slide báo cáo chung.

Bùi Văn Khoa

Tìm hiểu và làm báo cáo chương 2.

Nguyễn Văn Thức

Tìm hiểu và làm báo cáo chương 1.


Dự kiến kết quả đạt được:
• Hiểu rõ về tổng quan FPGA và ngơn ngữ
VHDL,Kit Spartan _3E.
• Một số ứng dụng kết nối của FPGA trên kit
Spartan_3E: bộ kiểm tra chẵn lẽ; bộ đếm
Kd=128; hiển thị trên 8 led đơn và đèn giao
thông.


CHƯƠNG 1: TỔNG QUAN VỀ CÁC
PHƯƠNG PHÁP THIẾT KẾ VI MẠCH
1.1. Các phương pháp thiết kế tiền HDL
1.1.1. Phương pháp thiết kế dùng hàm logic:

• Kĩ thuật thiết kế dựa trên các hàm
logic yêu cầu phải viết các phương
trình logic cho từng đầu vào dữ liệu
của flip- flop và cho từng nhóm
cổng logic.
• Điều này có nghĩa kĩ thuật thiết kế
sẽ không khả thi với việc thiết kế
các mạch lớn với hàng trăm các
flip-flop bởi vì kĩ thuật này địi hỏi
phải có một số lượng lón hàng trăm
các phương trình logic tương ứng.


1.1. Các phương pháp thiết kế
tiền HDL
1.1.2. Phương pháp thiết kế
dựa trên sơ đồ ngun lí:






Dựa trên sơ đồ ngun lí có sự trợ giúp
của máy tính cho phép thiết kế các hệ
thống lớn hơn nhờ kết hợp các cổng
logic và flip- flop với các mạch.
khả năng biểu diễn thiết kế trực quan
sinh động các thiết kế bằng các sơ đồ
nguyên lí dễ hiểu về các thành phần

thiết kế và kết nối giữa chúng.
Ngày nay, với sự phát triển nhanh chóng
của các thiết bị và hệ thống điện tử,
phương pháp thiết kế này khơng cịn
đáp ứng tốt và tốn thời gian.


1.1.3. Ưu điểm, nhược diểm của các
phương pháp thiết kế truyền thống

Các bước thiết kế của phương pháp thiết kế truyền thống

Ưu điểm:
- Dễ sử dụng
Nhược điểm:
- Không phù hợp với các hệ thống tích hợp cỡ lớn và phức tạp.
- Công đoạn chuyển đổi thủ công từ mô tả thơng tin thiết kế các
phương trình logic.


1.2. Phương pháp thiết kế dùng HDL
a/ Chức năng và ưu điểm của HDL
 Chức năng:
HDL là ngôn ngữ thuộc lớp ngôn ngữ máy

 Ưu điểm:

 Loại bỏ công đoạn chuyển đổi thủ cơng từ

tính(computer language):


mơ tả thơng tin thiết kế thành các phương

 Dùng miêu tả cấu trúc và hoạt động một vi

trình logic

mạch.
 Dùng mơ phỏng, kiểm tra hoạt động vi
mạch.
 Biểu diễn hành vi theo thời gian và cấu trúc
không gian của mạch.
 Bao gồm những ký hiệu biểu diễn thời gian
và sự đồng thời (time and concurrence).

 Dễ quản lí những mạch lớn và phức tạp
 Độc lập với công nghệ

 Cho phép tái sử dụng những thiết kế đã có
sẵn
 Mạch có thể được tổng hợp từ đặc tả


1.2. Phương pháp thiết kế dùng HDL
b/ Phương pháp thiết kế dùng HDL

HDL được sử dụng để thiết kế các phần tử logic lập trình từ các PLD đơn
giản đến CPLD và FPGA phức tạp. Hiện nay có nhiều HDL đang được sủ
dụng trong đó phổ biến nhất là VHDL, Verilog và Abel. Báo cáo này tập
trung giới thiệu về ngôn ngữ mô tả phần cứng VHDL và ứng dụng của nó

trên FPGA


2.1 Giới thiệu về VHDL


VHDL là ngơn ngữ mơ tả phần cứng cho các mạch tích hợp tốc độ rất cao.
VHDL được phát triển dùng cho chương trình VHSIC của bộ quốc phịng
Mỹ.



VHDL được phát triển để giảiquyế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.



Chức năng: mô tả hoạt động của các hệ thống hoặc mạch điện tử nhằm
thực hiện các hệ thống hoặc mạch này trên linh kiện thực.


2.2 Cấu trúc cơ bản VHDL
Library IEEE;
Use IEEE.std_logic_1164.all;
ENTITY full_adder IS

PORT(a,b,cin: in bit;s,out:out
bit);
END full_adder;
Architecture dataflow of full_adder
is begin
s<= a xor b xor cin;
cout <= ( a and b) or
(a
and cin) or (b and cin);
end dataflow;

LIBRARY
declarations

ENTITY

ARCHITECTURE

Basic
VHDL Code


2.2.1 Khai báo library
Library là một tập các đoạn mã thường
được sử dụng. Đặt các đoạn mã thường sử
dụng vào thư viện cho phép chúng có thể
được tái sử dụng hoặc liên kết với nhau

Cấu trúc khai báo thư viện:
LIBRARY library_name;

USE library_name.package_name.package_parts;

LIBRARY
PACKAGE
FUCTIONS
PROCEDURES
COMPONENTS
CONSTANTS
TYPES


2.2.2 Khai báo ENTITY
Một ENTITY là một danh sách mô tả các chân vào/ra ( các PORT) của
mạch điện.
ENTITY entity_name IS PORT (
port_name : signal_mode signal_type;
port_name : signal_mode signal_type;
...);
END entity_name;

• Chế độ của tín hiệu có thể là IN, OUT, INOUT hoặc BUFFER.
• Kiểu của tín hiệu có thể là BIT, STD_ LOGIC, INTEGER, …
• 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ủa VHDL.


2.2.3 Kiểu kiến trúc (Architecture)
ARCHITECTURE là một mô tả mạch dùng để quyết mạch sẽ làm việc
như thế nào ( có chức năng gì).
Cú pháp như sau:
ARCHITECTURE

architecture_name
[declarations]
BEGIN
(code)
END architecture_name;

OF

entity_name

IS

Như thấy ở trên, một cấu trúc có 2 phần:
- Phần khai báo ( chức năng) :nơi các tín hiệu và các hằng được khai báo
- Phần mã (code - từ BEGIN trở xuống): mô tả cách kết nối hoạt động của
mạch


2.3 Các kiểu dữ liệu
2.3.1.Các kiểu con (Subtypes).
Kiểu dữ liệu con là một kiểu dữ liệu đi kèm theo
điều kiện ràng buộc. Lý do chính cho việc sử dụng
kiểu dữ liệu con để sau đó định ra một kiểu dữ liệu
mới đó là, các thao tác giữa các kiểu dữ liệu khác
nhau không được cho phép, chúng chỉ được cho phép
trong trường hợp giữa một kiểu con và kiểu cơ sở tương
ứng với nó.
TYPE INTERGER IS −2,147,483,648 to 2,147,483,647;
SUBTYPE NATURAL IS INTERGER RANGE0 to 2,147,483,647;



2.3.2 Kiểu Mảng
Mảng là một tập hợp các đối tượng có cùng kiểu. Chúng có thể là
một chiều (1D), 2 chiều (2D) họăc một chiều của một chiều (1D x 1D)
và cũng có thể có những kích thước cao hơn.
Có 3 kiểu mảng hay dùng:

1D

1DX1D

2D

Để chỉ định một kiểu mảng mới:
TYPE type_name IS ARRAY (specification) OF data_type;
Để tạo sử dụng kiểu mảng mới:
SIGNAL signal_name: type_name [:= initial_ value];


2.3.3 Kiểu bản ghi(Record)
Bản ghi tương tự như mảng, với điểm khác
rằng chúng chứa các đối tượng có kiểu dữ liệu
khác nhau.
Ví dụ:
TYPE birthday IS RECORD
day: INTEGER RANGE 1 TO 31;
month: month_name;
END RECORD;



2.3.3 Kiểu dữ liệu có dấu và
khơng dấu (singed and unsinged)
Kiểu dữ liệu có dầu và khơng dấu được định nghĩa trong
gói std_logic_arith của thư viện ieee. Cú pháp của
chúng được minh họa trong ví dụ dưới đây:
Ví dụ 1:
SIGNAL x: SIGNED (16 DOWNTO 0);
SIGNAL y: UNSIGNED (0 TO 8);
- Cú pháp của chúng tương tự với STD_LOGIC_VECTOR,
không giống như INTEGER.


2.3.4 Chuyển đổi dữ liệu
VHDL không cho phép các phép toán trực tiếp ( số
học, logic,…) tác động lên các dữ liệu khác kiểu nhau.
Điều này có thể được thực hiện trong hai cách cơ bản:
hoặc chúng ta viết một ít code cho điều đó, hoặc chúng ta
gọi một FUNCTION từ một gói được định nghĩa trước mà nó
cho phép thực hiện các phép biến đổi cho ta.
Nếu dữ liệu được quan hệ đóng thì std_logic_1164 của
thư viện ieee cung cấp các hàm chuyển đổi dễ thực hiện.


2.4 Tốn tử và thuộc tính
2.4.1.Tốn tử
• VHDL cung cấp một số tốn tử sau:
• Tốn tử gán.
• Tốn tử logic.
• Tốn tử tốn học.
• Tốn tử so sánh.

• Tốn tử dịch.


2.4.2 Thuộc tính
a) Thuộc tính dữ liệu
• VHDL cung cấp các thuộc tính sau:
• d‟LOW: Trả về giá trị nhỏ nhất của chỉ số mảng.
• d‟HIGH: Trả về chỉ số lớn nhất của mảng.
• d‟LEFT: Trả về chỉ số bên trái nhất của mảng.
• d‟RIGHT: Trả về chỉ số bên phải nhất của mảng.
• d‟LENGTH: Trả về kích thước của mảng.
• d‟RANGE: Trả về mảng chứa chỉ số.
• d‟REVERSE_RANGE: Trả về mảng chứa chỉ số
được đảo ngược.


2.4.2 Thuộc tính
b) Thuộc tính tín hiệu
Các thuộc tính loại này chỉ được áp dụng đối với dữ liệu SIGNAL. Nếu
s là một SIGNAL thì ta có :
s‟EVENT : Trả về true khi một sự kiện xảy ra đối với s.
s‟STABLE: Trả về true nếu khơng có sự kiện nào xảy ra đối với s.
s‟ACTIVE: Trả về true khi s = 1.
s‟QUIET<time>: Trả về true khi trong kho ảng thời gian time khơng
có sự kiện nào xảy ra.
s‟LAST_EVENT: Trả về thời gian trôi qua kể từ sự kiện cuối cùng .
s‟LAST_ ACTIVE: Trả về thới gian kể từ lần cuối cùng s = 1
s‟LAST_ VALUE: Trả về giá trị của s trước sự kiện trước đó.
Trong các thuộc tính trên thì thuộc tính s‟EVENT là hay được dùng
nhất.



2.4.3 Thuộc tính được định nghĩa
bởi ngươi dùng
VHDL, ngồi việc cung cấp các thuộc tính có sẵn nó
cịn cho phép người dùng tự định nghĩa các thuộc tính.
Các thuộc tính này muốn sử dụng cần phải khai báo và
mô tả rõ ràng theo cấu trúc sau:
ATTRIBUTE <attribute_name>:< attribute_type>;
ATTRIBUTE <attribute_name> OF< target_name>: <class>
IS <value>;
Trong đó
+ attribute_type là kiểu dữ liệu.
+ Lớp : SIGNAL, TYPE, FUNCTION.


2.4.4 GENERIC
GENERIC là một cách tạo các tham số dùng chung Mục
đích là để cho các đoạn code mềm dẻo và dễ sử dụng lại hơn.
Một đoạn GENERIC khi được sử dụng cần phải được mô tả
trong ENTITY. Các tham số phải được chỉ rõ. Cấu trúc như
sau:
GENERIC (parameter_name : parameter_type := parameter_value);


2.5 Các kiểu đối tượng
Một đối tượng VHDL bao gồm 1 trong các loại sau:
Signal: biểu diễn cho day kết nối giữa các cổng
của các thành phần trong hệ thống.
Cú pháp: SIGNAL name : type [range] [:= initial_value];

Variable: được sử dụng lưu trữ dữ liệu nội bộ
tạm thời, chỉ visible bên trong process.
Cú pháp: VARIABLE name: type [range] [:= init_value];
Constant: hằng số
Cú pháp: CONSTANT name : type := value;


×