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 nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
hôm nay, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
hôm nay, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
hôm nay, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -