Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Đăng ký
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Ví dụ về Verilog - ROM, EPROM, EEPROM

Email In PDF.


     Bộ nhớ chỉ đọc (tiếng Anh: Read-Only Memory - ROM) là một loại thiết bị lưu trữ dùng trong máy tính và các thiết bị khác. Nó có tên như vậy vì không dễ để ghi thông tin lên nó. Không giống như RAM, thông tin trên ROM vẫn được duy trì dù nguồn điện cấp không còn.

ROM, theo đúng nghĩa, chỉ cho phép đọc dữ liệu từ chúng tuy nhiên tất cả các loại ROM đều cho phép ghi dữ liệu ít nhất một lần, hoặc khi sản xuất lần đầu hoặc trong bước lập trình. Một số loại ROM cho phép xóa và lập trình lại nhiều lần.

../../images/main/bulllet_4dots_orange.gif ROM/EPROM - đọc từ file
 
  1 //-----------------------------------------------------
2 // Design Name : rom_using_file
3 // File Name : rom_using_file.v
4 // Function : ROM using readmemh
5 // Coder : -
6 //-----------------------------------------------------
7 module rom_using_file (
8 address , // Address input
9 data , // Data output
10 read_en , // Read Enable
11 ce // Chip Enable
12 );
13 input [7:0] address;
14 output [7:0] data;
15 input read_en;
16 input ce;
17
18 reg [7:0] mem [0:255] ;
19
20 assign data = (ce && read_en) ? mem[address] : 8'b0;
21
22 initial begin
23 $readmemb("memory.list", mem); // memory_list is memory file
24 end
25
26 endmodule
../../images/main/bulllet_4dots_orange.gif ROM sử dụng diễn tả CASE()
 
  1 //-----------------------------------------------------
2 // Design Name : rom_using_case
3 // File Name : rom_using_case.v
4 // Function : ROM using case
5 // Coder : -
6 //-----------------------------------------------------
7 module rom_using_case (
8 address , // Address input
9 data , // Data output
10 read_en , // Read Enable
11 ce // Chip Enable
12 );
13 input [3:0] address;
14 output [7:0] data;
15 input read_en;
16 input ce;
17
18 reg [7:0] data ;
19
20 always @ (ce or read_en or address)
21 begin
22 case (address)
23 0 : data = 10;
24 1 : data = 55;
25 2 : data = 244;
26 3 : data = 0;
27 4 : data = 1;
28 5 : data = 8'hff;
29 6 : data = 8'h11;
30 7 : data = 8'h1;
31 8 : data = 8'h10;
32 9 : data = 8'h0;
33 10 : data = 8'h10;
34 11 : data = 8'h15;
35 12 : data = 8'h60;
36 13 : data = 8'h90;
37 14 : data = 8'h70;
38 15 : data = 8'h90;
39 endcase
40 end
41
42 endmodule
Lần cập nhật cuối ( Thứ năm, 23 Tháng 5 2013 09:33 )  
Chat Zalo