• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于FPGA的简易计算器设计Verilog代码Quartus仿真

07/24 11:25
514
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2405131Z14CU.doc

共1个文件

名称:基于FPGA的简易计算器设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

设计一个基于FPGA的简易计算器。

设计要求:

1.系统主要外设:矩阵键盘(4×4)、数码管6个、系统时钟(50MHz);

2.系统主要功能:可以实现十位以内的加、减、乘、除运算;用户通过矩阵键盘进行输入,并用数码管来显示当前的输入数值和最终的计算结果。

*备注:矩阵键盘大小为4×4,可以自行设计每个按键的功能

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

部分代码展示:

//计算器
module?calculator(
input?clk,//时钟
input?reset,
//数字按键
input?[3:0]?L_row,//行
output?[3:0]?H_col,//列
output?[2:0]?ABC,//数码管位选
output?[7:0]?segment//数码管段选
);
wire?[2:0]?current_state;//当前状态
wire?[1:0]?calcul;//计算
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?esc;//ESC键
wire?add;//加
wire?sub;//减
wire?mul;//乘
wire?div;//除
wire?enter;//Enter键
wire?[15:0]?OP_A;//输入的操作数A
wire?[15:0]?OP_B;//输入的操作数B
wire?[15:0]?OP_Result;//结果
wire?[15:0]?remainder;//余数
wire?clk_500KHz;
//分频
div_clk?i_div_clk(
.?clk(clk),//50M
.?clk_500KHz(clk_500KHz)//分频到500K
);
//输入模块
data_input?i_data_input(
.?clk_500KHz(clk_500KHz),//500KHZ?
.?reset(reset),
.?L_row(L_row),//行
.?H_col(H_col),//列
.?key_0_rise(key_0_p),
.?key_1_rise(key_1_p),
.?key_2_rise(key_2_p),
.?key_3_rise(key_3_p),
.?key_4_rise(key_4_p),
.?key_5_rise(key_5_p),
.?key_6_rise(key_6_p),
.?key_7_rise(key_7_p),
.?key_8_rise(key_8_p),
.?key_9_rise(key_9_p),
.?key_A_rise(add),
.?key_B_rise(sub),
.?key_C_rise(mul),
.?key_D_rise(div),
.?key_E_rise(esc),
.?key_F_rise(enter)
);
//状态控制模块
state_ctrl?i_state_ctrl(
.?clk(clk_500KHz),//时钟
.?esc(esc),//ESC键
.?add(add),//加
.?sub(sub),//减
.?mul(mul),//乘
.?div(div),//除
.?enter(enter),//Enter键
.?current_state(current_state),//当前状态
.?calcul(calcul)//计算
);

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=744

  • 2-2405131Z14CU.doc
    下载

相关推荐