Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Đăng ký
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Chu trình thiết kế vi mạch số

Email In PDF.


[​IMG]1/ Chu trình cơ bản
Qui trình thiết kế mạch số của FPGA hay ASIC thì giống y hệt nhau (cứ search FPGA Design Flow hay ASIC Design Flow là ra). Ví dụ như hình dưới (Nguồn: Please login or register to view links

 [​IMG]

 Chú ý:
– Với ASIC thì từ phần Synthesis -> Physical Design -> Timing Analysis -> Tapeout thì được thực hiện bằng phần mềm chuyên dụng của Synopsys hoặc Cadence.
– Với FPGA thì chỉ cần Implementation là xong. Đối với sinh viên thì gần như không cần hiểu phần mềm làm gì. Tuy nhiên phải đọc hiểu report
 Tóm lại: Với sinh viên, với flow trên chúng ta chỉ cần làm Architecture Specs -> Design Specs -> RTL Design -> Functional Verification

2/ Chu trình thiết kế mạch xử lí số (DSP Design)
2.1 Chu trình chung
Đối với thiết kế mạch xử lí số, qui trình trên cần chi tiết hơn ở mục Architecture Specs và Design Specs

Ví dụ như hình dưới đây

[​IMG]

(hình 2)
hay trong hình này
Please login or register to view links(hình 3)​

Nguồn :
  • Please login or register to view links
  • Please login or register to view links
Đối với những thiết kế xử lí số, quá trình thiết kế phải được bắt đầu bằng việc khảo sát thuật toán (trong hình 2 là mục algorithm definitions, hình 3 là signal flow graph). Cụ thể việc này sẽ được nói ở dưới

2.2 Khảo sát thuật toán
  • Mục tiêu: Hiểu, đặt ra được các tham số của thuật toán (ví dụ số bit mã hóa cho input và output) và đánh giá được ảnh hưởng các tham số đó đến các thông số xử lí tín hiệu ( ví dụ như yêu cầu SNR tối thiểu là bao nhiêu )
  • Thực hiện bằng Matlab hoặc C. Chu trình khảo sát như sau : Floating Point -> Fixed Point. Ban đầu thực hiện thuật toán bằng floating point, sau đó đến fixed point, thay đổi các tham số bit mã hóa, các phép toán làm tròn
  • Kết quả: đưu ra giải pháp tối ưu mềm : bit mã hóa, phép toán làm tròn, độ trễ của mạch (latency), các bộ nhân, bộ cộng, …
  • Ngày đó, bọn mình thực hiện việc đánh giá phép toán dấu phẩy tĩnh gần như thủ công, bằng việc viết chương trình C rồi cho chạy. Tuy nhiên, Matlab có 1 tool tên là Fixed Point Analysis, mình không kịp dùng giải pháp này -> tiếc 1
  • Tham khảo báo cáo khảo sát thuật toán FFT của trường Đài LoanPlease login or register to view links
2.3 Lựa chọn kiến trúc thiết kế
  • Đây là 1 trong những phần khó nhất và cần sự sáng tạo
  • Các thông số đánh giá chất lượng thiết kế phần cứng: Area, Throughput, Power.
  • Dựa trên thời gian thực hiện dự án và cả con người nữa, vì thế cần xem xét kĩ lưỡng.
  • Mình chủ yếu làm phần này. Nên kinh nghiêm là search, đọc càng nhiều bài báo, project càng tốt. Lọc và tổng hợp và đưa ra được các giải pháp cùng độ phức tạp, điểm mạnh và điểm yếu của chúng.
  • Với FFT thì có 3 kiến trúc chính là : Pipeline, Parallel, In-Place. Bọn mình chọn Pipeline vì nó cân bằng Area và Throughput và thực hiện dễ nhất. Tuy nhiên, đội nhất LSI thì triển khai In-Place, mà kiến trúc này mình đã rất muốn thực hiện nhưng không đủ điều kiện -> tiếc 2
2.4 Thiết kế
  • Sau khi đã lựa chọn kiến trúc, ta phải thiết kế cụ thể mạch.
  • Chú ý: chia nhỏ các thiết kế càng sâu càng tốt. Đặt các tín hiệu điều khiển cho phù hợp.
  • Kết quả: Sau khi thiết kế xong, ta có thể viết được 1 design specification. Bao gồm toàn bộ data flow trong mạch, các chức năng của các tín hiệu.
  • Mình không trực tiếp design, chỉ khảo sát các kiến trúc thôi -> tiếc 3
2.4 HDL Coding
  • HDL Coding: triển khai thiết kế bằng Verilog hoặc VHDL.
  • Chú ý: tham số hóa các dữ liệu thiết kế (input, output). Khi thiết kế cho FPGA hay ASIC thì phải chú ý Coding Style của đúng hãng. Ví dụ: Xilinx thì cứ search ISE Coding Style. Việc này nhằm đảm bảo Code được synthesis hiệu quả nhất.
2.4 Testbench
  • Mong muốn: Self-Checking Testbench.
  • Giải pháp:
  1. Xây dựng mô hình testbench bằng SystemVerilog, dùng Questasim
  2. Sử dụng Matlab Simulink và Xilinx System Generator hoặc Altera DSP Builder để so sánh với thiết kế (trong trường hợp các thiết kế là xử lí số).
  • Nếu không đủ thời gian thì có thể thực hiện linear testbench cũng được. Sử dụng Xilinx Isim, Modelsim để check kết quả.
3/ Demo sản phẩm
  • Đây thường là điểm yếu của người Việt Nam vì ít thực hành, và chỉ chuyên môn sư phạm thôi.
  • Trước hạn nộp 2 tuần, mình thấy năm 2009, LSI có đưa ra các tiêu chí chấm điểm, có mục là tính ứng dụng thực tế. Vì thế mình tìm cách đưa FFT vào 1 mô hình OFDM có sẵn trên Simulink và chỉ việc moding đi. Cộng thêm việc sử dụng System Generator Hardware in the loop để thiết kế chạy trên mạch thật. Vì thế nên thiết kế này đã được đánh giá cao hơn chút.
  • Xem bên Chiba và Mozaik, họ thực hiện demo bằng phần mềm và Embedded System, thấy rất hay. Các ứng dựng này được thực hiện trong vật lý và xử lí ảnh, mà trước đó mình chưa biết. (nếu ai quan tâm thì quay lại bài Please login or register to view links để xem).
  • Vì thế mình rút ra 1 điều, phải hiểu tính ứng dụng của thiết kế. Đặt ra ngay việc thực hiện demo dự án ngay sau khi khảo sát thuật toán. Nếu có thời gian mình sẽ tìm cách demo hay hơn -> tiếc 4
4/ Trình bày và sắp xếp project
  • Đây không phải 1 giai đoạn trong chu trình thiết kế mà nó dàn trải toàn bộ. Việc tổng hợp, sắp xếp và trình bày tốt giúp công việc thuận lợi hơn.Khi thực hiện dự án, những tài liệu, mã nguồn nên được trình bày, sắp xếp dễ hiểu và dựa trên 1 style nhất định.
  • Tham khảo OpenCores Coding Guidelines ở đâyPlease login or register to view links và 1 dự án cụ thể Please login or register to view links (Ethernet MAC) để có được 1 sản phẩm hoàn thiện nhất. Thêm nữa là Opencore cũng có SVN để có thể quản lí project khá tốt. Vì thế tập làm theo 1 style nhất định là rất quan trọng, đặc biệt với thiết kế lớn

    Chu trình thiết kế vi mạch số

 

Related Articles

Chat Zalo