数电课程设计--简易两位数计数器
更新时间:2024-07-09 06:54:01 阅读量: 综合文库 文档下载
- 数电简易秒表课程设计报告推荐度:
- 相关推荐
西北工业大学
课 程 设 计 报 告
题
学 班 学生(学号)学生(姓名)学生(学号)学生(姓名)
目: 简易两位数计算器
院: 电子信息学院 级: 0802 : : : : 日期: 2014 年 1 月 13 - 1 -
日
西北工业大学 电子信息学院 08021103班
摘 要
FPGA是可编程逻辑器件,在早期可编程逻辑器件PAL和GAL的基础上发展而来,但电路规模更大。同时FPGA具有许多优点,在数字电路设计中得到广泛的应用。本次设计过程中,我们使用了Altera公司开发的CycloneIII芯片,使用DE0开发板,完成我们的设计。在设计过程中,主要使用Verilog编程语言进行编程,由于它和C语言有一定的相似之处,使用起来较为方便。本次课程设计,我们通过编程实现键盘PS2输入和利用数码管显示数据,并且完成VGA显示结果,根据DE0 使用说明,合理安排引脚和时序,顺利完成预定的功能,同时也了解了FPGA和其编程控制过程,为以后的设计奠定了基础。
关键词:FPGA Verilog编程语言 PS2 VGA
- 2 -
西北工业大学 电子信息学院 08021103班
目 录
i. 课程设计目的 ????????????????????????? 4 ii. 设计任务与要求???????????????????????? 4 iii. 方案设计与论证 ????????????????????????5 iv. 单元电路设计与参数计算 ????????????????9 v. 遇到问题的解决方法???????????????????? 17 vi. 结论与心得 ??????????????????????????? 18 vii. 参考文献????????????????????????????? 18
- 3 -
西北工业大学 电子信息学院 08021103班
题目:简易两位数计算器
一、 课程设计目的
1)巩固和加深所学电子技术课程的基本知识, 提高综合
运用所学知识的能力;
2)培养学生根据课题需要选用参考书、查阅手册、图表和文献资料的能力,提高学生独立解决工程实际问题的能力
3)通过设计方案的分析比较、设计计算、元件选绎及电路安装调试等环节.初步掌握单实用电路的工程设计方法. 4)提高学生的动手能力.掌握常用仪器设备的正确使用方法,学会对简单实用电路的实验调试和对整机指标的测试方法,
5)了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务书的要求编写设计说明书,能正确反映设计和实验成果,能正确绘制电路固等.
二、 设计任务与要求
一) 任务:
1. 显示学号
2. 实现两位数的加减乘除运算
- 4 -
西北工业大学 电子信息学院 08021103班
二) 设计要求:
显示学号:
1. 用四位数码管显示
2. 循环显示同组2人的学号后四位 实现两位数的加减乘除运算: 1. 通过键盘输入待运算数值 2. 采用数码管显示待运算数值 3. 通过VGA显示运算结果
三、 方案设计与论证
学号显示部分:
题目要求采用数码管循环显示学号,则需要对时钟信号进行分频。程序中设置四个4位端口变量sml0,sml1,sml2,sml3,用于控制四个数码管输出。在时钟脉冲下,定义一个3位二进制寄存变量pd,通过计数的方式循环显示学号。即前四个数时给四个数码管输出端口变量赋值,显示一位同学的学号,后四个数时,显示另一位同学学号。定义了一个开关信号,作为学号显示和计算器部分的切换控制。 设计框图如下:
- 5 -
西北工业大学 电子信息学院 08021103班
.vga_b(vga_b) ); Endmodule //计算器模块 module
Verilog1(clk2,rst_n,ps2k_clk,ps2k_data,ps2_byte,ps2_state,sm_db,buff,clk3);
input clk2; //50M时钟信号 input rst_n; //复位信号
input ps2k_clk; //PS2接口时钟信号 input ps2k_data; //PS2接口数据信号 output clk3; output [15:0] buff;
output[31:0] sm_db; //7段数码管寄存器
output[7:0] ps2_byte; // 1byte键值,只做简单的按键扫描
output ps2_state; //键盘当前状态,ps2_state=1表示有键被按下
//------------------------------------------ reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; //ps2k_clk状态寄存器
- 16 -
西北工业大学 电子信息学院 08021103班
//wire pos_ps2k_clk; // ps2k_clk上升沿标志位 wire neg_ps2k_clk; // ps2k_clk下降沿标志位 //====================================== reg clk3;
always @ (posedge clk2) begin
clk3 <= !clk3; end
//===================================
always @ (posedge clk2 or negedge rst_n) begin if(!rst_n) begin
ps2k_clk_r0 <= 1'b0; ps2k_clk_r1 <= 1'b0; ps2k_clk_r2 <= 1'b0; end
else begin //锁存状态,进行滤波 ps2k_clk_r0 <= ps2k_clk; ps2k_clk_r1 <= ps2k_clk_r0;
- 17 -
西北工业大学 电子信息学院 08021103班
ps2k_clk_r2 <= ps2k_clk_r1; end end
assign neg_ps2k_clk = ~ps2k_clk_r1 & ps2k_clk_r2; //下降沿
//------------------------------------------ reg[7:0] ps2_byte_r; //PC接收来自PS2的一个字节数据存储器
reg[7:0] temp_data; //当前接收数据寄存器 reg[3:0] num; //计数寄存器
always @ (posedge clk2 or negedge rst_n) begin if(!rst_n) begin num <= 4'd0; temp_data <= 8'd0; end
else if(neg_ps2k_clk) begin //检测到ps2k_clk的下降沿
case (num)
4'd0: num <= num+1'b1; 4'd1: begin
- 18 -
西北工业大学 电子信息学院 08021103班
num <= num+1'b1;
temp_data[0] <= ps2k_data; //bit0 end 4'd2: begin
num <= num+1'b1;
temp_data[1] <= ps2k_data; end 4'd3: begin
num <= num+1'b1;
temp_data[2] <= ps2k_data; end 4'd4: begin
num <= num+1'b1;
temp_data[3] <= ps2k_data; end 4'd5: begin
num <= num+1'b1;
temp_data[4] <= ps2k_data; end 4'd6: begin
num <= num+1'b1;
temp_data[5] <= ps2k_data; end
- 19 -
//bit1 //bit2 //bit3 //bit4 //bit5
西北工业大学 电子信息学院 08021103班
4'd7: begin
num <= num+1'b1;
temp_data[6] <= ps2k_data; //bit6 end 4'd8: begin
num <= num+1'b1;
temp_data[7] <= ps2k_data; //bit7 end 4'd9: begin
num <= num+1'b1; //奇偶校验位,不做处理
end 4'd10: begin
num <= 4'd0; // num清零 end default: ; endcase end end
reg key_f0; //松键标志位,置1表示接收到数据8'hf0,
- 20 -
西北工业大学 电子信息学院 08021103班
3:begin rsm_db[15:8]<=ps2_byte;i<=i+1;end
4:begin rsm_db[7:0]<=ps2_byte;i<=i+1;end
5:begin i<=0;end endcase end end
assign sm_db=rsm_db;
//caculator part
reg[15:0] buff; reg[7:0] mm1,mm2; reg[3:0] op;
- 26 -
西北工业大学 电子信息学院 08021103班
reg[7:0] num1,num2; reg eoc; reg[3:0] data2; reg[9:0] data1; reg[5:0] a;
reg [7:0] e=8'b0110_0100; parameter
add=4'b1010,sub=4'b1011,mult=4'b1100,div=4'b1101; integer b;
always @(negedge ps2_state or negedge rst_n ) begin if(!rst_n)
begin buff=0;op=0;eoc=0;num1=0;num2=0;end else begin if(data!=4'b1110) begin
if((data>=4'b0000)&&(data<=4'b1001)) begin case(a) 0:begin
data1=data;buff=data1+data1+data1+data1+data1+data1+data1+data1+data1+data1;a<=a+1;end
- 27 -
西北工业大学 电子信息学院 08021103班
1:begin data2=data;buff=buff+data2;a<=0;end endcase end
else if((data>=4'b1010)&&(data<=4'b1110)) begin op=data;num1=buff[7:0];end //!@!!!! end
else begin if(eoc==0) begin
num2=buff[7:0]; case(op) add: begin
buff=num1+num2; eoc=1; end
- 28 -
西北工业大学 电子信息学院 08021103班
sub:
if (num1>num2) begin buff=num1-num2;eoc=1;end else begin
buff=num2-num1;eoc=1;end mult: begin
buff=num1*num2; eoc=1; end div: begin
if(num2==8'b00000000) buff=0; else begin
mm1=num1/num2; mm2=num1%num2; buff=mm1*e+mm2;
- 29 -
西北工业大学 电子信息学院 08021103班
end eoc=1; end endcase end end end end endmodule
//计算结果分位模块
module sy3(sml,smlq,smlb,smls,smlg); input [15:0] sml;
output [15:0] smlq,smlb,smls,smlg;
reg [15:0] smlq,smlb,smls,smlg,smlbb,smlss; reg [15:0] q=16'b000000_11111_01000; reg [15:0] h=16'b000000_00011_00100; reg [15:0] s=16'b000000_00000_01010; always @(sml) begin
- 30 -
西北工业大学 电子信息学院 08021103班
smlq=sml/q; smlbb=sml%q; smlb=smlbb/h; smlss=sml%h; smls=smlss/s; smlg=sml%s; end
endmodule
//VGA显示模块
module vga( sml000,sml111,sml222,sml333, clk , rst_n, hsync,vsync, vga_r,vga_g,vga_b );
input [15:0] sml000,sml111,sml222,sml333; input clk; //50MHz input rst_n; //低电平复位 output hsync; //行同步信号
- 31 -
西北工业大学 电子信息学院 08021103班
output vsync; //颜色信号线RGB output vga_r; output vga_g; output vga_b;
reg [3:0] sml0000,sml1111,sml2222,sml3333;
//---------------------------------------------------------------------- reg [10:0] x_cnt; //行坐标 reg [9:0] y_cnt; //列坐标
//-----------------------------------------------------------------
wire [12:0]xpos; //有效显示行坐标 wire [12:0]ypos; //有效显示列坐标
//------------------------------------------------------------------
reg hsync_r,vsync_r; //同步信号 wire valid; //有效显示区标志 reg [2:0]vga_rgb; //显示像素颜色 reg [10:0]char1_bit; //取模的位数
//--------------------------------------------------
- 32 -
西北工业大学 电子信息学院 08021103班
----------------- //定义存放数据的寄存器 reg [15:0]char_line0[21:0]; reg [15:0]char_line1[21:0]; reg [15:0]char_line2[21:0]; reg [15:0]char_line3[21:0]; reg [15:0]char_line4[21:0]; reg [15:0]char_line5[21:0]; reg [15:0]char_line6[21:0]; reg [15:0]char_line7[21:0]; reg [15:0]char_line8[21:0]; reg [15:0]char_line9[21:0]; reg [15:0]char_line10[21:0]; reg [15:0]char_line11[21:0]; reg [15:0]char_line12[21:0]; reg [15:0]char_line13[21:0]; reg [15:0]char_line14[21:0]; reg [15:0]char_line15[21:0]; reg [15:0]char_line16[21:0]; reg [15:0]char_line17[21:0]; reg [15:0]char_line18[21:0]; reg [15:0]char_line19[21:0]; reg [15:0]char_line20[21:0];
- 33 -
西北工业大学 电子信息学院 08021103班
reg [15:0]char_line21[21:0]; reg [15:0]char_line22[21:0]; reg [15:0]char_line23[21:0]; reg [15:0]char_line24[21:0]; reg [15:0]char_line25[21:0]; reg [15:0]char_line26[21:0]; reg [15:0]char_line27[21:0]; reg [15:0]char_line28[21:0]; reg [15:0]char_line29[21:0]; reg [15:0]char_line30[21:0]; reg [15:0]char_line31[21:0]; reg [15:0]char_line32[21:0]; reg [15:0]char_line33[21:0]; reg [15:0]char_line34[21:0]; reg [15:0]char_line35[21:0]; reg [15:0]char_line36[21:0]; reg [15:0]char_line37[21:0]; reg [15:0]char_line38[21:0]; reg [15:0]char_line39[21:0]; reg [15:0]char_line40[21:0]; reg [15:0]char_line41[21:0]; reg [15:0]char_line42[21:0]; reg [15:0]char_line43[21:0];
- 34 -
西北工业大学 电子信息学院 08021103班
reg [15:0]char_line44[21:0]; reg [15:0]char_line45[21:0]; reg [15:0]char_line46[21:0]; reg [15:0]char_line47[21:0]; reg [15:0]char_line48[21:0]; reg [15:0]char_line49[21:0]; reg [15:0]char_line50[21:0]; reg [15:0]char_line51[21:0]; reg [15:0]char_line52[21:0]; reg [15:0]char_line53[21:0]; reg [15:0]char_line54[21:0]; reg [15:0]char_line55[21:0]; reg [15:0]char_line56[21:0]; reg [15:0]char_line57[21:0]; reg [15:0]char_line58[21:0]; reg [15:0]char_line59[21:0]; reg [15:0]char_line60[21:0]; reg [15:0]char_line61[21:0]; reg [15:0]char_line62[21:0]; reg [15:0]char_line63[21:0];
//------------------------------------------------------------------------------------- //定义扫描显示的数据,wire型
- 35 -
西北工业大学 电子信息学院 08021103班
wire [147:0]line0; //第1行 wire [147:0]line1; //第2行 wire [147:0]line2; //第3行 wire [147:0]line3; //第4行 wire [147:0]line4; //第5行 wire [147:0]line5; //wire [147:0]line6; //wire [147:0]line7; //wire [147:0]line8; //wire [147:0]line9; //wire [147:0]line10; //wire [147:0]line11; //wire [147:0]line12; //wire [147:0]line13; //wire [147:0]line14; //wire [147:0]line15; //wire [147:0]line16; //wire [147:0]line17; //wire [147:0]line18; //wire [147:0]line19; //wire [147:0]line20; //wire [147:0]line21; //wire [147:0]line22; //
第6行 第7行 第8行 第9行 第10行 第11行 第12行 第13行 第14行 第15行 第16行 第17行 第18行 第19行 第20行 第21行 第22行 第23行
- 36 -
西北工业大学 电子信息学院 08021103班
wire [147:0]line23; //第24行 wire [147:0]line24; //第25行 wire [147:0]line25; //第26行 wire [147:0]line26; //第27行 wire [147:0]line27; //第28行 wire [147:0]line28; //wire [147:0]line29; //wire [147:0]line30; //wire [147:0]line31; //wire [147:0]line32; //wire [147:0]line33; //wire [147:0]line34; //wire [147:0]line35; //wire [147:0]line36; //wire [147:0]line37; //wire [147:0]line38; //wire [147:0]line39; //wire [147:0]line40; //wire [147:0]line41; //wire [147:0]line42; //wire [147:0]line43; //wire [147:0]line44; //wire [147:0]line45; //
第29行 第30行 第31行 第32行 第1行 第2行 第3行 第4行 第5行 第6行 第7行 第8行 第9行 第10行 第11行 第12行 第13行 第14行
- 37 -
西北工业大学 电子信息学院 08021103班
wire [147:0]line46; //第15行 wire [147:0]line47; //第16行 wire [147:0]line48; //第17行 wire [147:0]line49; //第18行 wire [147:0]line50; //第19行 wire [147:0]line51; //第20行 wire [147:0]line52; //第21行 wire [147:0]line53; //第22行 wire [147:0]line54; //第23行 wire [147:0]line55; //第24行 wire [147:0]line56; //第25行 wire [147:0]line57; //第26行 wire [147:0]line58; //第27行 wire [147:0]line59; //第28行 wire [147:0]line60; //第29行 wire [147:0]line61; //第30行 wire [147:0]line62; //第31行 wire [147:0]line63; //第32行
//--------------------------------------------------------------------------------------- wire [25:0]cnt;
reg [25:0]cnt_r; //计数,产生一秒的时间 //--------------------------------------------------
- 38 -
西北工业大学 电子信息学院 08021103班
-------------------------------------
//将0123456789的取模数据存入到寄存器中,16*32 //每个字符将其最上面的数据存到line0中,然后依次往下推
//将数字x的取模数据存到地址为x的寄存器中,例如0的数据就存到地址为0的存储单元中 always begin
char_line0[0] <= 16'h0000; //0 char_line1[0] <= 16'h0000; char_line2[0] <= 16'h0000; char_line3[0] <= 16'h0000; char_line4[0] <= 16'h0000; char_line5[0] <= 16'h0000; char_line6[0] <= 16'h03f0; char_line7[0] <= 16'h0738; char_line8[0] <= 16'h0e1c; char_line9[0] <= 16'h1c0e; char_line10[0] <= 16'h1c0e; char_line11[0] <= 16'h1c06; char_line12[0] <= 16'h3807; char_line13[0] <= 16'h3807; char_line14[0] <= 16'h3807;
- 39 -
的字模 西北工业大学 电子信息学院 08021103班
char_line15[0] <= 16'h3807; char_line16[0] <= 16'h3807; char_line17[0] <= 16'h3807; char_line18[0] <= 16'h3807; char_line19[0] <= 16'h3807; char_line20[0] <= 16'h3807; char_line21[0] <= 16'h1c06; char_line22[0] <= 16'h1c0e; char_line23[0] <= 16'h1c0e; char_line24[0] <= 16'h0e1c; char_line25[0] <= 16'h0738; char_line26[0] <= 16'h03f0; char_line27[0] <= 16'h0000; char_line28[0] <= 16'h0000; char_line29[0] <= 16'h0000; char_line30[0] <= 16'h0000; char_line31[0] <= 16'h0000;
char_line0[1] <= 16'h0000; //1 char_line1[1] <= 16'h0000; char_line2[1] <= 16'h0000; char_line3[1] <= 16'h0000; char_line4[1] <= 16'h0000;
- 40 -
的字模
正在阅读:
数电课程设计--简易两位数计数器07-09
小升初分班考试模拟试题及答案(五) 一、计算题 答案: 2 7713 25505-15
冬天的温暖作文600字07-08
土木工程材料习题册答案05-23
工程组织设计15#06-29
《市场营销学》第02章在线测试06-26
政府采购招标文件 - 图文12-05
九十九“打一字”02-07
TR069与SNMP的比较 - - 图文09-22
2016年经济法基础重难点分析 - 图文09-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 位数
- 计数器
- 简易
- 课程
- 设计
- 青岛团岛污水处理厂
- 中青年领导干部学习邓小平理论心得体会
- 南开15秋学期《外贸单证实务》在线作业辅导试卷-更新
- 数字信号处理期末复习资料终极版
- 某家电集团财务管理制度
- 苏州市老旧住宅小区安全防范系统技术要求(2016版)
- XX年度高中校长述职报告
- 离散时间系统的变换域分析
- 西安高新区热点地块房地产典型开发案例分析
- 会计学习题集
- 被猎头公司淘汰的八类人才
- Thinkphp购物网站设计报告论文 - 图文
- 全国第一届大学生艺术展演活动
- 用Qt写软件系列五:一个安全防护软件的制作(3)
- 高中语文人教版第三册第二单元之《词七首》教案
- 2018版中国家电连锁行业发展现状调研报告目录
- 国网湖北省电力公司启动验收管理补充规定2011230
- 2014届高考化学夺冠易错题专项检测22 Word版含解析
- 工作票实施细则
- 世界名车车标含义大全(图文详解)