Trước tiên xin tóm tắt toàn bộ quá trình thiết kế FPGA như sau:
1) Xác định các đặc tính kĩ thuật (Requirements/Specifications Capture):
- Quá trình này, các yêu cầu của thiết kế được xác định ví dụ như yêu cầu về thời gian, tốc độ của thiết kế, yêu cầu về tài nguyên v.v
2) Bước thiết kế (design):
- Trong bước thiết kế, các khối của toàn bộ thiết kế được xác định nhằm thực hiện được các yêu cầu đề ra ở trên, thiết kế bao gồm thiết kế mức cao (high-level design) và thiết kế chi tiết (detailed design). Thiết kế mức cao chỉ thiết kế kiến trúc (architecture) của hệ thống. Thiết kế mức cao thường là bước đầu tiên để chia nhỏ một thiết kế lớn ra thành nhiều thiết kế nhỏ. Từ thiết kế mức cao, các khối tiếp tục được chia nhỏ đến khi có thể tiến hành việc coding được (thiết kế từ trên xuống: top-down approach). Qua kinh nghiệm, rất nhiều hệ thống thiết kế kiểu này.
3) Bước coding (VHDL/Verilog) và mô phỏng, kiểm tra (simulation, verification)
Khi các thiết kế chi tiết đủ để thực hiện coding, các block nhỏ sẽ được code bằng ngôn ngữ mô tả phần cứng (Hardware description language - HDL) ví dụ như Verilog, VHDL, SystemVerilog, SystemC ...
Các bạn có thể tham khảo ứng dụng, điểm mạnh yếu của các ngôn ngữ ở các thread khác.
Bước mô phỏng và kiểm tra là 2 bước không thể thiếu trong quá trình thiết kế. 2 bước này giúp phát hiện và sửa các lỗi trong thiết kế và lỗi trong quá trình coding mà không qua bước biên dịch (bước biên dịch đôi khi mất hàng giờ đồng hồ).
4) Bước biên dịch (compilation)
Ở bước biên dịch, các công cụ (tools) sẽ đọc các thiết kế được mô tả bằng HDL và tạo ra mạch số (digital circuit) như đã mô tả. Để tool tạo ra được mạch như mong muốn người thiết kế số (digital designer) và đặc biệt thiết kế FPGA, phải tuân thủ một số quy đinh về cách viết code (HDL coding style).
Các công cụ biên dịch sẽ tạo ra một hoặc nhiều files gọi là netlist. Mỗi file netlist hoàn toàn là một tập hợp các block rất cơ bản được kết nối với nhau. Một số file ở dạng nhị phân (binary, nghĩa là người dùng không đọc hiểu được) một số file ở dạng text, chúng ta có thể đọc và hiểu được.
Ở cuối cùng của bước biện dịch, một file binary sẽ được tao ra dùng để cấu hình (configure) FPGA.
**Lưu ý là configure được dùng thay vì programme. Khái niệm lập trình cho FPGA dẫn đến một số lỗi và cần tránh.
==================================================
Quá trình biên dịch FPGA gồm:
0) Chỉ định các điều kiện và ràng buộc cho trình dịch:
- a) Chỉ định điều kiện về thời gian: ít nhất là chỉ định tần số hoạt động của thiết kế
- b) Chỉ định điều kiện về không gian: tối thiểu là chỉ định cho các input/output.
1) Tổng hợp (Synthesis)
Ở quá trình này, trình biên dịch sẽ đọc các file thiết kế và cất vào thư viện (mặc định là work).
2) Thực hiện (Implementation)
Ở quá trình này trình biên dịch sẽ gom tất cả các module đã thiết kế lại thành 1 thiết kế duy nhất, sau đó sẽ xếp đặt lên FPGA và cho ra:
- Thứ nhất là timing-report (Báo cáo thời gian, báo cáo này dựa trên những ràng buộc mà người thiết kế đã chỉ ra, báo cáo cho biết điều kiện đã đề ra có thỏa mãn được không)
- Thứ hai là file binary dùng để cấu hình cho FPGA
Đề hiểu rõ và hình dung được, xin giới thiệu một ví dụ đơn giản.
Trong ví dụ này, một bộ định thời (timer), sẽ được thiết kế. Các yêu cầu của timer như sau:
- 1 đầu vào En dùng để kích hoạt và dừng timer. Khi En = 1, bộ timer hoạt động, En = 0, timer dừng.
- 1 đầu vào reset dùng để trả timer về giá trị 0.
- 1 đầu vào Auto dùng đề cho phép timer tự động trả về 0 khi đầy. Auto = 1, timer tự reset trở lại 0 khi đầy, Auto = 0. Timer dừng ở vị trí đầy cho đến khi có tín hiệu reset.
- 1 đầu vào chứa giá trị đầy.
- 1 đầu ra báo hiệu timer đầy.
- Bộ timer dự kiến phải chạy với clock ở tần số 50MHz.
=================================================
Biên dịch với ISE.
- Giao diện của ISE khá dễ hiểu. Cơ bản gồm có:
1) Cửa sổ source chứa các source file và sự phân cấp của thiết kế (design hierarchy).
2) Cửa sổ quá trình, chứa các quá trình trong quy trình biên dịch. Gồm có:
Synthesis
Implement
Generate programming file
Trong mỗi quá trình lại có nhiều bước nhỏ. Cửa sổ này được liên kết với cửa sổ source. Cho mỗi source file, cửa sổ quá trình sẽ liệt kê các bước có thể thực hiện với source file mà bạn đã high-light.
Muốn thực hiện bước thiết kế nào, chỉ việc chọn source file, và double-click bước thiết kế.
- Đầu tiên, chúng ta cần tạo 1 project mới (File - New Project)
- Sau đó sẽ tạo mới các file source, trong trường hợp có sẵn source code thì dùng chức năng "add source"
Thông báo
Collapse
No announcement yet.
Thiết kế FPGA với các phần mềm cơ bản (ISE và Quartus)
Collapse
X
Collapse
-
Thiết kế FPGA với các phần mềm cơ bản (ISE và Quartus)
Tags: None
-
#1koool commented14-12-2017, 12:33Editing a commentcccc afsfsdsdf à
-
#2hslcnps1900 commented20-12-2017, 12:26Editing a commentA cho e hoi mach power signal protect clip mac day vao mach cong suat loai btl. Minh ko biet cau day nho a giup dum
You must be logged in to post a comment. -
Về tác giả
Collapse
Email minh trực tiếp nếu bạn cần download tài liệu gấp
Tìm hiểu thêm về jefflieu
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9Sản phẩm này ghi version 2.0 01-2024 MADE IN CHINA nhưng không thấy thương hiệu hình 1
Do 8 chân G của mosfet được đấu song song thành 2 nhóm nên có cùng biên độ xung kích. Nhưng Q1 và Q2 nằm cuối dãy B3;B4 ờ mức nguồn cao nhất do chân Q có điện áp...-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 08:29 -
-
bởi chinhnguyen9
Xem hình có phần thuyết minh bên trong tiện việc quan sát và đọc thuyết minh. Khi G1 high dòng điện chạy theo các đường màu đen khi G2 high dòng điện chạy theo các đường màu nâu đỏ....-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 01:15 -
-
Trả lời cho CODE/ROM-dvb-vcd-dvd-mindikaraoke- Máy nạp Rombởi ThaPhong20Mình cần giúp đõ đầu California MIDI-800K
Ngày trc có nghe tin đồn đầu này có thể chạy đĩa DH-3600 nên mua Vol 26 về chạy thử và nó báo góc trái dòng code rồi tự thay nền DH-3600S luôn. Sau khi tự thay nền thì nó tiếp tục báo dòng Code...-
Channel: Thiết bị thu phát MEDIA dân dụng
23-04-2024, 19:24 -
-
Trả lời cho Xin tư vấn về mạch cầu H cho inverter 1000wbởi N.T.HIRF460 có chịu được tải 1000W công suất thực không ạ....
-
Channel: Điện tử công suất
23-04-2024, 16:05 -
-
bởi chinhnguyen9Trước đây có thế hệ mạch cân bằng chủ động hoạt động theo nguyên lý so áp giữa 2 cell (hoặc 2 chuỗi) liền kề nếu điện áp này >100mV mach cận bằng sẽ được kích hoạt và sẽ dừng hoạt động cân bằng khi độ chênh điện áp giảm xuống còn 30 mV
Hiện nay có dòng sản phẩm mới gọi là...-
Channel: Hướng dẫn sử dụng diễn đàn
23-04-2024, 07:26 -
-
Trả lời cho Hỏi về mạch công suất bị dò DCbởi vandoanĐiện áp ở A và C được ghim bởi Transistor Q8. chuyện áp ra loa + hay - là do các trans khác bị chập chập bên nào thì thay bên đó.
-
Channel: Điện thanh
20-04-2024, 12:00 -
-
bởi jigokushoujoCó anh chị nào có thể cho em 1 mạch chống ngược cực, chập mạch, khi bị chạm mạch hay ngược cực thì nó sẽ tự động ngắt nguồn,khi không còn chạm thì nó sẽ đóng nguồn lại bình thường. Em có dùng nguồn 12V 75A từ ắc quy . Em cần chụi...
-
Channel: Điện tử dành cho người mới bắt đầu
18-04-2024, 18:24 -