Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010
562
THIẾT KẾ VÀ THỰC HIỆN SRAM IP CORE
TRÊN HỆ THỐNG NHÚNG FPGA
DESIGN AND IMPLEMENTATION SRAM IP CORE
ON EMBEDDED FPGA SYSTEM
SVTH: Nguyễn Tiến Chuẩn, Phan Tuấn Vĩ
Lớp 07ĐT2, 07ĐT1, Khoa Điện, Trường Cao đẳng Công Nghệ
GVHD: ThS. Nguyễn Thị Khánh Hồng
Khoa Điện, Trường Cao đẳng Công Nghệ
TÓM TT
Mục đích chính của đề tài này nghiên cứu việc lập trình cho FPGA dựa trên các ngôn
ngữ mô tả phần cứng (HDL), kiểm nghiệm kết quả dựa trên các công cmô phỏng (Simulation
Tools),và cuối cùng là cho thi hành trên Kit thực hành FPGA Spartan3 của hãng Xilinx,.Cụ thể ở đề
tài y dựng một bộ điều khiển SRAM (SRAM Controller) trên nền FPGA, thực thi việc giao tiếp
giữa SRAM với hệ thống Vi xử lý Microblaze.
ABSTRACT
The main purpose of this subject researchs the program for FPGA based on Hardware
Decription Language (HDL), uses the simulation tools for testing the results, and implement them
on FPGA Spartan 3 kit come from Xilinx company. Especially, the topic sucessfully designs the
SRAM controller based on FPGA, implements the interfacing SRAM with Microblaze system.
1. Đặt vấn đề
Một kiểu bộ nhớ thường được sử dụng đó RAM tĩnh không đồng bộ(SRAM).
Không giống như c thanh ghi, nơi bên trong dữ liệu được lấy mẫu lưu trữ tại một
sườn của tín hiệu đồng hồ (clock signal), việc truy cập dữ liệu từ SRAM không đồng bộ trở
nên phức tạp hơn. Một công đoạn đọc hoặc ghi yêu cầu: dữ liệu (data), địa chỉ (address) ,
các tín hiệu điều khiển (control signals) phải được đặc tmột cách cụ thể, c tín
hiệu này phải được ổn định trong những khoảng thời gian nhất định của thao tác đọc hoặc
viết dữ liệu. Chúng ta thường sdụng một bộ điều khiển bộ nhớ (memory controller) như
một bộ giao tiếp (interfacer), nơi các lệnh được lấy ra từ hệ thống chính đồng bộ (main
system synchronously) và sau đó phát ra các tín hiệu điều khiển với thời gian hợp lí để truy
cập SRAM. Bộ điều khiển bao bọc
lấy hệ thống chính từ các thời điểm
chi tiết làm cho việc truy cập bộ
nhớ xuất hiện giống như một thao
tác đồng bộ.
2. đồ khối các tín hiệu I/O
của SRAM IS61LV25616AL
Kit thực hành FPGA
Spartan3 của hãng Xilinx chứa
2 SRAM 256Kx16 .Mỗi SRAM có bus địa chỉ (ad) 18 bit, bus dữ liệu 2 hướng (dio) 16 bit,
Hình 1. Sơ đồ khối chức năng
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010
563
và 5 tín hiệu điều khiển.
Bus dữ liệu được chia thành 2 kiểu : byte cao (I/O 8-I/O 15), byte thấp (I/O 0-
I/O 7), mà có thể được truy cập cá nhân riêng biệt. Các tín hiệu điều khiển gồm :
ce (chip enable):kích hot hay không kích hot chip (SRAM)
we(write enable):kích hot hay không kích hot thao tác ghi d liu vào SRAM
oe(output enable):kích hot hay không kích hot thao tác xut d liu t SRAM
ub(upper byte enable):kích hot hay không kích hot chế độ làm vic vi byte
cao ca SRAM
lb(lower byte enable):kích hot hay không kích hot chế độ làm vic vi byte
thp ca SRAM
Tất cả các tín hiệu đều tích cực ở mức thấp (mức 0).
3. Thiết kế một bộ điều khiển bộ nhớ cơ bản (Basic Memory Controler)
3.1. Mô hình giao tiếp giữa hệ thống với SRAM
addr
data_f
data_s_r
VXL
MICROBLAZE Memory
Controller SRAM
data_s_ur
mem
R_W
ready
add
dio
we
oe
0
0
0
Hình 2.Mô hình giao tiếp gia h thng và SRAM thông qua b điu khin (SRAM Controler)
Bộ điều khiển bộ nhớ bản cung cấp một “vỏ bọc đồng bộ bên ngoài SRAM.
Khi hệ thống chính muốn truy cập vào bộ nhớ,nó sẽ đặt địa chỉ,hoặc địa chỉ và dữ liệu lên
trên các Bus tương ứng
kích hoạt lệnh. Tại
mỗi sườn lên của tín
hiệu đồng hồ,tất cả các
tín hiệu được lấy mẫu
bởi bộ điều khiển bộ
nhớ,và các công đoạn
yêu cầu được thực hiện
một cách phù hợp.
3.2. đồ khối đường
dẫn dữ liệu
Đường dẫn dữ
liệu (Data Path) của bộ
điều khiển SRAM bao
gồm một thanh ghi địa
chỉ hai thanh ghi dữ
Hình 3. Sơ đồ khối đường dẫn dữ liệu của bộ điều khiển SRAM
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010
564
liệu. rằng Bus dữ liệu (Data Bus) thực hiện với dữ liệu 2 hướng, nên việc sử dụng bộ
đệm 3 trạng thái (Tri-State Buffer) là cần thiết.
4. Xây dựng chương trình và kiểm tra mô phỏng
4.1. Xây dựng chương trình dựa trên lưu đồ thuật toán
Trong đề tài này,bản thiết kế bộ điều khiển SRAM được xây dựng theo lưu đồ thuật
toán như trong hình 4. Chúng ta thể khái quát các công đoạn đọc viết dữ liệu vào
SRAM như sau:
Công đoạn ghi (viết) d liu lên SRAM
Ngt kích hot tín hiu ti chân oe trong sut quá trình thc hin.
Đặt địa ch lên đường bus addr, và d liu lên bus dio.
Kích hot tín hiu ti chân we, tín hiu này phi thc hiện đồng b vi công
việc đặt địa ch và d liu lên các bus.
Đợi ít nht khong thi gian tpwe để xác nhn tín hiu we được gi mc
thp.
Ngt kích hot tín hiu we,d liu lúc y s được cht lên sram ti mc
chuyển sườn ca tín hiu we.
Tháo b d liu ra khi bus dio.
Công đoạn đọc d liu t SRAM.
Ngt kích hot tín hiu we trong quá trính thc hin.
Đặt địa ch lên đường bus addr,và kích hot tín hiu oe
Đợi ít nht khong thi gian TAA cho d liu t SRAM tr nên có giá tr.
Ngt kích hot tín hiu oe,d liệu đọc ra t bus dio.
Ready=1
Mem==1
R_W==1
reg_addr <-addr reg_addr <-addr
reg_data_f <- data_f
oe=0
oe= 0
reg_data_s=dio
we= 0
tri_buf=0
tri_buf=0
T F
Rd 1
Rd 2 Wr 2
Wr 1
Hình4. Lưu đồ thuật toán bộ điều khiển SRAM (SRAM Controler)
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010
565
Các khoảng thời gian TAA (address access time),và TPWE (we pulse width time)
thực tế được tra trong datasheet của SRAM IS61LV25616AL.
4.2. Kết quả chạy mô phỏng
Sử dụng phần mềm Model Sim V6.4 để chạy mô phỏng bộ điều khiển,dựa trên
chương trình testbench được viết bằng cách điều khiển từng công đoạn một tại các thời
điểm làm việc khác nhau của SRAM.
Hình 5. Kết quả chạy mô phỏng trên phần mềm ModelSim.
Ready=1
Mem==1
R_W==1
reg_addr <-addr reg_addr <-addr
reg_data_f <- data_f
oe=0 we= 0
tri_buf=0
T F
Rd 1 Wr 1
idle
Mem==1 Mem==1
R_W==1 R_W==1
reg_addr <-addr reg_addr <-addr
reg_addr <-addr
reg_data_f <- data_f reg_addr <-addr
reg_data_f <- data_f
T
TF
T
TF
F
F
Hình 6. Lưu đồ thuật toán phương án thiết kế tối ưu.
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010
566
5. Kết luận
Với bản thiết kế bộ điều khiển SRAM này,chúng em đã định hướng thiết kế theo
một giới hạn an toàn về thời gian truy cập và điều khiển so với các thông số chuẩn của nhà
sản xuất đưa ra. Điều này tuy đảm bảo cho b điều khiển hoạt động đúng theo yêu
cầu,nhưng mặt khác đã ảnh hưởng đến tính tối ưu của bản thiết kế nếu xét trên mặt sản
xuất công nghiệp. Để giải quyết nhược điểm y,chúng em xin đưa ra phương án thiết kế
thứ hai. Cụ thể sẽ loại bỏ trạng thái thứ hai (Rd2 Wr2 ) cả hai công đoạn đọc hoặc
viết ,đồng thời cho phép thực hiện công đoạn quay đầu không cần quay trở ngược về
lại trạng thái Idle ban đầu. Như vậy,ở bộ điều khiển y sẽ tiêu tốn một chu clock để
thực hiện một công đoạn bộ nhớ hai clock cho công đoạn quay đầu, ít hơn so với bản
thiết kế ban đầu.
TÀI LIỆU THAM KHẢO
[1] Xilinx Ltd (2006),Spartan-3 Starter Kit Board User Guide UG230.
[2] Integrated Silicon Solution (2006) Inc,Datasheet SRAM IS61LV25616AL.
[3] Bob Zeidman,”Introduction to CPLD and FPGA Design