Sơ ựồ khối của bộ chia tần số

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế vi xử lý 8 bit dựa trên công nghệ FPGA (Trang 64 - 66)

5.2.4 Register File register_f ile inst clk clk rst rst rf _rd_bnk[1..0] rf _rd_bnk[1..0] rf _rd_addr[4..0] rf _rd_addr[4..0] rf _we rf _we rf _wr_bnk[1..0] rf _wr_bnk[1..0] rf _wr_addr[4..0] rf _wr_addr[4..0] rf _wr_data[7..0] rf _wr_data[7..0] rf _rd_data[7..0] rf _rd_data[7..0]

Hình 5 - 6: Sơ ựồ khối của bộ nhớ chương trình

Thông thường khi thiết kế một hệ thống máy tắnh, một bộ nhớ RAM ựược dùng ựể lưu trữ chương trình cũng như lưu trữ dữ liệu. Do ựặc thù chung của hệ vi ựiều khiển là dùng cho những ứng dụng ựiều khiển nhỏ và vừa phải, một bộ nhớ

SRAM vừa phải ựược sử dụng, ở ựây ựược gọi là register file. Register file ựược mô tả như sau:

- clk: đầu vào xung nhịp clock ựồng bộ với xung nhịp hệ thống. - rf_we: đầu vào cho phép ghi dữ liệu vào register file.

- rst: 1 bit lối vào reset register file.

- rf_rd_bnk[1..0]: đầu vào lựa chọn bank trong register file ựể ựọc, Sở dĩ register file ựược chia ra làm nhiều bank khác nhau giống như cách tổ chức vùng nhớ RAM của một hệ máy tắnh lớn cho phép việc quản lý, phân chia bộ nhớ ựược dễ dàng cũng như dễ dàng trong việc thiết kế truy xuất dữ liệu.

- rf_rd_addr[4..0]: đầu vào 5 bits ựịa chỉ cho phép ựánh ựịa chỉ tối ựa 32 thanh ghi trong một bank của register file.

- Rf_wr_bnk[1..0]: 2 bắt dùng ựể lựa chọn bank cần ghi trong register file.

- Rf_wr_addr[4..0]: 5 bắt ựịa chỉ dung ựể chọn thanh ghi trong một bank cần ghi vào.

- Rf_wr_data[7..0]: 8 bit dữ liệu vào ựể ghi dữ liệu lên các thanh ghi ựịa chỉ.

Việc sử dụng register file trong các hệ vi ựiều khiển nhỏ thường rất hay ựược sử dụng vì với một hệ vi ựiều khiển nhỏ, thường không ựòi hỏi một bộ nhớ RAM lớn do ựó dùng register file ựể làm bộ nhớ RAM rất có lợi do:

- Thiết kế bộ nhớ sẽ ựơn giản ựi rất nhiều do không cần phải ựiều khiển bộ nhớ RAM ngoài.

- Việc truy cập bộ nhớ cũng ựơn giản hơn rất nhiều do toàn bộ dữ liệu ựược ựặt trong các thanh ghi do ựó tốc ựộ truy cập sẽ rất nhanh, thường việc truy cập có thể ựược hoàn thành trong vòng một chu kì xung nhịp ựồng hồ. Như vậy sẽ giảm ựược việc ựiều khiển trễ khi truy cập bộ nhớ ngoài cũng như không cần phải thiết kế bộ nhớ Cache như những thiết kế thông thường.

Như phần trên ựã nói, ta có thể hiểu register file chắnh là bộ nhớ RAM của vi ựiều khiển, phần này sẽ ựi sâu mô tả các thành phần bên trong của register file ựể có thể thực hiện lưu trữ dữ liệu.

Vùng nhớ: Module quan trọng nhất của register file chắnh là Module nhớ, chắnh là nơi chứa các dữ liệu khi thực hiện chương trình. Như phần trên ựã trình bày, ựộ lớn của module nhớ là 128 bytes (7 bits ựịa chỉ) ựồng nghĩa với việc bộ nhớ RAM của vi ựiều khiển có kắch thước là 128 bytes.

để tối ưu hóa, thiết kế trong luận văn này tác giả ựã dùng lõi IP Dual Port RAM của Altera ựể làm module nhớ cho register file. Sở dĩ ở ựây phải dùng Dual Port là do trong khi bộ nhớ chương trình chỉ dùng single Port là do Register file là bộ nhớ có thể ựọc và ghi ựược giống như bộ nhớ RAM của hệ máy tắnh.

oe rce rclk rrst wce wclk we wrst raddr[6..0] waddr[6..0] di[7..0] dout[7..0] 1 1 1 generic_dpram:rf0

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu, thiết kế vi xử lý 8 bit dựa trên công nghệ FPGA (Trang 64 - 66)

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

(102 trang)