名称:加法减法计算器设计Verilog代码VIVADO basys3开发板(文末获取)
软件:VIVADO
语言:Verilog
代码功能:
加法减法计算器设计
1.加法和减法运算
计算器应能够进行加法(+)和減法(-) 操作。
输入两个4位的无符号二进制数(范围为0到 15)。
2.输入输出要求 :
使用`sw[3:0]`来输入4位二进制数。
使用`sw4`选择运算符(1 表示加法,0表示减法)
`BTNL`按钮用于在任何时候重置计算。
`BTNU`按钮用于确认输入的操作数
七段显示器用于显示输入值和计算结果。
`BTND`按钮用于切换显示模式(十进制或十六进制)
3.设计规范::
使用 systemverilog实现整个设计,
运算逻辑使用组合逻辑来进行加法和减法操作。需要采用模块化设计:每个功能(输入处理、存储操作数、算术运算、控制逻辑和输出显示)需要设计为独立模块。
设计时还需绘制 模块化框图,展示系统的层次结构,并简要讨论每个模块的功能。
显示模式:
计算结果可以通过七段显示器显示为 十进制 或十六进制,并可以随时切换。
5.操作步骡;
1.选择操作数 1,并通过'BTNU' 确认,同时在七段显示器上显示操作数 1.
2.选择操作数 2,并通过`BTNU`确认,同时在七段显示器上显示操作数 2。
3.再次按下BTNU,在七段显示器上显示计算结果,三个数码管,如果是负数,显示负号,如果正数直接显示结果,可选16进制或者10进制显示
本代码已在basys3开发板验证,basys3开发板如下,其他开发板可以修改管脚适配:
1、工程文件
2、程序文件
3、程序编译
4、RTL图
5、管脚分配
部分代码展示:
//1.**加法和减法运算** //计算器应能够进行**加法(+)**和**減法(-)** 操作。 //输入两个4位的无符号二进制数(范围为0到 15)。 //2.#*输入输出要求* : //使用`sw[3:0]`来输入4位二进制数。 //使用`sw4`选择运算符(1 表示加法,0表示减法) //`BTNL`按钮用于在任何时候**重置**计算。 //`BTNU`按钮用于**确认输入的操作数** //七段显示器用于显示输入值和计算结果。 //`BTND`按钮用于切换显示模式(十进制或十六进制) //3.#设计规范:: //使用 systemverilog实现整个设计, //运算逻辑使用组合逻辑来进行加法和减法操作。需要采用模块化设计:每个功能(输入处理、存储操作数、算术运算、控制逻辑和输出显示)需要设计为独立模块。 //设计时还需绘制 **模块化框图**,展示系统的层次结构,并简要讨论每个模块的功能。 //**显示模式**: //计算结果可以通过七段显示器显示为 **十进制** 或**十六进制**,并可以随时切换。 //5.**操作步骡**; //1.选择操作数 1,并通过'BTNU' 确认,同时在七段显示器上显示操作数 1. //2.选择操作数 2,并通过`BTNU`确认,同时在七段显示器上显示操作数 2。 //3.再次按下BTNU,在七段显示器上显示计算结果,三个数码管,如果是负数,显示负号,如果正数直接显示结果,可选16进制或者10进制显示 module add_display( input clk,//100M input reset,//复位--BTNL input SW,//切换开关--sw4(1 表示加法,0表示减法) input BTND,//`BTND`按钮用于切换显示模式(十进制或十六进制) input [3:0] data_in,//输入数据--sw[3:0] input enter_btn_in,//确认按键--BTNU output [3:0] bit_select,//数码管位选 output [7:0] lednum_select//数码管段选 ); wire enter_btn;//消抖后按键 wire [3:0] data_1; wire [3:0] data_2; wire [3:0] data_3; wire [3:0] data_4; //按键消抖 key_jitter i_key_jitter( . clkin(clk), . key_in(enter_btn_in),//输入 . key_posedge(enter_btn)//消抖后按键上升沿 );
源代码
点击下方的公众号卡片获取