Trong luận văn này tác giả ựã sử dụng kit phát triển DE2 của Altera ựể nhúng chương trình Verilog xuống và chạy thử chương trình. Những thành phần chắnh của kắt phát triển DE2 là:
- Altera Cyclone II 2C35 FPGA
- Thiết bị dùng ựể cấu hình nối tiếp EPCS16
- USB Blaster dùng ựể lập trình và sử dụng ựiều khiển API cả hai mode JTAG và lập trình nối tiếp ựều có thể sử dụng ựược.
- 512-Kbyte SRAM - 8MB SDRAM - 4 MB bộ nhớ Flash - Khe cắm thẻ nhớ SD - 4 công tắc nhấn
- 18 công tắc thay ựổi logic - 18 ựến LED ựỏ
- 8 LED xanh da trời
- Bộ tạo xung nhịp 50MHz và 27 MHz ựược dùng ựể làm nguồn cho xung nhịp ựồng hồ.
- 24-bit âm thanh chất lượng tương ựương với âm thanh của CD, Codec với lối vào, lối ra và ựường MIC vào.
- Bộ DAC VGA 10 bits - Bộ giải mã tắn hiệu TV
- Bộ ựiều khiển Ethernet 10/100Mbps
- Bộ ựiều khiển USB Host và Slave với kết nối USB loại A và loại B - Bộ nhận RS-232
- Kết nối PS/2 cho chuột và bàn phắm - Bộ thu phát IrDA
- Bộ header mở rộng 40 chân với diode bảo vệ.
Hình 6 - 1 Sơ ựồ các thành phần trên kắt phát triển DE2 6.2 Tri8n khai và ch+y thC trên kắt DE2.
Sau khi ựã mô phỏng chức năng của vi ựiều khiển thành công ở những bước trước, bước này thực hiện tổng hợp các ựoạn mã mô tả phần cứng thành các thành phần logic cụ thể và nạp xuống kắt FPGA. Một số nhiệm vụ phải thực hiện ựể thay ựổi từ mã nguồn mô phỏng, ựược viết ở mức behavior sang mức thấp hơn mà có thể tổng hợp ựược thành các thành phần logic có thể chạy ựược trên FPGA.
- Chuyển các thành phần cơ bản sang dạng mã có thể tổng hợp ựược theo như ựặc tả của Altera.
- Những module nhớ cơ bản như, bộ nhớ chương trình, bộ nhớ RAM, bộ nhớ FIFO dùng cho stack nên sử dụng các IP core do Altera cung cấp. điều này không những tối ưu thiết kế cho các FPGA của Altera mà cũng
ựảm bảo chắc chắn là module thiết kế sẽ tổng hợp ựược và chạy ổn ựịnh trên FPGA của Altera.
- Thực hiện chạy thử chương trình sử dụng cùng một tập testbench ựã sử dụng trong quá trình mô phỏng và kiểm tra kết quả, nếu kết quả không ựúng cần xác ựịnh rõ là lỗi ở ựâu và sửa ựoạn chương trình tương ứng. - Thường ựến bước này không còn lỗi trong thiết kế nữa, lỗi phát sinh
thường là do không tổng hợp ựược các phần tử logic hoặc tổng hợp sai. Vi xử lý sau khi ựược ựưa vào FPGA sẽ không thực hiện ựúng chức năng như mong muốn. Thực tế khi thiết kế vi ựiều khiển này, tác giả cũng ựã gặp một số tình huống trình dịch tổng hợp sai, trong những tình huống như vậy thường rất mấy thời gian ựể tìm lỗi.
Cuối cùng sau khi ựã sửa hết các lỗi còn lại, tác giả ựã hoàn thành ựược một vi xử lý 8 bắt có thể thực hiện ựúng hầu hết các lệnh trong tập lệnh với những chức nang như mong muốn ban ựầu.
Chạy thử các ứng dụng: Trong quá trình thiết kế hệ thống, tác giả ựã thực hiện chạy 14 chương trình khác nhau, cơ bản chắnh là tập testbench ựã ựược ựịnh nghĩa trong phần mô tả về tiến trình mô phỏng vi ựiều khiển.
6.3 M>t *ng dMng nh? sC dMng vi ựiu khi8n 8 bắt.
Dưới ựây tác giả sử dụng vi xử lý vừa ựược thiết kế ựể thực hiện một chương trình ựơn giản, phức tạp hơn những testbench ựã ựược sử dụng ựể thực hiện verification vi ựiều khiển.
Nhiệm vụ của chương trình, thực hiện hiện dòng chữ Ộ DHCNỢ lên màn hình LCD của vi ựiều khiển. Lưu ựồ thuật toán ựược thực hiện trên vi ựiều khiển như trên hình 6-2. Cụ thể chương trình thực hiện các chức năng sau:
- Thiết lập trạng thái cần thiết co LCD.
- đẩy dòng chữ muốn hiện lên dòng thứ nhất của LCD.
- Thực hiện trễ 1 giây ựể có thể quan sát ựược chữ chạy trên màn hình LCD. - Dịch dòng chữ trên màn hình sang bên phải một kắ tự.
- Nếu không có tắn hiệu dừng chương trình thì tiếp tục thực hiện dịch chữ sang bên phải một kắ tự và sau ựó thực hiện trễ 1 giây.
Hình 6 - 2: Lưu ựồ thuật toán thực hiện chạy chữ trên LCD.
Sau khi thực hiện chạy thử chương trình trên vi ựiều khiển, kết quả vi ựiều khiển thực hiện ựúng các chức năng ựặt ra ban ựầu của một vi xử lý 8 bắt và cho kết quả ựúng như mong muốn.
BEGIN
Thiết lập LCD Gửi dữ liệu mới
ra LCD Trễ 1 giây Trễ 1 giây Kết thúc END đ S
KẾT LUẬN.