1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế đồng hồ số triển khai trên Kit DE270

18 1,3K 13

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 0,98 MB

Nội dung

Ngày nay khi khoa học, công nghệ luôn luôn biến chuyển không ngừng, làm cho trái đất đang đổi thay theo từng giây, từng phút. Chính bởi vậy, câu nói “ Thời gian là vàng, là bạc” càng trở nên đúng đắn hơn bao giờ hết, thời gian gần như là thước đo của sự thành công ở thời điểm hiện tại. Tuy vậy không ai có thế đong, đo được thời gian, mà nó chỉ có thể được đếm chính xác bằng những chiếc đồng hồ.Chính bởi sự cần thiết của chiếc đồng hồ trong đời sống mà nhóm chúng em đã chọn đề tài : “ Thiết kế đồng hồ báo giờ điện tử “ bằng ngôn ngữ mô tả phần cứng Verilog HDL, chạy trên KIT DE270 của hãng Altera, để mô tả chức năng chính của đồng hồ.Tuy đề tài đã hoàn thành, song việc gặp phải những sai sót là không thể tránh khỏi. Rất mong được sự nhận xét, đánh giá nhiệt tình của thầy. Chúng em xin chân thành cảm ơn

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

Bài Tập Lớn THIẾT KẾ, TỔNG HỢP IC SỐ VÀ HỆ THỐNG SỐ

Đề tài :

THIẾT KẾ ĐỒNG HỒ BÁO GIỜ ĐIỆN TỬ

SVTH : Phan Đình Điệp – 20111440

GVHD : TS Nguyễn Hoàng Dũng

Hà Nội, 11- 2014

Trang 2

MỤC LỤC

DANH MỤC HÌNH VẼ 3

DANH MỤC BẢNG BIỂU 3

LỜI NÓI ĐẦU 4

PHẦN A MÔ TẢ CHI TIẾT THIẾT KẾ 5

I TỔNG QUAN 5

1 Yêu cầu chức năng 5

2 Yêu cầu phi chức năng 5

II SƠ ĐỒ KHỐI 5

1 Sơ đồ tổng quát 5

2 Sơ đồ chi tiết mạch 6

III THIẾT KẾ CHI TIẾT TỪNG KHỐI 7

1 Khối module chính 7

2 Khối chia tần số clk_div 9

3 Khối LCD 10

4 Khối thiết lập đồng hồ setclock 12

5 Khối chuyển đổi bit convert10 14

6 Khối giải mã decoder_bcd 15

PHẦN B MÔ PHỎNG VÀ THỰC TẾ 17

PHẦN C KẾT LUẬN 17

Trang 3

DANH MỤC HÌNH VẼ

Figure 1 Sơ đồ tổng quát đồng hồ điện tử 5

Figure 2 Sơ đồ RTL viewer 6

Figure 3 Khối chia tần clk_div:DIV 9

Figure 4 Bảng mã kí tự hiển thị LCD 11

Figure 5 Sơ đồ khối LCD 12

Figure 6 Khối thiết lập đồng hồ setclock:SC 12

Figure 7 Khối chuyển đổi convert10 14

Figure 8 Sơ đồ khối khối giải mã decoder 15

DANH MỤC BẢNG BIỂU Table 1 Module chính của chương trình 7

Table 2 Module chia tần clk_div 9

Table 3 Bảng mã nhị phân 13

Table 4 Module thiết lập đồng hồ setclock 13

Table 5 Module convert10 14

Table 6 Bảng giải mã decoder sang LED 7 thanh 15

Table 7 Module giải mã BCD 15

Trang 4

LỜI NÓI ĐẦU

Ngày nay khi khoa học, công nghệ luôn luôn biến chuyển không ngừng, làm

cho trái đất đang đổi thay theo từng giây, từng phút Chính bởi vậy, câu nói “ Thời gian là vàng, là bạc” càng trở nên đúng đắn hơn bao giờ hết, thời gian gần như là

thước đo của sự thành công ở thời điểm hiện tại Tuy vậy không ai có thế đong, đo được thời gian, mà nó chỉ có thể được đếm chính xác bằng những chiếc đồng hồ

Chính bởi sự cần thiết của chiếc đồng hồ trong đời sống mà nhóm chúng em

đã chọn đề tài : “ Thiết kế đồng hồ báo giờ điện tử “ bằng ngôn ngữ mô tả phần

cứng Verilog HDL, chạy trên KIT DE2-70 của hãng Altera, để mô tả chức năng chính của đồng hồ

Tuy đề tài đã hoàn thành, song việc gặp phải những sai sót là không thể tránh khỏi Rất mong được sự nhận xét, đánh giá nhiệt tình của thầy Chúng em xin chân thành cảm ơn !!!

Nhóm Sinh Viên

Phan Đình Điệp Nguyễn Văng Bằng Mai Văn Quân

Trang 5

PHẦN A MÔ TẢ CHI TIẾT THIẾT KẾ

I TỔNG QUAN

1 Yêu cầu chức năng

o Thiết kế đồng hồ điện tử hiển thị 24h (từ 00:00:00 đến 23:59:59) chạy trên KIT DE2-70 của hãng Altera

o Cho phép điều chỉnh thời gian ( giờ và phút ) thông qua các switch ( từ

SW17-SW2 )

o Hiển thị kết quả ra 6 LED 7 thanh

o Mạch có chức năng báo giờ theo thời gian định trước, hiển thị trên LEDG

o Có nút reset ( phím KEY ) đưa về 00:00:00 và enable ( SW1) cho phép thiết lập thời gian

2 Yêu cầu phi chức năng

o Mô tả thiết kế sử dụng ngôn ngữ mô tả phần cứng Verilog HDL

o Thiết kế và mô phỏng hoặc chạy được trên KIT

o Hoàn thành đề tài trước ngày 17/11/2014

II SƠ ĐỒ KHỐI

1 Sơ đồ tổng quát

Figure 1 Sơ đồ tổng quát đồng hồ điện tử

o Phân tích chi tiết từng khối

+ Khối đầu vào : Bao gồm các đầu vào như tần số vào, reset, enable,… + Khối đồng hồ điện tử : Thiết lập cho đồng hồ chạy bình thường, báo giờ,… + Khối LCD : Hiển thị tên bài tập lớn (BTL), tên đề tài, tên thành viên nhóm

Trang 6

+ Khối hiển thị LED : Hiện thị ra giờ, phút, giây, và những thông báo ra

LEDR, LEDG

2 Sơ đồ chi tiết mạch

Figure 2 Sơ đồ RTL viewer

Mô tả chức năng từng khối :

o Khối chia tần clk_div : Có nhiệm vụ chia tần số đầu vào từ 50MHz xuống

tần số 1Hz

o Khối LCD : Có nhiệm vụ hiển thị lên thông tin đã được thiết lập sẵn về BTL, tên đề tài, tên thành viên nhóm

o Khối setclock : Tiếp nhận các đầu vào, thiết lập bộ đếm và cho phép xuất ra led báo hiệu và đầu ra 6bit của giờ, phút giây

o Khối covert10 : Bao gồm 3 khối có nhiệm vụ chuyển đổi bit từ 2 bit sang 10 bit

o Khối decoder_bcd : giải mã ra mã hexa để hiển thị ra giờ, phút, giây trên

LED 7 thanh

Trang 7

III THIẾT KẾ CHI TIẾT TỪNG KHỐI

1 Khối module chính

o Khai báo tên mô-đun, các đầu vào, đầu ra

o Đầu vào : 17 switch Trong đó iSW[17:2] điều chỉnh thời gian hiển thị giờ, phút, giây; sau khi điều chỉnh thời gian, ta gạt iSW[1], switch này cho phép

thiết lập được thực hiện

báo lỗi, và báo đến giờ hẹn trước ( 6h, 12h, 18h ) và 6 LED 7 thanh hiển thị

thời gian

o Các dây ( wire ) kết nối các module con

o Kết nối phân cấp theo 2 cách : Kết nối cổng có tên và kết nối cổng theo thứ

tự Bao gồm :

+ Khối clk_div + Khối setclock + 3 khối convert10 + 6 khối decoder_bcd + Khối lcd

Table 1 Module chính của chương trình

Trang 8

/*

Thiet ke mot dong ho dien tu :

+ Do chuong (sang led) theo thoi gian dinh truoc :6h,12h,18h

+ Hien thi gio, phut, giay ra led 7 thanh : oHEX_D tu 7-2

+ Thiet lap duoc thoi gian thong qua cac iSW17-2

*/

// -Module chinh -//

module dongho_baogio

( iSW,iCLK_50,iKEY, oLEDR,oLEDG, oHEX7_D,oHEX6_D,oHEX5_D,

oHEX4_D,oHEX3_D,oHEX2_D,

LCD_D, oLCD_RW, oLCD_EN, oLCD_RS, oLCD_ON, oLCD_BLON);

input [17:1] iSW; // iSW[1]-cho phep dieu chinh thoi gian iSW[17:10]-dieu

chinh gio iSW[9:2]-dieu chinh phut

input iCLK_50,iKEY; // iCLK_50- tin hieu vao 50MHz // iKEY - reset

output [17:2] oLEDR; // LED do

output [1:0] oLEDG; // LED xanh- bao loi - bao den gio hen

output [0:6] oHEX7_D,oHEX6_D,oHEX5_D,

oHEX4_D,oHEX3_D,oHEX2_D; // LED 7 thanh

output [7:0] LCD_D;

output oLCD_RW,oLCD_EN,oLCD_RS, oLCD_ON,oLCD_BLON;

// hien thi LCD

assign oLEDR = iSW; // gan LED do = iSW

wire clk; // clk 1Hz

wire [5:0] gio, phut, giay ;

wire [3:0] phut_ch,

phut_dv,

gio_ch,

gio_dv, giay_dv,

giay_ch;

//Khoi chiatan

clk_div DIV ( clk_50m(iCLK_50),.reset(iKEY),.clk(clk) );

//Khoi tao dong ho

setclock SC ( set_hc(iSW[17:14]), set_hdv(iSW[13:10]),

.set_mc(iSW[9:6]),.set_mdv(iSW[5:2]),.clk(clk), reset(iKEY),

.enb(iSW[1]),.out_gio(gio),.out_phut(phut),.out_giay(giay),

.led_bao_loi(oLEDG[1]), led_hen_gio(oLEDG[0]));

//Khoi chuyen doi sang he 10

convert10 CONV0 ( gio, clk, gio_ch, gio_dv );

convert10 CONV1 ( phut, clk, phut_ch, phut_dv );

convert10 CONV2 ( giay, clk, giay_ch, giay_dv );

//Khoi giai ma

Trang 9

decoder_bcd DE_B4 ( gio_dv, oHEX6_D );

decoder_bcd DE_B5 ( gio_ch, oHEX7_D );

//Khoi LCD

lcd LCD

(iCLK_50,iKEY,LCD_D,oLCD_RW,oLCD_EN,oLCD_RS,oLCD_ON,oLCD_BLON);

endmodule

// -Ketthuc module chinh -//

2 Khối chia tần số clk_div

o Tần số đầu vào là 50MHz

o Tần số đầu ra là 1Hz

Áp dụng công thức chia tần số theo bộ đếm

  



vào

f cnt

f

2 1

Từ đó suy ra, cnt = 24999999 Cần 32bit để thực hiện được bộ đếm này

Figure 3 Khối chia tần clk_div:DIV

o Khi có reset hoặc khi đếm hết 24999999 : biến đếm (cnt hay counter ) sẽ

bằng 0

o Trường hợp còn lại mỗi lần đếm tăng 1 thì clk lại đảo bit

Table 2 Module chia tần clk_div

Trang 10

// - Module chia tan -

module clk_div (clk_50m,reset,clk);

input clk_50m, reset ; // Vao 50Mhz

output reg clk; // Ra 1Hz

reg [31:0] counter; // Can 32bit de dem den 25000000

always @( posedge clk_50m or negedge reset)

if ( reset == 0 )

begin

clk <= 1'b0 ; counter <= 8'h00000000;

end else if (counter == 24999999)

begin

clk = !clk;

counter <= 8'h00000000;

end else

counter = counter +1'b1;

endmodule

// - Ket thuc module chia tan

-3 Khối LCD

3.1 Lý thuyết về khối LCD

o Các tín hiệu quan trọng :

LCD_DATA : data 8 bit,

LCD_RW : read/wirte,

LCD_EN : tín hiệu enable,

LCD_ON : tín hiệu nguồn vào,

LCD_BLON : đèn màn hình,

LCD_RS : chọn đọc dữ liệu hay đọc Command ( Command dùng để chứa

1 số các thiết lập lcd cơ bản )

Các tín hiệu LCD_ON và LCD_BLON luôn là 1 Tín hiệu LCD_RW và LCD_RS nếu chỉ hiển thị lên LCD thì tín hiệu LCD_RW = 0, khi cài đặt

vị trí hiển thị kí tự thì ta reset LCD_RS xuống mức 0, ghi dữ liệu thì ta set lên 1

Trong phần hiển thị thì tín hiệu LCD_R/W luôn đặt là 0, còn LCD_RS

Trang 11

Figure 4 Bảng mã kí tự hiển thị LCD

Bảng kí tự gồm chiều ngang là 4 bit cao chiều dọc là 4 bit thấp, bảng mã cung cấp các kí tự đơn giản đã được định nghĩa sẵn Ví dụ : Muốn hiển thị kí tự A thì dữ liệu vào sẽ là LHLL LLLH tức là 0100 0001

3.2 Thiết lập khối LCD

o Khối LCD được thiết lập để hiển thị phần giới thiệu về BTL

o Khối có đầu vào là xung clock 50MHz, bên trong có khối chia tần số xuống 1Hz, và phím reset

o Có khối điều khiển lcd_controller

Trang 12

Figure 5 Sơ đồ khối LCD

4 Khối thiết lập đồng hồ setclock

o Khối setclock là module chính tạo ra bộ đếm cho phép đồng hộ được hoạt động, cho phép người dùng tự thiết lập thời gian thực và thời gian báo giờ

như mong muốn

Figure 6 Khối thiết lập đồng hồ setclock:SC

o Khối nhận đầu vào là xung clock 1Hz tương ứng với 1s

o Thiết lập thời gian với 16 switch ( iSW[17-2] ) trong đó 8 switch dùng để thiết lập giờ, 8 switch tiếp dùng để thiết lập phút, và thiết lập theo mã nhị

phân

+ Quy ước : iSW gạt lên lấy giá trị 1

Trang 13

Table 3 Bảng mã nhị phân

o Các trường hợp không thỏa mãn (x) thì đèn LED xanh [1] sẽ báo lỗi

o Thời gian được đặt trước để báo giờ là 6h, 12h, 18h Khi đến giờ báo thì

LED xanh [0] sẽ sáng và nháy

Table 4 Module thiết lập đồng hồ setclock

// -Module thiet lap dong ho -//

enb, out_gio, out_phut, out_giay, led_hen_gio, led_bao_loi );

input [17:14] set_hc; // iSW[17:14] thiet lap gio_chuc

phut_chuc

phut_donvi

00-60 su dung 6bits

- su dung 17bits

reg [16:0] set_in; // 17 bit luu tru

thoi gian thiet lap

/* code khong duoc hien thi

*/

endmodule

// -Ket thuc module -//

Trang 14

5 Khối chuyển đổi bit convert10

o Chức năng của khối là chuyển đổi từ hệ nhị phân ( 6bits ) sang hệ thập phân (

từ 0 đến 9 )

o Thực hiện bằng cách chia lấy phần nguyên và lấy phần dư cho 10

+ Phần nguyên là chữ số đầu tiên của giờ, phút, giây ( gọi là phần chục )

+ Phần dư là chữ số thứ ha của giờ, phút, giây ( gọi là phần đơn vị )

o Đầu ra được đưa qua bộ giải mã để tạo mã hexa hiển thị lên LED 7 thanh

Figure 7 Khối chuyển đổi convert10

Table 5 Module convert10

// -Module chuyen doi bit -//

input clk;

begin

out_ch = out_gio_phut_giay / A; // chia het cho 10 lay phan nguyen

out_dv = out_gio_phut_giay % A; // chia lay du cho

10 lay phan du

end endmodule

Trang 15

6 Khối giải mã decoder_bcd

o Khối có chức năng giải mã từ BCD sang mã hex hiển thị lên LED 7 thanh

Figure 8 Sơ đồ khối khối giải mã decoder

o Đầu vào là mã bcd 4 bit, qua bộ giải mã decoder để hiển thị trên LED

Table 6 Bảng giải mã decoder sang LED 7 thanh

Table 7 Module giải mã BCD

// - Module giai ma BCD -

input [3:0] bcd;

Trang 16

case (bcd) 4'b0000 : HEX = 7'b0000001;

4'b0001 : HEX = 7'b1001111;

4'b0010 : HEX = 7'b0010010;

4'b0011 : HEX = 7'b0000110;

4'b0100 : HEX = 7'b1001100;

4'b0101 : HEX = 7'b0100100;

4'b0110 : HEX = 7'b1100000;

4'b0111 : HEX = 7'b0001111;

4'b1000 : HEX = 7'b0000000;

4'b1001 : HEX = 7'b0001100;

endcase endmodule

// - Ket thuc decoder_bcd

Trang 17

-PHẦN B MÔ PHỎNG VÀ THỰC TẾ

Kết quả thu được khi chạy trên KIT DE2-35

Trang 18

PHẦN C KẾT LUẬN

Trong thời gian thực hiện đề tài, chúng em đã được thầy tạo mọi điều kiện về tài liệu cũng như cơ sở vật chất để nhóm hoàn thành tốt đề tài trong thời gian sớm nhất

Do vẫn còn rất nhiều hạn chế về kiến thức nên đề tài chưa được phát triển một cách tối ưu nhất, nên trong thời gian tới nhóm chúng em rất mong nhận được

sự giúp đỡ nhiệt tình của thầy để chúng em có thể tiếp tục phát triển đề tài này và hoàn thành tốt những đề tài sau này

Cuối cùng chúng em xin gửi lời cảm ơn chân thành đến thầy, kính chúc thầy

và gia đình mạnh khỏe, chúc thầy ngày càng thành công trong công việc

Chúng em xin cảm ơn !!!

Ngày đăng: 14/04/2015, 01:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w