Hôm nay hãy cùng mình làm quen với cách sử dụng phần mềm Gowin và KIT Sipeed Tang Nano 9k Gowin GW1NR-9 FPGA Development Board qua ứng dụng cơ bản là Blink Led.
Chuẩn bị
- Ngôn ngữ lập trình: Ngôn ngữ thông dụng cho FPGA là VHDL và Verilog. (ở đây mình dùng verilog vì nó thân thiện với những bạn đã có kiến thức về ngôn ngữ C)
- Một chút xíu kiến thức về kỹ thuật số.(tín hiệu LOGIC các mạch Flip-Flop, các cổng AND,NOR,NOT… vân vân và mây mây 😌)
->Bấy nhiêu thôi là mình đã có thể tham gia vào cuộc đua tốc độ này rồi, quá dễ dàng phải không nào.😛còn bây giờ ae cùng mình bước vào cửa ải đầu tiên là cài đặt môi trường trò chơi nào.
Cài đặt phần mềm Gowin
Tải phần mềm tại đây: Download Link (nhớ là phải đăng ký tài khoản thì mới tải về được nhé.😊)
Chọn bản Sofware phù hợp với nhu cầu, (bản Education FREE, bản còn lại thì có tính phí nhé), sau khi tải về thì làm theo hướng dẫn trong link sau để cài đặt nhé: Hướng dẫn Install IDE
Chạy chương trình đầu tiên Blink Led
Đầu tiên chúng ta cần xem qua ( Schematic) để biết các chân IO trên KIT dược sắp xếp như thế nào:
Mở phần mềm Gowin (trên window nhấn Ctrl + N) hoặc nhấp vào file -> new để tạo Project mới:
Điền tên và lưu Project vào thư mục mong muốn sau đó nhấn Next:
Chọn theo các bước như hình sau đó nhấn Next rồi nhấn Finish:
Nhấp chuột phải vào file có chỉ mục số 1, chọn new -> chọn ngôn ngữ lập trình, ở đây mình dùng verilog nên mình sẽ chọn verilog file, bạn nào dùng VHDL thì chọn VHDL file -> sau đó nhấn OK:
Điền tên và nơi lưu trữ file, sau đó nhấn OK:
Nhấp đúp chuột trái vào ô số 1 sau đó nhập code vào ô số 2:
** CODE mình sẽ để ở đây nhé:
// Quick blinking a LED /* module */ module blinking ( input CLOCK_50, output [1:0] LEDG ); /* reg */ reg data1 = 1'b0; reg [32:0] counter; reg state; /* assign */ assign LEDG[0] = state; assign LEDG[1] = state; /* always */ always @ (posedge CLOCK_50) begin counter <= counter + 1; state <= counter[23]; // <------ data to change end endmodule
Sau khi code xong, tiếp theo ae bấm vào process sau đó (2click chuột trái) đúp bồ click vào Synthesize và đợi load đến 100% như hình:
Nhấn 2 click vào FloorPlanner sao đó nhấn OK để tạo file .cst:
Nhấn vào Package View sau dó nhấn vào các file ở mục 2 trong hình để show các chân io cấu hình:
Nhấn vào IO constraints và điền số chân vào các port mong muốn.
Lưu ý: nhớ xem schematic, biết chức năng của các chân I\0 để cấu hình chuẩn nhất nhé.
Nhấp 2 click vào Place & route và đợi chương trình chạy xong 100%:
Làm theo các bước trong ảnh, tại bước 4 là nơi lưu file đuôi .fs sau khi đã được Place & route, file này sẽ dược nạp vào kit nano 9k, tiếp thep nhấn vào Program/configure để test:
Chớp chớp như này là kê cao gối ngủ được rồi 😁: