1、济南大学EDA大作业电子设计自动化大作业 题 目 加法器和减法器 学 院 自动化与电气工程学院班 级 电传1102班姓 名 刘长颖学 号 20110321122目 录一 设计要求 4二 总体设计 52.1 总体结构图 52.1.1外部端口示意图 52.1.2总体结构图 52.2 各模块功能 52.2.1 运算控制 52.2.2 进位指示 52.2.3 运算数据输入 62.2.4 运算结果显示 62.2.5 运算控制 6三 单元模块设计 73.1运算控制 73.1.1端口定义 73.1.2 verilog运算控制模块程序 73.1.3 运算控制框图 73.1.4 运算控制模块仿真结果 83.2进
2、位指示 83.2.1端口定义 83.2.2 verilog进位指示模块程序 83.2.3 进位指示框图 93.2.4 进位指示模块仿真结果 93.3预置数据输入 93.3.1端口定义 93.3.2 verilog预置数据输入模块程序 93.3.3 预置数据输入框图 103.3.4 运算数据输入模块仿真结果 103.4运算结果显示 113.4.1端口定义 113.4.2 verilog运算控制模块程序 113.4.3 运算结果显示框图 113.4.3 运算结果显示模块仿真结果 123.5运算 123.5.1 端口定义 123.5.2 运算模块程序 123.5.3 运算框图 133.5.4 运算仿
3、真结果 13四 整体组装 144.1 总框图 14一 设计要求构造一个四位二进制加法器和一个四位二进制减法器,完成各自的功能仿真。利用四个按键输入四位加数(或减数)和被加数(或被减数)。用七段数码管显示四位和(或差),用一只发光二极管指示进位(或借位)信号。利用个开关控制,确定是四位二进制加法器还是一个四位二进制减法器。二 总体设计2.1 总体结构图2.1.1外部端口示意图图1 外部端口示意图2.1.2总体结构图总体结构分为运算控制、运算数据输入、进位指示、运算、运算结果显示这五个部分。各个部分的关系如图2总体结构图所示。图2 总体结构图2.2 各模块功能2.2.1 运算控制使用按键控制值所涉
4、及的电路是进行加法运算还是减法运算。2.2.2 进位指示当进行加法运算时,如果运算结果有进位,则指示灯亮,否则指示灯亮。2.2.3 运算数据输入通过一个按键的控制控制所输入的数据时正对加法运算还是减法运算。2.2.4 运算结果显示将当前运算(加法或者减法)结果显示在数码管上。2.2.5 运算控制对运算规则进行控制,对当前的运算是加法运算和还是减法运算。三 单元模块设计3.1运算控制3.1.1端口定义module COTUROL(clk,key,shezhi);clk为输入的系统时钟信号,key为输入运算法则的显示信号,shezhi为输出的结构标志信号。3.1.2 verilog运算控制模块程序
5、module COTUROL(clk,key,shezhi);input clk;output shezhi;input key;reg shezhi_r;always(key)begin if(key = 1) /控制进行加法运算还是减法运算 shezhi_r = 1; else shezhi_r = 0;endassign shezhi=shezhi_r;endmodule3.1.3 运算控制框图图3 运算控制框图3.1.4 运算控制模块仿真结果图4 运算控制仿真图3.2进位指示3.2.1端口定义module JINWEI(c_tmp,led,clk,shezhi);clk为输入的系统时钟
6、信号,c_temp为输入的运算结果参数,led为运算结果的进位指示信号,shezhi为运算判断信号的输出端口。3.2.2 verilog进位指示模块程序module JINWEI(c_tmp,led,clk,shezhi);input clk;output led; /进位指示input shezhi;input4:0 c_tmp;reg led_r;always(posedge clk)begin if(shezhi = 1) begin if(c_tmp 5d16) /判断是否有进位 led_r = 1; else led_r = 0; endendassign led=led_r;end
7、module3.2.3 进位指示框图图5 进位指示框图3.2.4 进位指示模块仿真结果图6 进位指示仿真图3.3预置数据输入3.3.1端口定义module YUZHI(a,b,clk,key1,key2,KEY);clk为输入的系统时钟信号,key1为被加数a或被减速a的数据输入,key2为加数b或减速b的数据输入,KEY为1输入加数,0输入减数,a,b为运算的两个四位二进制数。3.3.2 verilog预置数据输入模块程序module YUZHI(a,b,clk,key1,key2,KEY);input3:0 key1; /被加数a或被减速a的输入input3:0 key2; /加数b或减速
8、b的输入input1:0 KEY; /1输入加数,0输入减数input clk;output3:0 a,b; /运算的两个四位数reg3:0 a_r,b_r;always(posedge clk) /预置两个运算数据begin if(KEY0 = 1) /预置加法数据 begin a_r = key1; b_r = key2; end if(KEY1 = 1) /预置减法数据 begin a_r = key1; b_r = key2; endendassign a=a_r;assign b=b_r;endmodule3.3.3 预置数据输入框图图7 运算数据输入框图3.3.4 运算数据输入模块
9、仿真结果图8 运算数据输入仿真图3.4运算结果显示3.4.1端口定义module COTUROL(clk,key,shezhi);clk为输入的系统时钟信号;key为加减法选择端口,1输入加数,0输入减数;shezhi运算控制输出端口。3.4.2 verilog运算控制模块程序module COTUROL(clk,key,shezhi);input clk;output shezhi;input key;reg shezhi_r;always(posedge clk)begin if(key = 1) /控制进行加法运算还是减法运算 shezhi_r = 1; else shezhi_r =
10、0;endassign shezhi=shezhi_r;endmodule 3.4.3 运算结果显示框图图9 运算结果显示框图3.4.3 运算结果显示模块仿真结果图10 运算结果显示仿真图3.5运算3.5.1 端口定义module YUNSUAN(clk,a,b,shezhi,c_tmp);clk为输入的系统时钟信号,a为运算时的被减数或被加数,b为运算时的减数或加数,shezhi为进行运算控制的标志信号,c_tmp为运算结果的的输出信号。3.5.2 运算模块程序module YUNSUAN(clk,a,b,shezhi,c_tmp);input clk;input3:0 a,b;input shezhi;output4:0 c_tmp;reg4:0 c_tmp_r;assign c_tmp=shezhi ? a+b : a-b;endmodule3.5.3 运算框图图11 运算框图3.5.4 运算仿真结果图12 运算仿真时序图四 整体组装4.1 总框图图8 总框图
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2