목차
파일명 : cnt_2.v
파일명: cnt_4.v
파일 명 : mod10_cnt.v , c10khz.v
파일 명 : alarm.v
파일 명 : click.v
파일 명 : name_data.v
핀 할당 정보
RTL 회로도
전체 회로도
파일명: cnt_4.v
파일 명 : mod10_cnt.v , c10khz.v
파일 명 : alarm.v
파일 명 : click.v
파일 명 : name_data.v
핀 할당 정보
RTL 회로도
전체 회로도
본문내용
or posedge key[5]) begin
if(rst) h_time1 <= 8'd0010_0000;
else if(key[5]) h_time1 <= 8'b0011_0000;
else begin
case(qh1)
4'd0 : h_time1 <= 8'b0011_0000;
4'd1 : h_time1 <= 8'b0011_0001;
4'd2 : h_time1 <= 8'b0011_0010;
4'd3 : h_time1 <= 8'b0011_0011;
4'd4 : h_time1 <= 8'b0011_0100;
4'd5 : h_time1 <= 8'b0011_0101;
4'd6 : h_time1 <= 8'b0011_0110;
4'd7 : h_time1 <= 8'b0011_0111;
4'd8 : h_time1 <= 8'b0011_1000;
4'd9 : h_time1 <= 8'b0011_1001;
default : h_time1 <= 8'b0010_0000;
endcase
end
end
always @(posedge en or posedge rst or posedge key[5]) begin
if(rst) m_time2 <= 8'd0010_0000;
else if(key[5]) m_time2 <= 8'b0011_0000;
else begin
case(qm2)
4'd0 : m_time2 <= 8'b0011_0000;
4'd1 : m_time2 <= 8'b0011_0001;
4'd2 : m_time2 <= 8'b0011_0010;
4'd3 : m_time2 <= 8'b0011_0011;
4'd4 : m_time2 <= 8'b0011_0100;
4'd5 : m_time2 <= 8'b0011_0101;
default : m_time2 <= 8'b0010_0000;
endcase
end
end
always @(posedge en or posedge rst or posedge key[5]) begin
if(rst) m_time1 <= 8'd0010_0000;
else if(key[5]) m_time1 <= 8'b0011_0000;
else begin
case(qm1)
4'd0 : m_time1 <= 8'b0011_0000;
4'd1 : m_time1 <= 8'b0011_0001;
4'd2 : m_time1 <= 8'b0011_0010;
4'd3 : m_time1 <= 8'b0011_0011;
4'd4 : m_time1 <= 8'b0011_0100;
4'd5 : m_time1 <= 8'b0011_0101;
4'd6 : m_time1 <= 8'b0011_0110;
4'd7 : m_time1 <= 8'b0011_0111;
4'd8 : m_time1 <= 8'b0011_1000;
4'd9 : m_time1 <= 8'b0011_1001;
default : m_time1 <= 8'b0010_0000;
endcase
end
end
endmodule
알람 기능을 구현하기 위해 설계한 모듈이다. 시 분 에 대한 ASCII 값을 포함 하고 있으며, 핀 할당에서 할당한 버튼을 눌렀을 경우 글리치 발생을 방지하기 위한 구문도 포함 하고 있으며, 버튼에 해당 되는 자리수가 증가 되는 카운트 부분도 구현하였다.
파일 명 : click.v
module click(clk, rst , q, sel);
input clk, rst;
output q;
input sel;
reg q;
always @ (posedge clk, posedge rst)
if(rst) q<= 1'b0;
else if(sel)
q <= 1'b1;
else q <= 1'b0;
endmodule
스위치에 대한 입력이 인가했을때에 그입력이 글리치 현상으로 제대로 입력 되지 않은 현상을 방지 하고자 설계한 모듈이다.
파일 명 : name_data.v
module name_data(name_po,name_db);
input [4:0] name_po;
output [7:0] name_db;
reg [7:0] name_db;
always @(name_po) begin
case(name_po)
5'd0 : name_db = 8'b0100_1011;
5'd1 : name_db = 8'b0100_1000;
5'd2 : name_db = 8'b0101_0011;
5'd3 : name_db = 8'b0010_0000;
5'd4 : name_db = 8'b0100_1010;
5'd5 : name_db = 8'b0100_0100;
5'd6 : name_db = 8'b0100_1000;
5'd7 : name_db = 8'b0010_0000;
5'd8 : name_db = 8'b0011_0110;
5'd9 : name_db = 8'b0011_0000;
5'd10 : name_db = 8'b0011_0000;
5'd11 : name_db = 8'b0011_0100;
5'd12 : name_db = 8'b0011_0110;
5'd13 : name_db = 8'b0010_0000;
5'd14 : name_db = 8'b0011_0110;
5'd15 : name_db = 8'b0011_0001;
5'd16 : name_db = 8'b0011_0001;
5'd17 : name_db = 8'b0011_0011;
5'd18 : name_db = 8'b0011_0001;
5'd19 : name_db = 8'b1111_0101;
default : name_db = 8'b0010_0000;
endcase
end
endmodule
LCD의 두 번제 라인에 데이터 정보를 전송하기 위한 모듈이다 각 문자에 대해 ASSCII를 포함 하고 있다.
1MHz를 인가 하고 있는 사진이다.
전원이 인가된 후 표시하고자 한 문자와 시간을 나타내고 있는 화면이다.
LED 2가 불이 들어온 상태 즉 알람을 설정 가능 한 상태 이다.
알람 시간을 12시 31분으로 설정 후 LED1이 불이 들어온 상태 즉 시간을 설정 가능 한 상태이다.
시간과 알람을 모두 설정 완료 후 상태 입니다.
핀 할당 정보
RTL 회로도
전체 회로도
전체 회로도 top에대한 RTL입니다.
top 모듈 안의 display 모듈의 RTL 회로도입니다.
if(rst) h_time1 <= 8'd0010_0000;
else if(key[5]) h_time1 <= 8'b0011_0000;
else begin
case(qh1)
4'd0 : h_time1 <= 8'b0011_0000;
4'd1 : h_time1 <= 8'b0011_0001;
4'd2 : h_time1 <= 8'b0011_0010;
4'd3 : h_time1 <= 8'b0011_0011;
4'd4 : h_time1 <= 8'b0011_0100;
4'd5 : h_time1 <= 8'b0011_0101;
4'd6 : h_time1 <= 8'b0011_0110;
4'd7 : h_time1 <= 8'b0011_0111;
4'd8 : h_time1 <= 8'b0011_1000;
4'd9 : h_time1 <= 8'b0011_1001;
default : h_time1 <= 8'b0010_0000;
endcase
end
end
always @(posedge en or posedge rst or posedge key[5]) begin
if(rst) m_time2 <= 8'd0010_0000;
else if(key[5]) m_time2 <= 8'b0011_0000;
else begin
case(qm2)
4'd0 : m_time2 <= 8'b0011_0000;
4'd1 : m_time2 <= 8'b0011_0001;
4'd2 : m_time2 <= 8'b0011_0010;
4'd3 : m_time2 <= 8'b0011_0011;
4'd4 : m_time2 <= 8'b0011_0100;
4'd5 : m_time2 <= 8'b0011_0101;
default : m_time2 <= 8'b0010_0000;
endcase
end
end
always @(posedge en or posedge rst or posedge key[5]) begin
if(rst) m_time1 <= 8'd0010_0000;
else if(key[5]) m_time1 <= 8'b0011_0000;
else begin
case(qm1)
4'd0 : m_time1 <= 8'b0011_0000;
4'd1 : m_time1 <= 8'b0011_0001;
4'd2 : m_time1 <= 8'b0011_0010;
4'd3 : m_time1 <= 8'b0011_0011;
4'd4 : m_time1 <= 8'b0011_0100;
4'd5 : m_time1 <= 8'b0011_0101;
4'd6 : m_time1 <= 8'b0011_0110;
4'd7 : m_time1 <= 8'b0011_0111;
4'd8 : m_time1 <= 8'b0011_1000;
4'd9 : m_time1 <= 8'b0011_1001;
default : m_time1 <= 8'b0010_0000;
endcase
end
end
endmodule
알람 기능을 구현하기 위해 설계한 모듈이다. 시 분 에 대한 ASCII 값을 포함 하고 있으며, 핀 할당에서 할당한 버튼을 눌렀을 경우 글리치 발생을 방지하기 위한 구문도 포함 하고 있으며, 버튼에 해당 되는 자리수가 증가 되는 카운트 부분도 구현하였다.
파일 명 : click.v
module click(clk, rst , q, sel);
input clk, rst;
output q;
input sel;
reg q;
always @ (posedge clk, posedge rst)
if(rst) q<= 1'b0;
else if(sel)
q <= 1'b1;
else q <= 1'b0;
endmodule
스위치에 대한 입력이 인가했을때에 그입력이 글리치 현상으로 제대로 입력 되지 않은 현상을 방지 하고자 설계한 모듈이다.
파일 명 : name_data.v
module name_data(name_po,name_db);
input [4:0] name_po;
output [7:0] name_db;
reg [7:0] name_db;
always @(name_po) begin
case(name_po)
5'd0 : name_db = 8'b0100_1011;
5'd1 : name_db = 8'b0100_1000;
5'd2 : name_db = 8'b0101_0011;
5'd3 : name_db = 8'b0010_0000;
5'd4 : name_db = 8'b0100_1010;
5'd5 : name_db = 8'b0100_0100;
5'd6 : name_db = 8'b0100_1000;
5'd7 : name_db = 8'b0010_0000;
5'd8 : name_db = 8'b0011_0110;
5'd9 : name_db = 8'b0011_0000;
5'd10 : name_db = 8'b0011_0000;
5'd11 : name_db = 8'b0011_0100;
5'd12 : name_db = 8'b0011_0110;
5'd13 : name_db = 8'b0010_0000;
5'd14 : name_db = 8'b0011_0110;
5'd15 : name_db = 8'b0011_0001;
5'd16 : name_db = 8'b0011_0001;
5'd17 : name_db = 8'b0011_0011;
5'd18 : name_db = 8'b0011_0001;
5'd19 : name_db = 8'b1111_0101;
default : name_db = 8'b0010_0000;
endcase
end
endmodule
LCD의 두 번제 라인에 데이터 정보를 전송하기 위한 모듈이다 각 문자에 대해 ASSCII를 포함 하고 있다.
1MHz를 인가 하고 있는 사진이다.
전원이 인가된 후 표시하고자 한 문자와 시간을 나타내고 있는 화면이다.
LED 2가 불이 들어온 상태 즉 알람을 설정 가능 한 상태 이다.
알람 시간을 12시 31분으로 설정 후 LED1이 불이 들어온 상태 즉 시간을 설정 가능 한 상태이다.
시간과 알람을 모두 설정 완료 후 상태 입니다.
핀 할당 정보
RTL 회로도
전체 회로도
전체 회로도 top에대한 RTL입니다.
top 모듈 안의 display 모듈의 RTL 회로도입니다.
추천자료
State Transition Diagram of Signal Lamp, 베릴로그, 실험소스
ALU, Shifter, 베릴로그 소스, 예비, 결과레포트
Single Cycle CPU 제작,베릴로그, 소스, 레포트
RAM에서의loadstore 기능구현, 베릴로그, 쿼터스, 결과소스
ALU( Ripple Carry Adder 이용 ),Wallace( 곱셈기 ),베릴로그,쿼터스, 소스
Control Logic Unit, 베릴로그, 결과파일, 소스
RCA, CLA, Subtractor(Compararot이용), 베릴로그, 소스파일있음.
Verilog(베릴로그) 이용한 시계 설계
베릴로그를 이용한 cpu설계
소개글