CHƯƠNG 4 THIẾT KẾ VÀ THỰC HIỆN
4.4 Kết quả thực hiện
4.4.3 Mô hình đánh giá và kiểm tra hệ thống từ phần cứng với phần mềm 77 CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
+ Tạo thư mục chứa toàn bộ code RTL của thiết kế
+ Tạo 1 module wrapper bằng verilog trong đó gọi top file của thiết kế và 1 bộ so sánh
+ Gán trước các giá trị ngõ vào và ngõ ra mong đợi như là một hằng số dựa vào test case.
+ Tạo 1 timer có thời gian tràn khoảng 1 giây, sau đó kích hoạt tín hiệu enable cho quá trình mã hóa / giải mã.
+ Bộ so sánh thực hiện so sánh kết quả ngõ ra của thiết kế và ngõ ra mong đợi.
Hình 4.13 Kết quả mô phỏng mã hóa xác thực
Hình 4.12 Kết quả mô phỏng giải mã xác thực và so sánh giá trị Tag
78 + Gán kết quả của bộ so sánh vào LED hiển thị, nếu đúng LED sáng, nếu sai LED tắt.
Quá trình thực hiện trên Vivado
+ Add source : gán địa chỉ của thư mục chứ RTL
+ Add constraint: tạo 1 file xdc cho thiết kế, bao gồm xác định CLK, reset và gán các port RBG LED
+ Synthesis và kiểm tra kết quả + Implementation và kiểm tra kết quả + Tạo file Bitstream
+ Nạp file Bitstream lên Kit qua cổng JTAG và xem kết quả hiển thị của RBG LED
Trong đó, bước synthesis thực hiện việc tổng hợp RTL dưới dạng gate level netlist. Bước Implementation thực hiện việc place and route cho thiết kế. Đồng thời, nó cũng thực hiện việc tối ưu cho thiết kế về mặt hiệu năng như timing, diện tích và công suất, …
File constraint cho thiết kế được tạo như sau:
set_property PACKAGE_PIN AB20 [get_ports rstn]
set_property IOSTANDARD LVCMOS33 [get_ports rstn]
set_property PULLUP true [get_ports rstn]
set_property -dict { PACKAGE_PIN "W19" IOSTANDARD LVCMOS33 SLEW FAST} [get_ports { clk }] ;
create_clock -name sys_clk -period 10 [get_ports clk]
set_false_path -from [get_ports rstn]
File constraint quy định về chu kỳ clk thực hiện, và thực hiện gán chân cho thiết kế tương ứng với chân vật lý của FPGA. Theo đó, tốc độ của đề tài được thực hiện theo xung clock 100 MHz tương đương 10ns cho 1 chu kỳ. Đề tài thực hiện ở tần số này vì tài nguyên của Kit FPGA chỉ cung cấp 1 bộ tạo xung clock tích hợp với tần số 100 MHz.
Với tần số này thông lượng ngõ ra của đề tài đạt được là 400 Mbps.
Sau khi thực hiện, tiến hành kiểm tra Messages sau khi synthesis và inplementation design. Kết quả cho thấy không có Error xuất hiện được thể hiện như hình bên dưới. Như vậy, có thể kết luận quá trình thực hiện synthesis và implementation design trên phần mềm Vivado đã hoàn thành, có thể tiếp tục kiểm tra report để đánh giá và tiến hành nạp bitstream trên Kit.
79 Hình 4.14 Kết quả Message trên Vivado
Hình 4.15 Utilization sau khi synthesis Bảng 4.3 Kết quả chi tiết Utilization sau synthesis
80 Hình 4.16 Utilization sau khi Implementation
Bảng 4.4 Kết quả chi tiết Utilization sau implementation
Qua biểu đồ, và bảng thống kê ultilization, ta thấy thiết kế được thực hiện khá tốt trên dòng FPGA này về mặt tài nguyên. Kết quả cho thấy, tỉ lệ phần trăm sử dụng tài nguyên của thiết kế là phù hợp, với tỉ lệ không quá lớn về diện tích sau khi đươc tối ưu với khoảng 13% LUT và 15% FF. Với tỉ lệ này, FPGA được chọn, dễ dàng có thể được thực hiện kể cả khi kết nối với module PCIe và mở rộng cũng như nâng cấp sau này để
tăng thông lượng cho thiết kế. Đồng thời, việc tỉ lệ tăng tài nguyên sử dụng sau bước synthesis và implementation thay đổi là không nhiều, điều này chứng minh rằng, phần mềm Vivado không phải thực hiện việc tối ưu quá nhiều. Về cơ bản, các kết nối logic trong việc thiết kế, và thể hiện RTL bằng verilog là phù hợp. Để đạt được điều này, coding style là quan trọng, cần phải giảm tải việc các logic loop không cần thiết, và đồng thời không để data path quá dài, fanout quá lớn. Hơn nữa, việc sử dụng reset bất đồng bộ cũng là một ưu thế, vì tín hiệu reset được build độc lập với data path, đi thẳng đến từng chân clear của flip flop, điều này giúp thiết kế dễ dàng đạt được đáp ứng nhanh hơn.
81 Hình 4.17 Kết quả báo cáo công suất
Đánh giá về mặt công suất, thiết kế tiêu tốn mức năng lượng không quá lớn với khoảng dưới 400 mW. Thiết kế không đặt yêu cầu quan trọng cho công suất tiêu thụ vì mục đích của đề tài áp dụng cho router, sử dụng thông qua nguồn điện lưới. Tuy vậy, với mức công suất như trên là hoàn toàn chấp nhận được. Công suât tiêu thụ vừa phải giúp cũng giúp cho nhiệt độ của FPGA hoạt động không quá cao khoảng 26 độ, nằm trong khoảng 0 -90 độ mà nhà sản xuất đặt ra để FPGA hoạt động ổn định và chính xác.
Nhìn chung, hiệu năng về công suất tiêu thụ của thiết kế được đáng giá ở mức trung bình (medium level).
Hình 4.18 Báo cáo tổng hợp timing
Phân tích timing là một phương pháp kiểm tra độ trể (delay) của một thiết kế bằng ứng với điều kiện hoạt động khác nhau trong thực tế của mạch, thông thường là điều kiện tệ nhất. Phương pháp này xem xét độ trể của từng thành phần logic trong mạch và thông qua các phương pháp tính toán để xác định được mạch có đảm bảo được về
mặt timing hay không. Phương pháp này không kiểm tra được tính đúng đắn về mặt logic của mạch.
82 Ưu điểm của STA là có thể thực hiện nhanh và triệt để vì không cần chạy các vector để thực hiện việc mô phỏng (DTA). Nó có thể kiểm tra tất cả các đường có liên quan trong thiết kế và xác định đượng các đường nào không thỏa yêu cầu về timing.
Setup time (Flip-flop): Là thời gian mà dữ liệu cần được giữ ổn định và không được thay đổi trước cạnh lên của clock.
Hold time (Flip-flop): Là thời gian mà dữ liệu cần được giữ ổn định và không được thay đổi sau cạnh lên của clock.
Đối với bất kỳ thiết kế nào việc MET timing là yêu cầu bắt buộc vô cùng quan trọng, nó quyết định việc thiết kế có thực hiện được đúng function đặt ra trong thực tế hay không. Theo kết quả thu được sau khi tính toán STA như hình trên, thiết kế đã thỏa được điều kiện ràng buộc về timing.
Sau đây là 2 trường hợp timing tương ứng cho setup và hold của thiết kế.
Hình 4.19 Báo cáo setup timing
83 Hình 4.20 Báo cáo hold timing
84 Hình 4.21 Layout của thiết kế sau khi implementation
85 Hình 4.22 Sơ đồ schematic của thiết kế
86
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN