FPGA减法器论文(3)

2019-03-09 16:56

桂林电子科技大学职业技术学院实训报告

致 谢

感谢老师为我们争取的这次实训机会,让我们有了锻炼自己和提高自己的机会。熊老师对我的帮助也是很大的,平时的学习,还有这次实训老师的帮助。我很感谢熊老师给我的这个机会让我们完成这次实训,虽然实训没有很成功的完成,但是从中也学习到了很多。老师还尽心尽力的辅导我们如何写论文,这次的实训和

论文都是在熊老师的指导下完成的。

2011年6月 16 日

10

桂林电子科技大学职业技术学院实训报告

参考文献

[1] 叶俊明,熊彬.FPGA实验指导书.

[2] 夏宇闻.数字系统设计.北京航空航天大学出版社.2008.6

[3] 王金明.数字系统设计与verilog HDL.北京电子工业出版社.2008 [4] 王金明,冷自.EDA技术与Verilog设计.北京科技出版社.2008

11

桂林电子科技大学职业技术学院实训报告

附件

实训程序:

`timescale 1ns / 1ps

module key(dataout,en,clk,reset,row,col,key_value); input clk,reset;

input [3:0] row; //行 output [2:0] col; //列 output [3:0] key_value;

output reg [6:0]dataout;//数码管显示数据 output reg [3:0]en; //数码管显示使能 reg [3:0] col;

reg [3:0] key_value; //键值 reg [5:0] count; reg [2:0] state;

reg key_flag; //按键标志位 reg clk_500khz;

reg [2:0] col_reg; //寄存扫描的列值 reg [3:0] row_reg; //寄存扫描的行值

always @(posedge clk or negedge reset)

if(!reset) begin clk_500khz<=0; count<=0; end else begin

if(count>=50) begin clk_500khz<=~clk_500khz;count<=0;end else count<=count+1; end

always @(posedge clk_500khz or negedge reset)//扫描模块 if(!reset) begin col<=3'b000;state<=0;end else begin case (state) 0:begin

12

桂林电子科技大学职业技术学院实训报告

col[2:0]<=3'b000; key_flag<=1'b0;

if(row[3:0]!=4'b1111) begin state<=1;col[2:0]<=3'b011;end else state<=0; end 1:begin

if(row[3:0]!=4'b1111) begin state<=5;end //判断是否是第一行 else begin state<=2;col[2:0]<=3'b101;end //扫描第二行 end 2:begin

if(row[3:0]!=4'b1111) begin state<=5;end //判断是否是第二行 else begin state<=3;col[2:0]<=3'b110;end //扫描第三行 end 3:begin

if(row[3:0]!=4'b1111) begin state<=5;end //判断是否是第三行 else begin state<=4;end //扫描第四行 end 4:begin

if(row[3:0]!=4'b1111) begin state<=5;end //判断是否是第一行 else state<=0; end 5:begin

if(row[3:0]!=4'b1111) begin

col_reg<=col; //保存扫描列值 row_reg<=row; //保存扫描行值 state<=5;

key_flag<=1'b1; //有键按下的标志位 end else

begin state<=0;end end endcase end

13

桂林电子科技大学职业技术学院实训报告

always @(clk_500khz or col_reg or row_reg) begin

if(key_flag==1'b1)

begin

case ({row_reg,col_reg}) 7'b1110_011:key_value<=1; 7'b1110_101:key_value<=2; 7'b1110_110:key_value<=3;

7'b1101_011:key_value<=4; 7'b1101_101:key_value<=5; 7'b1101_110:key_value<=6;

7'b1011_011:key_value<=7; 7'b1011_101:key_value<=8; 7'b1011_110:key_value<=9;

7'b0111_101:key_value<=0; 7'b0111_011:key_value<=10; 7'b0111_110:key_value<=11; endcase

end

end

always @(key_value) //显示模块 begin

case(key_value)

0:begin dataout<=7'b1000000;en=4'b0111;end 1:begin dataout<=7'b1111001;en=4'b0111;end 2:begin dataout<=7'b0100100;en=4'b0111;end 3:begin dataout<=7'b0110000;en=4'b0111;end 4:begin dataout<=7'b0011001;en=4'b0111;end 5:begin dataout<=7'b0010010;en=4'b0111;end 6:begin dataout<=7'b0000010;en=4'b0111;end 7:begin dataout<=7'b1111000;en=4'b0111;end

14

桂林电子科技大学职业技术学院实训报告

8:begin dataout<=7'b0000000;en=4'b0111;end 9:begin dataout<=7'b0010000;en=4'b0111;end

10:begin dataout<=7'b0001000;en=4'b0111;end 11:begin dataout<=7'b0000011;en=4'b0111;end

default:dataout<=7'bz;

endcase

end

endmodule

管脚配置:

NET \

NET \

NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \NET \

15


FPGA减法器论文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年度辽宁广播电视节目奖广播社教奖 参评作品目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: