Xây dựng Module Core Controller

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống nâng cao chất lượng tiếng nói sử dụng công nghệ FPGA (Trang 47 - 51)

Dưới đây là một phần cấu trúc của module xử lý trung tâm.

Hình 4.2: Module Core Controller

Cấu trúc phần cứng của module này tương đối lớn, khi quan sát tổng quan cả thiết kế thì chất lượng hình ảnh không cao. Để quan sát rõ nhất hình ảnh thiết kế ta nên xem bằng chức năng mô phỏng RTL View của phần mềm Quartus II.

Ta có thể mô phỏng hoạt động của module này thông qua chức năng một số chân tín hiệu như sau:

+ Các chân dữ liệu vào, bao gồm các đường tín hiệu vào từ module Audio_Controller (audio_in) và bộ lọc FIR(data_ram_out).

+ Tương tự là các chân tín hiệu ra hai khối trên là “audio_out” và “data_ram_in”

+ Các chân tín hiệu vào gồm có hai chân tín hiệu từ “audio_controller” là “audio_allowed” và “audio_avaiable” đã được giới

thiệu ở phía trên và hai chân tín hiệu cho biết trạng thái của SDRAM là “ram_waitrq” và “ram_valid”.

+ Các chân tín hiệu điều khiển ngõ ra gồm có hai chân tín hiệu đọc/ghi vào SDRAM (write_ram, read_ram) và hai chân tín hiệu đọc ghi vào module “audio controller” (read_audio_in, write_audio_out).

Trong module này ta chọn chế độ hoạt động qua một số switch có sẵn trên KIT DE2 như sau:

+ SW[17] điều khiển chức năng phát âm, tích cực mức cao. + SW[16] chọn chức năng tạm dừng khi phát, tích cực mức cao. + SW[15] điều khiển chức năng ghi âm, tích cực mức cao.

Để hoạt động của module này diễn ra như mong muốn ta sử dụng biến trạng thái với nhiều trạng thái khác nhau để dễ dàng quản lý hoạt động, ta có bảng trạng thái sau khi cấu hình như sau:

Phần mềm cũng cho phép ta kiểm tra tính chính xác của thiết kế thông qua sơ đồ máy trạng thái như hình 4.3.

Hình 4.3: Sơ đồ máy trạng thái bên trong module xử lý trung tâm.

4.2.3. Module FIR_Filter

Như đã phân tích trong phần thiết kế, ở đây ta đi xây dựng bộ lọc FIR thông dải cho ứng dụng theo sơ đồ hình 3.11:

Đầu vào x(n) ở đây được đặt tên f_in chính là tín hiệu âm thanh 16 bit, đầu ra y(n) đặt tên f_out và được đưa vào chân “ram_data_out” của bộ xử lý trung tâm. Thông các hệ số “h” của bộ lọc được lấy từ “fdatool” của Matlab. Khi hoạt động, các bộ cộng, bộ nhân hoạt động song song, do đó rút ngắn thời gian xử lý của bộ lọc đi rất nhiều so với sử dụng các vi điều khiển thông thường.

Trong ứng dụng này ta sử dụng bậc bộ lọc là 50, tuy nhiên chức năng mô phỏng “RTL View” của phần mềm Quartus không thể mô phỏng hết cấu trúc mạch lớn như vậy (chức năng biên dịch vẫn hoạt động bình thường). Ở đây để tăng tính trực quan, tôi chọn số bậc của bộ lọc là 6 để

phần mềm có thể mô phỏng được thiết kế của module “FIR_Filter” như sau:

Hình 4.4: Cấu trúc bên trong module FIR_Filter

4.2.4. Module SDRAM

Module này là thành phần giao tiếp trực tiếp với SDRAM được tích hợp trên Board DE2. Các tín hiệu điều khiển đọc ghi được nối với ngõ ra của module “Core_controller” để nhận tín hiệu điều khiển của module này. Dữ liệu đầu vào của module này chính là dữ liệu ra của module “Core_controller”. Dữ liệu ra được đưa tới module FIR qua chân tín hiệu vào f_in. Đường dữ liệu được được kết nối với SDRAM được khai báo theo kiểu “inout” có nghĩa là vừa có thể truyền và nhận tín hiệu từ SDRAM. Đây là một module được tham khảo trong thư viện của nhà sản xuất, ở đây ta chỉ khai báo thêm một số phần kết nối với những module khác để phù hợp với yêu cầu đặt ra của bài toán.

Hình 4.5: Module SDRAM

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống nâng cao chất lượng tiếng nói sử dụng công nghệ FPGA (Trang 47 - 51)

Tải bản đầy đủ (PDF)

(55 trang)