1、济南大学电子设计自动化大作业电子设计自动化大作业题 目 加法器和减法器 学 院 自动化与电气工程学院班 级 姓 名 学 号 二O一二年十月三十一日目录一 设计要求 3二 总体设计 42.1 总体结构图 42.1.1外部端口示意图 42.1.2总体结构图 42.2 各模块功能 42.2.1 运算控制 42.2.2 进位指示 42.2.3 运算数据输入 52.2.4 运算结果显示 52.2.5 运算控制 5三 单元模块设计 63.1运算控制 63.1.1端口定义 63.1.2 verilog运算控制模块程序 63.1.3 运算控制框图 63.1.4 运算控制模块仿真结果 73.2进位指示 73.2
2、.1端口定义 73.2.2 verilog进位指示模块程序 73.2.3 进位指示框图 83.2.4 进位指示模块仿真结果 83.3预置数据输入 83.3.1端口定义 83.3.2 verilog预置数据输入模块程序 83.3.3 预置数据输入框图 93.3.4 运算数据输入模块仿真结果 93.4运算结果显示 103.4.1端口定义 103.4.2 verilog运算控制模块程序 103.4.3 运算结果显示框图 103.4.3 运算结果显示模块仿真结果 113.5运算 113.5.1 端口定义 113.5.2 运算模块程序 113.5.3 运算框图 123.5.4 运算仿真结果 12四 整体
3、组装 134.1 总框图 13一 设计要求(1). 构造一个四位二进制加法器和一个四位二进制减法器,完成各自的功能仿真。(2). 利用四个按键输入四位加数(或减数)和被加数(或被减数)。(3). 用七段数码管显示四位和(或差),用一只发光二极管指示进位(或借位)信号。(4). 利用个开关控制,确定是四位二进制加法器还是一个四位二进制减法器。二 总体设计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 veril
5、og运算控制模块程序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);c
6、lk为输入的系统时钟信号,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
7、=led_r;endmodule3.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 key
8、2; /加数b或减速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 预置数据输入框图图5 运算数据输入框图3.3.
9、4 运算数据输入模块仿真结果图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 s
10、hezhi_r = 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-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1