当前位置:   article > 正文

基于FPGA的简易计算器Verilog代码Quartus仿真_verilog模拟计算器

verilog模拟计算器

名称:基于FPGA的简易计算器Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

(1)完成 0~9999 之内的数的加减乘除计算,9999 的二进制表示为 1001100001111,在

这一部分中,可以将每一个数均表示成 16 位二进制数统一进行运算,各个计算数之间的

计算可以直接使用 VHDL 语言中的运算符来实现。

(2)在显示时,必须将个位、十位、百位,千位分开显示,设计时使用比较的方法来

实现计算器的功能要求。

(3)按键必须包括 0-9 数字按键、加减乘除四键、等号键以及清零键,其余功能可自

行添加。

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 状态图

6. 仿真文件

7. 仿真图

管脚分配

部分代码展示:

//计算器
module calculator(
input clk,//时钟
input esc,//清零键
input add,//加
input sub,//减
input mul,//乘
input div,//除
input enter,//等于键
input cancel,//回退键
//数字按键
input key_0,
input key_1,
input key_2,
input key_3,
input key_4,
input key_5,
input key_6,
input key_7,
input key_8,
input key_9,
output [7:0] bit_sel,//数码管位选
output [7:0] segment//数码管段选
);
wire [2:0] current_state;//当前状态
wire [1:0] calcul;//计算
wire [15:0] OP_A;//输入的操作数A
wire [15:0] OP_B;//输入的操作数B
wire [31:0] OP_Result;//结果
wire key_0_p;
wire key_1_p;
wire key_2_p;
wire key_3_p;
wire key_4_p;
wire key_5_p;
wire key_6_p;
wire key_7_p;
wire key_8_p;
wire key_9_p;
wire cancel_p;
wire clk_1KHz;
//分频模块,时钟分频到1KHz
div_1K i_div_1K(
. clk(clk),//50MHz
. clk_1KHz(clk_1KHz)//时钟1KHz
);
//assign clk_1KHz=clk;//仿真时用该句,取消分频可以加快仿真速度,实际上板需要加上分频,屏蔽该句
//按键上升沿模块
key_rise i0_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_0),//按键输入
. key_out(key_0_p)//按键上升沿
);
//按键上升沿模块
key_rise i1_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_1),//按键输入
. key_out(key_1_p)//按键上升沿
);
//按键上升沿模块
key_rise i2_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_2),//按键输入
. key_out(key_2_p)//按键上升沿
);
//按键上升沿模块
key_rise i3_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_3),//按键输入
. key_out(key_3_p)//按键上升沿
);
//按键上升沿模块
key_rise i4_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_4),//按键输入
. key_out(key_4_p)//按键上升沿
);
//按键上升沿模块
key_rise i5_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_5),//按键输入
. key_out(key_5_p)//按键上升沿
);
//按键上升沿模块
key_rise i6_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_6),//按键输入
. key_out(key_6_p)//按键上升沿
);
//按键上升沿模块
key_rise i7_key_rise(
. clk(clk_1KHz),//时钟
. key_in(key_7),//按键输入
. key_out(key_7_p)//按键上升沿
源代码

 扫描文章末尾的公众号二维码

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/762400
推荐阅读
相关标签
  

闽ICP备14008679号