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

Bài viết mới nhất
Collapse
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietĐúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi mèomướpDạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 12:32 -
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamNhững lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 21:31 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi bqvietThiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.20-02-2025, 17:22
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.
Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 11:52 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...19-02-2025, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
19-02-2025, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
19-02-2025, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
19-02-2025, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -