THIẾT KẾ MỘT SỐ BỘ MÃ SỬ DỤNG VHDL ỨNG DỤNG TRONG VIỄN THÔNG
3.2.4.1 Mạch giải mã Manchester
Các thanh ghi data_in1 và data_in2 (bảng 3.4) có mạch điện giải mã mà phát hiện sườn tại đầu vào trên data_in và kích hoạt clk1x_enable. Tín hiệu clk1x_enable được sử dụng như tín hiệu cho phép các thanh ghi khác nhau theo nhịp bằng một xung đồng hồ clk1x. Nó có ý nghĩa giảm công suất tiêu thụ khi dữ liệu không được thu. Tín hiệu no_bits_rcvd duy trì số lượng các bit thu và chuỗi giải mã thông qua các toán tử. Để thay đổi kích thước từ mã, thay đổi giá trị của no_bits_rcvd. Mạch giải mã thực hiện khôi phục xung đồng hồ sử dụng biến đầu tiên, thanh ghi clkdiv và tín hiệu lấy mẫu.
Tín hiệu Hướng Chức năng
reset vào Khởi động lại các thanh ghi clk1x, no_bits_rcvd, nrz
clk16x vào Xung đồng hồ 16x đầu vào được sử dụng như một đồng hồ tham chiếu cho khôi phục xung đồng hồ, lấy mẫu trung tâm
data_in vào Đầu vào dữ liệu Manchester nối tiếp d_out[7:0] ra Bus dữ liệu NRZ song song đầu ra data_in1,
data_in2
bên trong Các thanh ghi bên trong được sử dụng để phát hiện sườn trên mdi
no_bits_rcvd bên trong Điều khiển kích thước từ mã và các chuỗi giải mã
clk1x_enable bên trong Cho phép xung đồng hồ 1x clk1x bên trong Xung đồng hồ 1x bên trong
sample bên trong Xác nhận thời gian tại đó máy thu thực hiện giải mã dữ liệu
first bên trong Biến được sử dụng bởi bộ đếm để xác định kết thúc bộ đếm
data_ready ra Các trạng thái dữ liệu cho biết dữ liệu trình bày trên bus dữ liệu đầu ra
Bảng 3.4 Các chân chức năng vào/ra mạch giải mã Manchester
Sau đây sẽ kiểm tra lại từ quá trình chạy mô phỏng:
1. Tín hiệu clk1x_enable là cao trong toàn bộ dữ liệu trên data_in và thấp trong trạng thái rỗi của đường dây.
2. NRZ là tất cả “0” cho byte đầu tiên, tất cả “1” cho byte thứ hai, đổi dấu byte thứ ba (không thấy được).
3. Quá trình đọc trên read khởi động lại tín hiệu trạng thái data_ready.