MÃ GRAY LÀ GÌ? ỨNG DỤNG CỦA MÃ GRAY? THIẾT KẾ BỘ CHUYỂN ĐỔI TỪ BINARY SANG GRAY 5 BIT.

Thứ ba, 28 tháng 05, 2024

Phần 1: Mã Gray là gì ?

Mã Gray (Gray code) là một dạng mã nhị phân đặc biệt được sử dụng phổ biến trong thiết kế VLSI (Very-Large-Scale Integration) và các hệ thống số khác. Đặc điểm chính của mã Gray là hai mã kế tiếp nhau chỉ khác nhau một bit duy nhất. Điều này giúp giảm thiểu sai sót khi chuyển đổi giữa các giá trị số, đặc biệt hữu ích trong các ứng dụng yêu cầu độ chính xác cao hoặc các hệ thống cần chuyển đổi mượt mà giữa các trạng thái.

Phần 2: Ứng dụng của mã gray

Với những đặc tính nêu trên, mã gray thường được sử dụng vào các mục đích sau

1. Bộ đếm vòng (Rotary Encoders)

  • Ứng dụng: Rotary encoders là các cảm biến được sử dụng để đo lường vị trí góc hoặc chuyển động quay.
  • Lợi ích: Sử dụng mã Gray giúp đảm bảo rằng chỉ một bit thay đổi tại một thời điểm khi trục quay di chuyển từ vị trí này sang vị trí khác, giúp giảm thiểu lỗi đọc khi chuyển đổi.

2. Bộ chuyển đổi tương tự-số (Analog-to-Digital Converters – ADCs)

  • Ứng dụng: Trong các bộ chuyển đổi tương tự-số, mã Gray được sử dụng để mã hóa kết quả đầu ra số.
  • Lợi ích: Giảm thiểu lỗi chuyển đổi khi các giá trị liên tiếp được đọc, do chỉ một bit thay đổi mỗi lần, giúp cải thiện độ chính xác và độ tin cậy của bộ chuyển đổi.

3. Truyền thông dữ liệu

  • Ứng dụng: Trong truyền thông dữ liệu, mã Gray được sử dụng để mã hóa dữ liệu trước khi truyền.
  • Lợi ích: Giảm thiểu lỗi bit trong quá trình truyền dữ liệu, đặc biệt trong các môi trường nhiễu hoặc khi truyền ở tốc độ cao.

4. Địa chỉ hóa bộ nhớ trong VLSI

  • Ứng dụng: Trong các mạch tích hợp quy mô rất lớn (VLSI), mã Gray được sử dụng để quản lý và truy cập bộ nhớ.
  • Lợi ích: Giúp giảm thiểu xung đột và lỗi trong quá trình truy cập bộ nhớ bằng cách đảm bảo rằng chỉ một bit địa chỉ thay đổi tại một thời điểm.

5. Thiết kế mạch số và hệ thống điều khiển

  • Ứng dụng: Trong thiết kế mạch số, mã Gray được sử dụng trong các máy trạng thái hữu hạn (Finite State Machines – FSMs) và các bộ đếm.
  • Lợi ích: Giảm thiểu nhiễu và tăng độ tin cậy của hệ thống bằng cách hạn chế số lượng bit thay đổi đồng thời, điều này đặc biệt quan trọng trong các ứng dụng yêu cầu độ chính xác cao.

Mã Gray được ưa chuộng trong các ứng dụng yêu cầu độ tin cậy và chính xác cao, nơi việc giảm thiểu lỗi bit và đơn giản hóa quá trình chuyển đổi là rất quan trọng.

Phần 3: thiết kế bộ chuyển đổi binary sang gray 5 bit.

Nhân dịp chuyên mục đố vui vi mạch có đề cập đến câu hỏi chuyển đổi giữa binary sang gray, chúng ta hãy cùng nghiên cứu cách thiết kế bộ chuyển đổi này nhé.

Các câu hỏi khác các bạn có thể tham khảo bài viết dưới đây
https://ictc.edu.vn/interview-quiz-thang-5-2024/

Cách thức giải bài này chúng ta có thể tham khảo hình dưới đây

cách chuyển đồi từ binary sang gray

Bước 1: viết bit MSB xuống

Bước 2: so sánh 2 bit binary kế cận, nếu giống nhau thì viết 0 xuống chuỗi gray và ngược lại.

Đáp án: 11011 (đáp án C)

Để thiết kế bộ chuyển đổi này, chúng ta sẽ dùng cổng XOR, dễ để thấy truth table của cổng XOR phù hợp với yêu cầu thiết kế

XOR truth table

Khi 2 ngõ vào giống nhau, output của cổng XOR là 0.

Khi 2 ngõ vào khác nhau, output của cổng XOR là 1.

Tiếp theo ta sẽ vẽ sơ đồ thiết kế logic (logic diagram)

Sơ đồ thiết kế

Sau đó tiến hành mô tả RTL

Mô tả RTL cho bộ chuyển đổi bin2gray 5 bit

Kết quả mô phỏng và mạch thực tế, kết quả đúng với đáp án.

Kết quả mô phỏng và schematic thực tế

Kết luận:

Bài viết đã giới thiệu về mã gray, ứng dụng và cách thiết kế bộ chuyển đổi 5 bit đơn giản từ binary sang gray dùng verilog.

Để thiết kế phần cứng, các bạn nên tập trung vào hiểu rõ các khái niệm về cổng logic, cách xây dựng sơ đồ khối, logic diagram rồi mới bắt đầu mô tả bằng ngôn ngữ thiết kế.

Mở rộng:

  1. Hãy thiết kế bộ chuyển đổi gray sang binary
  2. Hãy thiết kế bộ chuyển đổi binary sang gray với N bit, N là một parameter.
N-bit binary to gray converter

NOTE: các bạn có thể thực hành thiết kế vi mạch trên server ICTC. Hãy liên hệ với ICTC để được hướng dẫn cách thức truy cập nhé.


——————————————————

Tìm hiểu lộ trình cho người mới bắt đầu để hiểu thêm về công việc, ngành nghề, đãi ngộ và những kiến thức cần thiết để học thiết kế vi mạch và tham gia vào thị trường vi mạch.
Lộ Trình Bắt Đầu Ngành Thiết Kế Vi Mạch Bán Dẫn

Truy cập Server EDA Miễn Phí của ICTC để thực hành thiết kế vi mạch:
Truy cập Server EDA Miễn Phí

Hiện tại ICTC đang mở các khóa học thiết kế vi mạch từ cơ bản đến nâng cao, các bạn có thể tìm hiểu tại các bài viết sau nhé:

Thứ ba, 28 tháng 05, 2024
Đức Lê

Co-Founder ICTC - RTL Design Engineer

Mình đã có hơn 10 năm làm việc trong lĩnh vực vi mạch, tập trung vào khâu thiết kế RTL. Dù là một ngành nghề đang phát triển mạnh mẽ, thế nhưng, thông tin về thiết kế vi mạch vẫn còn khá mơ hồ, không rõ ràng. Điều này làm cho những người trẻ, đặc biệt là những ai mới bước vào lĩnh vực này, gặp không ít khó khăn khi muốn tìm hiểu và tiếp cận kiến thức. Nhận thức được những khó khăn này, chúng mình quyết định thành lập ICTC - một nơi không chỉ chia sẻ kiến thức mà còn truyền đạt những thông tin thực tế, từ cơ bản đến chuyên sâu về lĩnh vực thiết kế vi mạch. Mục tiêu của ICTC là giúp các bạn trẻ nắm vững kiến thức, hiểu rõ về ngành nghề và từ đó, có thể xây dựng một hướng đi đúng đắn cho sự nghiệp trong tương lai của mình. Chúng mình tin rằng, với sự đam mê và kiến thức chuyên sâu, mọi khó khăn đều có thể vượt qua, và hành trình chinh phục thế giới vi mạch sẽ trở nên thú vị hơn bao giờ hết.

Đội Ngũ Giảng Viên Đến Từ Các Công ty vi mạch hàng đầu với NHiều năm kinh nghiệm

Khóa học thiết kế vi mạch ICTC giảng viên từ Ampere
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ MediaTek Singapore
Khóa học thiết kế vi mạch ICTC giảng viên từ BOS
Khóa học thiết kế vi mạch ICTC giảng viên từ Marvell
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ NSING
Lê Tiến Đạt

Lê Tiến Đạt

DFT Engineer - SemiFive

"Mình chuyển sang vi mạch thực sự khoảng đầu năm nay, mông lung và mất định hướng. Trong quá trình tự học thì biết đến ICTC, cũng nghĩ mục tiêu ban đầu là học để có cái nhìn tổng quát về ngành chứ không nghĩ là sẽ nhận được nhiều như vậy từ các anh. Mình phỏng vấn lần đầu tiên vào tháng 1, sau 6 tháng nỗ lực và tham gia cùng với ICTC thì mình nhận được offer."

Nguyễn Thị Phương Quỳnh

Nguyễn Thị Phương Quỳnh

Technical Engineer - Synopsys

"Trong mùa hè muốn phát triển bản thân, mình đã chọn tham gia khóa học IC Overview tại ICTC để củng cố kiến thức về RTL và DV. Trước đây, mình chỉ tập trung coding module mà bỏ qua kỹ năng thiết kế - điều cốt lõi của kỹ sư vi mạch. Qua khóa học, mình hiểu rõ hơn vai trò và công việc thực tế của một kỹ sư vi mạch. Đội ngũ giảng viên giàu kinh nghiệm đã hỗ trợ tận tình cả trong và ngoài lớp học, giúp mình cải thiện đáng kể, đặc biệt khi phỏng vấn cho các offer hiện tại của mình. Xin cảm ơn anh Ân và ICTC rất nhiều!"

Phan Vinh Phong

Phan Vinh Phong

RTL Design Engineer - BOS Semiconductor

"Những ngày tu luyện miệt mài trên server của ICTC được đền đáp bằng một offer RTL Design đầu tiên, một thành quả không tưởng với bản thân mình của 3 tháng trước. Mình thực sự rất biết ơn các anh giảng viên trong đội ngũ ICTC đã tạo nên một môi trường học tập vô cùng chuyên nghiệp, tâm huyết và đầy cảm hứng để các bạn trẻ như mình, dù xuất phát điểm trái ngành, vẫn có thể tự tin theo đuổi và hiện thực hóa giấc mơ của trong lĩnh vực vi mạch."

Nguyễn Thanh Vương

Nguyễn Thanh Vương

Design Verification Engineer - FPT Semiconductor

"Khóa học quá oke ấy chứ ạ. Lúc trước em fail 3 lần pv và nhận ra mình thiếu project vs tool EDA thực tế, khóa học có server vs thạo VIM em thấy lợi thế hơn hẳn luôn ấy."

Lê Duy Thức

Lê Duy Thức

Technical Engineer - Synopsys

"Khóa học thiết kế vi mạch cơ bản do anh Ân phụ trách thật sự rất bổ ích. Anh Ân dạy rất dễ hiểu, lại còn cực kỳ thân thiện và luôn sẵn sàng hỗ trợ tụi em khi gặp khó khăn. Em thấy nội dung khóa học giúp ích rất nhiều cho quá trình phỏng vấn thực tập sau này. Đặc biệt, phần final project khiến em nắm vững hơn về cách đọc và hiểu code RTL, cực kỳ thực tế và sát với công việc. Đây là một khóa học đáng giá cho những ai muốn học và làm về thiết kế vi mạch."

Phan Minh Khôi

Phan Minh Khôi

PD Engineer - ADT Technology & SNST

"Nhờ các kiến thức của khóa học tại trung tâm nên em có cái nhìn chi tiết hơn về ngành, giúp em trả lời tốt các câu hỏi tạo điểm cộng trong mắt nhà tuyển dụng."

Nổi Bật

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Hôm nay, khóa học Thiết kế Vi mạch Cơ bản tại Trung tâm ICTC đã chính thức khép lại với buổi lễ tổng kết ý nghĩa. Đây là dịp để giảng viên và học viên cùng nhau nhìn lại hành trình học tập, những thành quả đạt được, và chia sẻ cảm nghĩ sau khóa học. Cảm Nghĩ Của Học...

TỔNG KẾT OFFLINE VI MẠCH 07/2024

TỔNG KẾT OFFLINE VI MẠCH 07/2024

Vậy là sau hơn 4 tiếng đồng hồ giao lưu và chia sẻ các kiến thức về tổng quan ngành vi mạch, các vị trí việc làm, tuyển dụng, các kinh nghiệm học tập, phỏng vấn, ... buổi offline ngày hôm nay đã kết thúc thành công tốt đẹp.Rất cảm ơn các bạn đã không ngại đường xá xa...

Bài Viết Mới

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

Bài viết nằm trong series về VLSI Testing Hình dưới đây mô tả các bước để làm ra 1 con chip. Sau khi chip đã được thiết kế hoàn chỉnh, một số con chip mẫu (prototype chip) sẽ được gửi về để test (prototype test). Sau khi quá trình testing hoàn tất và fix tất cả các...

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

Bài viết nằm trong series bài viết về VLSI Testing Các Khả Năng Xảy Ra Khi Test Chip Có 4 khả năng xảy ra khi test chip 1.True PASS: tất cả các tính năng của chip đều được test một cách chính xác, chip hoạt động tốt, không có defect nào cả. 2.Test escape: quá trình...

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

Bài viết nằm trong series bài viết về VLSI Testing. VLSI Testing là gì? VLSI testing, hay chip testing là quá trình diễn ra sau IC đã được sản xuất, nhằm xác định một phần hoặc toàn bộ chip hoạt động đúng tính năng hay không (PASS or FAIL).Testing là công đoạn bắt...

BẠN CHƯA BIẾT BẮT ĐẦU TỪ ĐÂU?

Sau nhiều năm tư vấn và đào tạo vi mạch cho hàng trăm bạn sinh viên, học sinh và phụ huynh, kết hợp với kinh nghiệm từ các anh chị kỹ sư vi mạch có nhiều năm kinh nghiệm, đây là tất cả những kinh nghiệm và tài liệu mà mình đúc kết, tổng hợp lại được thành một quy trình tìm hiểu ngành vi mạch để các bạn mình mới tham gia vào ngành có thể bắt đầu một cách hiệu quả nhất.

 

Bấm nút bên dưới để tìm hiểu về ngành, về nghề nghiệp cũng như những thứ bản thân cần chuẩn bị để tham gia vào hành trình trở thành kỹ sư vi mạch tuy có phần gian nan nhưng vô cùng thú vị bạn nhé!

LỘ TRÌNH TỰ HỌC VI MẠCHGROUP CHAT HỌC TẬP VI MẠCH