名称:多功能计算器设计Verilog代码Quartus 小脚丫扩展开发板
软件:Quartus
语言:Verilog
代码功能:
多功能计算器
软件计算器
1)算术型计算器一可进行加、减、乘、除等简单的四则运算。
2)科学型计算器一可进行乘方、开方、指数、对数、三角函数、统计等方面的运算。
3)序员计算器一专门为程序员设计的计算器,主要特点是支持不同进制数据的And,Or,Not,Xor运算。
使用 STEP FPGA MAX10核心板+ STEP Baseboard扩展底板改计并制作
一个多功能计算器,能够完成带小数点的数据输入,完成基本的四则运算和一些辅助功能。
基本部分(基本部分必须全部实现才计算提高部分成绩)(满分6分)
1.开关机功能:可以使用按键控制计算器的开启和关闭(1分)
2.四则运算:计算器能够完成两位数以内的四则运算。 aa Xbb(1分)
3.可将前次计算结果作为下次计算操作数进行继续计算。aa+bb=cc;cc-dd(1分)
4.可支持至少三个操作数输入的四则运算表达式。 aa X bb+cc(1分
5.按键输入时有声音提示,声音可开启和关闭。(1分)
6.能够显示所有输入数据、表达式和计算结果。(1分
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在小脚丫扩展开发板验证,小脚丫扩展开发板如下,其他开发板可以修改管脚适配:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
状态控制模块
数字输入模块
整体仿真
部分代码展示:
//计算器 module calculator( input clk,//12M时钟 input reset,//低电平复位 //数字按键 input [3:0] L_row,//行 output [3:0] H_col,//列 input sw,//声音开关 output beep,//蜂鸣器 outputseg_rck,//74HC595的RCK管脚 outputseg_sck,//74HC595的SCK管脚 outputseg_din//74HC595的SER管脚 ); 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 . sw(sw), . beep(beep), . 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) );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1248
797