Trong nội dung đồ án tốt nghiệp, nhóm chúng tôi sẽ thực hiện việc “thiết kế lõi IP điều khiển bộ nhớ SDRSDRAM” với các đặc điểm chính như sau: • Tương thích với bus AMBA AHB giao tiếp với chip vi điều khiển ARM. • Cấu hình trước các tham số định thời (tCL, tRC, tRCD, tRP, tMRD, tRRD, tRFC, tRAS, tWR) trước khi hoạt động. • Hỗ trợ hầu hết các loại burst AHB (ngoại trừ WRAP16): SINGLE, INCR, WRAP4, INCR4, WRAP8, INCR8, and INCR16. • Nhận lệnh Load Mode Register (LMR) để lập trình lại bộ nhớ SDRAM trong thời gian đang vận hành. • Độ rộng bus địa chỉ (địa chỉ bank, địa chỉ hàng row và địa chỉ cột – column) và độ rộng bus dữ liệu DQ cấu hình được trước khi tổng hợp. • Có các FIFO hỗ trợ việc đọcghi địa chỉ và dữ liệu Nhằm mục đích làm rõ các nội dung liên quan đến đề tài như mục tiêu của đề tài, phạm vi đề tài, hướng phát triển, và những phần lý thuyết liên quan đến đề tài, cùng với sơ đồ khối của thiết kế, chương trình của lõi IP, đồ án của nhóm chúng tôi trình bày bao gồm 6 chương như sau: Chương 1: Giới thiệu về đề tài. Chương 2: Lý thuyết tổng quan. Chương 3: Thiết kế và phân tích các khối chức năng. Chương 4: Xác minh và tối ưu hóa thiết kế. Chương 5: Tổng hợp phân tích và thiết kế vật lý. Chương 6: Kết luận và hướng phát triển đề tài. Xuất phát từ nhu cầu thực tế cần thiết phải xây dựng lõi IP điều khiển bộ nhớ SDRAM có thể cấu hình các thông số trước và điều khiển các hoạt động của SDRAM, nhóm chúng tôi đã tiến hành tìm hiểu các những lý thuyết liên quan tới đề tài cũng như nghiên cứu Datasheet chip SDRSDRAM 512Mb của hãng Micron, thảo luận và thống nhất phương án thiết kế cuối cùng. Tiếp theo đó, nhóm chúng tôi đã thiết kế sơ đồ khối tổng quát và sơ đồ khối chi tiết của lõi IP, xây dựng máy trạng thái, viết chương trình Verilog HDL mô tả toàn bộ thiết kế. Bước cuối cùng, nhóm chúng tôi kết nối các khối trong bộ lõi IP lại, viết testbench kiểm tra kết quả trên phần mềm Modelsim của hãng Altera và điều khiển SDRSDRAM thông qua việc sử dụng Model MT48LC64M8A2 (16Meg x 8 x 4 Banks) của hãng Micron, đối chiếu so sánh với yêu cầu đặt ra ban đầu và với các đề tài đã thực hiện trước đó, đánh giá hoạt động của lõi IP dựa trên kết quả thu được. Sau khi kiểm tra đúng chức năng, nhóm chúng tôi sử dụng các tool Design Compiler, Prime Time, IC compiler của hãng Synopsys để kiểm tra, ràng buộc chặt chẽ về timing, sau đó xuất ra file GDSII để có thể gửi đi tới nhà máy để sản xuất ra sản phẩm ứng dụng vào thực tế.
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan nội dung của đồ án này không phải là bản sao chép của bất
cứ đồ án hoặc công trình đã có từ trước Nếu vi phạm tôi xin chịu mọi hình thức kỷluật của Khoa
Sinh viên thực hiện
Trang 2
MỤC LỤC
LỜI CAM ĐOAN
PHÂN CÔNG NHIỆM VỤ
DANH MỤC TỪ VIẾT TẮT
LỜI MỞ ĐẦU
CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI 1
1.1 Giới thiệu chương 1
1.2 Đặt vấn đề 1
1.3 Mục tiêu của đề tài 1
1.4 Phạm vi của đề tài 2
1.5 Phương pháp luận 2
1.5.1. Mô hình đề xuất 3
1.6 Kết luận chương 4
CHƯƠNG 2 LÝ THUYẾT TỔNG QUAN 5
2.1 Giới thiệu chương 5
2.2 Các khái niệm liên quan đến bộ nhớ 5
2.2.1 Bộ nhớ RAM 5
2.2.1.1 Giới thiệu về RAM 5
2.2.1.2 Đặc trưng 6
2.2.1.3 Phân loại 6
2.2.1.3.1. RAM tĩnh 6
2.2.1.3.2. RAM động 7
2.2.1.4 Các loại DRAM 8
2.2.2 Chuẩn giao tiếp AHB Bus giao tiếp với vi điều khiển ARM 10
Trang 32.2.3.1 Giới thiệu cấu trúc ARM 10
2.2.3.2 Kiến trúc bus truyền dữ liệu cao cấp của vi điều khiển ARM 10
2.2.3.3 Bộ nhớ SDR-SDRAM 11
2.3.1 Hiểu về bộ nhớ SDR-SDRAM 11
2.3.2 Các lệnh điều khiển SDR-SDRAM 16
2.3.2.1 Lệnh INHIBIT 16
2.3.2.2 Lệnh NOP (NO OPERATION) 16
2.3.2.4 Lệnh ACTIVE 16
2.3.2.5 Lệnh PRECHARGE 16
2.3.2.6 Lệnh BURST TERMINATE 16
2.3.2.7 Lệnh AUTO REFRESH 16
2.3.2.8 Lệnh SELF REFRESH 17
2.3.2.9 Lệnh READ 17
2.3.2.10. Lệnh WRITE 17
2.3.3 Khởi động SDR-SDRAM 17
2.3.4 Định thời các lệnh cho SDR-SDRAM 19
2.4 Hoạt động của các cổng Logic sử dụng trong thiết kế 19
2.4.1 Flip-Flop 19
2.4.2 Cổng NOT (Cổng đảo) 20
2.4.3 Cổng AND (Cổng và) 20
2.4.4 Cổng OR (Cổng hoặc) 20
2.4.5 Cổng XOR 21
2.5. Kết luận chương 21
Tài liệu và link tham khảo: 21
Trang 4CHƯƠNG 3 THIẾT KẾ VÀ PHÂN TÍCH CÁC KHỐI CHỨC NĂNG 22
3.1 Giới thiệu chương 22
3.2 Luồng thiết kế ASIC trong thiết kế vi mạch 22
3.2.1 Giới thiệu luồng thiết kế ASIC 22
3.2.2 Phân tích luồng thiết ASIC 22
3.2.2.1 Đặc tả (Specification ) 22
3.2.2.2 Mã hóa RTL (RLT coding) 23
3.2.2.3 Testbench và mô phỏng 23
3.2.2.4 Tổng hợp 23
3.2.2.5 Phân tích định thời trước layout (Pre-layout Timing Analysis) 23
3.2.2.6 Sắp xếp và nối dây tự động (APR) 24
3.2.2.7 Back Annotation 24
3.2.2.8 Phân tích định thời sau layout (Post-layout Timing Analysis) 24
3.2.2.9 Kiểm tra Logic (Logic Verification) 24
3.3 Phân tích chi tiết về các khối trong thiết kế 25
3.3.1 Sơ đồ tín hiệu giao tiếp của khối SDR-SDRAM CONTROLLER 25
3.3.2 Khối AHB WRAPPER 27
3.3.3.1 Sơ đồ tín hiệu vào/ra 27
3.3.3.2 Write address FIFO 29
3.3.3.3 Burst control FIFO 30
3.3.3.4 Write data FIFO 32
3.3.3.5 Read data FIFO 33
3.3.3.6 Các tín hiệu đầu ra của AHB slave 34
3.3.3.7 Các tín hiệu đầu ra của AHB WRAPPER 36
Trang 53.3.4 Khối COMMAND 38
3.3.4.1 Sơ đồ tín hiệu giao tiếp của khối 38
3.3.4.2 Khối điều khiển khởi động SDRAM 40
3.3.4.3 Máy trạng thái điều khiển quá trình đọc/ghi 42
3.3.4.4 Các tín hiệu điều khiển chuyển trạng thái 46
3.4 Kết luận chương 53
CHƯƠNG 4: XÁC MINH VÀ TỐI ƯU HÓA THIẾT KẾ 54
4.1 Giới thiệu chương 54
4.2 Thiết kế khối AHB master 55
4.2.1 Các tín hiệu giao tiếp 55
4.2.2 Mạch tạo dữ liệu, địa chỉ tự động 57
4.2.3 Mạch điều khiển pha 59
4.2.4 Máy trạng thái và các tín hiệu điều khiển khác 61
4.3 Model MT48LC64M8A2 63
4.4 Testbench và kết quả 63
4.4.1 Quá trình khởi động 63
4.4.2 Kiểm tra quá trình đọc, ghi, refresh… 64
4.4.2.1 Kiểm tra đọc/ghi không có Auto Precharge 64
4.4.2.2 Kiểm tra đọc/ghi không có Auto Precharge 68
4.4.3 Kiểm tra lỗi 69
4.4.4 Kiểm tra các trường hợp khác 70
4.5 Kết luận chương 72
CHƯƠNG 5 TỔNG HỢP PHÂN TÍCH VÀ THIẾT KẾ VẬT LÝ 73
5.1 Giới thiệu chương 73
Trang 65.2 Tổng hợp thiết kế 73
5.3 Phân tích định thời 76
5.4 Thiết kế vật lý 78
5.5 Kết luận chương 82
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 83
6.1 Giới thiệu chương 83
6.2 Kết luận 83
6.3 Hướng phát triển đề tài 83
6.4 Kết luận chương 83
Trang 7PHÂN CÔNG NHIỆM VỤ
Đỗ Tiến Thành
- Nghiên cứu các đề tài liên quan
- Đề xuất mô hình tổng quan của lõi IP điều khiển bộ nhớ SDRAM
- Tìm hiểu về nội dung lý thuyết tổng quan về chuẩn giao tiếp AMBA AHB Bus
- Tìm hiểu về hoạt động của SDRAM thông qua Datasheet chip SDR-SDRAM củahãng Micron
- Thiết kế khối giao tiếp bộ nhớ SDR-SDRAM với bộ xử lí theo chuẩn giao tiếpAHB Bus
- Vẽ specification
- Viết chương trình dùng ngôn ngữ Verilog HDL
- Viết testbench chạy mô phỏng để kiểm tra và sửa lỗi trong thiết kế
- Thực hiện việc dùng các tool tổng hợp thiết kế, phân tích định thời và thiết kế vật
lý lõi IP
Cao Thanh Đàm
- Nghiên cứu các đề tài liên quan
- Đề xuất mô hình tổng quan của lõi IP điều khiển bộ nhớ SDRAM
- Tìm hiểu về nội dung lý thuyết tổng quan về tập lệnh của SDRAM
- Tìm hiểu về hoạt động của SDRAM thông qua Datasheet chip SDR-SDRAM củahãng Micron
- Thiết kế khối thực hiện lệnh điều khiển SDR-SDRAM
- Vẽ specification
- Viết chương trình dùng ngôn ngữ Verilog HDL
- Viết testbench chạy mô phỏng để kiểm tra và sửa lỗi trong thiết kế
- Thực hiện việc xác minh và tối ưu hóa thiết kế
- Layout thiết kế
Trang 8DANH MỤC TỪ VIẾT TẮT SDR Single Data Rate
RAM Ramdom Access Memory
SRAM Static RAM
DRAM Dynamic RAM
DDR2 SDRAM Double Data Rate 2 SDRAM
DDR3 SDRAM Double Data Rate III Synchronous Dynamic RAM
CMOS Complementary metal–oxide–semiconductor
EEPROM Electrically Erasable Programmable Read Only Memory
EPROM Erasable Programmable Read Only Memory
IC Integrated Circuit
PC Personal Computer
ROM Read Only Memory
ASIC Application Specific Integrated Circuit
Trang 9LỜI MỞ ĐẦU
Ngày nay, trong toàn bộ các hệ thống máy tính cũng như trong các chip vi xử líđều sử dụng RAM làm bộ nhớ chính RAM là bộ phận quan trọng quyết định đếntốc độ làm việc của hệ thống và làm tăng hiệu suất của hệ thống
SDR-SDRAM là bộ nhớ phổ biến trong các chip vi điều khiển hay chip SoC, nếukhông có phần cứng hỗ trợ điều khiển bộ nhớ này thì người sử dụng phải viết coderất nhiều thông qua các chân điều khiển và việc làm này cũng không đơn giản.Nếu có phần cứng hỗ trợ, như lõi IP điều khiển SDR-SDRAM tích hợp vào một
hệ thống SoC thì người sử dụng chỉ cần cấu hình theo ý muốn sau đó chỉ đọc, ghi
dữ liệu và lõi IP sẽ tự động khởi động SDRAM, phát các lệnh cần thiết của SDRAM để giám sát hoạt động đảm bảo SDR-SDRAM hoạt động bình thường.Trong nội dung đồ án tốt nghiệp, nhóm chúng tôi sẽ thực hiện việc “thiết kế lõi
SDR-IP điều khiển bộ nhớ SDR-SDRAM” với các đặc điểm chính như sau:
Tương thích với bus AMBA AHB giao tiếp với chip vi điều khiển ARM
Cấu hình trước các tham số định thời (tCL, tRC, tRCD, tRP, tMRD, tRRD,tRFC, tRAS, tWR) trước khi hoạt động
Hỗ trợ hầu hết các loại burst AHB (ngoại trừ WRAP16): SINGLE, INCR,WRAP4, INCR4, WRAP8, INCR8, and INCR16
Nhận lệnh Load Mode Register (LMR) để lập trình lại bộ nhớ SDRAM trongthời gian đang vận hành
Độ rộng bus địa chỉ (địa chỉ bank, địa chỉ hàng - row và địa chỉ cột – column)
và độ rộng bus dữ liệu DQ cấu hình được trước khi tổng hợp
Có các FIFO hỗ trợ việc đọc/ghi địa chỉ và dữ liệu
Nhằm mục đích làm rõ các nội dung liên quan đến đề tài như mục tiêu của đềtài, phạm vi đề tài, hướng phát triển, và những phần lý thuyết liên quan đến đề tài,cùng với sơ đồ khối của thiết kế, chương trình của lõi IP, đồ án của nhóm chúng tôitrình bày bao gồm 6 chương như sau:
Chương 1: Giới thiệu về đề tài
Chương 2: Lý thuyết tổng quan
Trang 10Chương 3: Thiết kế và phân tích các khối chức năng.
Chương 4: Xác minh và tối ưu hóa thiết kế
Chương 5: Tổng hợp phân tích và thiết kế vật lý
Chương 6: Kết luận và hướng phát triển đề tài
Xuất phát từ nhu cầu thực tế cần thiết phải xây dựng lõi IP điều khiển bộ nhớSDRAM có thể cấu hình các thông số trước và điều khiển các hoạt động củaSDRAM, nhóm chúng tôi đã tiến hành tìm hiểu các những lý thuyết liên quan tới đềtài cũng như nghiên cứu Datasheet chip SDR-SDRAM 512Mb của hãng Micron,thảo luận và thống nhất phương án thiết kế cuối cùng Tiếp theo đó, nhóm chúng tôi
đã thiết kế sơ đồ khối tổng quát và sơ đồ khối chi tiết của lõi IP, xây dựng máytrạng thái, viết chương trình Verilog HDL mô tả toàn bộ thiết kế Bước cuối cùng,nhóm chúng tôi kết nối các khối trong bộ lõi IP lại, viết testbench kiểm tra kết quảtrên phần mềm Modelsim của hãng Altera và điều khiển SDR-SDRAM thông quaviệc sử dụng Model MT48LC64M8A2 (16Meg x 8 x 4 Banks) của hãng Micron,đối chiếu so sánh với yêu cầu đặt ra ban đầu và với các đề tài đã thực hiện trước đó,đánh giá hoạt động của lõi IP dựa trên kết quả thu được Sau khi kiểm tra đúng chứcnăng, nhóm chúng tôi sử dụng các tool Design Compiler, Prime Time, IC compilercủa hãng Synopsys để kiểm tra, ràng buộc chặt chẽ về timing, sau đó xuất ra fileGDSII để có thể gửi đi tới nhà máy để sản xuất ra sản phẩm ứng dụng vào thực tế.Nhờ sự hướng dẫn tận tình của thầy Võ Tuấn Minh, cũng như sự nỗ lực khắcphục khó khăn phát sinh trong suốt quá trình thực hiện đồ án, nhóm chúng tôi đãhoàn thành mục tiêu “thiết kế lõi IP điều khiển bộ nhớ SDR-SDRAM” thực hiệnchức năng giám sát và điều khiển hoạt động của SDR-SDRAM
Trang 11CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI
1.1 Giới thiệu chương
Lõi IP điều khiển bộ nhớ SDR-SDRAM giúp người sử dụng tích hợp vào các hệthống SoC, để giám sát và điều khiển hoạt động truy xuất đọc/ghi SDR-SDRAM Đểthiết kế và thực hiện thành công lõi IP cần phải trải qua nhiểu giai đoạn từ việc hìnhthành ý tưởng, tìm hiểu lý thuyết liên quan đến việc xây dựng sơ đồ khối, viết codeverilog, viết testbench kiểm tra chức năng, đến việc tổng hợp, phân tích timing và chạylayout Phần đầu của chương này sẽ trình bày ý tưởng hình thành nên đề tài Những ýtưởng này sẽ làm nền tảng để thiết lập mục tiêu mà đề tài cần đạt được Tiếp theo đó,nội dung chương sẽ lần lượt đề cập đến phạm vi của đề tài và phương pháp nghiên cứu.Cuối cùng là phần kết luận chương
1.2 Đặt vấn đề
Ngày nay, trong toàn bộ các hệ thống máy tính cũng như trong các chip vi xử lí đều
sử dụng RAM làm bộ nhớ chính RAM là bộ phận quan trọng quyết định đến tốc độlàm việc của hệ thống và làm tăng hiệu suất của hệ thống
SDR-SDRAM là bộ nhớ phổ biến trong các chip vi điều khiển hay chip SoC, nếukhông có phần cứng hỗ trợ điều khiển bộ nhớ này thì người sử dụng phải viết code rấtnhiều thông qua các chân điều khiển và việc làm này cũng không đơn giản
Nếu có phần cứng hỗ trợ, như lõi IP điều khiển SDR-SDRAM tích hợp vào một hệthống SoC thì người sử dụng chỉ cần cấu hình theo ý muốn sau đó chỉ đọc, ghi dữ liệu
và lõi IP sẽ tự động khởi động SDRAM, phát các lệnh cần thiết của SDR-SDRAM đểgiám sát hoạt động đảm bảo SDR-SDRAM hoạt động bình thường
1.3 Mục tiêu của đề tài
Từ ý tưởng ban đầu, dựa vào những kiến thức đã được học, nhóm chúng tôi tiếnhành tìm hiểu những lý thuyết liên quan và sau đó bắt tay vào thiết kế và thực hiệntừng công đoạn
Trang 12Mục tiêu của đề tài là thiết kế lõi IP, thực hiện đúng chức năng giám sát và điềukhiển bộ nhớ SDR-SDRAM Bên cạnh đó, thực hiện việc tổng hợp, kiểm tra, phân tíchđịnh thời, sắp xếp và nối dây tự động để đưa ra bản layout cuối cùng, có thể đưa đếnnhà máy sản xuất ra sản phẩm thực tế Tối ưu hóa về diện tích, timing cũng như côngsuất của thiết kế Lõi IP hoạt động với tần số xung clock hệ thống là 100 Mhz, quátrình tổng hợp dùng thư viện công nghệ 90 nm.
1.4 Phạm vi của đề tài
Trong nội dung đồ án tốt nghiệp, nhóm chúng tôi sẽ lần lượt thực hiện việc thiết kếlõi IP điều khiển bộ nhớ SDR-SDRAM, từ công đoạn phân tích, đưa ra ý tưởng, đếnviệc xây dựng sơ đồ khối, viết code, viết testbench, tổng hợp và phân tích trên các tool
DC, PT và cuối cùng là chạy layout bằng tool ICC
1.5 Phương pháp luận
Quá trình thực hiện đồ án tốt nghiệp của nhóm chúng tôi trải qua nhiều giai đoạnkhác nhau, ứng với mỗi giai đoạn cần đưa ra một phương pháp nghiên cứu phù hợp đểcông việc được giải quyết nhanh và hiệu quả
- Trong giai đoạn đầu của đồ án, nhóm tìm hiểu những đề tài có liên quan, đưa ranhững ý tưởng ban đầu
- Trong giai đoạn tiếp theo, nhóm tiến hành tìm hiểu những nội dung lý thuyếtliên quan Việc tìm hiểu các đề tài liên quan đến nội dung đồ án là khá quan trọng vì nógiúp chúng tôi bước đầu xây dựng được sơ đồ khối tổng quát và lựa chọn được giảipháp thiết kế phù hợp với đề tài
- Sau khi xây dựng thành công sơ đồ khối tổng quát, chúng tôi lần lượt đi vàothiết kế từng khối trong sơ đồ
- Để đánh giá hoạt động của lõi IP, nhóm chúng tôi nhóm chúng tôi kết nối cáckhối trong bộ điều khiển lại, viết testbench kiểm tra kết quả trên phần mềm Modelsimcủa hãng Altera và điều khiển SDR-SDRAM thông qua việc sử dụng ModelMT48LC64M8A2 (16Meg x 8 x 4 Banks) của hãng Micron, đối chiếu so sánh với yêu
Trang 13cầu đặt ra ban đầu, đánh giá hoạt động của lõi IP dựa trên kết quả thu được Sau khikiểm tra đúng chức năng, nhóm chúng tôi sử dụng các tool Design Compiler, PrimeTime, IC compiler của hãng Synopsys để kiểm tra, ràng buộc chặt chẽ về timing, sau
đó xuất ra file GDSII để có thể gửi đi tới nhà máy để sản xuất ra sản phẩm ứng dụngvào thực tế
1.5.1 Mô hình đề xuất
AHB WRAPPER
Write address FIFO
Write burst control FIFO
Write data FIFO
Read data FIFO
SDRC CORE CONTROLLER
INITIALIZATION
AUTO REFRESH
COMMAND CONTROLLER AHB Slave
Interface
Signals
SDRAM
SDR-SDR-SDRAM CONTROLLER
Hình 1.1 Mô hình đề xuất
Cấu trúc cơ bản của lõi IP điều khiển SDR-SDRAM gồm 2 khối chức năng chính:
- AHB WRAPPER: Khối xử lý các giao tiếp với AHB Bus Khối này chứa 4FIFO phục vụ lưu địa chỉ và lưu dữ liệu cho quá trình ghi/đọc dữ liệu từ SDR-SDRAM:
o Write address FIFO: có độ sâu là 16 tầng (stage), để lưu địa chỉ ghi vàoSDR-SDRAM
o Write burt control FIFO: có độ sâu 16 tầng, để lưu thông tin về burstgồm: burst type (3 bit), first beat (1 bit), last beat (1 bit)
Trang 14o Write data FIFO: có độ sâu 16 tầng, để lưu dữ liệu ghi vào SDRAM.
o Read data FIFO: có độ sâu 16 tầng, để lưu dữ liệu đọc ra từ SDRAM khi mà AHB Master đang bận
- SDRC CORE CONTROLLER: Khối điều khiển giao tiếp trực tiếp với SDR-SDRAM Khối này nhận các tín hiệu từ khối AHB WRAPPER, bên trong khối này baogồm 3 khối nhỏ:
SDR-o INITIALZATION: thực hiện việc khởi động SDR-SDRAM
o AUTO REFRESH: thực hiện việc làm tươi SDR-SDRAM theo chu kỳ
o COMMAND CONTROLLER: Máy trạng thái tạo ra các lệnh điều khiểntruy xuất đọc/ghi SDR-SDRAM
1.6 Kết luận chương
Từ ý tưởng thiết kế ban đầu đến khi hoàn thành thiết kế là một quá trình dài baogồm nhiều giai đoạn khác nhau, trong mỗi giai đoạn sẽ yêu cầu những phương phápnghiên cứu riêng Nội dung chương này mang tính định hướng, làm nền tảng để cácchương sau đi sâu vào nghiên cứu các vấn đề cụ thể liên quan đến đề tài
Trang 15CHƯƠNG 2 LÝ THUYẾT TỔNG QUAN
2.1 Giới thiệu chương
Từ sơ đồ khối tổng quan được đề xuất, nhóm chúng tôi lần lượt tìm hiểu nhữngnội dung lý thuyết liên quan
- Tìm hiểu về bộ nhớ RAM, cách phân loại và phân biệt giữa các loại RAM
- Tìm hiểu chuẩn giao tiếp AHB Bus giao tiếp với chip vi điều khiển ARM
- Tìm hiểu về cấu trúc bên trong của SDR-SDRAM và tập lệnh hoạt động củaSDR-SDRAM dựa vào Datasheet của hãng Micron
- Tìm hiểu hoạt động các cồng logic sử dụng trong thiết kế
Việc tìm hiểu những lý thuyết này rất quan trọng vì phải hiểu rõ cấu trúc cũngnhư cách thức hoạt động của bộ nhớ SDR-SDRAM, từ đó mới có thể thiết kế bộđiều khiển cho phù hợp với hoạt động của SDR-SDRAM
2.2 Các khái niệm liên quan đến bộ nhớ
2.2.1 Bộ nhớ RAM
2.2.1.1 Giới thiệu về RAM
RAM (viết tắt từ Random Access Memory) là một loại bộ nhớ chính của máy
tính RAM được gọi là bộ nhớ truy xuất ngẫu nhiên vì nó có đặc tính: thời gian thựchiện thao tác đọc hoặc ghi đối với mỗi ô nhớ là như nhau, cho dù đang ở bất kỳ vịtrí nào trong bộ nhớ Mỗi ô nhớ của RAM đều có một địa chỉ Thông thường, mỗi ônhớ là một byte (8 bit); tuy nhiên hệ thống lại có thể đọc ra hay ghi vào nhiều byte(2, 4, 8 byte)
Bởi vì các chip RAM có thể đọc hay ghi dữ liệu nên thuật ngữ RAM cũng đượchiểu như là một bộ nhớ đọc-ghi (read/write memory), trái ngược với bộ nhớ chỉ đọc
ROM (read-only memory).
RAM thông thường được sử dụng cho bộ nhớ chính (main memory) trong máytính để lưu trữ các thông tin thay đổi, và các thông tin được sử dụng hiện hành.Cũng có những thiết bị sử dụng một vài loại RAM như là một thiết bị lưu trữ thứcấp (secondary storage) Thông tin lưu trên RAM chỉ là tạm thời, chúng sẽ mất đikhi mất nguồn điện cung cấp
Trang 16Hình 2.1 Một số loại RAM: 1-DIP, 2-SIPP, 3- SIMM 30 chân, 4-SIMM 72 chân,
5-DIMM (168 chân), 6-DDR DIMM (184-chân) [1]
2.2.1.2 Đặc trưng
Bộ nhớ RAM có 4 đặc trưng sau:
- Dung lượng bộ nhớ: tổng số byte của bộ nhớ (nếu tính theo byte) hoặc là tổng
số bit trong bộ nhớ nếu tính theo bit
- Tổ chức bộ nhớ: số ô nhớ và số bit cho mỗi ô nhớ
- Thời gian thâm nhập: thời gian từ lúc đưa ra địa chỉ của ô nhớ đến lúc đọc đượcnội dung của ô nhớ đó
- Chu kỳ bộ nhớ: thời gian giữa hai lần liên tiếp thâm nhập bộ nhớ
2.2.1.3 Phân loại
Tùy theo công nghệ chế tạo, người ta phân biệt thành 2 loại: SRAM (Static
RAM): RAM tĩnh và DRAM (Dynamic RAM): RAM động
2.2.1.3.1 RAM tĩnh
RAM tĩnh là một dạng bộ nhớ bán dẫn sử sụng mạch chốt 2 trạng thái bền
(bistable latching circuit) để lưu trữ mỗi bit.
Trang 17Hình 2.2 6 transistor trong một cel ô nhớ của RAM tĩnh [1]
SRAM là bộ nhớ nhanh, việc đọc không làm hủy nội dung của ô nhớ và thời gianthâm nhập bằng chu kỳ của bộ nhớ Các đặc tính trên khiến SRAM đắt hơn nhiều so
với DRAM và nó chủ yếu được dùng làm bộ nhớ đệm (cache) trong CPU.
2.2.1.3.2 RAM động
Hình 2.3 Transistor và tụ điện trong một cel ô nhớ của RAM động [1]
RAM động dùng kỹ thuật MOS Mỗi bit nhớ gồm một transistor và một tụ điện.Việc ghi nhớ dữ liệu dựa vào việc duy trì điện tích nạp vào tụ điện và như vậy việcđọc một bit nhớ làm nội dung bit này bị hủy Do vậy sau mỗi lần đọc một ô nhớ, bộphận điều khiển bộ nhớ phải viết lại nội dung ô nhớ đó
Việc lưu giữ thông tin trong bit nhớ chỉ là tạm thời vì tụ điện sẽ phóng hết điệntích đã nạp và như vậy phải làm tươi bộ nhớ sau khoảng thời gian 2μs Việc làms Việc làmtươi được thực hiện với tất cả các ô nhớ trong bộ nhớ Công việc này được thựchiện tự động bởi một vi mạch bộ nhớ
Trang 182.2.1.4 Các loại DRAM
SDRAM (Viết tắt từ Synchronous Dynamic RAM) được gọi là DRAM đồng bộ.
SDRAM gồm 4 phân loại: SDR, DDR, DDR2 và DDR3
o SDR SDRAM (Single Data Rate SDRAM), thường được gọi tắt là
"SDR" Có 168 chân Được dùng trong các máy vi tính cũ, bus speed chạycùng vận tốc với clock speed của memory chip
o DDR SDRAM (Double Data Rate SDRAM), thường được gọi tắt là
"DDR" Có 184 chân DDR SDRAM là cải tiến của bộ nhớ SDR với tốc độtruyền tải gấp đôi SDR nhờ vào việc truyền tải hai lần trong một chu kỳ bộnhớ Đã được thay thế bởi DDR2
Hình 2.4 Hoạt động của SDR và DDR SDRAM [1]
o DDR2 SDRAM (Double Data Rate 2 SDRAM), Thường được gọi tắt
là "DDR2" Là thế hệ thứ hai của DDR với 240 chân, lợi thế lớn nhất của nó
so với DDR là có bus speed cao gấp đôi clock speed
Trang 20o DDR3 SDRAM (Double Data Rate III Synchronous Dynamic RAM):
có tốc độ bus 800/1066/1333/1600 Mhz, số bit dữ liệu là 64, điện thế là 1.5v,tổng số pin là 240
2.2.2 Chuẩn giao tiếp AHB Bus giao tiếp với vi điều khiển ARM
2.2.3.1 Giới thiệu cấu trúc ARM
Cấu trúc ARM (viết tắt từ Advanced RISC Machine) là một loại cấu trúc vi
xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng
2.2.3.2 Kiến trúc bus truyền dữ liệu cao cấp của vi điều khiển ARM
ARM giao tiếp với các khối ngoại vi bởi hệ thống bus truyền dữ liệu cao cấp
AMBA (Advanced Microcontroller Bus Architecture) Đặc điểm của AMBA là
chuẩn truyền thông trên chip dành cho thiết kế các vi điều khiển 16 và 32 bit vớihiệu suất cao, các bộ xử lý tín hiệu và các thiết bị ngoại vi phức tạp Đặc tính kỹthuật AMBA: Bus băng thông rộng, tốc độ cao, Bus ngoại vi có công suất thấp, cấutrúc đơn giản
Kiến trúc AMBA điển hình:
Hình 2.6 Vi điều khiển dựa trên kiến trúc AMBA điển hình [2]
Trong đó:
o Bus hệ thống hiệu suất cao (AHB - Advanced High Performace Bus): Bus
này đảm bảo tốc độ dữ liệu giữa hệ thống với các giao tiếp bus bên ngoài Bộ
xử lý trung tâm (CPU), các bus truyền chính khác (như bộ điều khiển truy
Trang 21cập bộ nhớ trực tiếp DMA), bộ nhớ trong cũng được kết nối với bus truyềntốc độ cao này AHB được kết nối với APB bởi cầu nối.
o Bus truyền dữ liệu ngoại vi tối ưu (APB - Advanced Peripheral Bus): bustruyền ngoại vi này có công suất thấp, tốc độ thấp và đơn giản
2.2.3.3 Bộ nhớ SDR-SDRAM
2.3.1 Hiểu về bộ nhớ SDR-SDRAM
SDR-SDRAM (viết tắt của từ Single Data Rate Synchronous Dynamic Random
Access Memory): bộ nhớ động truy cập ngẫu nhiên đồng bộ đơn tốc độ.
Hình 2.7 Các chip SDR-SDRAM trên 1 thanh SDRAM của PC [5]
Khi xem Datasheet hay 1 mô tả về SDR-SDRAM, dung lượng bộ nhớ thường
được biểu diễn kiểu: 32 Meg x 4 x 4 banks theo thứ tự từ trái qua phải là: số lượng
ô nhớ trong 1 bank, số bit trong 1 ô nhớ, số bank Như ví dụ trên thì SDR-SDRAMnày có 4 bank, mỗi bank có 32Mega ô nhớ, mỗi ô nhớ có 4 bit Vậy dung lượng của
bộ nhớ này là 32M x 4bit x 4bank = 512 Mbit
Vị trí của 1 ô nhớ của SDR-SDRAM được xác định bởi 3 địa chỉ là: địa chỉ bank(bank address), địa chỉ hàng (row address), địa chỉ cột (column address), và đượcbiểu diễn như sau:
Trang 22Hình 2.8 Bộ nhớ có dung lượng 32 Meg x 4 x 4 banks (512 Mbit) [5]
Cấu trúc bên trong của 1 chip SDR-SDRAM: ngoài các mảng ô nhớ thì còn cócác mạch số thực hiện giải mã lệnh, giải mã địa chỉ và thực thi các chức năng khác
Hình 2.9 Cấu trúc bên trong của 1 chip SDR-SDRAM [5]
Các tín hiệu giao tiếp của chip SDR-SDRAM:
CLK IN Clock hệ thống, hoạt động theo cạnh lên
CKE IN Clock Enable: cho phép clock hoạt động
CS# IN Chip Select: chọn chip, tích cực mức thấp Khi ở mức cao, bộ giải mã sẽ bỏ qua các tín hiệu điều khiển khác.
Trang 23DQM IN Data Mask: khi ở mức cao, tín hiệu này cấm dữ liệu đọc/ghi.RAS#, CAS#,
Tổ hợp 3 tín hiệu này dùng để định nghĩa lệnh điều khiển SDRAM
A0 – A12 IN Bus địa chỉ: Đối với lệnh ACTIVE, nó là địa chỉ hàng,còn đối với lệnh READ/WRITE thì nó là địa chỉ cột
Riêng A10 dùng để chọn chức năng Auto Recharge
DQ IN/OUT Bus dữ liệu, độ rộng là 4/8/16 bit tùy vào loại SDRAM.
Bảng 2.1 Các tín hiệu giao tiếp của chip SDR-SDRAM
Thanh ghi cấu hình hoạt động của SDR-SDRAM (MODE REGISTER):trước khi truy xuất (đọc/ghi) SDRAM thì thanh ghi này phải được cấu hình các giátrị phù hợp thông qua lệnh LOAD (SET) MODE REGISTER Thanh ghi này có cấutrúc như hình 2.18 Trong đó:
o WB (Write Burst Mode): 1 bit chọn kiểu burst hay single Nếu chọn kiểuburst thì phải quan tâm đến các bit BT và Burst Length
o BT (Burst Type): 1 bit chọn chế độ burst là tuần tự (sequential) hay xen kẽ(interleaved)
Trang 24Hình 2.10 Thanh ghi cấu hình hoạt động của SDR-SDRAM [5]
o Burst Length: 3 bit chọn độ dài burst tối đa cho một lần truy xuất (đọc/ghi)SDRAM Tùy theo kiểu burst đã chọn mà thứ tự địa chỉ truy xuất sẽ khácnhau như bảng sau 2.2
o CAS Latency (CL): Độ trễ của dữ liệu đọc tính từ khi SDRAM nhận lệnhđọc đến khi dữ liệu được trả trên bus dữ liệu DQ Chỉ có 2 giá trị được phép
sử dụng là 2 hoặc 3, tương ứng sau 2 hoặc 3 xung clock CLK SDRAM sẽtrả dữ liệu như hình 2.11
o Op mode: Hai bit chỉ chế độ xử lí của SDRAM
Trang 25Bảng 2.2 Thứ tự truy xuất địa chỉ của SDR-SDRAM [5]
Hình 2.11 Minh họa đối với CL = 2 và CL = 3 [5]
Trang 26Mã lệnh điều khiển SDRAM là tổ hợp giá trị của 3 tín hiệu RAS#, CAS#, WE#.các lệnh điều khiển SDR-SDRAM được mô tả trong hình 2.20 Trong đó:
o Cột ngoài bên trái là tên lệnh, các cột còn lại là giá trị tương ứng củatín hiệu mà lệnh đó yêu cầu Đối với vị trí giá trị “X” thì không không quantâm tới
o Cột Address: bao gồm 2 nhóm địa chỉ là bank và bus địa chỉ ADDR
o Địa chỉ A10 ở mức cao thì đây là lệnh sử dụng đặc điểm Precharge (Tự động đóng hàng) và ngược lại
Auto-o Nếu CKE ở mức caAuto-o thì là lệnh AutAuto-o-Refresh, còn nếu CKE ở mưcthấp thì lệnh Self-Refresh
Hình 2.12 Các lệnh điều khiển SDR-SDRAM [5]
2.3.2 Các lệnh điều khiển SDR-SDRAM
2.3.2.1 Lệnh INHIBIT
Khi CS# ở mức cao Lệnh này ngăn không cho SDRAM thực hiện bất cứ lệnhnào khác dù có CLK và CLKE
2.3.2.2 Lệnh NOP (NO OPERATION)
Khi CS# ở mức thấp, lệnh này phát trong khoảng thời gian chờ (wait) hoặc rảnh(idle) để tránh SDRAM nhận nhầm lệnh không mong muốn
2.3.2.3 Lệnh LOAD MODE REGISTER
Lệnh nạp giá trị vào thanh ghi cấu hình của SDRAM thông qua bus địa chỉ Tùyvào datasheet của mỗi SDRAM mà gán vị trí bit thích hợp vào bus địa chỉ
2.3.2.4 Lệnh ACTIVE
Trang 27Lệnh để mở (tích cực) một hàng trong một bank trước khi thực hiện ghi/đọc bất
Trang 28Hình 2.13 Khởi động SDR-SDRAM [5]
Trang 292.3.4 Định thời các lệnh cho SDR-SDRAM
Tất cả các lệnh của SDR-SDRAM đều yêu cầu một khoảng thời gian để xử lýtrước khi phát lệnh khác Thông số về timing được mô tả chi tiết trong bảng sau dựavào datasheet của SDR-SDRAM:
Bảng 2.3 Thông số về timing của SDR-SDRAM [5]
2.4 Hoạt động của các cổng Logic sử dụng trong thiết kế
2.4.1 Flip-Flop
Flip-Flop (viết tắt là FF) là mạch dao động được xây dựng trên cơ sở các cổngLogic và hoạt động theo1 bảng trạng thái cho trước Có nhiều loại FF khác nhau,nhưng trong thiết kế số chủ yếu sử dụng D_Flip- Flop để thiết kế các thanh ghi, cácthành phần của bộ nhớ…
Trang 30Kí hiệu và bảng trạng thái của DFF:
Hình 2.14 (a) Kí hiệu đầy đủ
(b) Kí hiệu đơn giản, thường dùng trong vẽ spec (c) Bảng trạng thái của DFF [6]
Trong đó: D n là trạng thái của ngõ DATA D ở xung clock clk thứ n
Cổng AND là cổng Logic thực hiện phép toán nhân các tín hiệu vào với nhau
Kí hiệu và bảng trạng thái của cổng AND có 2 ngõ vào (AND2):
Hình 2.16 Kí hiệu và bảng trạng thái cổng AND2 [6]
2.4.4 Cổng OR (Cổng hoặc)
Cổng OR là cổng Logic thực hiện phép toán cộng các ngõ vào với nhau
Kí hiệu và bảng trạng thái cổng OR có 2 ngõ vào (OR2):
Trang 31Hình 2.17 Kí hiệu và bảng trạng thái cổng OR2 [6]
sở để chúng tôi xây dựng sơ đồ của lõi IP, các tín hiệu giao tiếp với AHB, cũng nhưviết code và testbench để kiểm tra kết quả
Tài liệu và link tham khảo:
Trang 32CHƯƠNG 3 THIẾT KẾ VÀ PHÂN TÍCH CÁC KHỐI CHỨC NĂNG
3.1 Giới thiệu chương
Dựa vào những nội dung lý thuyết đã tìm hiểu ở chương 2, trong chương này sẽ
trình bày phần thiết kế và phân tích các khối chức năng trong mạch Nhóm chúng
tôi sẽ trình bày về:
- Luồng thiết kế ASIC trong thiết kế vi mạch
- Sơ đồ khối tổng quan và các tín hiệu giao tiếp của thiết kế
- Sơ đồ chi tiết các khối chức năng trong thiết kế
Trong mỗi khối chức năng, nhóm chúng tôi sẽ trình bày về chức năng của khối
đó, sơ đồ tín hiệu vào/ra, bảng mô tả ý nghĩa các tín hiệu, máy trạng thái của khối
đó (nếu có) và ý nghĩa các trạng thái đó
3.2 Luồng thiết kế ASIC trong thiết kế vi mạch
Để có thể bắt tay vào thiết kế, đầu tiên phải hiểu và nắm được luồng thiết kếASIC trong thiết kế vi mạch
3.2.1 Giới thiệu luồng thiết kế ASIC
Thiết kế ASIC dựa vào một luồng thiết kế sử dụng ngôn ngữ mô tả phần cứngVerilog HDL và VHDL Trong luồng này, thiết kế mạch logic dùng Verilog hoặcVHDL Sau đó mô phỏng (simulate) để kiểm tra chức năng Tiếp theo là tổng hợp(synthesis) dùng cổng logic trong thư viện thiết kế, dùng các công cụ để ràng buộc
và kiểm tra timing, công suất, diện tích của thiết kế Bước tiếp theo là APR (AutoPlace Route): sắp xếp các khối và nối dây giữa chúng Bước cuối cùng là làm mẫuthử chip trên silicon hay còn gọi là tapeout
3.2.2 Phân tích luồng thiết ASIC
Sơ đồ luồng thiết kế ASIC được thể hiện trong hình 3.1 bên dưới
3.2.2.1 Đặc tả (Specification )
Đây là bước đầu và quan trọng nhất của luồng thiết kế Trong bước này, sẽ địnhnghĩa đặc tính và chức năng của 1 chip, lên kế hoạch thực hiện chip (thời gian thựchiện, chi phí, diện tích ) Phân tích về timing của thiết kế, tiêu chuẩn về tốc độ,công suất…từ đó phác thảo kiến trúc cơ bản của chip
Trang 33Hình 3.1 Luồng thiết kế ASIC
Có thể dùng các bộ mô phỏng: Modelsim của Mentor Graphic’s, VCS của Synopsys
để chạy testbench và quan sát dạng sóng
3.2.2.4 Tổng hợp
Mã RTL được biến đổi thành cổng logic dựa vào thư viện công nghệ (chứanhững cell chuẩn) và tập tin giới hạn (Constraints file): chứa thông tin về định thờigiúp cho việc tối ưu mạch Có 2 công cụ để tổng hợp là: Design Compiler củaSynopsys và Ambit của Cadence
3.2.2.5 Phân tích định thời trước layout (Pre-layout Timing Analysis)
Có thể sử dụng công cụ Prime Time của Synopsys để thực hiện Thưc hiện phân
Trang 343.2.2.6 Sắp xếp và nối dây tự động (APR)
Có thể dùng công cụ IC Compiler (ICC) của Synopsys để thực hiện Các cổnglogic đã tổng hợp sẽ được sắp xếp và nối dây tự động Bước này cũng ràng buộcchặt chẽ về tổng hợp cây clock (clock tree) để tránh bị vi phạm về clock
3.2.2.7 Back Annotation
Kiểm tra ảnh hưởng các tụ kí sinh giữa các đường dây nối trong thiết kế
3.2.2.8 Phân tích định thời sau layout (Post-layout Timing Analysis)
Là bước quan trọng trong luồng thiết kế ASIC, cho phép kiểm tra vi phạm vềthời gian giữ/xác lập (hold/setup) thực tế Sau khi phân tích sau layout xong, thựchiện tổng hợp lại, chạy APR và Back Annotation lại
3.2.2.9 Kiểm tra Logic (Logic Verification)
Bước then chốt cuối cùng đảm bảo thiết kế đúng chức năng Thiết kế được môphỏng lại sử dụng testbench (bước 3) nhưng có thêm thông tin về định thời saulayout
Sau khi kiểm tra xong bước này, thiết kế được gửi đi đến nhà máy để làm mẫu thử(tapout) và sản xuất ra chip thực tế
Trang 353.3 Phân tích chi tiết về các khối trong thiết kế
3.3.1 Sơ đồ tín hiệu giao tiếp của khối SDR-SDRAM CONTROLLER
Các tín hiệu giao tiếp của khối như sau:
SDR-SDRAM CONTROLLER
hclk hreset hsel
cmd_ras_n cmd_cas_n
cmd_addr[ROW_WIDTH-1:0]
hready
hwdata[D-1:0]
cmd_we_n cmd_dqm[DQM_WIDTH-1:0]
ình 3.2 Tín hiệu giao tiếp khối SDR-SDRAM CONTROLLER
Ý nghĩa các tín hiệu giao tiếp này được mô tả trong bảng sau:
Tín hiệu giao tiếp với AHB bus
hclk In 1 Xung clock đồng bộ, hoạt động theo cạnh lên
Trang 36hready Out 1 Báo đã sẵn sàng cho việc đọc dữ liệu
Tín hiệu giao tiếp SDR-SDRAM
cmd_cs_n Out 1 Tín hiệu chọn chip, tích cực mức thấp
cmd_dqm Out WIDTHDQM_ Chọn byte dữ liệu đọc/ghi
WIDTH Địa chỉ bank cmd_addr Out WIDTHROW_ Bus địa chỉ có độ rộng bằng độ rộng địa chỉ hàng
Bảng 3.1 Các tín hiệu giao tiếp của khối SDR-SDRAM CONTROLLER
3.3.2 Khối AHB WRAPPER
3.3.3.1 Sơ đồ tín hiệu vào/ra
Các tín hiệu giao tiếp của khối AHB WRAPPER như hình dưới:
Trang 37AHB Wrapper
wr_write_req wr_read_req wr_addr
wr_wdata
wr_first _beat wr_burst_type
wr_read_burst_stop
hready hresp [1:0]
hrdata [D-1:0]
AHB Slave Interface signals
cmd_rdata_valid cmd_wdata_ff_read cmd_waddr_ff_read
cmd_rdata hclk hreset_n_n hsel hwrite htrans [1:0]
cmd_pre_rdata_valid
wr_last_beat cmd_bctrl_ff_read
Hình 3.4 Tín hiệu giao tiếp khối AHB WRAPPER
Ý nghĩa các tín hiệu này được mô tả trong bảng sau:
Trang 38hrdata Out D Tín hiệu giao tiếp AHB Slave
cmd_waddr_ff_read In 1 Tín hiệu cho phép đọc Write address FIFO cmd_bctrl_ff_read In 1 Tín hiệu cho phép đọc Burst control FIFOcmd_wdata_ff_read In 1 Tín hiệu cho phép đọc Write data FIFOcmd_pre_rdata_valid In 1 Tín hiệu báo dữ liệu hợp lệ 1 chu kì trướcđócmd_rdata_valid In 1 Tín hiệu báo dữ liệu hợp lệ
wr_burst_type Out 3 Burst Type của câu lệnh ghi
wr_first_beat Out 1 Báo beat bắt đầu trong đọc/ghi burst
wr_last_beat Out 1 Báo beat cuối cùng trong đọc/ghi burstwr_read_burst_stop Out 1 Ngắt beat trong ghi/đọc theo kiểu INCR
Bảng 3.2 Ý nghĩa các tín hiệu giao tiếp của khối AHB WRAPPER
3.3.3.2 Write address FIFO
Sơ đồ tín hiệu giao tiếp như hình 3.5, gồm các tín hiệu cho phép ghi/đọc FIFO,địa chỉ vào/ra, các tín hiệu báo FIFO đầy (full) / FIFO rỗng (empty)
Trang 39Write address FIFO có độ sâu 16 tầng, mỗi tầng có độ rộng 32 bit.
cmd_addr_ff_read &
(~addr_fifo _empty) addr_fifo _wr_en
addr_fifo _i
addr_fifo _o
addr_fifo _full addr_fifo _empty
read_en write_en
waddr_fifo haddr [ADDR_WIDTH - 1 : LSB_COL]
Hình 3.5 Tín hiệu giao tiếp Write address FIFO
Mạch tạo tín hiệu cho phép ghi addr_fifo_wr_en:
Hình 3.6 Mạch tạo tín hiệu cho phép ghi Write address FIFO
Sơ đồ mạch chi tiết bên trong Write address FIFO thể hiện ở hình 3.7 gồm: bộđếm tạo con trỏ ghi addr_fifo_wptr / con trỏ đọc addr_fifo_rptr, mạch tạo các tínhiệu báo FIFO full/empty, các bộ mux/Demux để chọn tín hiệu và 16 thanh ghi đểlưu địa chỉ Khi FIFO full thì không cho phép ghi thêm dữ liệu, khi FIFO empty thìkhông cho phép đọc đọc ra nữa
Trang 4015 DEMUX
1
0
15 MUX 1
stage0 stage1
stage15
addr_fifo _empty
addr_fifo _wr_en &
(~addr_fifo _full)
0 1
0
1
0 1
Hình 3.7 Sơ đồ chi tiết Write address FIFOHoạt động của FIFO: khi có tín hiệu cho phép ghi addr_fifo_wr_en và FIFO chưafull thì con trỏ ghi addr_fifo_wptr[4:0] sẽ tăng lên và địa chỉ addr_fifo_i được ghivào, khi có tín hiệu đọc addr_fifo_rd_en và FIFO chưa empty thì con trỏ đọcaddr_fifo_rptr[4:0] sẽ tăng và địa chỉ addr_fifo_o được đọc ra
3.3.3.3 Burst control FIFO
Sơ đồ tín hiệu giao tiếp như hình 3.8, FIFO có độ sâu 16 tầng, mỗi tầng có độrộng 5 bit
cmd_addr_ff_read bctrl_fifo _wr_en
{first _beat_i,last_beat_i, burst_type_i}
{first _beat_o,last_beat_o, burst_type_o}
read_en write_en
datai
datao empty full
clk resetn
hreset_n hclk
bctrl_fifo
bctrl_fifo _empty bctrl_fifo _full wdata_fifo _wr_en
Hình 3.8 Tín hiệu giao tiếp Burst control FIFO