简单计算器控制设计

  • 格式:ppt
  • 大小:1.35 MB
  • 文档页数:35

下载文档原格式

  / 35
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 人们在生活中会遇到各种各样有关数学的 问题,比较复杂的问题就会用到方便、快 捷的计算器。在掌握常用数字电路功能和 原理的基础上,根据EDA技术课程所学知 识,利用硬件描述语言Verilog HDL、EDA 软件Quartus II和硬件平台 Cyclone/Cyclone II FPGA进行电路系统的 设计。
• • • • • • • • • • • •
4'b0101: LED7S <= 7'b1101101; 4'b0110: LED7S <= 7'b1111101 4'b0111: LED7S <= 7'b0000111 4'b1000: LED7S <= 7'b1111111 4'b1001: LED7S <= 7'b1101111 4'b1010: LED7S <= 7'b1110111 4'b1011: LED7S <= 7'b1111100 4'b1100: LED7S <= 7'b0111001 4'b1101: LED7S <= 7'b1011110 4'b1110: LED7S <= 7'b1111001 4'b1111: LED7S <= 7'b1110001 endcase end endmodule
确定输入和输出变量
• 输入: module jsq9(a,b,c,Dout,count,clk,rst )。选择计算方 式, always@(posedge clk 来自百度文库r negedge rst) Reset-整体复位。 输出:out1=a+b,输出加法得数
out2=a-b,输出减法得数 out=a*b,输出乘法得数 out1=a/b,输出除法得数
数码管仿真图
数码管仿真图分析
• 数码管显示器的时序仿真波形,当输入为2 时七段数码管中,abcdefg的高低电平分别 为1011011,即abcdg点亮显示数字时数码 管对应显示1100110,即abcdef被点亮显示 数字。其他数字显示均正确,七段数码管 显示器模块设计仿真成功。
循环扫描程序
设计任务及要求
• 设计一个简单计算器,采用单4*4计算器键盘,输入2位十进制数进行 +、-、 *、/ 四种运算,输入数据分别用两位数码管显示,输出用四 位数码管显示4位10进制数,其中除法的结果显示分为商和余数两部 分,要求采用时序逻辑设计实现计算器功能。为了完成要 求的效果 显示,我先设计了一个简单的四则运算器,为了使其结果能清楚的看 到,所以计算器模块和一个7段数码管模块连接。实验要求,输入分 别用两位数码管显示,输出用四位数码管显示,所以用一个3—8译码 器和数码管连接,通过开关控制,形成动态显示。从左向右,依次是 第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位 数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管 到第八位数码管显示输出的结果。通过改变时钟,使其看起来像同时 显示在数码管上。
题目:简单计算器控制设计
大作业摘要
计算器的作用不仅在于能够进行复杂的运 算,更重要的是借助计算器可以解决更为 实际的问题、探索更加富有挑战性的规律。 计算器的发明也提高了人类解决数学问题 的能力,虽然机器接替了大量计算,但对 机器的使用者来说,聪明地设计合理的算 法和解释结果将变得很重要。
设计的背景、目的和意义
(二)数码管显示程序
• • • • • • • • • • • • module DECS7S (A, LED7S); input [3:0] A; output [6:0] LED7S; reg [6:0] LED7S; always @(A) begin case(A) 4'b0000: LED7S<=7'b0111111; 4'b0001: LED7S <= 7'b0000110 4'b0010: LED7S <= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110
程序
• • • • • • • • • • • • • • • •
out=a-b; end 2'b10:begin out1=0; out2=0; out=a*b; end 2'b11:begin out1=a/b; out2=a%b; out={out1,out2}; end default:; endcase endmodule
• • • • • • • • • • • • • module xhsm(clk,rst,count,Dout); input clk,rst; output[6:0]Dout; output[2:0]count; reg[6:0]Dout; reg[2:0]count; reg[6:0]LED7S1,LED7S2,LED7S3,LED7S4,LED7S5,LED7S6,LED7 S7,LED7S8; always@(posedge clk or negedge rst) begin if(!rst) count<=3'b000; else if(count==3'b111) count<=3'b000;
整体设计框图
模块
(一)四选一多路器
• • • • • • • • • • • • • • • • • module jsq(a,b,c,out,out1,out2); input[7:0]a,b; input[1:0]c; output[15:0]out; output[7:0]out1,out2; reg [15:0]out; reg[7:0]out1,out2; always@(a,b,c,out) case(c) 2'b00:begin out1=0; out2=0; out=a+b; end 2'b01:begin out1=0; out2=0;
四选一多路器仿真图
四选一多路器仿真波形分析
当输入a为1、b为1、c为00时输出out为2即 1+1=2;当输入a=5,b=4,c=01时输出out=1.即 5-4=1,当输入a=9,b=6,c=时输出out=54,即 9*6=54,当输入a=12,b=8,c=11时输出out1=1, out2=4,即商为12/8=1,余数为12%8=4.经此验证 分析证明此计算器计算准确无误。模块设计成功。
确定输入状态
• 第一位数码管显示a的高四位,第二位数码管显示 a的低四位;第三位数码管显示b的高四位,第四 位数码管显示b的低四位;第五位数码管到第八位 数码管显示输出的结果。
• 输入2位十进制数,进行+、-、 *、/ 四种运 算,输入数据分别用两位数码管显示,输 出用数码管显示4位10进制数,其中除法的 结果显示分为商和余数两部分,采用时序 逻辑设计实现计算器功能。