MỞ ĐẦU: lời giới thiệu ban đầu, lý do chọn đề tài và cấu trúc của luận văn. Chƣơng 2 - TỔNG QUAN VỀ ĐỀ TÀI LUẬN VĂN: trình bày sơ lƣợc về đề tài luận văn và kế hoạch thực hiện. Chƣơng 3 - SƠ LƢỢC VỀ NHẬN DẠNG TIẾNG NÓI: sơ lƣợc quá trình phát triển của lĩnh vực nhận dạng tiếng nói. Chƣơng 4 - XÂY DỰNG MÔ HÌNH ĐÁNH GIÁ CHẤT LƢỢNG: Cơ sở lựa chọn và xây dựng mô hình.
Mô tả cấu trúc mô hình đánh giá. Chƣơng 5 - KIỂM TRA CHỨC NĂNG MỨC RTL: mô tả môi trƣờng mô phỏng ở mức RTL và các kết quả. Chƣơng 6 - TỔNG HỢP NETLIST VÀ KIỂM TRA CHỨC NĂNG MỨC CỔNG LOGIC: trình bày quá trình tổng hợp netlist, phân tích kết quả, tạo netlist với các thông số trễ. Chƣơng 7 - KIỂM TRA CHỨC NĂNG VỚI FPGA : kiểm tra thiết kế với FPGA (kit Altera-DE2).
Nhận dạng với dữ liệu đã lƣu sẵn trong RAM. Thu âm và nhận dạng trực tiếp từ kit. Chƣơng 8 - KẾT LUẬN : kết quả đạt đƣợc, hạn chế và hƣớng phát triển của đề tài. HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 14 GVHD: TS.
Hoàng Trang Chƣơng 2 TỔNG QUAN VỀ ĐỀ TÀI LUẬN VĂN 2.1 Đề án nghiên cứu phát triển vi mạch nhận dạng tiếng nói tiếng Việt Nhận dạng tiếng nói là một trong những hƣớng phát triển có tiềm năng ứng dụng lớn trong đời sống con ngƣời. Các thiết bị sử dụng công nghệ này sẽ có tính cạnh tranh và mang lại tiềm năng kinh tế lớn. Nghiên cứu và phát triển thiết bị nhận dạng tiếng nói tiếng Việt là một đề tài có ý nghĩa thực tiễn. Đề án “Nghiên cứu và phát triển vi mạch nhận dạng tiếng nói tiếng Việt” đã đƣợc xem xét và thông qua với kế hoạch cụ thể nhƣ sau : Hình 2.1 Đề án thiết kế vi mạch nhận dạng tiếng nói tiếng Việt Giai đoạn 1 (~2010 -> 12/2011): nghiên cứu và thiết kế vi mạch (Integrated Circuit - IC) nhận dạng tiếng nói tiếng Việt – nhận dạng từ đơn.
Giai đoạn 2 (1/2012 -> 8/2012): kiểm tra & đánh giá độ chính xác của thiết kế. Cho tới thời điểm (12/2011) giai đoạn 1 đã gần hoàn thiện. Phiên bản đầu tiên của thiết kế IC nhận dạng tiếng nói tiếng Việt đã hoàn thành và đƣợc kiểm tra với một vài mẫu dữ liệu đơn giản (thực hiện trên mô phỏng máy tính và FPGA). HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 15 GVHD: TS.
Hoàng Trang Một số tính năng của vi mạch nhận dạng tiếng nói tiếng Việt: o Nhận dạng từ đơn o Tập từ vựng có khả năng lƣu trữ tối đa 64 từ, do đó có thể nhận dạng đƣợc 64 từ rời rạc khác nhau. Nội dung của mỗi từ do ngƣời dùng huấn luyện, không phụ thuộc ngôn ngữ - tiếng Việt, tiếng Anh, … o Tần số hoạt động 50MHz (đánh giá dựa trên netlist đƣợc tổng hợp) Sơ đồ khối cơ bản của thiết kế đƣợc trình bày ở hình bên dƣới: Hình 2.2 Sơ đồ khối tổng quát của IC nhận dạng tiếng nói tiếng Việt Luận văn sẽ tập trung thực hiện các công việc của giai đoạn 2 của đề án nghiên cứu và phát triển IC nhận dạng tiếng nói tiếng Việt – Xây dựng mô hình kiểm tra và đánh giá độ chính xác của thiết kế.2 Sơ lƣợc quá trình thiết kế vi mạch số Hình 2.3 trình bày các bƣớc cơ bản của quy trình thiết kế vi mạch số. Bắt đầu từ yêu cầu của khách hàng (Customer requests) ngƣời thiết kế sẽ chuyển các yêu cầu này thành những mô tả, đặc tính kỹ thuật của sản phẩm (Specification). Những mô tả ở bƣớc này rất khái quát, thể hiện đặc tính tổng thể của sản phẩm.
HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 16 GVHD: TS. Hoàng Trang Từ những mô tả ban đầu (Specification), ngƣời thiết kế sẽ thực hiện thiết kế cấu trúc của sản phẩm (Architecture Design). Ở giai đoạn này, ngƣời thiết kế sẽ mô tả kiến trúc tổng quan của thiết kế: giải thuật thực hiện, sơ đồ khối của thiết kế, cách bố trí, số lƣợng các khối, chức năng của từng khối, cách thức các khối giao tiếp với nhau. Đầu ra ở bƣớc này là các bản mô tả kiến trúc tổng thể của thiết kế (Architecture Specification).
Sau khi đã hình thành đƣợc sơ đồ khối và cách thức giao tiếp giữa các khối, ngƣời thiết kế sẽ tiến hành thiết kế chi tiết cho mỗi khối (Detail Design). Ở giai đoạn này, mỗi khối chức năng sẽ đƣợc mô tả chi tiết, cụ thể (có thể cụ thể đến mức cổng logic nếu cần thiết): sơ đồ máy trạng thái (state machine), bảng chân trị (true table), giản đồ thời gian (timing chart), … Ngõ ra của bƣớc này là các bản mô tả chi tiết đặc tính thiết kế (Detail Specification). Bƣớc kế tiếp là RTL Coding, hiện thực thiết kế bằng ngôn ngữ mô tả phần cứng VHDL hoặc Verilog. Sau khi đã hoàn thành bƣớc viết code, chúng ta sẽ chuyển sang bƣớc kiểm tra chức năng (Functional Verification).
Đây là một trong những bƣớc quan trọng nhất nhằm đảm bảo chất lƣợng của sản phẩm. Ở giai đoạn này, ngƣời kiểm tra sẽ tiến hành xây dựng môi trƣờng mô phỏng giả lập các điều kiện hoạt động của sản phẩm. Sau đó sẽ tiến hành tạo các mẫu kiểm tra (test-case hoặc test-module) – giả lập dữ liệu đầu vào và kiểm tra kết quả đầu ra của thiết kế. Các test-case sẽ đƣợc viết dựa trên yêu cầu ban đầu của thiết kế: Customer Specification, Architecture Specification, Detail Specification.
Việc kiểm tra thƣờng đƣợc thực hiện trên máy tính (simulation) bằng cách sử dụng các chƣơng trình mô phỏng thƣơng mại (EDA tool) nhƣ: ncverilog (Cadence), ModelSim (Mentor Graphics), vcs (Synopsys) , … Ngoài ra, ngƣời ta còn thực hiện việc đánh giá trên board-FPGA (FPGA Evaluation). Việc đánh giá trên FPGA sẽ làm tăng độ tin cậy của thiết kế - vì đƣợc thực hiện mô phỏng trên môi trƣờng phần cứng thật sự. HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 17 GVHD: TS. Hoàng Trang Logic Synthesis: hiện thực của thiết kế (source code) sau khi đã đƣợc kiểm tra sẽ đƣợc thực hiện việc tổng hợp.
Đây là bƣớc chuyển đổi từ mức RTL sang mức cổng logic (gate level netlist). Gate level netlist đƣợc tạo ra dựa trên thƣ viện đã đƣợc chuẩn bị trƣớc. Các thƣ viện này chứa các thông tin đặc tính kỹ thuật của một quy trình sản xuất cụ thể, ví dụ thƣ viện cho công nghệ 180nm, thƣ viện cho công nghệ 45nm,… Các thông số kỹ thuật này bao gồm độ trễ (delay) của các phần tử (cell), kích thƣớc, fan-out, fan-in,… Đối với thiết kế số, đặc biệt là thiết kế đồng bộ (synchronous design), thời gian trễ là một yếu tố cực kỳ quan trọng đảm bảo chất lƣợng thiết kế. Kiểm tra thiết kế về mặt thời gian (timing verification) sẽ đánh giá tính chính xác về mặt thời gian đảm bảo thiết kế tuân thủ các yêu cầu đã đặt ra.
Gate level netlist sẽ đƣợc dùng để thực hiện các kiểm tra này. Test design: đây là giai đoạn nhúng các mạch kiểm tra vào thiết kế. Các mạch này sẽ đƣợc sử dụng sau khi vi mạch đƣợc chế tạo. Khi đƣợc cắt ra khỏi wafer, các “die” sẽ đƣợc đƣa qua các máy kiểm tra.
Đây là lúc các mạch kiểm tra ở bƣớc Test- design đƣợc sử dụng. Bằng cách sử dụng các mạch này, chúng ta có thể phát hiện các hỏng hốc kỹ thuật trong quá trình sản xuất nhƣ ngắn mạch, hở mạch, … Sau khi đã đƣợc chèn các mạch kiểm tra, gate-netlist sẽ đƣợc đƣa vào giai đoạn thiết kế Layout. Giai đoạn này, ngƣời thiết kế sẽ phân bố định vị các khối chức năng trên die-size, chọn lựa số lƣợng lớp (layer) cần thiết, kích thƣớc die-size,… Đầu ra của giai đoạn này là các tập tin chứa thông tin về các mặt nạ (mask) cần thiết cho việc sản xuất. Các tập tin thông số về các mặt nạ (mask) sẽ đƣợc đƣa đến nhà máy để sản xuất, đóng gói.
Sau khi đƣợc đóng gói, các sản phẩm sẽ phải trải qua quy trình kiểm tra giai đoạn cuối (test-chip), thực hiện kiểm tra trên board. Khi kết quả đã đạt yêu cầu, sản phẩm sẽ đƣợc tiến hành sản xuất hàng loạt (mass product). HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 18 GVHD: TS. Hoàng Trang Hình 2.3 Quy trình cơ bản của thiết kế vi mạch số Hình 2.4 Nhiệm vụ luận văn HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 19 GVHD: TS.3 Giới thiệu về bƣớc kiểm tra chức năng (Functional Verification) Hình 2.5 Mối liên hệ giữa ý tƣởng và hiện thực thiết kế [1] Kiểm tra chức năng (Functional Verification) là một trong những bƣớc quan trọng của thiết kế vi mạch số.
Bƣớc này nhằm đảm bảo sự chính xác của thiết kế so với mô tả ban đầu.5 đƣợc dùng để giải thích vai trò của bƣớc kiểm tra chức năng. Điểm khởi đầu là ý tƣởng của thiết kế (design intent). Từ những yêu cầu ban đầu của khách hàng, ngƣời thiết kế bắt đầu suy nghĩ về cách thức thực hiện yêu cầu đó, các giải thuật,… Các ý tƣởng, thuật toán này sẽ đƣợc mô tả cụ thể bằng các tài liệu thiết kế (specification). Dựa vào các tài liệu này, ngƣời thiết kế sẽ hiện thực ý tƣởng bằng ngôn ngữ mô tả thích hợp (trong thiết kế số là ngôn ngữ Verilog hoặc VHDL).
Ba giai đoạn chính này đƣợc minh họa bởi ba vòng tròn: ý tƣởng thiết kế (Design Intent), mô tả đặc tính (Specification) và hiện thực (Implementation). Trong trƣờng hợp lý tƣởng, ba vòng tròn này trùng khớp với nhau. Nhƣng thực tế, ba vòng tròn này chỉ giao nhau ở một mức độ nhất định. Nhƣ minh họa trên hình, chúng ta có các vùng không gian: A, B, C, D, E, F, G, H.
H là vùng giao nhau của cả 3 vòng tròn, đó là vùng mà ý tƣởng thiết kế đƣợc mô tả HVTH: Trần Thiên Thanh Luận văn tốt nghiệp 20 GVHD: TS. Hoàng Trang chính xác trong tài liệu thiết kế (Specification) và đƣợc hiện thực chính xác bằng ngôn ngữ thiết kế. A là vùng chỉ xuất hiện ở mức ý tƣởng. Đây có thể là những dự định ban đầu hoặc có thể là những ý tƣởng để mở rộng thiết kế về sau.
Ngƣời thiết kế có xem xét tới các dự định này nhƣng không mô tả và hiện thực nó. Nếu xét ở khía cạnh khác A cũng có thể xem là lỗi nếu đây là những ý tƣởng bắt buộc phải hiện thực, nhƣng lại bị bỏ qua. E là vùng đƣợc xem xét, mô tả trong tài liệu, nhƣng không đƣợc hiện thực. Đây có thể là trƣờng hợp hiện thực thiếu, đƣợc xem là lỗi của việc hiện thực.