Tại một nơi tôi làm việc có hai trại thiết kế đồ họa. Một trại tôi gọi là mô phỏng, mô phỏng, mô phỏng hoặc s khối. Các trại khác là tất cả về thiết kế.
Những kẻ lập phương đã sử dụng một trình giả lập như mô hình, họ sẽ đưa ra một thiết kế ban đầu thông qua các phương thức mã hóa và \ hoặc các khối trong bộ thiết kế. Sau đó, họ sẽ mô phỏng nó và tìm những thứ không hoạt động, sau đó thay đổi mã. Quá trình này được lặp đi lặp lại nhiều lần cho đến khi họ đưa ra một thiết kế có hiệu quả.
Trại thiết kế (mà tôi thích) sẽ thiết kế dạng sóng trên giấy (hoặc giấy kỹ thuật số như visio), chính xác những gì được yêu cầu. Sau đó đưa ra một sơ đồ logic. Đây là một quá trình tự viết tài liệu. Sau đó sơ đồ được dịch thành mã (mã và sơ đồ là 1: 1 nếu có một cái gì đó trong sơ đồ, có một quy trình cho nó trong mã). Sau đó, nó đã được mô phỏng, và dạng sóng mô phỏng được so sánh với dạng sóng được thiết kế trên giấy, và được dự kiến là giống nhau.
Cuối cùng tôi đã làm cả hai, đôi khi tôi sẽ vào chế độ hình khối, và nó không vui lắm. Tôi thấy rằng đôi khi tôi đã đánh mất mục tiêu của mình. Ví dụ: tôi sẽ thay đổi trạng thái trong máy trạng thái và thay đổi sẽ chuyển sang trạng thái tiếp theo, sau đó tôi sẽ phải sửa lỗi đó. Cuối cùng tôi đã dành nhiều thời gian hơn là nghĩ về nó.
Trại nào bạn thích ở? Tôi nghĩ rằng cần phải có thiết kế nghiêm ngặt, làm những gì phù hợp với bạn, nhưng tôi nghĩ rằng bạn càng thiết kế chi tiết và nghiêm ngặt hơn, bạn sẽ càng gặp ít vấn đề trong thời gian dài. Tôi đã đưa ra một số ví dụ về những gì có thể, chúng có thể không phù hợp với cấu trúc tổ chức nơi làm việc của bạn. Lý do tại sao chi tiết thiết kế và lập kế hoạch cẩn thận rất hữu ích, là nó buộc bạn phải suy nghĩ về những gì bạn đang làm. Nó làm cho nó dễ dàng để gỡ lỗi. Phát triển một quy trình thiết kế cho phép điều này xảy ra. Ngoài ra, hãy làm quen với các công cụ mô phỏng và viết các bài kiểm tra tốt sẽ kiểm tra tất cả các điều kiện mà thiết bị mô phỏng có thể gặp phải. Điều này tất nhiên cần phải được cân bằng với thời gian. Ví dụ, viết mã ADC HDL sẽ mô phỏng thiết bị trong các mô phỏng của bạn.
Công cụ có giá trị nhất cần có trong thiết kế đồ họa (theo ý kiến của tôi) là một quy trình thử nghiệm tốt sẽ cho phép bạn kiểm tra đầy đủ thiết kế của mình và chạy nó qua các bước của nó. Một thiết kế đồ họa không thể được mong đợi "chỉ hoạt động" cần phải nỗ lực để đảm bảo tất cả các phần đều hoạt động. Nếu bạn phát hiện ra lỗi, sau đó quay lại mô phỏng và thiết kế và tìm hiểu sự khác biệt giữa một mô phỏng đồ họa và RTL là gì. Điều đó chủ yếu đi kèm với kinh nghiệm, nhưng nếu thiết kế hoạt động trong mô phỏng nhưng không phải trong phần cứng thì bạn cần tìm hiểu tại sao có sự khác biệt.
Một vài điều quan trọng mà tôi đã học được:
1) Vệ sinh đầu vào của bạn, mạch đồng hồ và thiết lập lại cần phải sạch hoặc bạn có thể nhận được sự di chuyển lan truyền qua hệ thống của bạn. Biết một bộ đồng bộ hóa xếp hạng kép là gì. Có nhiều cấu trúc liên kết khác nhau cho các mạch đặt lại, biết cách sử dụng chúng (có một bài viết tuyệt vời trên mạng, mặc dù tôi không có nó trong tay).
2) Nhận các yêu cầu của thiết kế lên phía trước và sau đó thiết kế xung quanh những yêu cầu đó. Nếu những người xung quanh bạn sẽ không cung cấp cho bạn những yêu cầu nhất định, thì hãy tự mình đưa ra một số yêu cầu.
3) Hộp công cụ điểm cố định Matlab rất tốt để mô phỏng các hệ thống điều khiển và ứng dụng DSP, nhưng bạn có thể không có quyền truy cập vào đó. Đó là một cách tuyệt vời để chứng minh một thiết kế trước khi bạn viết mã.
4) Thiết kế đến trước, sau đó mã hóa, sau đó mô phỏng.
5) Gõ mạnh, cũng giữ các tên tín hiệu nhất quán trên sơ đồ pcb và hdl. (đây cũng là lý do tại sao tôi thích VHDL hơn verilog.