Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
1,02 MB
Nội dung
ễ B nh Flashộ ớ Thi t k ROM b ng Verilog ế ế ằ ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ TRUYỀN THÔNG ế ế ệ ố ố ố • Giá thành rẻ • Nạp xóa phải lấy ra khỏi mạch • Mật độ tích hợp cao !"# • Giá thành cao • Nạp xóa ngay trong mạch • Mật độ tích hợp thấp !"# I. Bộ nhớ Flash - Bộ nhớ Flash được phát minh bởi Dr.Fujio Masuoka trong khi ông làm việc cho Toshiba khoảng năm 1980 - Bộ nhớ Flash là một loại bộ nhớ không khả biến có thể xóa và ghi lại bằng điện. FLASH MEMORY $ ế ế ệ ố ố ố I. Bộ nhớ Flash B. Đặc điểm công nghệ - NOR, NAND, DINOR, and AND là kiến trúc chính được phát triển cho bộ nhớ Flash - Hầu hết bộ nhớ Flash hiện nay sử dụng công nghệ NAND - Chip Flash NAND nhỏ gọn, bền và có khả năng thực hiện tác vụ đọc/ghi rất nhanh - Thiết bị nhớ sử dụng công nghệ NAND thường sẽ chứa nhiều chip nhớ A. Đặc điểm chức năng - Vẫn duy trì dữ liệu mà không cần tới nguồn ngoài cung cấp - Tích hợp mạch Ghi bằng cách cung cấp trường điện tích tới toàn bộ chip hoặc tới những phần xác định trước gọi là Block - Truy xuất nhanh hơn những bộ nhớ EEPROM truyền thống bời vì thay vì xóa từng byte mà nó xóa cả từng Block lớn hoặc cả Chip cùng một lúc rồi sau đó Ghi lại % ế ế ệ ố ố ố I. Bộ nhớ Flash C. Ứng dụng và phát triển hiện nay: - Bộ nhớ Flash NAND mới nhất đạt được với công nghệ bán dẫn là 15 nm dành cho smartphone và tablet do hãng Toshiba và Sandisk phát triển - Chip nhớ Flash 3D Vertical NAND dành cho SSD (ổ thể rắn) đầu tiên trên thế giới do Samsung phát triển (công nghệ 10 nm) - Ứng dụng: Được sử dụng trong laptop, điện thoại di động, máy ảnh kỹ thuật số, TV kỹ thuật số, viễn thông, lưu trữ dữ liệu không khả biến, set-top boxes, các vi điều khiển. & ế ế ệ ố ố ố II. So sánh các loại bộ nhớ ROM: Device Programming Mode Erase Mode Complexity and Cost Example Access Time EEPROM In-circuit Byte-by-byte In-circuit Byte-by-byte Intel 2864 8Kx8 nMOS FLASH In-circuit In-circuit Bulk or sector AT49LV1024 64Kx16 nMOS 70 ns ** EPROM Out-of-circuit Out-of-circuit Bulk, UV Light Intel 2732 4Kx8 nMOS 45 ns PROM Custom by user (OTP***) None TMS47C256 32Kx8 CMOS AT27BV400 256Kx16 or 512Kx8 150 ns ROM* Mask None * Requires high volume to offset NRE ** Programming time: 500 ms *** One-time programmable ' ế ế ệ ố ố ố Type Technology Read cycle Write cycle ROM ROM PROM EPROM EEPROM NMOS, CMOS Bipolar Bipolar NMOS, CMOS NMOS 10-200 ns < 100 ns < 100ns 25 – 200 ns 50 – 200 ns 4 weeks 4 weeks 10 – 50 us/byte 10 – 50 ms/byte 10 – 50 ms/byte Adapted from Wakerly JF. Digital Design – Principles and Practise, Upper Saddle River, NJ: Prentice – Hall, 2000 II. So sánh các loại bộ nhớ ROM: ( ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Example 1: Thiết kế bộ nhớ ROM - ROM (Read Only Memory) : Bộ nhớ chỉ đọc - Vì ROM là bộ nhớ chỉ đọc, không có tín hiệu clock, chân cho phép ghi ROM Byte 0 Byte 1 Byte 2 …………… )**+, ",*-, module ROM (address, data, read_en, ce); input [7:0] address; // Address input output [7:0] data; // Data output input read_en; // Read Enable input ce; // Chip Enable reg [7:0] mem [0:255]; assign data = (ce&&read_en)?mem[address]:8'b0; initial begin $readmemb("memory.list.txt", mem); end endmodule . ///// 0 ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Mô phỏng ROM vừa thiết kế . . ///// 1 ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Example 2: So sánh 2 số A, B 2 bit Cách 1: Viết hàm tối thiểu hóa A_lt_B =. .B0+.B1.B0 A_gt_B = A1. . A_eq_B = +A0.B0+A1.A0.B1.B0+A1 B1. 2 module Compare_2 (A, B, A_gt_B, A_lt_B, A_eq_B) input [1:0] A, B; output A_gt_B, A_lt_B, A_eq_B; assign A_lt_B = (~A[1])&B[1]|(~A[1])&(~A[1])&B[0]|(~A[0])&B[1]&B[0]; assign A_gt_B = A[1]&(~B[1])|A[0]&(~B[1])&(~B[0])|A[0]&A[1]&(~B[0]); assign A_eq_B =(~A[1])&(~A[0])&(~B[1])&(~B[0])|(~A[1])&A[0]&(~B[1])&B[0] |A[1]&A[0]&B[1]&B[0]|A[1]&(~A[0])&B[1]&(~B[0]); endmodule assign A_lt_B = (A<B); assign A_gt_B = (A>B); assign A_eq_B = (A==B); 3 ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Cách 2: Sử dụng PROM Row A A1A0 B B1B0 A>B A<B A=B 0 . . . . 1 . . . . 2 . $ . . . 3 . % . . 4 . . . . 5 . . . . 6 . $ . . . 7 . % . . 8 $ . . . . 9 $ . . . . 10 $ . $ . . . 11 $ . % . . 12 % . . . 13 % . . . 14 % $ . . . 15 % % . . . ế ế ệ ố ố ố [...]... 001 III Thiết kế ROM sử dụng verilog Mô phỏng: III Thiết kế ROM sử dụng verilog module ROM_ 16x4 (ROM_ data, ROM_ addr); output reg [3:0] ROM_ data; input [3:0] ROM_ addr; input word1; always @ (ROM_ addr) begin case (ROM_ addr) 0 : ROM_ data = 4'b001x; 1 : ROM_ data = 4'b010x; 2 : ROM_ data = 4'b010x; 3 : ROM_ data = 4'b010x; 4 : ROM_ data = 4'b100x; 5 : ROM_ data = 4'b001x; 6 : ROM_ data = 4'b010x; 7 : ROM_ data...III Thiết kế ROM sử dụng verilog Cách 2: Sử dụng EPROM module ROM_ 16x4 (ROM_ data, ROM_ addr, word1); output [3:0] ROM_ data; input [3:0] ROM_ addr; input word1; // word1 = ROM_ data[0] = don’t care reg [3:0] ROM [15:0]; assign ROM_ data[3:1] = ROM[ ROM_addr]; assign ROM_ data[0] = word1; initial $readmemb ( "ROM_ Data_2bit_Comparator.txt" ,ROM) ; endmodule 001 010 010 010 100 001... = 4'b010x; 8 : ROM_ data = 4'b100x; 9 : ROM_ data = 4'b100x; 10: ROM_ data = 4'b001x; 11: ROM_ data = 4'b010x; 12: ROM_ data = 4'b100x; 13: ROM_ data = 4'b100x; 14: ROM_ data = 4'b100x; 15: ROM_ data = 4'b001x; endcase end endmodule Cách 3: Sử dụng lệnh case Thiết kế hệ thống số và IC số 13 III Thiết kế ROM sử dụng verilog Mô phỏng: Danh mục tài liệu tham khảo [1] – Advanced Digital Design Verilog HDL - Michael . ố III. Thiết kế ROM sử dụng verilog Example 1: Thiết kế bộ nhớ ROM - ROM (Read Only Memory) : Bộ nhớ chỉ đọc - Vì ROM là bộ nhớ chỉ đọc, không có tín hiệu clock, chân cho phép ghi ROM Byte 0 Byte. ố$ III. Thiết kế ROM sử dụng verilog Mô phỏng: III. Thiết kế ROM sử dụng verilog module ROM_ 16x4 (ROM_ data, ROM_ addr); output reg [3:0] ROM_ data; input [3:0] ROM_ addr; input word1; always @ (ROM_ addr) begin case. ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Mô phỏng ROM vừa thiết kế . . ///// 1 ế ế ệ ố ố ố III. Thiết kế ROM sử dụng verilog Example