Sau khi kiểm tra hoạt ựộng của hệ thống về mặt logic và chứng tỏựược hệ thống ựã hoạt ựộng ựúng theo ựặc tả ựề ra, ta tiến hành tổng hợp logic (logic synthesis). Việc tổng hợp logic thiết kế ựược tiến hành bằng phần mềm ISE 10.1 Foundation Suite. Nếu quá trình tổng hợp không có lỗi xảy ra, ta có thể tiếp tục thực hiện các bước tiếp theo như gắn kết thư viện phần cứng (mapping), ựặt chỗ và ựịnh tuyến (place and round). Tuy nhiên, ựể ựảm bảo tắnh ựúng ựắn của thiết kế, sau mỗi bước như vậy ta lại tiếp tục thực hiện quá trình mô phỏng và kiểm chứng nhưựã trình bày trong mục 4.1. Những kết quả thu ựược sau các quá trình này sẽ cho phép ước lượng ựược tài nguyên phần cứng cần phải sử dụng ựể xây dựng hệ thống bus vừa ựược thiết kế. Toàn bộ quá trình thực thi phần cứng ựược thực hiện trên chip FPGA dòng Virtex-4 XC4VLX40-12FF1148 của hãng Xilinx ựể có thểựáp ứng ựủ số lượng bộựệm chân vào ra (IOB) của thiết kế.
Sau quá trình tổng hợp, ta có thể xác ựịnh ựược số lượng các bộ xử lý logic ựược hệ thống sử dụng. Số lượng các bộ xử lý này ựược tổng hợp như ở trong Bảng 4. Ta thấy rằng số lượng các bộ xử lý logic này cũng biểu diễn phần nào cấu trúc của hệ thống bus ựược xây dựng. Chẳng hạn, ta có thể thấy số lượng bộ cộng/trừ 32 bit ựược sử dụng khá nhiều ựể phục vụ cho việc tắnh toán các ựịa chỉ cần truyền của bus chủ. Trong số các loại thanh ghi thì thanh ghi 1 bit và 32 bit ựược sử dụng khá nhiều ựể chốt tắn hiệu hoặc ựể nhớ tạm dữ liệu ựọc và dữ liệu ghi. Hệ thống chỉ sử dụng một bộ phân kênh 4-1 (32 bit) ựể phân kênh các tắn hiệu phản hồi và bus dữ liệu ựọc từ bus tớ về bus chủ.
72
Bảng 4. Số lượng bộ xử lý logic ựược sử dụng trong hệ thống bus
Bộ xử lý logic Số lượng Bộ cộng/Bộ trừ 19 Bộ cộng 32 bit 8 Bộ trừ 32 bit 8 Bộ cộng 5 bit 2 Bộ trừ 5 bit 1 Thanh ghi 57
Thanh ghi 1 bit 23
Thanh ghi 2 bit 6
Thanh ghi 3 bit 5
Thanh ghi 4 bit 2
Thanh ghi 5 bit 3
Thanh ghi 16 bit 8
Thanh ghi 32 bit 10
Bộ chốt 3 Bộ chốt 1 bit 1 Bộ chốt 2 bit 1 Bộ chốt 32 bit 1 Bộ so sánh 7 Bộ so sánh lớn hơn (32 bit) 3 Bộ so sánh nhỏ hơn (32 bit) 4
Bộ phân kênh 4-1 (32 bit) 1
Một thông số quan trọng nữa có thể thu ựược sau quá trình tổng hợp ựó là tần số hoạt ựộng cực ựại của hệ thống. Thông số này thu ựược thông qua việc ựánh giá thời gian tối thiểu cần thiết ựể tắn hiệu ựến các thanh ghi có thể lấy mẫu ổn ựịnh. Lưu ý rằng ựây chưa phải là tần số hoạt ựộng thực của hệ thống, tuy nhiên thông số này vẫn cho ta ước lượng gần ựúng tần số hoạt ựộng tối ựa của hệ
73
thống. Kết quả tổng hợp cho ta thời gian truyền dẫn tắn hiệu tối thiểu trên ựường truyền tới hạn (critical path) là 4,885ns tương ứng với tần số hoạt ựộng tối ựa của hệ thống là 204,698Mhz. Với tần số hoạt ựộng tối ựa này, tốc ựộ truyền của hệ thống bus có thể lên ựến 6,5Gb/s.
Về không gian thực thi phần cứng, sau khi thực hiện quá trình gắn kết với thư viện phần cứng của FPGA ta thu ựược số lượng tài nguyên phần cứng ựã sử dụng nhưở Bảng 5.
Bảng 5. Số lượng tài nguyên phần cứng ựã sử dụng
Loại tài nguyên Số lượng sử dụng Số lượng sẵn có Tỷ lệ sử dụng Tổng số slice sử dụng như thanh ghi (Slice Register)
470 36864 1%
Số lượng Flip Flop 435 Số bộ chốt dữ liệu (Latch) 35 Tổng số LUT 4 lối vào 2709 36864 7% Số LUT ựược sử dụng như các bộ logic 2437 Số LUT ựược sử dụng như các bộ ựịnh tuyến 272
Số bộựệm chân vào ra (IOB) 624 640 97% Số bộựệm xung nhịp (BUFG) 2 32 6%
Kết quả cho thấy hệ thống bus ựược thiết kế sử dụng hết 470 slice ựể dùng làm các thanh ghi (chiếm 1% lượng tài nguyên phần cứng ựược cung cấp). Trong ựó phần lớn số slice ựược sử dụng như là các flip flop (435/470 slice thanh ghi, chiếm 92,6%) còn lại là các bộ chốt dữ liệu. Số lượng bảng tìm kiếm 4 lối vào (Look Up Table Ờ LUT) ựược sử dụng là 2709 (chỉ sử dụng hết 7% tài nguyên của chip XC4VLX40-12FF1148) và phần lớn ựược sử dụng ựể thực hiện các phép toán logic. đáng chú ý nhất là số lượng bộựệm chân vào ra ựược sử dụng là 624 ựơn vị, chiếm 97% lượng tài nguyên có trên chip. Lý giải cho ựiều này là do hệ thống bus sử dụng khá nhiều cổng vào ra 32 bit ựể phục vụ cho mục ựắch cung cấp ựịa chỉ và dữ liệu cho các lõi IP ựược gắn bên ngoài. Khi xây dựng cả hệ thống trên chip thì các lối vào, ra này sẽ chuyển thành các tắn hiệu kết nối giữa các lõi xử lý, lõi IP và hệ thống bus.
74
Hình 41 cho ta một cái nhìn tổng quan về tình hình sử dụng tài nguyên ựể xây dựng các thành phần khác nhau trong hệ thống. Ta thấy các khối bus chủ luôn sử dụng lượng tài nguyên lớn nhất trong tất cả các khối chức năng vì bus chủựảm nhận chức năng tắnh toán và ựiều khiển chắnh. Tỷ lệ sử dụng tài nguyên của cả hai khối bus chủ so với các khối còn lại là: 72% LUT, 82% slice thanh ghi và 62% tổng số slice của hệ thống. Khối phân kênh tắn hiệu từ bus chủựến bus tớ (ms_mux), khối giải mã tắn hiệu ựịa chỉ (decoder) và khối kết nối hệ thống (ahb_system) không sử dụng thanh ghi vì ựây chỉ là các mạch tổ hợp (combinational circuit) thực hiện chức năng chuyển kênh và ựịnh tuyến. Ta cũng nhận thấy bus tớ slave_1 sử dụng nhiều tài nguyên phần cứng hơn các bus tớ khác. Sự khác biệt này có thể lý giải là do bus tớ slave_1 ựược xây dựng ựể có khả năng hỗ trợ thêm chức năng truyền SPLIT nên cần sử dụng thêm tài nguyên phần cứng.
75
Sau khi thực hiện ựặt chỗ và ựịnh tuyến (thực hiện layout) ta tiến hành lại mô phỏng và kiểm chứng với các thông số vật lý như thời gian truyền dẫn tắn hiệu. Khác với sau tổng hợp logic (chỉ có thông số về thời gian truyền tắn hiệu của các cổng logic) thì ở ựây ta có ựầy ựủ thông tin về thời gian truyền tắn hiệu (cả thời gian trễ trên các kết nối giữa các cổng logic). Kết quả mô phỏng cho ta kết quả thời gian trễ cực ựại là 7,237ns, tương ựương với tần số hoạt ựộng tối ựa của hệ thống là 138,179Mhz. Tốc ựộ truyền dữ liệu tối ựa của hệ thống lúc này chỉ còn 4,42Gb/s (nhỏ hơn khoảng 33% so với giá trị ước lượng ở quá trình tổng hợp).
để nâng cao hiệu năng hoạt ựộng của hệ thống, ta có thể thay ựổi các ựiều kiện ràng buộc trong các quá trình tổng hợp, quá trình gắn kết phần cứng cũng như trong quá trình ựặt chỗ và ựịnh tuyến ựể giúp cải thiện các thông số của hệ thống. Bên cạnh ựó ựể ựơn giản hóa quá trình thì phần mềm ISE hỗ trợ nhiều chiến lược tổng hợp phần cứng theo các hướng khác nhau như: tối ưu về tần số hoạt ựộng, tối ưu về công suất tiêu thụẦ Tiến hành tổng hợp hệ thống với chiến lược ựược chọn là tối ưu về hiệu năng, ta thu ựược kết quả về tài nguyên phần cứng cần sử dụng như trong Bảng 6.
Bảng 6. Tài nguyên phần cứng sử dụng sau khi ựược tổng hợp tối ưu về hiệu năng vật lý
Loại tài nguyên Chưa tối ưu đã tối ưu Tỷ lệ thay ựổi Tổng số slice sử dụng như
thanh ghi (Slice Register)
470 830 +76,6% Tổng số slice 1680 1805 +7,4% Tổng số LUT 4 lối vào 2709 2533 -6,5% Thời gian trễ cực ựại 7,237ns 6,989ns -3,4% Tần số hoạt ựộng cực ựại 138,179Mhz 143,082Mhz +3,6% Tốc ựộ truyền cực ựại 4,42 Gb/s 4,59 Gb/s +3,6% Số bộựệm xung nhịp (BUFG) 2 2 0% Số bộựệm chân vào ra (IOB) 624 624 0%
Kết quả tối ưu cho thấy ta cần phải sử dụng nhiều tài nguyên phần cứng hơn (chẳng hạn, số slice thanh ghi tăng thêm 76,6%) ựể cải thiện ựược tần số hoạt ựộng tối ựa của hệ thống (từ 138,179Mhz lên 143,082Mhz, tăng thêm
76
3,6%). Kết quả là tốc ựộ truyền của hệ thống ựược tăng từ 4,42Gb/s lên 4,59Gb/s.
77
KẾT LUẬN
Hệ thống bus AMBA AHB là một hệ thống bus tiên tiến có tốc ựộ truyền dữ liệu cao, hỗ trợ băng thông lớn. Sử dụng hệ thống bus này cho vấn ựề truyền thông trên chip là một giải pháp thắch hợp ựối với những hệ thống trên chip không quá phức tạp và có số lượng lõi IP vừa phải.
Sau quá trình nghiên cứu, tìm hiểu về hệ thống bus AMBA AHB, luận văn này ựã thiết kế và xây dựng thành công một mô hình hệ thống bus AHB nhằm ứng dụng cho một hệ thống trên chip ựang ựược phát triển tại Phòng thắ nghiệm SIS. Hệ thống ựược mô hình hóa bằng ngôn ngữ mô tả phần cứng VHDL với khoảng 2100 dòng lệnh và ựược chia thành 4 khối chức năng chắnh: bộ phân xử bus, bus chủ, bus tớ, khối phân kênh và giải mã ựịa chỉ. Hệ thống bus sau khi ựược mô hình hóa ựã ựược kiểm tra về các hoạt ựộng logic thông qua một phương pháp mô phỏng và kiểm chứng sử dụng chương trình mô phỏng ModelSim. Kết quả mô phỏng cho thấy hệ thống ựã hoạt ựộng ựúng theo những ựặc tả kỹ thuật của hệ thống bus AMBA AHB do hãng ARM ựề ra. Tiếp ựó hệ thống cũng ựược tiến hành tổng hợp logic và thực thi phần cứng (theo công nghệ FGPA của hãng Xilinx, sử dụng chương trình ISE Foundation Suite) ựể ước lượng tần số hoạt ựộng cũng như tài nguyên phần cứng cần sử dụng. Kết quảựạt ựược cho phép kết luận hệ thống bus ựược xây dựng có khả năng hoạt ựộng với tần số tương ựối cao (khoảng 138Mhz ựến 143Mhz) và thông lượng truyền thông cực ựại lên ựến 4,59Gb/s. Trong khi ựó lượng tài nguyên phần cứng cần sử dụng là khá nhỏ (3728 cổng logic).
Thông qua các kết quả mô phỏng, kiểm chứng ta có thể kết luận rằng mô hình hệ thống bus ựược xây dựng ựã hoạt ựộng tốt và ựạt ựược những yêu cầu kỹ thuật ựặt ra khi thiết kế hệ thống. Tuy nhiên do thời gian thực hiện có hạn nên vẫn còn một số tắnh năng ựã ựược ựơn giản hóa trước khi thiết kế.
Sau quá trình làm luận văn, ngoài những kiến thức về cấu trúc và hoạt ựộng của hệ thống bus AHB (một hệ thống bus tiên tiến ựược ứng dụng trong nhiều SoC) tác giả còn học tập ựược rất nhiều kiến thức, kinh nghiệm thiết thực và quan trọng trong lĩnh vực thiết kế VLSI. Bên cạnh việc nắm rõ ựược các công ựoạn và phương pháp thiết kế VLSI, ựặc biệt là quy trình thiết kế với công nghệ FPGA, thông qua luận văn tác giả cũng ựã làm chủựược ngôn ngữ thiết kế phần cứng VHDL. đây là một ngôn ngữ HDL ựược sử dụng rất phổ biến trong các thiết kế số vì cấu trúc chặt chẽ của nó và là một công cụ quan trọng ựể bắt ựầu
78
một quy trình thiết kế chip. Ngoài ra, thông qua các công ựoạn thiết kếựược thực hiện trong luận văn, tác giả cũng ựã nắm rõ ựược phương pháp sử dụng các công cụ phần mềm hỗ trợ thiết kế phổ biến như ModelSim, ISE Foundtion Suite... đây là những công cụ hỗ trợ thiết kế mạnh và phù hợp cho nhiều hướng phát triển tiếp theo của ựề tài này.
Trong thời gian tới, tác giả sẽ tiếp tục hoàn thiện hệ thống bus ựã xây dựng với khả năng hỗ trợ ựầy ựủ 16 bus chủ và 16 bus tớ với các ựộ rộng bus ựược mở rộng lên 64 bit hoặc 128 bit. Ngoài ra sẽ xem xét việc phát triển hệ thống với khả năng tái cấu hình theo các chếựộ phân quyền bus khác nhau nhằm nâng cao hiệu suất truyền thông của bus, cho phép cân ựối giữa tắnh năng hoạt ựộng và công suất tiêu thụ của hệ thống.
79
TÀI LIỆU THAM KHẢO
[1]. ARM Limited (1999), AMBAỎ Specification (Rev 2.0).
[2]. Cohen, B. (2002), VHDL Coding Styles and Methodologie, Kluwer
Academic Publishers, New York, Boston, Dordrecht, London, Moscow. [3]. Guangrong, Pan and Da, Feng and Qin, Wang and Yue, Qi and Meiqiang,
Yu (2009), The Design and Implementation of AMBA Interfaced High-
Performance SDRAM Controller for HDTV SoC, CSIE '09: Proceedings
of the 2009 WRI World Congress on Computer Science and Information Engineering.
[4]. Intel Corporation (2007), Introducing the 45nm Next-Generation Intel
Core Microarchitecture.
[5]. Kanishka Lahiri and Anand Raghunathan (2004), Power Analysis of
System-Level On-Chip Communication Architectures, Hardware/software
codesign and system synthesis, International conference on , pp236-241.
[6]. L.Perry, D. (2002), VHDL Programming by Example, McGraw Hill.
[7]. M. Caldari and M. Conti and M. Coppola and P. Crippa and S. Orcioni and L. Pieralisi and C. Turchetti (2003). System-Level Power Analysis
Methodology Applied to the AMBA AHB Bus. Design, Automation and
Test in Europe Conference and Exhibition , p20032.
[8]. Madl, Gabor and Pasricha, Sudeep and Bathen, Luis Angel D. and Dutt, Nikil and Zhu, Qiang (2006), Formal performance evaluation of AMBA-
based system-on-chip designs, EMSOFT '06: Proceedings of the 6th ACM
& IEEE International conference on Embedded software.
[9]. Massimo Conti and Marco Caldari and Giovanni B. Vece and Simone Orcioni and Claudio Turchetti (2004). Performance Analysis of Different
Arbitration Algorithms of the AMBA AHB Bus. Design Automation
Conference , 0, pp618-621.
[10]. Moch, S. and Berekovic, M. and Stolberg, H. J. and Friebe, L. and Kulaczewski, M. B. and Dehnhardt, A. and Pirsch, P. (2003), HIBRID-
SOC: a multi-core architecture for image and video applications, MEDEA
80
[11]. Naser Sedaghati (2006), Reconfiguration architecture for AMBA AHB bus.
[12]. OCP-IP Association (2008), Open Core Protocol Specification 2.2.
[13]. Open Verilog International (1996), Verilog-A hardware description
language.
[14]. P.Chu, P. (2006), RTL Hardware Design Using VHDL, A John Wiley &
Sons.Inc, Hoboken, New Jersey.
[15]. Pedroni, V. A. (2004), Circuit Design with VHDL, MIT Press, Cambridge,
Massachusetts.
[16]. Rishad A. Shafik and Paul Rosinger and Bashir M. Al-Hashimi (2008), MPEG-based Performance Comparison between Network-on-Chip and
AMBA MPSoC, Design and Diagnostics of Electronic Circuits and
Systems , pp1-6.
[17]. Samir Palnitkar (2003), Verilog HDL: A Guide to Digital Design and
Synthesis, Prentice Hall PTR.
[18]. Smith, M. J. (1997), Application Ờ SpecificIntegrated Circuits (ASICs the
book), Addison-Wesley.
[19]. Stolberg, Hans-Joachim and Berekovic, Mladen and Moch, Soren and Friebe, Lars and Kulaczewski, Mark B. and Flugel, Sebastian and Klubetamann, Heiko and Dehnhardt, Andreas and Pirsch, Peter (2005), HiBRID-SoC: A Multi-Core SoC Architecture for Multimedia Signal
Processing, J. VLSI Signal Process. System, 41, pp9-20
[20]. Sudeep Pasricha and Nikil Dutt (2008), On-Chip Communication
Architectures-System on Chip Interconnect, Elsevier Inc.
[21]. Integrated_circuit, http://en.wikipedia.org/ [22]. System-on-chip, http://en.wikipedia.org/ [23]. Transistor_count, http://en.wikipedia.org/ [24]. http://focus.ti.com/ [25]. http://www.arasan.com [26]. http://www.arm.com/products/CPUs/application.html [27]. http://www.auroravlsi.com [28]. http://www.cast-inc.com/systemip/pips/pip-amba-pkg/index.shtml
81
[29]. 1974 digital watch is first system on chip integrated circuit,
http://www.computerhistory.org/semiconductor/timeline/1974-digital- watch-is-first-system-on-chip-integrated-circuit-52.html